Skip to main content

webview2_com_sys/
bindings.rs

1// Bindings generated by `windows-bindgen` 0.66.0
2
3#[inline]
4pub unsafe fn CompareBrowserVersions<P0, P1>(
5    version1: P0,
6    version2: P1,
7    result: *mut i32,
8) -> windows_core::Result<()>
9where
10    P0: windows_core::Param<windows_core::PCWSTR>,
11    P1: windows_core::Param<windows_core::PCWSTR>,
12{
13    windows_core::link!("webview2loader" "system" fn CompareBrowserVersions(version1 : windows_core::PCWSTR, version2 : windows_core::PCWSTR, result : *mut i32) -> windows_core::HRESULT);
14    unsafe {
15        CompareBrowserVersions(version1.param().abi(), version2.param().abi(), result as _).ok()
16    }
17}
18#[inline]
19pub unsafe fn CreateCoreWebView2Environment<P0>(
20    environmentcreatedhandler: P0,
21) -> windows_core::Result<()>
22where
23    P0: windows_core::Param<ICoreWebView2CreateCoreWebView2EnvironmentCompletedHandler>,
24{
25    windows_core::link!("webview2loader" "system" fn CreateCoreWebView2Environment(environmentcreatedhandler : * mut core::ffi::c_void) -> windows_core::HRESULT);
26    unsafe { CreateCoreWebView2Environment(environmentcreatedhandler.param().abi()).ok() }
27}
28#[inline]
29pub unsafe fn CreateCoreWebView2EnvironmentWithOptions<P0, P1, P2, P3>(
30    browserexecutablefolder: P0,
31    userdatafolder: P1,
32    environmentoptions: P2,
33    environmentcreatedhandler: P3,
34) -> windows_core::Result<()>
35where
36    P0: windows_core::Param<windows_core::PCWSTR>,
37    P1: windows_core::Param<windows_core::PCWSTR>,
38    P2: windows_core::Param<ICoreWebView2EnvironmentOptions>,
39    P3: windows_core::Param<ICoreWebView2CreateCoreWebView2EnvironmentCompletedHandler>,
40{
41    windows_core::link!("webview2loader" "system" fn CreateCoreWebView2EnvironmentWithOptions(browserexecutablefolder : windows_core::PCWSTR, userdatafolder : windows_core::PCWSTR, environmentoptions : * mut core::ffi::c_void, environmentcreatedhandler : * mut core::ffi::c_void) -> windows_core::HRESULT);
42    unsafe {
43        CreateCoreWebView2EnvironmentWithOptions(
44            browserexecutablefolder.param().abi(),
45            userdatafolder.param().abi(),
46            environmentoptions.param().abi(),
47            environmentcreatedhandler.param().abi(),
48        )
49        .ok()
50    }
51}
52#[inline]
53pub unsafe fn GetAvailableCoreWebView2BrowserVersionString<P0>(
54    browserexecutablefolder: P0,
55    versioninfo: *mut windows_core::PWSTR,
56) -> windows_core::Result<()>
57where
58    P0: windows_core::Param<windows_core::PCWSTR>,
59{
60    windows_core::link!("webview2loader" "system" fn GetAvailableCoreWebView2BrowserVersionString(browserexecutablefolder : windows_core::PCWSTR, versioninfo : *mut windows_core::PWSTR) -> windows_core::HRESULT);
61    unsafe {
62        GetAvailableCoreWebView2BrowserVersionString(
63            browserexecutablefolder.param().abi(),
64            versioninfo as _,
65        )
66        .ok()
67    }
68}
69#[inline]
70pub unsafe fn GetAvailableCoreWebView2BrowserVersionStringWithOptions<P0, P1>(
71    browserexecutablefolder: P0,
72    environmentoptions: P1,
73    versioninfo: *mut windows_core::PWSTR,
74) -> windows_core::Result<()>
75where
76    P0: windows_core::Param<windows_core::PCWSTR>,
77    P1: windows_core::Param<ICoreWebView2EnvironmentOptions>,
78{
79    windows_core::link!("webview2loader" "system" fn GetAvailableCoreWebView2BrowserVersionStringWithOptions(browserexecutablefolder : windows_core::PCWSTR, environmentoptions : * mut core::ffi::c_void, versioninfo : *mut windows_core::PWSTR) -> windows_core::HRESULT);
80    unsafe {
81        GetAvailableCoreWebView2BrowserVersionStringWithOptions(
82            browserexecutablefolder.param().abi(),
83            environmentoptions.param().abi(),
84            versioninfo as _,
85        )
86        .ok()
87    }
88}
89#[repr(transparent)]
90#[derive(Clone, Copy, Debug, Default, Eq, PartialEq)]
91pub struct COREWEBVIEW2_BOUNDS_MODE(pub i32);
92pub const COREWEBVIEW2_BOUNDS_MODE_USE_RASTERIZATION_SCALE: COREWEBVIEW2_BOUNDS_MODE =
93    COREWEBVIEW2_BOUNDS_MODE(1i32);
94pub const COREWEBVIEW2_BOUNDS_MODE_USE_RAW_PIXELS: COREWEBVIEW2_BOUNDS_MODE =
95    COREWEBVIEW2_BOUNDS_MODE(0i32);
96#[repr(transparent)]
97#[derive(Clone, Copy, Debug, Default, Eq, PartialEq)]
98pub struct COREWEBVIEW2_BROWSER_PROCESS_EXIT_KIND(pub i32);
99pub const COREWEBVIEW2_BROWSER_PROCESS_EXIT_KIND_FAILED: COREWEBVIEW2_BROWSER_PROCESS_EXIT_KIND =
100    COREWEBVIEW2_BROWSER_PROCESS_EXIT_KIND(1i32);
101pub const COREWEBVIEW2_BROWSER_PROCESS_EXIT_KIND_NORMAL: COREWEBVIEW2_BROWSER_PROCESS_EXIT_KIND =
102    COREWEBVIEW2_BROWSER_PROCESS_EXIT_KIND(0i32);
103#[repr(transparent)]
104#[derive(Clone, Copy, Debug, Default, Eq, PartialEq)]
105pub struct COREWEBVIEW2_BROWSING_DATA_KINDS(pub i32);
106impl COREWEBVIEW2_BROWSING_DATA_KINDS {
107    pub const fn contains(&self, other: Self) -> bool {
108        self.0 & other.0 == other.0
109    }
110}
111impl core::ops::BitOr for COREWEBVIEW2_BROWSING_DATA_KINDS {
112    type Output = Self;
113    fn bitor(self, other: Self) -> Self {
114        Self(self.0 | other.0)
115    }
116}
117impl core::ops::BitAnd for COREWEBVIEW2_BROWSING_DATA_KINDS {
118    type Output = Self;
119    fn bitand(self, other: Self) -> Self {
120        Self(self.0 & other.0)
121    }
122}
123impl core::ops::BitOrAssign for COREWEBVIEW2_BROWSING_DATA_KINDS {
124    fn bitor_assign(&mut self, other: Self) {
125        self.0.bitor_assign(other.0)
126    }
127}
128impl core::ops::BitAndAssign for COREWEBVIEW2_BROWSING_DATA_KINDS {
129    fn bitand_assign(&mut self, other: Self) {
130        self.0.bitand_assign(other.0)
131    }
132}
133impl core::ops::Not for COREWEBVIEW2_BROWSING_DATA_KINDS {
134    type Output = Self;
135    fn not(self) -> Self {
136        Self(self.0.not())
137    }
138}
139pub const COREWEBVIEW2_BROWSING_DATA_KINDS_ALL_DOM_STORAGE: COREWEBVIEW2_BROWSING_DATA_KINDS =
140    COREWEBVIEW2_BROWSING_DATA_KINDS(32i32);
141pub const COREWEBVIEW2_BROWSING_DATA_KINDS_ALL_PROFILE: COREWEBVIEW2_BROWSING_DATA_KINDS =
142    COREWEBVIEW2_BROWSING_DATA_KINDS(16384i32);
143pub const COREWEBVIEW2_BROWSING_DATA_KINDS_ALL_SITE: COREWEBVIEW2_BROWSING_DATA_KINDS =
144    COREWEBVIEW2_BROWSING_DATA_KINDS(128i32);
145pub const COREWEBVIEW2_BROWSING_DATA_KINDS_BROWSING_HISTORY: COREWEBVIEW2_BROWSING_DATA_KINDS =
146    COREWEBVIEW2_BROWSING_DATA_KINDS(4096i32);
147pub const COREWEBVIEW2_BROWSING_DATA_KINDS_CACHE_STORAGE: COREWEBVIEW2_BROWSING_DATA_KINDS =
148    COREWEBVIEW2_BROWSING_DATA_KINDS(16i32);
149pub const COREWEBVIEW2_BROWSING_DATA_KINDS_COOKIES: COREWEBVIEW2_BROWSING_DATA_KINDS =
150    COREWEBVIEW2_BROWSING_DATA_KINDS(64i32);
151pub const COREWEBVIEW2_BROWSING_DATA_KINDS_DISK_CACHE: COREWEBVIEW2_BROWSING_DATA_KINDS =
152    COREWEBVIEW2_BROWSING_DATA_KINDS(256i32);
153pub const COREWEBVIEW2_BROWSING_DATA_KINDS_DOWNLOAD_HISTORY: COREWEBVIEW2_BROWSING_DATA_KINDS =
154    COREWEBVIEW2_BROWSING_DATA_KINDS(512i32);
155pub const COREWEBVIEW2_BROWSING_DATA_KINDS_FILE_SYSTEMS: COREWEBVIEW2_BROWSING_DATA_KINDS =
156    COREWEBVIEW2_BROWSING_DATA_KINDS(1i32);
157pub const COREWEBVIEW2_BROWSING_DATA_KINDS_GENERAL_AUTOFILL: COREWEBVIEW2_BROWSING_DATA_KINDS =
158    COREWEBVIEW2_BROWSING_DATA_KINDS(1024i32);
159pub const COREWEBVIEW2_BROWSING_DATA_KINDS_INDEXED_DB: COREWEBVIEW2_BROWSING_DATA_KINDS =
160    COREWEBVIEW2_BROWSING_DATA_KINDS(2i32);
161pub const COREWEBVIEW2_BROWSING_DATA_KINDS_LOCAL_STORAGE: COREWEBVIEW2_BROWSING_DATA_KINDS =
162    COREWEBVIEW2_BROWSING_DATA_KINDS(4i32);
163pub const COREWEBVIEW2_BROWSING_DATA_KINDS_PASSWORD_AUTOSAVE: COREWEBVIEW2_BROWSING_DATA_KINDS =
164    COREWEBVIEW2_BROWSING_DATA_KINDS(2048i32);
165pub const COREWEBVIEW2_BROWSING_DATA_KINDS_SERVICE_WORKERS: COREWEBVIEW2_BROWSING_DATA_KINDS =
166    COREWEBVIEW2_BROWSING_DATA_KINDS(32768i32);
167pub const COREWEBVIEW2_BROWSING_DATA_KINDS_SETTINGS: COREWEBVIEW2_BROWSING_DATA_KINDS =
168    COREWEBVIEW2_BROWSING_DATA_KINDS(8192i32);
169pub const COREWEBVIEW2_BROWSING_DATA_KINDS_WEB_SQL: COREWEBVIEW2_BROWSING_DATA_KINDS =
170    COREWEBVIEW2_BROWSING_DATA_KINDS(8i32);
171#[repr(transparent)]
172#[derive(Clone, Copy, Debug, Default, Eq, PartialEq)]
173pub struct COREWEBVIEW2_CAPTURE_PREVIEW_IMAGE_FORMAT(pub i32);
174pub const COREWEBVIEW2_CAPTURE_PREVIEW_IMAGE_FORMAT_JPEG:
175    COREWEBVIEW2_CAPTURE_PREVIEW_IMAGE_FORMAT = COREWEBVIEW2_CAPTURE_PREVIEW_IMAGE_FORMAT(1i32);
176pub const COREWEBVIEW2_CAPTURE_PREVIEW_IMAGE_FORMAT_PNG: COREWEBVIEW2_CAPTURE_PREVIEW_IMAGE_FORMAT =
177    COREWEBVIEW2_CAPTURE_PREVIEW_IMAGE_FORMAT(0i32);
178#[repr(transparent)]
179#[derive(Clone, Copy, Debug, Default, Eq, PartialEq)]
180pub struct COREWEBVIEW2_CHANNEL_SEARCH_KIND(pub i32);
181pub const COREWEBVIEW2_CHANNEL_SEARCH_KIND_LEAST_STABLE: COREWEBVIEW2_CHANNEL_SEARCH_KIND =
182    COREWEBVIEW2_CHANNEL_SEARCH_KIND(1i32);
183pub const COREWEBVIEW2_CHANNEL_SEARCH_KIND_MOST_STABLE: COREWEBVIEW2_CHANNEL_SEARCH_KIND =
184    COREWEBVIEW2_CHANNEL_SEARCH_KIND(0i32);
185#[repr(transparent)]
186#[derive(Clone, Copy, Debug, Default, Eq, PartialEq)]
187pub struct COREWEBVIEW2_CLIENT_CERTIFICATE_KIND(pub i32);
188pub const COREWEBVIEW2_CLIENT_CERTIFICATE_KIND_OTHER: COREWEBVIEW2_CLIENT_CERTIFICATE_KIND =
189    COREWEBVIEW2_CLIENT_CERTIFICATE_KIND(2i32);
190pub const COREWEBVIEW2_CLIENT_CERTIFICATE_KIND_PIN: COREWEBVIEW2_CLIENT_CERTIFICATE_KIND =
191    COREWEBVIEW2_CLIENT_CERTIFICATE_KIND(1i32);
192pub const COREWEBVIEW2_CLIENT_CERTIFICATE_KIND_SMART_CARD: COREWEBVIEW2_CLIENT_CERTIFICATE_KIND =
193    COREWEBVIEW2_CLIENT_CERTIFICATE_KIND(0i32);
194#[repr(C)]
195#[derive(Clone, Copy, Debug, Default, PartialEq)]
196pub struct COREWEBVIEW2_COLOR {
197    pub A: u8,
198    pub R: u8,
199    pub G: u8,
200    pub B: u8,
201}
202#[repr(transparent)]
203#[derive(Clone, Copy, Debug, Default, Eq, PartialEq)]
204pub struct COREWEBVIEW2_CONTEXT_MENU_ITEM_KIND(pub i32);
205pub const COREWEBVIEW2_CONTEXT_MENU_ITEM_KIND_CHECK_BOX: COREWEBVIEW2_CONTEXT_MENU_ITEM_KIND =
206    COREWEBVIEW2_CONTEXT_MENU_ITEM_KIND(1i32);
207pub const COREWEBVIEW2_CONTEXT_MENU_ITEM_KIND_COMMAND: COREWEBVIEW2_CONTEXT_MENU_ITEM_KIND =
208    COREWEBVIEW2_CONTEXT_MENU_ITEM_KIND(0i32);
209pub const COREWEBVIEW2_CONTEXT_MENU_ITEM_KIND_RADIO: COREWEBVIEW2_CONTEXT_MENU_ITEM_KIND =
210    COREWEBVIEW2_CONTEXT_MENU_ITEM_KIND(2i32);
211pub const COREWEBVIEW2_CONTEXT_MENU_ITEM_KIND_SEPARATOR: COREWEBVIEW2_CONTEXT_MENU_ITEM_KIND =
212    COREWEBVIEW2_CONTEXT_MENU_ITEM_KIND(3i32);
213pub const COREWEBVIEW2_CONTEXT_MENU_ITEM_KIND_SUBMENU: COREWEBVIEW2_CONTEXT_MENU_ITEM_KIND =
214    COREWEBVIEW2_CONTEXT_MENU_ITEM_KIND(4i32);
215#[repr(transparent)]
216#[derive(Clone, Copy, Debug, Default, Eq, PartialEq)]
217pub struct COREWEBVIEW2_CONTEXT_MENU_TARGET_KIND(pub i32);
218pub const COREWEBVIEW2_CONTEXT_MENU_TARGET_KIND_AUDIO: COREWEBVIEW2_CONTEXT_MENU_TARGET_KIND =
219    COREWEBVIEW2_CONTEXT_MENU_TARGET_KIND(3i32);
220pub const COREWEBVIEW2_CONTEXT_MENU_TARGET_KIND_IMAGE: COREWEBVIEW2_CONTEXT_MENU_TARGET_KIND =
221    COREWEBVIEW2_CONTEXT_MENU_TARGET_KIND(1i32);
222pub const COREWEBVIEW2_CONTEXT_MENU_TARGET_KIND_PAGE: COREWEBVIEW2_CONTEXT_MENU_TARGET_KIND =
223    COREWEBVIEW2_CONTEXT_MENU_TARGET_KIND(0i32);
224pub const COREWEBVIEW2_CONTEXT_MENU_TARGET_KIND_SELECTED_TEXT:
225    COREWEBVIEW2_CONTEXT_MENU_TARGET_KIND = COREWEBVIEW2_CONTEXT_MENU_TARGET_KIND(2i32);
226pub const COREWEBVIEW2_CONTEXT_MENU_TARGET_KIND_VIDEO: COREWEBVIEW2_CONTEXT_MENU_TARGET_KIND =
227    COREWEBVIEW2_CONTEXT_MENU_TARGET_KIND(4i32);
228#[repr(transparent)]
229#[derive(Clone, Copy, Debug, Default, Eq, PartialEq)]
230pub struct COREWEBVIEW2_COOKIE_SAME_SITE_KIND(pub i32);
231pub const COREWEBVIEW2_COOKIE_SAME_SITE_KIND_LAX: COREWEBVIEW2_COOKIE_SAME_SITE_KIND =
232    COREWEBVIEW2_COOKIE_SAME_SITE_KIND(1i32);
233pub const COREWEBVIEW2_COOKIE_SAME_SITE_KIND_NONE: COREWEBVIEW2_COOKIE_SAME_SITE_KIND =
234    COREWEBVIEW2_COOKIE_SAME_SITE_KIND(0i32);
235pub const COREWEBVIEW2_COOKIE_SAME_SITE_KIND_STRICT: COREWEBVIEW2_COOKIE_SAME_SITE_KIND =
236    COREWEBVIEW2_COOKIE_SAME_SITE_KIND(2i32);
237#[repr(transparent)]
238#[derive(Clone, Copy, Debug, Default, Eq, PartialEq)]
239pub struct COREWEBVIEW2_DEFAULT_DOWNLOAD_DIALOG_CORNER_ALIGNMENT(pub i32);
240pub const COREWEBVIEW2_DEFAULT_DOWNLOAD_DIALOG_CORNER_ALIGNMENT_BOTTOM_LEFT:
241    COREWEBVIEW2_DEFAULT_DOWNLOAD_DIALOG_CORNER_ALIGNMENT =
242    COREWEBVIEW2_DEFAULT_DOWNLOAD_DIALOG_CORNER_ALIGNMENT(2i32);
243pub const COREWEBVIEW2_DEFAULT_DOWNLOAD_DIALOG_CORNER_ALIGNMENT_BOTTOM_RIGHT:
244    COREWEBVIEW2_DEFAULT_DOWNLOAD_DIALOG_CORNER_ALIGNMENT =
245    COREWEBVIEW2_DEFAULT_DOWNLOAD_DIALOG_CORNER_ALIGNMENT(3i32);
246pub const COREWEBVIEW2_DEFAULT_DOWNLOAD_DIALOG_CORNER_ALIGNMENT_TOP_LEFT:
247    COREWEBVIEW2_DEFAULT_DOWNLOAD_DIALOG_CORNER_ALIGNMENT =
248    COREWEBVIEW2_DEFAULT_DOWNLOAD_DIALOG_CORNER_ALIGNMENT(0i32);
249pub const COREWEBVIEW2_DEFAULT_DOWNLOAD_DIALOG_CORNER_ALIGNMENT_TOP_RIGHT:
250    COREWEBVIEW2_DEFAULT_DOWNLOAD_DIALOG_CORNER_ALIGNMENT =
251    COREWEBVIEW2_DEFAULT_DOWNLOAD_DIALOG_CORNER_ALIGNMENT(1i32);
252#[repr(transparent)]
253#[derive(Clone, Copy, Debug, Default, Eq, PartialEq)]
254pub struct COREWEBVIEW2_DOWNLOAD_INTERRUPT_REASON(pub i32);
255pub const COREWEBVIEW2_DOWNLOAD_INTERRUPT_REASON_DOWNLOAD_PROCESS_CRASHED:
256    COREWEBVIEW2_DOWNLOAD_INTERRUPT_REASON = COREWEBVIEW2_DOWNLOAD_INTERRUPT_REASON(29i32);
257pub const COREWEBVIEW2_DOWNLOAD_INTERRUPT_REASON_FILE_ACCESS_DENIED:
258    COREWEBVIEW2_DOWNLOAD_INTERRUPT_REASON = COREWEBVIEW2_DOWNLOAD_INTERRUPT_REASON(2i32);
259pub const COREWEBVIEW2_DOWNLOAD_INTERRUPT_REASON_FILE_BLOCKED_BY_POLICY:
260    COREWEBVIEW2_DOWNLOAD_INTERRUPT_REASON = COREWEBVIEW2_DOWNLOAD_INTERRUPT_REASON(8i32);
261pub const COREWEBVIEW2_DOWNLOAD_INTERRUPT_REASON_FILE_FAILED:
262    COREWEBVIEW2_DOWNLOAD_INTERRUPT_REASON = COREWEBVIEW2_DOWNLOAD_INTERRUPT_REASON(1i32);
263pub const COREWEBVIEW2_DOWNLOAD_INTERRUPT_REASON_FILE_HASH_MISMATCH:
264    COREWEBVIEW2_DOWNLOAD_INTERRUPT_REASON = COREWEBVIEW2_DOWNLOAD_INTERRUPT_REASON(11i32);
265pub const COREWEBVIEW2_DOWNLOAD_INTERRUPT_REASON_FILE_MALICIOUS:
266    COREWEBVIEW2_DOWNLOAD_INTERRUPT_REASON = COREWEBVIEW2_DOWNLOAD_INTERRUPT_REASON(6i32);
267pub const COREWEBVIEW2_DOWNLOAD_INTERRUPT_REASON_FILE_NAME_TOO_LONG:
268    COREWEBVIEW2_DOWNLOAD_INTERRUPT_REASON = COREWEBVIEW2_DOWNLOAD_INTERRUPT_REASON(4i32);
269pub const COREWEBVIEW2_DOWNLOAD_INTERRUPT_REASON_FILE_NO_SPACE:
270    COREWEBVIEW2_DOWNLOAD_INTERRUPT_REASON = COREWEBVIEW2_DOWNLOAD_INTERRUPT_REASON(3i32);
271pub const COREWEBVIEW2_DOWNLOAD_INTERRUPT_REASON_FILE_SECURITY_CHECK_FAILED:
272    COREWEBVIEW2_DOWNLOAD_INTERRUPT_REASON = COREWEBVIEW2_DOWNLOAD_INTERRUPT_REASON(9i32);
273pub const COREWEBVIEW2_DOWNLOAD_INTERRUPT_REASON_FILE_TOO_LARGE:
274    COREWEBVIEW2_DOWNLOAD_INTERRUPT_REASON = COREWEBVIEW2_DOWNLOAD_INTERRUPT_REASON(5i32);
275pub const COREWEBVIEW2_DOWNLOAD_INTERRUPT_REASON_FILE_TOO_SHORT:
276    COREWEBVIEW2_DOWNLOAD_INTERRUPT_REASON = COREWEBVIEW2_DOWNLOAD_INTERRUPT_REASON(10i32);
277pub const COREWEBVIEW2_DOWNLOAD_INTERRUPT_REASON_FILE_TRANSIENT_ERROR:
278    COREWEBVIEW2_DOWNLOAD_INTERRUPT_REASON = COREWEBVIEW2_DOWNLOAD_INTERRUPT_REASON(7i32);
279pub const COREWEBVIEW2_DOWNLOAD_INTERRUPT_REASON_NETWORK_DISCONNECTED:
280    COREWEBVIEW2_DOWNLOAD_INTERRUPT_REASON = COREWEBVIEW2_DOWNLOAD_INTERRUPT_REASON(14i32);
281pub const COREWEBVIEW2_DOWNLOAD_INTERRUPT_REASON_NETWORK_FAILED:
282    COREWEBVIEW2_DOWNLOAD_INTERRUPT_REASON = COREWEBVIEW2_DOWNLOAD_INTERRUPT_REASON(12i32);
283pub const COREWEBVIEW2_DOWNLOAD_INTERRUPT_REASON_NETWORK_INVALID_REQUEST:
284    COREWEBVIEW2_DOWNLOAD_INTERRUPT_REASON = COREWEBVIEW2_DOWNLOAD_INTERRUPT_REASON(16i32);
285pub const COREWEBVIEW2_DOWNLOAD_INTERRUPT_REASON_NETWORK_SERVER_DOWN:
286    COREWEBVIEW2_DOWNLOAD_INTERRUPT_REASON = COREWEBVIEW2_DOWNLOAD_INTERRUPT_REASON(15i32);
287pub const COREWEBVIEW2_DOWNLOAD_INTERRUPT_REASON_NETWORK_TIMEOUT:
288    COREWEBVIEW2_DOWNLOAD_INTERRUPT_REASON = COREWEBVIEW2_DOWNLOAD_INTERRUPT_REASON(13i32);
289pub const COREWEBVIEW2_DOWNLOAD_INTERRUPT_REASON_NONE: COREWEBVIEW2_DOWNLOAD_INTERRUPT_REASON =
290    COREWEBVIEW2_DOWNLOAD_INTERRUPT_REASON(0i32);
291pub const COREWEBVIEW2_DOWNLOAD_INTERRUPT_REASON_SERVER_BAD_CONTENT:
292    COREWEBVIEW2_DOWNLOAD_INTERRUPT_REASON = COREWEBVIEW2_DOWNLOAD_INTERRUPT_REASON(19i32);
293pub const COREWEBVIEW2_DOWNLOAD_INTERRUPT_REASON_SERVER_CERTIFICATE_PROBLEM:
294    COREWEBVIEW2_DOWNLOAD_INTERRUPT_REASON = COREWEBVIEW2_DOWNLOAD_INTERRUPT_REASON(21i32);
295pub const COREWEBVIEW2_DOWNLOAD_INTERRUPT_REASON_SERVER_CONTENT_LENGTH_MISMATCH:
296    COREWEBVIEW2_DOWNLOAD_INTERRUPT_REASON = COREWEBVIEW2_DOWNLOAD_INTERRUPT_REASON(24i32);
297pub const COREWEBVIEW2_DOWNLOAD_INTERRUPT_REASON_SERVER_CROSS_ORIGIN_REDIRECT:
298    COREWEBVIEW2_DOWNLOAD_INTERRUPT_REASON = COREWEBVIEW2_DOWNLOAD_INTERRUPT_REASON(25i32);
299pub const COREWEBVIEW2_DOWNLOAD_INTERRUPT_REASON_SERVER_FAILED:
300    COREWEBVIEW2_DOWNLOAD_INTERRUPT_REASON = COREWEBVIEW2_DOWNLOAD_INTERRUPT_REASON(17i32);
301pub const COREWEBVIEW2_DOWNLOAD_INTERRUPT_REASON_SERVER_FORBIDDEN:
302    COREWEBVIEW2_DOWNLOAD_INTERRUPT_REASON = COREWEBVIEW2_DOWNLOAD_INTERRUPT_REASON(22i32);
303pub const COREWEBVIEW2_DOWNLOAD_INTERRUPT_REASON_SERVER_NO_RANGE:
304    COREWEBVIEW2_DOWNLOAD_INTERRUPT_REASON = COREWEBVIEW2_DOWNLOAD_INTERRUPT_REASON(18i32);
305pub const COREWEBVIEW2_DOWNLOAD_INTERRUPT_REASON_SERVER_UNAUTHORIZED:
306    COREWEBVIEW2_DOWNLOAD_INTERRUPT_REASON = COREWEBVIEW2_DOWNLOAD_INTERRUPT_REASON(20i32);
307pub const COREWEBVIEW2_DOWNLOAD_INTERRUPT_REASON_SERVER_UNEXPECTED_RESPONSE:
308    COREWEBVIEW2_DOWNLOAD_INTERRUPT_REASON = COREWEBVIEW2_DOWNLOAD_INTERRUPT_REASON(23i32);
309pub const COREWEBVIEW2_DOWNLOAD_INTERRUPT_REASON_USER_CANCELED:
310    COREWEBVIEW2_DOWNLOAD_INTERRUPT_REASON = COREWEBVIEW2_DOWNLOAD_INTERRUPT_REASON(26i32);
311pub const COREWEBVIEW2_DOWNLOAD_INTERRUPT_REASON_USER_PAUSED:
312    COREWEBVIEW2_DOWNLOAD_INTERRUPT_REASON = COREWEBVIEW2_DOWNLOAD_INTERRUPT_REASON(28i32);
313pub const COREWEBVIEW2_DOWNLOAD_INTERRUPT_REASON_USER_SHUTDOWN:
314    COREWEBVIEW2_DOWNLOAD_INTERRUPT_REASON = COREWEBVIEW2_DOWNLOAD_INTERRUPT_REASON(27i32);
315#[repr(transparent)]
316#[derive(Clone, Copy, Debug, Default, Eq, PartialEq)]
317pub struct COREWEBVIEW2_DOWNLOAD_STATE(pub i32);
318pub const COREWEBVIEW2_DOWNLOAD_STATE_COMPLETED: COREWEBVIEW2_DOWNLOAD_STATE =
319    COREWEBVIEW2_DOWNLOAD_STATE(2i32);
320pub const COREWEBVIEW2_DOWNLOAD_STATE_INTERRUPTED: COREWEBVIEW2_DOWNLOAD_STATE =
321    COREWEBVIEW2_DOWNLOAD_STATE(1i32);
322pub const COREWEBVIEW2_DOWNLOAD_STATE_IN_PROGRESS: COREWEBVIEW2_DOWNLOAD_STATE =
323    COREWEBVIEW2_DOWNLOAD_STATE(0i32);
324#[repr(transparent)]
325#[derive(Clone, Copy, Debug, Default, Eq, PartialEq)]
326pub struct COREWEBVIEW2_FAVICON_IMAGE_FORMAT(pub i32);
327pub const COREWEBVIEW2_FAVICON_IMAGE_FORMAT_JPEG: COREWEBVIEW2_FAVICON_IMAGE_FORMAT =
328    COREWEBVIEW2_FAVICON_IMAGE_FORMAT(1i32);
329pub const COREWEBVIEW2_FAVICON_IMAGE_FORMAT_PNG: COREWEBVIEW2_FAVICON_IMAGE_FORMAT =
330    COREWEBVIEW2_FAVICON_IMAGE_FORMAT(0i32);
331#[repr(transparent)]
332#[derive(Clone, Copy, Debug, Default, Eq, PartialEq)]
333pub struct COREWEBVIEW2_FILE_SYSTEM_HANDLE_KIND(pub i32);
334pub const COREWEBVIEW2_FILE_SYSTEM_HANDLE_KIND_DIRECTORY: COREWEBVIEW2_FILE_SYSTEM_HANDLE_KIND =
335    COREWEBVIEW2_FILE_SYSTEM_HANDLE_KIND(1i32);
336pub const COREWEBVIEW2_FILE_SYSTEM_HANDLE_KIND_FILE: COREWEBVIEW2_FILE_SYSTEM_HANDLE_KIND =
337    COREWEBVIEW2_FILE_SYSTEM_HANDLE_KIND(0i32);
338#[repr(transparent)]
339#[derive(Clone, Copy, Debug, Default, Eq, PartialEq)]
340pub struct COREWEBVIEW2_FILE_SYSTEM_HANDLE_PERMISSION(pub i32);
341pub const COREWEBVIEW2_FILE_SYSTEM_HANDLE_PERMISSION_READ_ONLY:
342    COREWEBVIEW2_FILE_SYSTEM_HANDLE_PERMISSION = COREWEBVIEW2_FILE_SYSTEM_HANDLE_PERMISSION(0i32);
343pub const COREWEBVIEW2_FILE_SYSTEM_HANDLE_PERMISSION_READ_WRITE:
344    COREWEBVIEW2_FILE_SYSTEM_HANDLE_PERMISSION = COREWEBVIEW2_FILE_SYSTEM_HANDLE_PERMISSION(1i32);
345#[repr(transparent)]
346#[derive(Clone, Copy, Debug, Default, Eq, PartialEq)]
347pub struct COREWEBVIEW2_FRAME_KIND(pub i32);
348pub const COREWEBVIEW2_FRAME_KIND_EMBED: COREWEBVIEW2_FRAME_KIND = COREWEBVIEW2_FRAME_KIND(3i32);
349pub const COREWEBVIEW2_FRAME_KIND_IFRAME: COREWEBVIEW2_FRAME_KIND = COREWEBVIEW2_FRAME_KIND(2i32);
350pub const COREWEBVIEW2_FRAME_KIND_MAIN_FRAME: COREWEBVIEW2_FRAME_KIND =
351    COREWEBVIEW2_FRAME_KIND(1i32);
352pub const COREWEBVIEW2_FRAME_KIND_OBJECT: COREWEBVIEW2_FRAME_KIND = COREWEBVIEW2_FRAME_KIND(4i32);
353pub const COREWEBVIEW2_FRAME_KIND_UNKNOWN: COREWEBVIEW2_FRAME_KIND = COREWEBVIEW2_FRAME_KIND(0i32);
354#[repr(transparent)]
355#[derive(Clone, Copy, Debug, Default, Eq, PartialEq)]
356pub struct COREWEBVIEW2_HOST_RESOURCE_ACCESS_KIND(pub i32);
357pub const COREWEBVIEW2_HOST_RESOURCE_ACCESS_KIND_ALLOW: COREWEBVIEW2_HOST_RESOURCE_ACCESS_KIND =
358    COREWEBVIEW2_HOST_RESOURCE_ACCESS_KIND(1i32);
359pub const COREWEBVIEW2_HOST_RESOURCE_ACCESS_KIND_DENY: COREWEBVIEW2_HOST_RESOURCE_ACCESS_KIND =
360    COREWEBVIEW2_HOST_RESOURCE_ACCESS_KIND(0i32);
361pub const COREWEBVIEW2_HOST_RESOURCE_ACCESS_KIND_DENY_CORS: COREWEBVIEW2_HOST_RESOURCE_ACCESS_KIND =
362    COREWEBVIEW2_HOST_RESOURCE_ACCESS_KIND(2i32);
363#[repr(transparent)]
364#[derive(Clone, Copy, Debug, Default, Eq, PartialEq)]
365pub struct COREWEBVIEW2_KEY_EVENT_KIND(pub i32);
366pub const COREWEBVIEW2_KEY_EVENT_KIND_KEY_DOWN: COREWEBVIEW2_KEY_EVENT_KIND =
367    COREWEBVIEW2_KEY_EVENT_KIND(0i32);
368pub const COREWEBVIEW2_KEY_EVENT_KIND_KEY_UP: COREWEBVIEW2_KEY_EVENT_KIND =
369    COREWEBVIEW2_KEY_EVENT_KIND(1i32);
370pub const COREWEBVIEW2_KEY_EVENT_KIND_SYSTEM_KEY_DOWN: COREWEBVIEW2_KEY_EVENT_KIND =
371    COREWEBVIEW2_KEY_EVENT_KIND(2i32);
372pub const COREWEBVIEW2_KEY_EVENT_KIND_SYSTEM_KEY_UP: COREWEBVIEW2_KEY_EVENT_KIND =
373    COREWEBVIEW2_KEY_EVENT_KIND(3i32);
374#[repr(transparent)]
375#[derive(Clone, Copy, Debug, Default, Eq, PartialEq)]
376pub struct COREWEBVIEW2_MEMORY_USAGE_TARGET_LEVEL(pub i32);
377pub const COREWEBVIEW2_MEMORY_USAGE_TARGET_LEVEL_LOW: COREWEBVIEW2_MEMORY_USAGE_TARGET_LEVEL =
378    COREWEBVIEW2_MEMORY_USAGE_TARGET_LEVEL(1i32);
379pub const COREWEBVIEW2_MEMORY_USAGE_TARGET_LEVEL_NORMAL: COREWEBVIEW2_MEMORY_USAGE_TARGET_LEVEL =
380    COREWEBVIEW2_MEMORY_USAGE_TARGET_LEVEL(0i32);
381#[repr(transparent)]
382#[derive(Clone, Copy, Debug, Default, Eq, PartialEq)]
383pub struct COREWEBVIEW2_MOUSE_EVENT_KIND(pub i32);
384pub const COREWEBVIEW2_MOUSE_EVENT_KIND_HORIZONTAL_WHEEL: COREWEBVIEW2_MOUSE_EVENT_KIND =
385    COREWEBVIEW2_MOUSE_EVENT_KIND(526i32);
386pub const COREWEBVIEW2_MOUSE_EVENT_KIND_LEAVE: COREWEBVIEW2_MOUSE_EVENT_KIND =
387    COREWEBVIEW2_MOUSE_EVENT_KIND(675i32);
388pub const COREWEBVIEW2_MOUSE_EVENT_KIND_LEFT_BUTTON_DOUBLE_CLICK: COREWEBVIEW2_MOUSE_EVENT_KIND =
389    COREWEBVIEW2_MOUSE_EVENT_KIND(515i32);
390pub const COREWEBVIEW2_MOUSE_EVENT_KIND_LEFT_BUTTON_DOWN: COREWEBVIEW2_MOUSE_EVENT_KIND =
391    COREWEBVIEW2_MOUSE_EVENT_KIND(513i32);
392pub const COREWEBVIEW2_MOUSE_EVENT_KIND_LEFT_BUTTON_UP: COREWEBVIEW2_MOUSE_EVENT_KIND =
393    COREWEBVIEW2_MOUSE_EVENT_KIND(514i32);
394pub const COREWEBVIEW2_MOUSE_EVENT_KIND_MIDDLE_BUTTON_DOUBLE_CLICK: COREWEBVIEW2_MOUSE_EVENT_KIND =
395    COREWEBVIEW2_MOUSE_EVENT_KIND(521i32);
396pub const COREWEBVIEW2_MOUSE_EVENT_KIND_MIDDLE_BUTTON_DOWN: COREWEBVIEW2_MOUSE_EVENT_KIND =
397    COREWEBVIEW2_MOUSE_EVENT_KIND(519i32);
398pub const COREWEBVIEW2_MOUSE_EVENT_KIND_MIDDLE_BUTTON_UP: COREWEBVIEW2_MOUSE_EVENT_KIND =
399    COREWEBVIEW2_MOUSE_EVENT_KIND(520i32);
400pub const COREWEBVIEW2_MOUSE_EVENT_KIND_MOVE: COREWEBVIEW2_MOUSE_EVENT_KIND =
401    COREWEBVIEW2_MOUSE_EVENT_KIND(512i32);
402pub const COREWEBVIEW2_MOUSE_EVENT_KIND_NON_CLIENT_RIGHT_BUTTON_DOWN:
403    COREWEBVIEW2_MOUSE_EVENT_KIND = COREWEBVIEW2_MOUSE_EVENT_KIND(164i32);
404pub const COREWEBVIEW2_MOUSE_EVENT_KIND_NON_CLIENT_RIGHT_BUTTON_UP: COREWEBVIEW2_MOUSE_EVENT_KIND =
405    COREWEBVIEW2_MOUSE_EVENT_KIND(165i32);
406pub const COREWEBVIEW2_MOUSE_EVENT_KIND_RIGHT_BUTTON_DOUBLE_CLICK: COREWEBVIEW2_MOUSE_EVENT_KIND =
407    COREWEBVIEW2_MOUSE_EVENT_KIND(518i32);
408pub const COREWEBVIEW2_MOUSE_EVENT_KIND_RIGHT_BUTTON_DOWN: COREWEBVIEW2_MOUSE_EVENT_KIND =
409    COREWEBVIEW2_MOUSE_EVENT_KIND(516i32);
410pub const COREWEBVIEW2_MOUSE_EVENT_KIND_RIGHT_BUTTON_UP: COREWEBVIEW2_MOUSE_EVENT_KIND =
411    COREWEBVIEW2_MOUSE_EVENT_KIND(517i32);
412pub const COREWEBVIEW2_MOUSE_EVENT_KIND_WHEEL: COREWEBVIEW2_MOUSE_EVENT_KIND =
413    COREWEBVIEW2_MOUSE_EVENT_KIND(522i32);
414pub const COREWEBVIEW2_MOUSE_EVENT_KIND_X_BUTTON_DOUBLE_CLICK: COREWEBVIEW2_MOUSE_EVENT_KIND =
415    COREWEBVIEW2_MOUSE_EVENT_KIND(525i32);
416pub const COREWEBVIEW2_MOUSE_EVENT_KIND_X_BUTTON_DOWN: COREWEBVIEW2_MOUSE_EVENT_KIND =
417    COREWEBVIEW2_MOUSE_EVENT_KIND(523i32);
418pub const COREWEBVIEW2_MOUSE_EVENT_KIND_X_BUTTON_UP: COREWEBVIEW2_MOUSE_EVENT_KIND =
419    COREWEBVIEW2_MOUSE_EVENT_KIND(524i32);
420#[repr(transparent)]
421#[derive(Clone, Copy, Debug, Default, Eq, PartialEq)]
422pub struct COREWEBVIEW2_MOUSE_EVENT_VIRTUAL_KEYS(pub i32);
423impl COREWEBVIEW2_MOUSE_EVENT_VIRTUAL_KEYS {
424    pub const fn contains(&self, other: Self) -> bool {
425        self.0 & other.0 == other.0
426    }
427}
428impl core::ops::BitOr for COREWEBVIEW2_MOUSE_EVENT_VIRTUAL_KEYS {
429    type Output = Self;
430    fn bitor(self, other: Self) -> Self {
431        Self(self.0 | other.0)
432    }
433}
434impl core::ops::BitAnd for COREWEBVIEW2_MOUSE_EVENT_VIRTUAL_KEYS {
435    type Output = Self;
436    fn bitand(self, other: Self) -> Self {
437        Self(self.0 & other.0)
438    }
439}
440impl core::ops::BitOrAssign for COREWEBVIEW2_MOUSE_EVENT_VIRTUAL_KEYS {
441    fn bitor_assign(&mut self, other: Self) {
442        self.0.bitor_assign(other.0)
443    }
444}
445impl core::ops::BitAndAssign for COREWEBVIEW2_MOUSE_EVENT_VIRTUAL_KEYS {
446    fn bitand_assign(&mut self, other: Self) {
447        self.0.bitand_assign(other.0)
448    }
449}
450impl core::ops::Not for COREWEBVIEW2_MOUSE_EVENT_VIRTUAL_KEYS {
451    type Output = Self;
452    fn not(self) -> Self {
453        Self(self.0.not())
454    }
455}
456pub const COREWEBVIEW2_MOUSE_EVENT_VIRTUAL_KEYS_CONTROL: COREWEBVIEW2_MOUSE_EVENT_VIRTUAL_KEYS =
457    COREWEBVIEW2_MOUSE_EVENT_VIRTUAL_KEYS(8i32);
458pub const COREWEBVIEW2_MOUSE_EVENT_VIRTUAL_KEYS_LEFT_BUTTON: COREWEBVIEW2_MOUSE_EVENT_VIRTUAL_KEYS =
459    COREWEBVIEW2_MOUSE_EVENT_VIRTUAL_KEYS(1i32);
460pub const COREWEBVIEW2_MOUSE_EVENT_VIRTUAL_KEYS_MIDDLE_BUTTON:
461    COREWEBVIEW2_MOUSE_EVENT_VIRTUAL_KEYS = COREWEBVIEW2_MOUSE_EVENT_VIRTUAL_KEYS(16i32);
462pub const COREWEBVIEW2_MOUSE_EVENT_VIRTUAL_KEYS_NONE: COREWEBVIEW2_MOUSE_EVENT_VIRTUAL_KEYS =
463    COREWEBVIEW2_MOUSE_EVENT_VIRTUAL_KEYS(0i32);
464pub const COREWEBVIEW2_MOUSE_EVENT_VIRTUAL_KEYS_RIGHT_BUTTON:
465    COREWEBVIEW2_MOUSE_EVENT_VIRTUAL_KEYS = COREWEBVIEW2_MOUSE_EVENT_VIRTUAL_KEYS(2i32);
466pub const COREWEBVIEW2_MOUSE_EVENT_VIRTUAL_KEYS_SHIFT: COREWEBVIEW2_MOUSE_EVENT_VIRTUAL_KEYS =
467    COREWEBVIEW2_MOUSE_EVENT_VIRTUAL_KEYS(4i32);
468pub const COREWEBVIEW2_MOUSE_EVENT_VIRTUAL_KEYS_X_BUTTON1: COREWEBVIEW2_MOUSE_EVENT_VIRTUAL_KEYS =
469    COREWEBVIEW2_MOUSE_EVENT_VIRTUAL_KEYS(32i32);
470pub const COREWEBVIEW2_MOUSE_EVENT_VIRTUAL_KEYS_X_BUTTON2: COREWEBVIEW2_MOUSE_EVENT_VIRTUAL_KEYS =
471    COREWEBVIEW2_MOUSE_EVENT_VIRTUAL_KEYS(64i32);
472#[repr(transparent)]
473#[derive(Clone, Copy, Debug, Default, Eq, PartialEq)]
474pub struct COREWEBVIEW2_MOVE_FOCUS_REASON(pub i32);
475pub const COREWEBVIEW2_MOVE_FOCUS_REASON_NEXT: COREWEBVIEW2_MOVE_FOCUS_REASON =
476    COREWEBVIEW2_MOVE_FOCUS_REASON(1i32);
477pub const COREWEBVIEW2_MOVE_FOCUS_REASON_PREVIOUS: COREWEBVIEW2_MOVE_FOCUS_REASON =
478    COREWEBVIEW2_MOVE_FOCUS_REASON(2i32);
479pub const COREWEBVIEW2_MOVE_FOCUS_REASON_PROGRAMMATIC: COREWEBVIEW2_MOVE_FOCUS_REASON =
480    COREWEBVIEW2_MOVE_FOCUS_REASON(0i32);
481#[repr(transparent)]
482#[derive(Clone, Copy, Debug, Default, Eq, PartialEq)]
483pub struct COREWEBVIEW2_NAVIGATION_KIND(pub i32);
484pub const COREWEBVIEW2_NAVIGATION_KIND_BACK_OR_FORWARD: COREWEBVIEW2_NAVIGATION_KIND =
485    COREWEBVIEW2_NAVIGATION_KIND(1i32);
486pub const COREWEBVIEW2_NAVIGATION_KIND_NEW_DOCUMENT: COREWEBVIEW2_NAVIGATION_KIND =
487    COREWEBVIEW2_NAVIGATION_KIND(2i32);
488pub const COREWEBVIEW2_NAVIGATION_KIND_RELOAD: COREWEBVIEW2_NAVIGATION_KIND =
489    COREWEBVIEW2_NAVIGATION_KIND(0i32);
490#[repr(transparent)]
491#[derive(Clone, Copy, Debug, Default, Eq, PartialEq)]
492pub struct COREWEBVIEW2_NON_CLIENT_REGION_KIND(pub i32);
493pub const COREWEBVIEW2_NON_CLIENT_REGION_KIND_CAPTION: COREWEBVIEW2_NON_CLIENT_REGION_KIND =
494    COREWEBVIEW2_NON_CLIENT_REGION_KIND(2i32);
495pub const COREWEBVIEW2_NON_CLIENT_REGION_KIND_CLIENT: COREWEBVIEW2_NON_CLIENT_REGION_KIND =
496    COREWEBVIEW2_NON_CLIENT_REGION_KIND(1i32);
497pub const COREWEBVIEW2_NON_CLIENT_REGION_KIND_CLOSE: COREWEBVIEW2_NON_CLIENT_REGION_KIND =
498    COREWEBVIEW2_NON_CLIENT_REGION_KIND(20i32);
499pub const COREWEBVIEW2_NON_CLIENT_REGION_KIND_MAXIMIZE: COREWEBVIEW2_NON_CLIENT_REGION_KIND =
500    COREWEBVIEW2_NON_CLIENT_REGION_KIND(9i32);
501pub const COREWEBVIEW2_NON_CLIENT_REGION_KIND_MINIMIZE: COREWEBVIEW2_NON_CLIENT_REGION_KIND =
502    COREWEBVIEW2_NON_CLIENT_REGION_KIND(8i32);
503pub const COREWEBVIEW2_NON_CLIENT_REGION_KIND_NOWHERE: COREWEBVIEW2_NON_CLIENT_REGION_KIND =
504    COREWEBVIEW2_NON_CLIENT_REGION_KIND(0i32);
505#[repr(transparent)]
506#[derive(Clone, Copy, Debug, Default, Eq, PartialEq)]
507pub struct COREWEBVIEW2_PDF_TOOLBAR_ITEMS(pub i32);
508impl COREWEBVIEW2_PDF_TOOLBAR_ITEMS {
509    pub const fn contains(&self, other: Self) -> bool {
510        self.0 & other.0 == other.0
511    }
512}
513impl core::ops::BitOr for COREWEBVIEW2_PDF_TOOLBAR_ITEMS {
514    type Output = Self;
515    fn bitor(self, other: Self) -> Self {
516        Self(self.0 | other.0)
517    }
518}
519impl core::ops::BitAnd for COREWEBVIEW2_PDF_TOOLBAR_ITEMS {
520    type Output = Self;
521    fn bitand(self, other: Self) -> Self {
522        Self(self.0 & other.0)
523    }
524}
525impl core::ops::BitOrAssign for COREWEBVIEW2_PDF_TOOLBAR_ITEMS {
526    fn bitor_assign(&mut self, other: Self) {
527        self.0.bitor_assign(other.0)
528    }
529}
530impl core::ops::BitAndAssign for COREWEBVIEW2_PDF_TOOLBAR_ITEMS {
531    fn bitand_assign(&mut self, other: Self) {
532        self.0.bitand_assign(other.0)
533    }
534}
535impl core::ops::Not for COREWEBVIEW2_PDF_TOOLBAR_ITEMS {
536    type Output = Self;
537    fn not(self) -> Self {
538        Self(self.0.not())
539    }
540}
541pub const COREWEBVIEW2_PDF_TOOLBAR_ITEMS_BOOKMARKS: COREWEBVIEW2_PDF_TOOLBAR_ITEMS =
542    COREWEBVIEW2_PDF_TOOLBAR_ITEMS(256i32);
543pub const COREWEBVIEW2_PDF_TOOLBAR_ITEMS_FIT_PAGE: COREWEBVIEW2_PDF_TOOLBAR_ITEMS =
544    COREWEBVIEW2_PDF_TOOLBAR_ITEMS(64i32);
545pub const COREWEBVIEW2_PDF_TOOLBAR_ITEMS_FULL_SCREEN: COREWEBVIEW2_PDF_TOOLBAR_ITEMS =
546    COREWEBVIEW2_PDF_TOOLBAR_ITEMS(2048i32);
547pub const COREWEBVIEW2_PDF_TOOLBAR_ITEMS_MORE_SETTINGS: COREWEBVIEW2_PDF_TOOLBAR_ITEMS =
548    COREWEBVIEW2_PDF_TOOLBAR_ITEMS(4096i32);
549pub const COREWEBVIEW2_PDF_TOOLBAR_ITEMS_NONE: COREWEBVIEW2_PDF_TOOLBAR_ITEMS =
550    COREWEBVIEW2_PDF_TOOLBAR_ITEMS(0i32);
551pub const COREWEBVIEW2_PDF_TOOLBAR_ITEMS_PAGE_LAYOUT: COREWEBVIEW2_PDF_TOOLBAR_ITEMS =
552    COREWEBVIEW2_PDF_TOOLBAR_ITEMS(128i32);
553pub const COREWEBVIEW2_PDF_TOOLBAR_ITEMS_PAGE_SELECTOR: COREWEBVIEW2_PDF_TOOLBAR_ITEMS =
554    COREWEBVIEW2_PDF_TOOLBAR_ITEMS(512i32);
555pub const COREWEBVIEW2_PDF_TOOLBAR_ITEMS_PRINT: COREWEBVIEW2_PDF_TOOLBAR_ITEMS =
556    COREWEBVIEW2_PDF_TOOLBAR_ITEMS(2i32);
557pub const COREWEBVIEW2_PDF_TOOLBAR_ITEMS_ROTATE: COREWEBVIEW2_PDF_TOOLBAR_ITEMS =
558    COREWEBVIEW2_PDF_TOOLBAR_ITEMS(32i32);
559pub const COREWEBVIEW2_PDF_TOOLBAR_ITEMS_SAVE: COREWEBVIEW2_PDF_TOOLBAR_ITEMS =
560    COREWEBVIEW2_PDF_TOOLBAR_ITEMS(1i32);
561pub const COREWEBVIEW2_PDF_TOOLBAR_ITEMS_SAVE_AS: COREWEBVIEW2_PDF_TOOLBAR_ITEMS =
562    COREWEBVIEW2_PDF_TOOLBAR_ITEMS(4i32);
563pub const COREWEBVIEW2_PDF_TOOLBAR_ITEMS_SEARCH: COREWEBVIEW2_PDF_TOOLBAR_ITEMS =
564    COREWEBVIEW2_PDF_TOOLBAR_ITEMS(1024i32);
565pub const COREWEBVIEW2_PDF_TOOLBAR_ITEMS_ZOOM_IN: COREWEBVIEW2_PDF_TOOLBAR_ITEMS =
566    COREWEBVIEW2_PDF_TOOLBAR_ITEMS(8i32);
567pub const COREWEBVIEW2_PDF_TOOLBAR_ITEMS_ZOOM_OUT: COREWEBVIEW2_PDF_TOOLBAR_ITEMS =
568    COREWEBVIEW2_PDF_TOOLBAR_ITEMS(16i32);
569#[repr(transparent)]
570#[derive(Clone, Copy, Debug, Default, Eq, PartialEq)]
571pub struct COREWEBVIEW2_PERMISSION_KIND(pub i32);
572pub const COREWEBVIEW2_PERMISSION_KIND_AUTOPLAY: COREWEBVIEW2_PERMISSION_KIND =
573    COREWEBVIEW2_PERMISSION_KIND(9i32);
574pub const COREWEBVIEW2_PERMISSION_KIND_CAMERA: COREWEBVIEW2_PERMISSION_KIND =
575    COREWEBVIEW2_PERMISSION_KIND(2i32);
576pub const COREWEBVIEW2_PERMISSION_KIND_CLIPBOARD_READ: COREWEBVIEW2_PERMISSION_KIND =
577    COREWEBVIEW2_PERMISSION_KIND(6i32);
578pub const COREWEBVIEW2_PERMISSION_KIND_FILE_READ_WRITE: COREWEBVIEW2_PERMISSION_KIND =
579    COREWEBVIEW2_PERMISSION_KIND(8i32);
580pub const COREWEBVIEW2_PERMISSION_KIND_GEOLOCATION: COREWEBVIEW2_PERMISSION_KIND =
581    COREWEBVIEW2_PERMISSION_KIND(3i32);
582pub const COREWEBVIEW2_PERMISSION_KIND_LOCAL_FONTS: COREWEBVIEW2_PERMISSION_KIND =
583    COREWEBVIEW2_PERMISSION_KIND(10i32);
584pub const COREWEBVIEW2_PERMISSION_KIND_MICROPHONE: COREWEBVIEW2_PERMISSION_KIND =
585    COREWEBVIEW2_PERMISSION_KIND(1i32);
586pub const COREWEBVIEW2_PERMISSION_KIND_MIDI_SYSTEM_EXCLUSIVE_MESSAGES:
587    COREWEBVIEW2_PERMISSION_KIND = COREWEBVIEW2_PERMISSION_KIND(11i32);
588pub const COREWEBVIEW2_PERMISSION_KIND_MULTIPLE_AUTOMATIC_DOWNLOADS: COREWEBVIEW2_PERMISSION_KIND =
589    COREWEBVIEW2_PERMISSION_KIND(7i32);
590pub const COREWEBVIEW2_PERMISSION_KIND_NOTIFICATIONS: COREWEBVIEW2_PERMISSION_KIND =
591    COREWEBVIEW2_PERMISSION_KIND(4i32);
592pub const COREWEBVIEW2_PERMISSION_KIND_OTHER_SENSORS: COREWEBVIEW2_PERMISSION_KIND =
593    COREWEBVIEW2_PERMISSION_KIND(5i32);
594pub const COREWEBVIEW2_PERMISSION_KIND_UNKNOWN_PERMISSION: COREWEBVIEW2_PERMISSION_KIND =
595    COREWEBVIEW2_PERMISSION_KIND(0i32);
596pub const COREWEBVIEW2_PERMISSION_KIND_WINDOW_MANAGEMENT: COREWEBVIEW2_PERMISSION_KIND =
597    COREWEBVIEW2_PERMISSION_KIND(12i32);
598#[repr(transparent)]
599#[derive(Clone, Copy, Debug, Default, Eq, PartialEq)]
600pub struct COREWEBVIEW2_PERMISSION_STATE(pub i32);
601pub const COREWEBVIEW2_PERMISSION_STATE_ALLOW: COREWEBVIEW2_PERMISSION_STATE =
602    COREWEBVIEW2_PERMISSION_STATE(1i32);
603pub const COREWEBVIEW2_PERMISSION_STATE_DEFAULT: COREWEBVIEW2_PERMISSION_STATE =
604    COREWEBVIEW2_PERMISSION_STATE(0i32);
605pub const COREWEBVIEW2_PERMISSION_STATE_DENY: COREWEBVIEW2_PERMISSION_STATE =
606    COREWEBVIEW2_PERMISSION_STATE(2i32);
607#[repr(C)]
608#[derive(Clone, Copy, Debug, Default, PartialEq)]
609pub struct COREWEBVIEW2_PHYSICAL_KEY_STATUS {
610    pub RepeatCount: u32,
611    pub ScanCode: u32,
612    pub IsExtendedKey: windows_core::BOOL,
613    pub IsMenuKeyDown: windows_core::BOOL,
614    pub WasKeyDown: windows_core::BOOL,
615    pub IsKeyReleased: windows_core::BOOL,
616}
617#[repr(transparent)]
618#[derive(Clone, Copy, Debug, Default, Eq, PartialEq)]
619pub struct COREWEBVIEW2_POINTER_EVENT_KIND(pub i32);
620pub const COREWEBVIEW2_POINTER_EVENT_KIND_ACTIVATE: COREWEBVIEW2_POINTER_EVENT_KIND =
621    COREWEBVIEW2_POINTER_EVENT_KIND(587i32);
622pub const COREWEBVIEW2_POINTER_EVENT_KIND_DOWN: COREWEBVIEW2_POINTER_EVENT_KIND =
623    COREWEBVIEW2_POINTER_EVENT_KIND(582i32);
624pub const COREWEBVIEW2_POINTER_EVENT_KIND_ENTER: COREWEBVIEW2_POINTER_EVENT_KIND =
625    COREWEBVIEW2_POINTER_EVENT_KIND(585i32);
626pub const COREWEBVIEW2_POINTER_EVENT_KIND_LEAVE: COREWEBVIEW2_POINTER_EVENT_KIND =
627    COREWEBVIEW2_POINTER_EVENT_KIND(586i32);
628pub const COREWEBVIEW2_POINTER_EVENT_KIND_UP: COREWEBVIEW2_POINTER_EVENT_KIND =
629    COREWEBVIEW2_POINTER_EVENT_KIND(583i32);
630pub const COREWEBVIEW2_POINTER_EVENT_KIND_UPDATE: COREWEBVIEW2_POINTER_EVENT_KIND =
631    COREWEBVIEW2_POINTER_EVENT_KIND(581i32);
632#[repr(transparent)]
633#[derive(Clone, Copy, Debug, Default, Eq, PartialEq)]
634pub struct COREWEBVIEW2_PREFERRED_COLOR_SCHEME(pub i32);
635pub const COREWEBVIEW2_PREFERRED_COLOR_SCHEME_AUTO: COREWEBVIEW2_PREFERRED_COLOR_SCHEME =
636    COREWEBVIEW2_PREFERRED_COLOR_SCHEME(0i32);
637pub const COREWEBVIEW2_PREFERRED_COLOR_SCHEME_DARK: COREWEBVIEW2_PREFERRED_COLOR_SCHEME =
638    COREWEBVIEW2_PREFERRED_COLOR_SCHEME(2i32);
639pub const COREWEBVIEW2_PREFERRED_COLOR_SCHEME_LIGHT: COREWEBVIEW2_PREFERRED_COLOR_SCHEME =
640    COREWEBVIEW2_PREFERRED_COLOR_SCHEME(1i32);
641#[repr(transparent)]
642#[derive(Clone, Copy, Debug, Default, Eq, PartialEq)]
643pub struct COREWEBVIEW2_PRINT_COLLATION(pub i32);
644pub const COREWEBVIEW2_PRINT_COLLATION_COLLATED: COREWEBVIEW2_PRINT_COLLATION =
645    COREWEBVIEW2_PRINT_COLLATION(1i32);
646pub const COREWEBVIEW2_PRINT_COLLATION_DEFAULT: COREWEBVIEW2_PRINT_COLLATION =
647    COREWEBVIEW2_PRINT_COLLATION(0i32);
648pub const COREWEBVIEW2_PRINT_COLLATION_UNCOLLATED: COREWEBVIEW2_PRINT_COLLATION =
649    COREWEBVIEW2_PRINT_COLLATION(2i32);
650#[repr(transparent)]
651#[derive(Clone, Copy, Debug, Default, Eq, PartialEq)]
652pub struct COREWEBVIEW2_PRINT_COLOR_MODE(pub i32);
653pub const COREWEBVIEW2_PRINT_COLOR_MODE_COLOR: COREWEBVIEW2_PRINT_COLOR_MODE =
654    COREWEBVIEW2_PRINT_COLOR_MODE(1i32);
655pub const COREWEBVIEW2_PRINT_COLOR_MODE_DEFAULT: COREWEBVIEW2_PRINT_COLOR_MODE =
656    COREWEBVIEW2_PRINT_COLOR_MODE(0i32);
657pub const COREWEBVIEW2_PRINT_COLOR_MODE_GRAYSCALE: COREWEBVIEW2_PRINT_COLOR_MODE =
658    COREWEBVIEW2_PRINT_COLOR_MODE(2i32);
659#[repr(transparent)]
660#[derive(Clone, Copy, Debug, Default, Eq, PartialEq)]
661pub struct COREWEBVIEW2_PRINT_DIALOG_KIND(pub i32);
662pub const COREWEBVIEW2_PRINT_DIALOG_KIND_BROWSER: COREWEBVIEW2_PRINT_DIALOG_KIND =
663    COREWEBVIEW2_PRINT_DIALOG_KIND(0i32);
664pub const COREWEBVIEW2_PRINT_DIALOG_KIND_SYSTEM: COREWEBVIEW2_PRINT_DIALOG_KIND =
665    COREWEBVIEW2_PRINT_DIALOG_KIND(1i32);
666#[repr(transparent)]
667#[derive(Clone, Copy, Debug, Default, Eq, PartialEq)]
668pub struct COREWEBVIEW2_PRINT_DUPLEX(pub i32);
669pub const COREWEBVIEW2_PRINT_DUPLEX_DEFAULT: COREWEBVIEW2_PRINT_DUPLEX =
670    COREWEBVIEW2_PRINT_DUPLEX(0i32);
671pub const COREWEBVIEW2_PRINT_DUPLEX_ONE_SIDED: COREWEBVIEW2_PRINT_DUPLEX =
672    COREWEBVIEW2_PRINT_DUPLEX(1i32);
673pub const COREWEBVIEW2_PRINT_DUPLEX_TWO_SIDED_LONG_EDGE: COREWEBVIEW2_PRINT_DUPLEX =
674    COREWEBVIEW2_PRINT_DUPLEX(2i32);
675pub const COREWEBVIEW2_PRINT_DUPLEX_TWO_SIDED_SHORT_EDGE: COREWEBVIEW2_PRINT_DUPLEX =
676    COREWEBVIEW2_PRINT_DUPLEX(3i32);
677#[repr(transparent)]
678#[derive(Clone, Copy, Debug, Default, Eq, PartialEq)]
679pub struct COREWEBVIEW2_PRINT_MEDIA_SIZE(pub i32);
680pub const COREWEBVIEW2_PRINT_MEDIA_SIZE_CUSTOM: COREWEBVIEW2_PRINT_MEDIA_SIZE =
681    COREWEBVIEW2_PRINT_MEDIA_SIZE(1i32);
682pub const COREWEBVIEW2_PRINT_MEDIA_SIZE_DEFAULT: COREWEBVIEW2_PRINT_MEDIA_SIZE =
683    COREWEBVIEW2_PRINT_MEDIA_SIZE(0i32);
684#[repr(transparent)]
685#[derive(Clone, Copy, Debug, Default, Eq, PartialEq)]
686pub struct COREWEBVIEW2_PRINT_ORIENTATION(pub i32);
687pub const COREWEBVIEW2_PRINT_ORIENTATION_LANDSCAPE: COREWEBVIEW2_PRINT_ORIENTATION =
688    COREWEBVIEW2_PRINT_ORIENTATION(1i32);
689pub const COREWEBVIEW2_PRINT_ORIENTATION_PORTRAIT: COREWEBVIEW2_PRINT_ORIENTATION =
690    COREWEBVIEW2_PRINT_ORIENTATION(0i32);
691#[repr(transparent)]
692#[derive(Clone, Copy, Debug, Default, Eq, PartialEq)]
693pub struct COREWEBVIEW2_PRINT_STATUS(pub i32);
694pub const COREWEBVIEW2_PRINT_STATUS_OTHER_ERROR: COREWEBVIEW2_PRINT_STATUS =
695    COREWEBVIEW2_PRINT_STATUS(2i32);
696pub const COREWEBVIEW2_PRINT_STATUS_PRINTER_UNAVAILABLE: COREWEBVIEW2_PRINT_STATUS =
697    COREWEBVIEW2_PRINT_STATUS(1i32);
698pub const COREWEBVIEW2_PRINT_STATUS_SUCCEEDED: COREWEBVIEW2_PRINT_STATUS =
699    COREWEBVIEW2_PRINT_STATUS(0i32);
700#[repr(transparent)]
701#[derive(Clone, Copy, Debug, Default, Eq, PartialEq)]
702pub struct COREWEBVIEW2_PROCESS_FAILED_KIND(pub i32);
703pub const COREWEBVIEW2_PROCESS_FAILED_KIND_BROWSER_PROCESS_EXITED:
704    COREWEBVIEW2_PROCESS_FAILED_KIND = COREWEBVIEW2_PROCESS_FAILED_KIND(0i32);
705pub const COREWEBVIEW2_PROCESS_FAILED_KIND_FRAME_RENDER_PROCESS_EXITED:
706    COREWEBVIEW2_PROCESS_FAILED_KIND = COREWEBVIEW2_PROCESS_FAILED_KIND(3i32);
707pub const COREWEBVIEW2_PROCESS_FAILED_KIND_GPU_PROCESS_EXITED: COREWEBVIEW2_PROCESS_FAILED_KIND =
708    COREWEBVIEW2_PROCESS_FAILED_KIND(6i32);
709pub const COREWEBVIEW2_PROCESS_FAILED_KIND_PPAPI_BROKER_PROCESS_EXITED:
710    COREWEBVIEW2_PROCESS_FAILED_KIND = COREWEBVIEW2_PROCESS_FAILED_KIND(8i32);
711pub const COREWEBVIEW2_PROCESS_FAILED_KIND_PPAPI_PLUGIN_PROCESS_EXITED:
712    COREWEBVIEW2_PROCESS_FAILED_KIND = COREWEBVIEW2_PROCESS_FAILED_KIND(7i32);
713pub const COREWEBVIEW2_PROCESS_FAILED_KIND_RENDER_PROCESS_EXITED: COREWEBVIEW2_PROCESS_FAILED_KIND =
714    COREWEBVIEW2_PROCESS_FAILED_KIND(1i32);
715pub const COREWEBVIEW2_PROCESS_FAILED_KIND_RENDER_PROCESS_UNRESPONSIVE:
716    COREWEBVIEW2_PROCESS_FAILED_KIND = COREWEBVIEW2_PROCESS_FAILED_KIND(2i32);
717pub const COREWEBVIEW2_PROCESS_FAILED_KIND_SANDBOX_HELPER_PROCESS_EXITED:
718    COREWEBVIEW2_PROCESS_FAILED_KIND = COREWEBVIEW2_PROCESS_FAILED_KIND(5i32);
719pub const COREWEBVIEW2_PROCESS_FAILED_KIND_UNKNOWN_PROCESS_EXITED:
720    COREWEBVIEW2_PROCESS_FAILED_KIND = COREWEBVIEW2_PROCESS_FAILED_KIND(9i32);
721pub const COREWEBVIEW2_PROCESS_FAILED_KIND_UTILITY_PROCESS_EXITED:
722    COREWEBVIEW2_PROCESS_FAILED_KIND = COREWEBVIEW2_PROCESS_FAILED_KIND(4i32);
723#[repr(transparent)]
724#[derive(Clone, Copy, Debug, Default, Eq, PartialEq)]
725pub struct COREWEBVIEW2_PROCESS_FAILED_REASON(pub i32);
726pub const COREWEBVIEW2_PROCESS_FAILED_REASON_CRASHED: COREWEBVIEW2_PROCESS_FAILED_REASON =
727    COREWEBVIEW2_PROCESS_FAILED_REASON(3i32);
728pub const COREWEBVIEW2_PROCESS_FAILED_REASON_LAUNCH_FAILED: COREWEBVIEW2_PROCESS_FAILED_REASON =
729    COREWEBVIEW2_PROCESS_FAILED_REASON(4i32);
730pub const COREWEBVIEW2_PROCESS_FAILED_REASON_OUT_OF_MEMORY: COREWEBVIEW2_PROCESS_FAILED_REASON =
731    COREWEBVIEW2_PROCESS_FAILED_REASON(5i32);
732pub const COREWEBVIEW2_PROCESS_FAILED_REASON_PROFILE_DELETED: COREWEBVIEW2_PROCESS_FAILED_REASON =
733    COREWEBVIEW2_PROCESS_FAILED_REASON(6i32);
734pub const COREWEBVIEW2_PROCESS_FAILED_REASON_TERMINATED: COREWEBVIEW2_PROCESS_FAILED_REASON =
735    COREWEBVIEW2_PROCESS_FAILED_REASON(2i32);
736pub const COREWEBVIEW2_PROCESS_FAILED_REASON_UNEXPECTED: COREWEBVIEW2_PROCESS_FAILED_REASON =
737    COREWEBVIEW2_PROCESS_FAILED_REASON(0i32);
738pub const COREWEBVIEW2_PROCESS_FAILED_REASON_UNRESPONSIVE: COREWEBVIEW2_PROCESS_FAILED_REASON =
739    COREWEBVIEW2_PROCESS_FAILED_REASON(1i32);
740#[repr(transparent)]
741#[derive(Clone, Copy, Debug, Default, Eq, PartialEq)]
742pub struct COREWEBVIEW2_PROCESS_KIND(pub i32);
743pub const COREWEBVIEW2_PROCESS_KIND_BROWSER: COREWEBVIEW2_PROCESS_KIND =
744    COREWEBVIEW2_PROCESS_KIND(0i32);
745pub const COREWEBVIEW2_PROCESS_KIND_GPU: COREWEBVIEW2_PROCESS_KIND =
746    COREWEBVIEW2_PROCESS_KIND(4i32);
747pub const COREWEBVIEW2_PROCESS_KIND_PPAPI_BROKER: COREWEBVIEW2_PROCESS_KIND =
748    COREWEBVIEW2_PROCESS_KIND(6i32);
749pub const COREWEBVIEW2_PROCESS_KIND_PPAPI_PLUGIN: COREWEBVIEW2_PROCESS_KIND =
750    COREWEBVIEW2_PROCESS_KIND(5i32);
751pub const COREWEBVIEW2_PROCESS_KIND_RENDERER: COREWEBVIEW2_PROCESS_KIND =
752    COREWEBVIEW2_PROCESS_KIND(1i32);
753pub const COREWEBVIEW2_PROCESS_KIND_SANDBOX_HELPER: COREWEBVIEW2_PROCESS_KIND =
754    COREWEBVIEW2_PROCESS_KIND(3i32);
755pub const COREWEBVIEW2_PROCESS_KIND_UTILITY: COREWEBVIEW2_PROCESS_KIND =
756    COREWEBVIEW2_PROCESS_KIND(2i32);
757#[repr(transparent)]
758#[derive(Clone, Copy, Debug, Default, Eq, PartialEq)]
759pub struct COREWEBVIEW2_RELEASE_CHANNELS(pub i32);
760impl COREWEBVIEW2_RELEASE_CHANNELS {
761    pub const fn contains(&self, other: Self) -> bool {
762        self.0 & other.0 == other.0
763    }
764}
765impl core::ops::BitOr for COREWEBVIEW2_RELEASE_CHANNELS {
766    type Output = Self;
767    fn bitor(self, other: Self) -> Self {
768        Self(self.0 | other.0)
769    }
770}
771impl core::ops::BitAnd for COREWEBVIEW2_RELEASE_CHANNELS {
772    type Output = Self;
773    fn bitand(self, other: Self) -> Self {
774        Self(self.0 & other.0)
775    }
776}
777impl core::ops::BitOrAssign for COREWEBVIEW2_RELEASE_CHANNELS {
778    fn bitor_assign(&mut self, other: Self) {
779        self.0.bitor_assign(other.0)
780    }
781}
782impl core::ops::BitAndAssign for COREWEBVIEW2_RELEASE_CHANNELS {
783    fn bitand_assign(&mut self, other: Self) {
784        self.0.bitand_assign(other.0)
785    }
786}
787impl core::ops::Not for COREWEBVIEW2_RELEASE_CHANNELS {
788    type Output = Self;
789    fn not(self) -> Self {
790        Self(self.0.not())
791    }
792}
793pub const COREWEBVIEW2_RELEASE_CHANNELS_BETA: COREWEBVIEW2_RELEASE_CHANNELS =
794    COREWEBVIEW2_RELEASE_CHANNELS(2i32);
795pub const COREWEBVIEW2_RELEASE_CHANNELS_CANARY: COREWEBVIEW2_RELEASE_CHANNELS =
796    COREWEBVIEW2_RELEASE_CHANNELS(8i32);
797pub const COREWEBVIEW2_RELEASE_CHANNELS_DEV: COREWEBVIEW2_RELEASE_CHANNELS =
798    COREWEBVIEW2_RELEASE_CHANNELS(4i32);
799pub const COREWEBVIEW2_RELEASE_CHANNELS_NONE: COREWEBVIEW2_RELEASE_CHANNELS =
800    COREWEBVIEW2_RELEASE_CHANNELS(0i32);
801pub const COREWEBVIEW2_RELEASE_CHANNELS_STABLE: COREWEBVIEW2_RELEASE_CHANNELS =
802    COREWEBVIEW2_RELEASE_CHANNELS(1i32);
803#[repr(transparent)]
804#[derive(Clone, Copy, Debug, Default, Eq, PartialEq)]
805pub struct COREWEBVIEW2_SAVE_AS_KIND(pub i32);
806pub const COREWEBVIEW2_SAVE_AS_KIND_COMPLETE: COREWEBVIEW2_SAVE_AS_KIND =
807    COREWEBVIEW2_SAVE_AS_KIND(3i32);
808pub const COREWEBVIEW2_SAVE_AS_KIND_DEFAULT: COREWEBVIEW2_SAVE_AS_KIND =
809    COREWEBVIEW2_SAVE_AS_KIND(0i32);
810pub const COREWEBVIEW2_SAVE_AS_KIND_HTML_ONLY: COREWEBVIEW2_SAVE_AS_KIND =
811    COREWEBVIEW2_SAVE_AS_KIND(1i32);
812pub const COREWEBVIEW2_SAVE_AS_KIND_SINGLE_FILE: COREWEBVIEW2_SAVE_AS_KIND =
813    COREWEBVIEW2_SAVE_AS_KIND(2i32);
814#[repr(transparent)]
815#[derive(Clone, Copy, Debug, Default, Eq, PartialEq)]
816pub struct COREWEBVIEW2_SAVE_AS_UI_RESULT(pub i32);
817pub const COREWEBVIEW2_SAVE_AS_UI_RESULT_CANCELLED: COREWEBVIEW2_SAVE_AS_UI_RESULT =
818    COREWEBVIEW2_SAVE_AS_UI_RESULT(4i32);
819pub const COREWEBVIEW2_SAVE_AS_UI_RESULT_FILE_ALREADY_EXISTS: COREWEBVIEW2_SAVE_AS_UI_RESULT =
820    COREWEBVIEW2_SAVE_AS_UI_RESULT(2i32);
821pub const COREWEBVIEW2_SAVE_AS_UI_RESULT_INVALID_PATH: COREWEBVIEW2_SAVE_AS_UI_RESULT =
822    COREWEBVIEW2_SAVE_AS_UI_RESULT(1i32);
823pub const COREWEBVIEW2_SAVE_AS_UI_RESULT_KIND_NOT_SUPPORTED: COREWEBVIEW2_SAVE_AS_UI_RESULT =
824    COREWEBVIEW2_SAVE_AS_UI_RESULT(3i32);
825pub const COREWEBVIEW2_SAVE_AS_UI_RESULT_SUCCESS: COREWEBVIEW2_SAVE_AS_UI_RESULT =
826    COREWEBVIEW2_SAVE_AS_UI_RESULT(0i32);
827#[repr(transparent)]
828#[derive(Clone, Copy, Debug, Default, Eq, PartialEq)]
829pub struct COREWEBVIEW2_SCRIPT_DIALOG_KIND(pub i32);
830pub const COREWEBVIEW2_SCRIPT_DIALOG_KIND_ALERT: COREWEBVIEW2_SCRIPT_DIALOG_KIND =
831    COREWEBVIEW2_SCRIPT_DIALOG_KIND(0i32);
832pub const COREWEBVIEW2_SCRIPT_DIALOG_KIND_BEFOREUNLOAD: COREWEBVIEW2_SCRIPT_DIALOG_KIND =
833    COREWEBVIEW2_SCRIPT_DIALOG_KIND(3i32);
834pub const COREWEBVIEW2_SCRIPT_DIALOG_KIND_CONFIRM: COREWEBVIEW2_SCRIPT_DIALOG_KIND =
835    COREWEBVIEW2_SCRIPT_DIALOG_KIND(1i32);
836pub const COREWEBVIEW2_SCRIPT_DIALOG_KIND_PROMPT: COREWEBVIEW2_SCRIPT_DIALOG_KIND =
837    COREWEBVIEW2_SCRIPT_DIALOG_KIND(2i32);
838#[repr(transparent)]
839#[derive(Clone, Copy, Debug, Default, Eq, PartialEq)]
840pub struct COREWEBVIEW2_SCROLLBAR_STYLE(pub i32);
841pub const COREWEBVIEW2_SCROLLBAR_STYLE_DEFAULT: COREWEBVIEW2_SCROLLBAR_STYLE =
842    COREWEBVIEW2_SCROLLBAR_STYLE(0i32);
843pub const COREWEBVIEW2_SCROLLBAR_STYLE_FLUENT_OVERLAY: COREWEBVIEW2_SCROLLBAR_STYLE =
844    COREWEBVIEW2_SCROLLBAR_STYLE(1i32);
845#[repr(transparent)]
846#[derive(Clone, Copy, Debug, Default, Eq, PartialEq)]
847pub struct COREWEBVIEW2_SERVER_CERTIFICATE_ERROR_ACTION(pub i32);
848pub const COREWEBVIEW2_SERVER_CERTIFICATE_ERROR_ACTION_ALWAYS_ALLOW:
849    COREWEBVIEW2_SERVER_CERTIFICATE_ERROR_ACTION =
850    COREWEBVIEW2_SERVER_CERTIFICATE_ERROR_ACTION(0i32);
851pub const COREWEBVIEW2_SERVER_CERTIFICATE_ERROR_ACTION_CANCEL:
852    COREWEBVIEW2_SERVER_CERTIFICATE_ERROR_ACTION =
853    COREWEBVIEW2_SERVER_CERTIFICATE_ERROR_ACTION(1i32);
854pub const COREWEBVIEW2_SERVER_CERTIFICATE_ERROR_ACTION_DEFAULT:
855    COREWEBVIEW2_SERVER_CERTIFICATE_ERROR_ACTION =
856    COREWEBVIEW2_SERVER_CERTIFICATE_ERROR_ACTION(2i32);
857#[repr(transparent)]
858#[derive(Clone, Copy, Debug, Default, Eq, PartialEq)]
859pub struct COREWEBVIEW2_SHARED_BUFFER_ACCESS(pub i32);
860pub const COREWEBVIEW2_SHARED_BUFFER_ACCESS_READ_ONLY: COREWEBVIEW2_SHARED_BUFFER_ACCESS =
861    COREWEBVIEW2_SHARED_BUFFER_ACCESS(0i32);
862pub const COREWEBVIEW2_SHARED_BUFFER_ACCESS_READ_WRITE: COREWEBVIEW2_SHARED_BUFFER_ACCESS =
863    COREWEBVIEW2_SHARED_BUFFER_ACCESS(1i32);
864#[repr(transparent)]
865#[derive(Clone, Copy, Debug, Default, Eq, PartialEq)]
866pub struct COREWEBVIEW2_TEXT_DIRECTION_KIND(pub i32);
867pub const COREWEBVIEW2_TEXT_DIRECTION_KIND_DEFAULT: COREWEBVIEW2_TEXT_DIRECTION_KIND =
868    COREWEBVIEW2_TEXT_DIRECTION_KIND(0i32);
869pub const COREWEBVIEW2_TEXT_DIRECTION_KIND_LEFT_TO_RIGHT: COREWEBVIEW2_TEXT_DIRECTION_KIND =
870    COREWEBVIEW2_TEXT_DIRECTION_KIND(1i32);
871pub const COREWEBVIEW2_TEXT_DIRECTION_KIND_RIGHT_TO_LEFT: COREWEBVIEW2_TEXT_DIRECTION_KIND =
872    COREWEBVIEW2_TEXT_DIRECTION_KIND(2i32);
873#[repr(transparent)]
874#[derive(Clone, Copy, Debug, Default, Eq, PartialEq)]
875pub struct COREWEBVIEW2_TRACKING_PREVENTION_LEVEL(pub i32);
876pub const COREWEBVIEW2_TRACKING_PREVENTION_LEVEL_BALANCED: COREWEBVIEW2_TRACKING_PREVENTION_LEVEL =
877    COREWEBVIEW2_TRACKING_PREVENTION_LEVEL(2i32);
878pub const COREWEBVIEW2_TRACKING_PREVENTION_LEVEL_BASIC: COREWEBVIEW2_TRACKING_PREVENTION_LEVEL =
879    COREWEBVIEW2_TRACKING_PREVENTION_LEVEL(1i32);
880pub const COREWEBVIEW2_TRACKING_PREVENTION_LEVEL_NONE: COREWEBVIEW2_TRACKING_PREVENTION_LEVEL =
881    COREWEBVIEW2_TRACKING_PREVENTION_LEVEL(0i32);
882pub const COREWEBVIEW2_TRACKING_PREVENTION_LEVEL_STRICT: COREWEBVIEW2_TRACKING_PREVENTION_LEVEL =
883    COREWEBVIEW2_TRACKING_PREVENTION_LEVEL(3i32);
884#[repr(transparent)]
885#[derive(Clone, Copy, Debug, Default, Eq, PartialEq)]
886pub struct COREWEBVIEW2_WEB_ERROR_STATUS(pub i32);
887pub const COREWEBVIEW2_WEB_ERROR_STATUS_CANNOT_CONNECT: COREWEBVIEW2_WEB_ERROR_STATUS =
888    COREWEBVIEW2_WEB_ERROR_STATUS(12i32);
889pub const COREWEBVIEW2_WEB_ERROR_STATUS_CERTIFICATE_COMMON_NAME_IS_INCORRECT:
890    COREWEBVIEW2_WEB_ERROR_STATUS = COREWEBVIEW2_WEB_ERROR_STATUS(1i32);
891pub const COREWEBVIEW2_WEB_ERROR_STATUS_CERTIFICATE_EXPIRED: COREWEBVIEW2_WEB_ERROR_STATUS =
892    COREWEBVIEW2_WEB_ERROR_STATUS(2i32);
893pub const COREWEBVIEW2_WEB_ERROR_STATUS_CERTIFICATE_IS_INVALID: COREWEBVIEW2_WEB_ERROR_STATUS =
894    COREWEBVIEW2_WEB_ERROR_STATUS(5i32);
895pub const COREWEBVIEW2_WEB_ERROR_STATUS_CERTIFICATE_REVOKED: COREWEBVIEW2_WEB_ERROR_STATUS =
896    COREWEBVIEW2_WEB_ERROR_STATUS(4i32);
897pub const COREWEBVIEW2_WEB_ERROR_STATUS_CLIENT_CERTIFICATE_CONTAINS_ERRORS:
898    COREWEBVIEW2_WEB_ERROR_STATUS = COREWEBVIEW2_WEB_ERROR_STATUS(3i32);
899pub const COREWEBVIEW2_WEB_ERROR_STATUS_CONNECTION_ABORTED: COREWEBVIEW2_WEB_ERROR_STATUS =
900    COREWEBVIEW2_WEB_ERROR_STATUS(9i32);
901pub const COREWEBVIEW2_WEB_ERROR_STATUS_CONNECTION_RESET: COREWEBVIEW2_WEB_ERROR_STATUS =
902    COREWEBVIEW2_WEB_ERROR_STATUS(10i32);
903pub const COREWEBVIEW2_WEB_ERROR_STATUS_DISCONNECTED: COREWEBVIEW2_WEB_ERROR_STATUS =
904    COREWEBVIEW2_WEB_ERROR_STATUS(11i32);
905pub const COREWEBVIEW2_WEB_ERROR_STATUS_ERROR_HTTP_INVALID_SERVER_RESPONSE:
906    COREWEBVIEW2_WEB_ERROR_STATUS = COREWEBVIEW2_WEB_ERROR_STATUS(8i32);
907pub const COREWEBVIEW2_WEB_ERROR_STATUS_HOST_NAME_NOT_RESOLVED: COREWEBVIEW2_WEB_ERROR_STATUS =
908    COREWEBVIEW2_WEB_ERROR_STATUS(13i32);
909pub const COREWEBVIEW2_WEB_ERROR_STATUS_OPERATION_CANCELED: COREWEBVIEW2_WEB_ERROR_STATUS =
910    COREWEBVIEW2_WEB_ERROR_STATUS(14i32);
911pub const COREWEBVIEW2_WEB_ERROR_STATUS_REDIRECT_FAILED: COREWEBVIEW2_WEB_ERROR_STATUS =
912    COREWEBVIEW2_WEB_ERROR_STATUS(15i32);
913pub const COREWEBVIEW2_WEB_ERROR_STATUS_SERVER_UNREACHABLE: COREWEBVIEW2_WEB_ERROR_STATUS =
914    COREWEBVIEW2_WEB_ERROR_STATUS(6i32);
915pub const COREWEBVIEW2_WEB_ERROR_STATUS_TIMEOUT: COREWEBVIEW2_WEB_ERROR_STATUS =
916    COREWEBVIEW2_WEB_ERROR_STATUS(7i32);
917pub const COREWEBVIEW2_WEB_ERROR_STATUS_UNEXPECTED_ERROR: COREWEBVIEW2_WEB_ERROR_STATUS =
918    COREWEBVIEW2_WEB_ERROR_STATUS(16i32);
919pub const COREWEBVIEW2_WEB_ERROR_STATUS_UNKNOWN: COREWEBVIEW2_WEB_ERROR_STATUS =
920    COREWEBVIEW2_WEB_ERROR_STATUS(0i32);
921pub const COREWEBVIEW2_WEB_ERROR_STATUS_VALID_AUTHENTICATION_CREDENTIALS_REQUIRED:
922    COREWEBVIEW2_WEB_ERROR_STATUS = COREWEBVIEW2_WEB_ERROR_STATUS(17i32);
923pub const COREWEBVIEW2_WEB_ERROR_STATUS_VALID_PROXY_AUTHENTICATION_REQUIRED:
924    COREWEBVIEW2_WEB_ERROR_STATUS = COREWEBVIEW2_WEB_ERROR_STATUS(18i32);
925#[repr(transparent)]
926#[derive(Clone, Copy, Debug, Default, Eq, PartialEq)]
927pub struct COREWEBVIEW2_WEB_RESOURCE_CONTEXT(pub i32);
928pub const COREWEBVIEW2_WEB_RESOURCE_CONTEXT_ALL: COREWEBVIEW2_WEB_RESOURCE_CONTEXT =
929    COREWEBVIEW2_WEB_RESOURCE_CONTEXT(0i32);
930pub const COREWEBVIEW2_WEB_RESOURCE_CONTEXT_CSP_VIOLATION_REPORT:
931    COREWEBVIEW2_WEB_RESOURCE_CONTEXT = COREWEBVIEW2_WEB_RESOURCE_CONTEXT(15i32);
932pub const COREWEBVIEW2_WEB_RESOURCE_CONTEXT_DOCUMENT: COREWEBVIEW2_WEB_RESOURCE_CONTEXT =
933    COREWEBVIEW2_WEB_RESOURCE_CONTEXT(1i32);
934pub const COREWEBVIEW2_WEB_RESOURCE_CONTEXT_EVENT_SOURCE: COREWEBVIEW2_WEB_RESOURCE_CONTEXT =
935    COREWEBVIEW2_WEB_RESOURCE_CONTEXT(10i32);
936pub const COREWEBVIEW2_WEB_RESOURCE_CONTEXT_FETCH: COREWEBVIEW2_WEB_RESOURCE_CONTEXT =
937    COREWEBVIEW2_WEB_RESOURCE_CONTEXT(8i32);
938pub const COREWEBVIEW2_WEB_RESOURCE_CONTEXT_FONT: COREWEBVIEW2_WEB_RESOURCE_CONTEXT =
939    COREWEBVIEW2_WEB_RESOURCE_CONTEXT(5i32);
940pub const COREWEBVIEW2_WEB_RESOURCE_CONTEXT_IMAGE: COREWEBVIEW2_WEB_RESOURCE_CONTEXT =
941    COREWEBVIEW2_WEB_RESOURCE_CONTEXT(3i32);
942pub const COREWEBVIEW2_WEB_RESOURCE_CONTEXT_MANIFEST: COREWEBVIEW2_WEB_RESOURCE_CONTEXT =
943    COREWEBVIEW2_WEB_RESOURCE_CONTEXT(12i32);
944pub const COREWEBVIEW2_WEB_RESOURCE_CONTEXT_MEDIA: COREWEBVIEW2_WEB_RESOURCE_CONTEXT =
945    COREWEBVIEW2_WEB_RESOURCE_CONTEXT(4i32);
946pub const COREWEBVIEW2_WEB_RESOURCE_CONTEXT_OTHER: COREWEBVIEW2_WEB_RESOURCE_CONTEXT =
947    COREWEBVIEW2_WEB_RESOURCE_CONTEXT(16i32);
948pub const COREWEBVIEW2_WEB_RESOURCE_CONTEXT_PING: COREWEBVIEW2_WEB_RESOURCE_CONTEXT =
949    COREWEBVIEW2_WEB_RESOURCE_CONTEXT(14i32);
950pub const COREWEBVIEW2_WEB_RESOURCE_CONTEXT_SCRIPT: COREWEBVIEW2_WEB_RESOURCE_CONTEXT =
951    COREWEBVIEW2_WEB_RESOURCE_CONTEXT(6i32);
952pub const COREWEBVIEW2_WEB_RESOURCE_CONTEXT_SIGNED_EXCHANGE: COREWEBVIEW2_WEB_RESOURCE_CONTEXT =
953    COREWEBVIEW2_WEB_RESOURCE_CONTEXT(13i32);
954pub const COREWEBVIEW2_WEB_RESOURCE_CONTEXT_STYLESHEET: COREWEBVIEW2_WEB_RESOURCE_CONTEXT =
955    COREWEBVIEW2_WEB_RESOURCE_CONTEXT(2i32);
956pub const COREWEBVIEW2_WEB_RESOURCE_CONTEXT_TEXT_TRACK: COREWEBVIEW2_WEB_RESOURCE_CONTEXT =
957    COREWEBVIEW2_WEB_RESOURCE_CONTEXT(9i32);
958pub const COREWEBVIEW2_WEB_RESOURCE_CONTEXT_WEBSOCKET: COREWEBVIEW2_WEB_RESOURCE_CONTEXT =
959    COREWEBVIEW2_WEB_RESOURCE_CONTEXT(11i32);
960pub const COREWEBVIEW2_WEB_RESOURCE_CONTEXT_XML_HTTP_REQUEST: COREWEBVIEW2_WEB_RESOURCE_CONTEXT =
961    COREWEBVIEW2_WEB_RESOURCE_CONTEXT(7i32);
962#[repr(transparent)]
963#[derive(Clone, Copy, Debug, Default, Eq, PartialEq)]
964pub struct COREWEBVIEW2_WEB_RESOURCE_REQUEST_SOURCE_KINDS(pub i32);
965impl COREWEBVIEW2_WEB_RESOURCE_REQUEST_SOURCE_KINDS {
966    pub const fn contains(&self, other: Self) -> bool {
967        self.0 & other.0 == other.0
968    }
969}
970impl core::ops::BitOr for COREWEBVIEW2_WEB_RESOURCE_REQUEST_SOURCE_KINDS {
971    type Output = Self;
972    fn bitor(self, other: Self) -> Self {
973        Self(self.0 | other.0)
974    }
975}
976impl core::ops::BitAnd for COREWEBVIEW2_WEB_RESOURCE_REQUEST_SOURCE_KINDS {
977    type Output = Self;
978    fn bitand(self, other: Self) -> Self {
979        Self(self.0 & other.0)
980    }
981}
982impl core::ops::BitOrAssign for COREWEBVIEW2_WEB_RESOURCE_REQUEST_SOURCE_KINDS {
983    fn bitor_assign(&mut self, other: Self) {
984        self.0.bitor_assign(other.0)
985    }
986}
987impl core::ops::BitAndAssign for COREWEBVIEW2_WEB_RESOURCE_REQUEST_SOURCE_KINDS {
988    fn bitand_assign(&mut self, other: Self) {
989        self.0.bitand_assign(other.0)
990    }
991}
992impl core::ops::Not for COREWEBVIEW2_WEB_RESOURCE_REQUEST_SOURCE_KINDS {
993    type Output = Self;
994    fn not(self) -> Self {
995        Self(self.0.not())
996    }
997}
998pub const COREWEBVIEW2_WEB_RESOURCE_REQUEST_SOURCE_KINDS_ALL:
999    COREWEBVIEW2_WEB_RESOURCE_REQUEST_SOURCE_KINDS =
1000    COREWEBVIEW2_WEB_RESOURCE_REQUEST_SOURCE_KINDS(-1i32);
1001pub const COREWEBVIEW2_WEB_RESOURCE_REQUEST_SOURCE_KINDS_DOCUMENT:
1002    COREWEBVIEW2_WEB_RESOURCE_REQUEST_SOURCE_KINDS =
1003    COREWEBVIEW2_WEB_RESOURCE_REQUEST_SOURCE_KINDS(1i32);
1004pub const COREWEBVIEW2_WEB_RESOURCE_REQUEST_SOURCE_KINDS_NONE:
1005    COREWEBVIEW2_WEB_RESOURCE_REQUEST_SOURCE_KINDS =
1006    COREWEBVIEW2_WEB_RESOURCE_REQUEST_SOURCE_KINDS(0i32);
1007pub const COREWEBVIEW2_WEB_RESOURCE_REQUEST_SOURCE_KINDS_SERVICE_WORKER:
1008    COREWEBVIEW2_WEB_RESOURCE_REQUEST_SOURCE_KINDS =
1009    COREWEBVIEW2_WEB_RESOURCE_REQUEST_SOURCE_KINDS(4i32);
1010pub const COREWEBVIEW2_WEB_RESOURCE_REQUEST_SOURCE_KINDS_SHARED_WORKER:
1011    COREWEBVIEW2_WEB_RESOURCE_REQUEST_SOURCE_KINDS =
1012    COREWEBVIEW2_WEB_RESOURCE_REQUEST_SOURCE_KINDS(2i32);
1013pub const CORE_WEBVIEW_TARGET_PRODUCT_VERSION: windows_core::PCWSTR =
1014    windows_core::w!("145.0.3800.47");
1015windows_core::imp::define_interface!(
1016    ICoreWebView2,
1017    ICoreWebView2_Vtbl,
1018    0x76eceacb_0462_4d94_ac83_423a6793775e
1019);
1020windows_core::imp::interface_hierarchy!(ICoreWebView2, windows_core::IUnknown);
1021impl ICoreWebView2 {
1022    pub unsafe fn Settings(&self) -> windows_core::Result<ICoreWebView2Settings> {
1023        unsafe {
1024            let mut result__ = core::mem::zeroed();
1025            (windows_core::Interface::vtable(self).Settings)(
1026                windows_core::Interface::as_raw(self),
1027                &mut result__,
1028            )
1029            .and_then(|| windows_core::Type::from_abi(result__))
1030        }
1031    }
1032    pub unsafe fn Source(&self, uri: *mut windows_core::PWSTR) -> windows_core::Result<()> {
1033        unsafe {
1034            (windows_core::Interface::vtable(self).Source)(
1035                windows_core::Interface::as_raw(self),
1036                uri as _,
1037            )
1038            .ok()
1039        }
1040    }
1041    pub unsafe fn Navigate<P0>(&self, uri: P0) -> windows_core::Result<()>
1042    where
1043        P0: windows_core::Param<windows_core::PCWSTR>,
1044    {
1045        unsafe {
1046            (windows_core::Interface::vtable(self).Navigate)(
1047                windows_core::Interface::as_raw(self),
1048                uri.param().abi(),
1049            )
1050            .ok()
1051        }
1052    }
1053    pub unsafe fn NavigateToString<P0>(&self, htmlcontent: P0) -> windows_core::Result<()>
1054    where
1055        P0: windows_core::Param<windows_core::PCWSTR>,
1056    {
1057        unsafe {
1058            (windows_core::Interface::vtable(self).NavigateToString)(
1059                windows_core::Interface::as_raw(self),
1060                htmlcontent.param().abi(),
1061            )
1062            .ok()
1063        }
1064    }
1065    pub unsafe fn add_NavigationStarting<P0>(
1066        &self,
1067        eventhandler: P0,
1068        token: *mut i64,
1069    ) -> windows_core::Result<()>
1070    where
1071        P0: windows_core::Param<ICoreWebView2NavigationStartingEventHandler>,
1072    {
1073        unsafe {
1074            (windows_core::Interface::vtable(self).add_NavigationStarting)(
1075                windows_core::Interface::as_raw(self),
1076                eventhandler.param().abi(),
1077                token as _,
1078            )
1079            .ok()
1080        }
1081    }
1082    pub unsafe fn remove_NavigationStarting(&self, token: i64) -> windows_core::Result<()> {
1083        unsafe {
1084            (windows_core::Interface::vtable(self).remove_NavigationStarting)(
1085                windows_core::Interface::as_raw(self),
1086                token,
1087            )
1088            .ok()
1089        }
1090    }
1091    pub unsafe fn add_ContentLoading<P0>(
1092        &self,
1093        eventhandler: P0,
1094        token: *mut i64,
1095    ) -> windows_core::Result<()>
1096    where
1097        P0: windows_core::Param<ICoreWebView2ContentLoadingEventHandler>,
1098    {
1099        unsafe {
1100            (windows_core::Interface::vtable(self).add_ContentLoading)(
1101                windows_core::Interface::as_raw(self),
1102                eventhandler.param().abi(),
1103                token as _,
1104            )
1105            .ok()
1106        }
1107    }
1108    pub unsafe fn remove_ContentLoading(&self, token: i64) -> windows_core::Result<()> {
1109        unsafe {
1110            (windows_core::Interface::vtable(self).remove_ContentLoading)(
1111                windows_core::Interface::as_raw(self),
1112                token,
1113            )
1114            .ok()
1115        }
1116    }
1117    pub unsafe fn add_SourceChanged<P0>(
1118        &self,
1119        eventhandler: P0,
1120        token: *mut i64,
1121    ) -> windows_core::Result<()>
1122    where
1123        P0: windows_core::Param<ICoreWebView2SourceChangedEventHandler>,
1124    {
1125        unsafe {
1126            (windows_core::Interface::vtable(self).add_SourceChanged)(
1127                windows_core::Interface::as_raw(self),
1128                eventhandler.param().abi(),
1129                token as _,
1130            )
1131            .ok()
1132        }
1133    }
1134    pub unsafe fn remove_SourceChanged(&self, token: i64) -> windows_core::Result<()> {
1135        unsafe {
1136            (windows_core::Interface::vtable(self).remove_SourceChanged)(
1137                windows_core::Interface::as_raw(self),
1138                token,
1139            )
1140            .ok()
1141        }
1142    }
1143    pub unsafe fn add_HistoryChanged<P0>(
1144        &self,
1145        eventhandler: P0,
1146        token: *mut i64,
1147    ) -> windows_core::Result<()>
1148    where
1149        P0: windows_core::Param<ICoreWebView2HistoryChangedEventHandler>,
1150    {
1151        unsafe {
1152            (windows_core::Interface::vtable(self).add_HistoryChanged)(
1153                windows_core::Interface::as_raw(self),
1154                eventhandler.param().abi(),
1155                token as _,
1156            )
1157            .ok()
1158        }
1159    }
1160    pub unsafe fn remove_HistoryChanged(&self, token: i64) -> windows_core::Result<()> {
1161        unsafe {
1162            (windows_core::Interface::vtable(self).remove_HistoryChanged)(
1163                windows_core::Interface::as_raw(self),
1164                token,
1165            )
1166            .ok()
1167        }
1168    }
1169    pub unsafe fn add_NavigationCompleted<P0>(
1170        &self,
1171        eventhandler: P0,
1172        token: *mut i64,
1173    ) -> windows_core::Result<()>
1174    where
1175        P0: windows_core::Param<ICoreWebView2NavigationCompletedEventHandler>,
1176    {
1177        unsafe {
1178            (windows_core::Interface::vtable(self).add_NavigationCompleted)(
1179                windows_core::Interface::as_raw(self),
1180                eventhandler.param().abi(),
1181                token as _,
1182            )
1183            .ok()
1184        }
1185    }
1186    pub unsafe fn remove_NavigationCompleted(&self, token: i64) -> windows_core::Result<()> {
1187        unsafe {
1188            (windows_core::Interface::vtable(self).remove_NavigationCompleted)(
1189                windows_core::Interface::as_raw(self),
1190                token,
1191            )
1192            .ok()
1193        }
1194    }
1195    pub unsafe fn add_FrameNavigationStarting<P0>(
1196        &self,
1197        eventhandler: P0,
1198        token: *mut i64,
1199    ) -> windows_core::Result<()>
1200    where
1201        P0: windows_core::Param<ICoreWebView2NavigationStartingEventHandler>,
1202    {
1203        unsafe {
1204            (windows_core::Interface::vtable(self).add_FrameNavigationStarting)(
1205                windows_core::Interface::as_raw(self),
1206                eventhandler.param().abi(),
1207                token as _,
1208            )
1209            .ok()
1210        }
1211    }
1212    pub unsafe fn remove_FrameNavigationStarting(&self, token: i64) -> windows_core::Result<()> {
1213        unsafe {
1214            (windows_core::Interface::vtable(self).remove_FrameNavigationStarting)(
1215                windows_core::Interface::as_raw(self),
1216                token,
1217            )
1218            .ok()
1219        }
1220    }
1221    pub unsafe fn add_FrameNavigationCompleted<P0>(
1222        &self,
1223        eventhandler: P0,
1224        token: *mut i64,
1225    ) -> windows_core::Result<()>
1226    where
1227        P0: windows_core::Param<ICoreWebView2NavigationCompletedEventHandler>,
1228    {
1229        unsafe {
1230            (windows_core::Interface::vtable(self).add_FrameNavigationCompleted)(
1231                windows_core::Interface::as_raw(self),
1232                eventhandler.param().abi(),
1233                token as _,
1234            )
1235            .ok()
1236        }
1237    }
1238    pub unsafe fn remove_FrameNavigationCompleted(&self, token: i64) -> windows_core::Result<()> {
1239        unsafe {
1240            (windows_core::Interface::vtable(self).remove_FrameNavigationCompleted)(
1241                windows_core::Interface::as_raw(self),
1242                token,
1243            )
1244            .ok()
1245        }
1246    }
1247    pub unsafe fn add_ScriptDialogOpening<P0>(
1248        &self,
1249        eventhandler: P0,
1250        token: *mut i64,
1251    ) -> windows_core::Result<()>
1252    where
1253        P0: windows_core::Param<ICoreWebView2ScriptDialogOpeningEventHandler>,
1254    {
1255        unsafe {
1256            (windows_core::Interface::vtable(self).add_ScriptDialogOpening)(
1257                windows_core::Interface::as_raw(self),
1258                eventhandler.param().abi(),
1259                token as _,
1260            )
1261            .ok()
1262        }
1263    }
1264    pub unsafe fn remove_ScriptDialogOpening(&self, token: i64) -> windows_core::Result<()> {
1265        unsafe {
1266            (windows_core::Interface::vtable(self).remove_ScriptDialogOpening)(
1267                windows_core::Interface::as_raw(self),
1268                token,
1269            )
1270            .ok()
1271        }
1272    }
1273    pub unsafe fn add_PermissionRequested<P0>(
1274        &self,
1275        eventhandler: P0,
1276        token: *mut i64,
1277    ) -> windows_core::Result<()>
1278    where
1279        P0: windows_core::Param<ICoreWebView2PermissionRequestedEventHandler>,
1280    {
1281        unsafe {
1282            (windows_core::Interface::vtable(self).add_PermissionRequested)(
1283                windows_core::Interface::as_raw(self),
1284                eventhandler.param().abi(),
1285                token as _,
1286            )
1287            .ok()
1288        }
1289    }
1290    pub unsafe fn remove_PermissionRequested(&self, token: i64) -> windows_core::Result<()> {
1291        unsafe {
1292            (windows_core::Interface::vtable(self).remove_PermissionRequested)(
1293                windows_core::Interface::as_raw(self),
1294                token,
1295            )
1296            .ok()
1297        }
1298    }
1299    pub unsafe fn add_ProcessFailed<P0>(
1300        &self,
1301        eventhandler: P0,
1302        token: *mut i64,
1303    ) -> windows_core::Result<()>
1304    where
1305        P0: windows_core::Param<ICoreWebView2ProcessFailedEventHandler>,
1306    {
1307        unsafe {
1308            (windows_core::Interface::vtable(self).add_ProcessFailed)(
1309                windows_core::Interface::as_raw(self),
1310                eventhandler.param().abi(),
1311                token as _,
1312            )
1313            .ok()
1314        }
1315    }
1316    pub unsafe fn remove_ProcessFailed(&self, token: i64) -> windows_core::Result<()> {
1317        unsafe {
1318            (windows_core::Interface::vtable(self).remove_ProcessFailed)(
1319                windows_core::Interface::as_raw(self),
1320                token,
1321            )
1322            .ok()
1323        }
1324    }
1325    pub unsafe fn AddScriptToExecuteOnDocumentCreated<P0, P1>(
1326        &self,
1327        javascript: P0,
1328        handler: P1,
1329    ) -> windows_core::Result<()>
1330    where
1331        P0: windows_core::Param<windows_core::PCWSTR>,
1332        P1: windows_core::Param<ICoreWebView2AddScriptToExecuteOnDocumentCreatedCompletedHandler>,
1333    {
1334        unsafe {
1335            (windows_core::Interface::vtable(self).AddScriptToExecuteOnDocumentCreated)(
1336                windows_core::Interface::as_raw(self),
1337                javascript.param().abi(),
1338                handler.param().abi(),
1339            )
1340            .ok()
1341        }
1342    }
1343    pub unsafe fn RemoveScriptToExecuteOnDocumentCreated<P0>(
1344        &self,
1345        id: P0,
1346    ) -> windows_core::Result<()>
1347    where
1348        P0: windows_core::Param<windows_core::PCWSTR>,
1349    {
1350        unsafe {
1351            (windows_core::Interface::vtable(self).RemoveScriptToExecuteOnDocumentCreated)(
1352                windows_core::Interface::as_raw(self),
1353                id.param().abi(),
1354            )
1355            .ok()
1356        }
1357    }
1358    pub unsafe fn ExecuteScript<P0, P1>(
1359        &self,
1360        javascript: P0,
1361        handler: P1,
1362    ) -> windows_core::Result<()>
1363    where
1364        P0: windows_core::Param<windows_core::PCWSTR>,
1365        P1: windows_core::Param<ICoreWebView2ExecuteScriptCompletedHandler>,
1366    {
1367        unsafe {
1368            (windows_core::Interface::vtable(self).ExecuteScript)(
1369                windows_core::Interface::as_raw(self),
1370                javascript.param().abi(),
1371                handler.param().abi(),
1372            )
1373            .ok()
1374        }
1375    }
1376    pub unsafe fn CapturePreview<P1, P2>(
1377        &self,
1378        imageformat: COREWEBVIEW2_CAPTURE_PREVIEW_IMAGE_FORMAT,
1379        imagestream: P1,
1380        handler: P2,
1381    ) -> windows_core::Result<()>
1382    where
1383        P1: windows_core::Param<windows::Win32::System::Com::IStream>,
1384        P2: windows_core::Param<ICoreWebView2CapturePreviewCompletedHandler>,
1385    {
1386        unsafe {
1387            (windows_core::Interface::vtable(self).CapturePreview)(
1388                windows_core::Interface::as_raw(self),
1389                imageformat,
1390                imagestream.param().abi(),
1391                handler.param().abi(),
1392            )
1393            .ok()
1394        }
1395    }
1396    pub unsafe fn Reload(&self) -> windows_core::Result<()> {
1397        unsafe {
1398            (windows_core::Interface::vtable(self).Reload)(windows_core::Interface::as_raw(self))
1399                .ok()
1400        }
1401    }
1402    pub unsafe fn PostWebMessageAsJson<P0>(&self, webmessageasjson: P0) -> windows_core::Result<()>
1403    where
1404        P0: windows_core::Param<windows_core::PCWSTR>,
1405    {
1406        unsafe {
1407            (windows_core::Interface::vtable(self).PostWebMessageAsJson)(
1408                windows_core::Interface::as_raw(self),
1409                webmessageasjson.param().abi(),
1410            )
1411            .ok()
1412        }
1413    }
1414    pub unsafe fn PostWebMessageAsString<P0>(
1415        &self,
1416        webmessageasstring: P0,
1417    ) -> windows_core::Result<()>
1418    where
1419        P0: windows_core::Param<windows_core::PCWSTR>,
1420    {
1421        unsafe {
1422            (windows_core::Interface::vtable(self).PostWebMessageAsString)(
1423                windows_core::Interface::as_raw(self),
1424                webmessageasstring.param().abi(),
1425            )
1426            .ok()
1427        }
1428    }
1429    pub unsafe fn add_WebMessageReceived<P0>(
1430        &self,
1431        handler: P0,
1432        token: *mut i64,
1433    ) -> windows_core::Result<()>
1434    where
1435        P0: windows_core::Param<ICoreWebView2WebMessageReceivedEventHandler>,
1436    {
1437        unsafe {
1438            (windows_core::Interface::vtable(self).add_WebMessageReceived)(
1439                windows_core::Interface::as_raw(self),
1440                handler.param().abi(),
1441                token as _,
1442            )
1443            .ok()
1444        }
1445    }
1446    pub unsafe fn remove_WebMessageReceived(&self, token: i64) -> windows_core::Result<()> {
1447        unsafe {
1448            (windows_core::Interface::vtable(self).remove_WebMessageReceived)(
1449                windows_core::Interface::as_raw(self),
1450                token,
1451            )
1452            .ok()
1453        }
1454    }
1455    pub unsafe fn CallDevToolsProtocolMethod<P0, P1, P2>(
1456        &self,
1457        methodname: P0,
1458        parametersasjson: P1,
1459        handler: P2,
1460    ) -> windows_core::Result<()>
1461    where
1462        P0: windows_core::Param<windows_core::PCWSTR>,
1463        P1: windows_core::Param<windows_core::PCWSTR>,
1464        P2: windows_core::Param<ICoreWebView2CallDevToolsProtocolMethodCompletedHandler>,
1465    {
1466        unsafe {
1467            (windows_core::Interface::vtable(self).CallDevToolsProtocolMethod)(
1468                windows_core::Interface::as_raw(self),
1469                methodname.param().abi(),
1470                parametersasjson.param().abi(),
1471                handler.param().abi(),
1472            )
1473            .ok()
1474        }
1475    }
1476    pub unsafe fn BrowserProcessId(&self, value: *mut u32) -> windows_core::Result<()> {
1477        unsafe {
1478            (windows_core::Interface::vtable(self).BrowserProcessId)(
1479                windows_core::Interface::as_raw(self),
1480                value as _,
1481            )
1482            .ok()
1483        }
1484    }
1485    pub unsafe fn CanGoBack(&self, cangoback: *mut windows_core::BOOL) -> windows_core::Result<()> {
1486        unsafe {
1487            (windows_core::Interface::vtable(self).CanGoBack)(
1488                windows_core::Interface::as_raw(self),
1489                cangoback as _,
1490            )
1491            .ok()
1492        }
1493    }
1494    pub unsafe fn CanGoForward(
1495        &self,
1496        cangoforward: *mut windows_core::BOOL,
1497    ) -> windows_core::Result<()> {
1498        unsafe {
1499            (windows_core::Interface::vtable(self).CanGoForward)(
1500                windows_core::Interface::as_raw(self),
1501                cangoforward as _,
1502            )
1503            .ok()
1504        }
1505    }
1506    pub unsafe fn GoBack(&self) -> windows_core::Result<()> {
1507        unsafe {
1508            (windows_core::Interface::vtable(self).GoBack)(windows_core::Interface::as_raw(self))
1509                .ok()
1510        }
1511    }
1512    pub unsafe fn GoForward(&self) -> windows_core::Result<()> {
1513        unsafe {
1514            (windows_core::Interface::vtable(self).GoForward)(windows_core::Interface::as_raw(self))
1515                .ok()
1516        }
1517    }
1518    pub unsafe fn GetDevToolsProtocolEventReceiver<P0>(
1519        &self,
1520        eventname: P0,
1521    ) -> windows_core::Result<ICoreWebView2DevToolsProtocolEventReceiver>
1522    where
1523        P0: windows_core::Param<windows_core::PCWSTR>,
1524    {
1525        unsafe {
1526            let mut result__ = core::mem::zeroed();
1527            (windows_core::Interface::vtable(self).GetDevToolsProtocolEventReceiver)(
1528                windows_core::Interface::as_raw(self),
1529                eventname.param().abi(),
1530                &mut result__,
1531            )
1532            .and_then(|| windows_core::Type::from_abi(result__))
1533        }
1534    }
1535    pub unsafe fn Stop(&self) -> windows_core::Result<()> {
1536        unsafe {
1537            (windows_core::Interface::vtable(self).Stop)(windows_core::Interface::as_raw(self)).ok()
1538        }
1539    }
1540    pub unsafe fn add_NewWindowRequested<P0>(
1541        &self,
1542        eventhandler: P0,
1543        token: *mut i64,
1544    ) -> windows_core::Result<()>
1545    where
1546        P0: windows_core::Param<ICoreWebView2NewWindowRequestedEventHandler>,
1547    {
1548        unsafe {
1549            (windows_core::Interface::vtable(self).add_NewWindowRequested)(
1550                windows_core::Interface::as_raw(self),
1551                eventhandler.param().abi(),
1552                token as _,
1553            )
1554            .ok()
1555        }
1556    }
1557    pub unsafe fn remove_NewWindowRequested(&self, token: i64) -> windows_core::Result<()> {
1558        unsafe {
1559            (windows_core::Interface::vtable(self).remove_NewWindowRequested)(
1560                windows_core::Interface::as_raw(self),
1561                token,
1562            )
1563            .ok()
1564        }
1565    }
1566    pub unsafe fn add_DocumentTitleChanged<P0>(
1567        &self,
1568        eventhandler: P0,
1569        token: *mut i64,
1570    ) -> windows_core::Result<()>
1571    where
1572        P0: windows_core::Param<ICoreWebView2DocumentTitleChangedEventHandler>,
1573    {
1574        unsafe {
1575            (windows_core::Interface::vtable(self).add_DocumentTitleChanged)(
1576                windows_core::Interface::as_raw(self),
1577                eventhandler.param().abi(),
1578                token as _,
1579            )
1580            .ok()
1581        }
1582    }
1583    pub unsafe fn remove_DocumentTitleChanged(&self, token: i64) -> windows_core::Result<()> {
1584        unsafe {
1585            (windows_core::Interface::vtable(self).remove_DocumentTitleChanged)(
1586                windows_core::Interface::as_raw(self),
1587                token,
1588            )
1589            .ok()
1590        }
1591    }
1592    pub unsafe fn DocumentTitle(
1593        &self,
1594        title: *mut windows_core::PWSTR,
1595    ) -> windows_core::Result<()> {
1596        unsafe {
1597            (windows_core::Interface::vtable(self).DocumentTitle)(
1598                windows_core::Interface::as_raw(self),
1599                title as _,
1600            )
1601            .ok()
1602        }
1603    }
1604    pub unsafe fn AddHostObjectToScript<P0>(
1605        &self,
1606        name: P0,
1607        object: *mut windows::Win32::System::Variant::VARIANT,
1608    ) -> windows_core::Result<()>
1609    where
1610        P0: windows_core::Param<windows_core::PCWSTR>,
1611    {
1612        unsafe {
1613            (windows_core::Interface::vtable(self).AddHostObjectToScript)(
1614                windows_core::Interface::as_raw(self),
1615                name.param().abi(),
1616                core::mem::transmute(object),
1617            )
1618            .ok()
1619        }
1620    }
1621    pub unsafe fn RemoveHostObjectFromScript<P0>(&self, name: P0) -> windows_core::Result<()>
1622    where
1623        P0: windows_core::Param<windows_core::PCWSTR>,
1624    {
1625        unsafe {
1626            (windows_core::Interface::vtable(self).RemoveHostObjectFromScript)(
1627                windows_core::Interface::as_raw(self),
1628                name.param().abi(),
1629            )
1630            .ok()
1631        }
1632    }
1633    pub unsafe fn OpenDevToolsWindow(&self) -> windows_core::Result<()> {
1634        unsafe {
1635            (windows_core::Interface::vtable(self).OpenDevToolsWindow)(
1636                windows_core::Interface::as_raw(self),
1637            )
1638            .ok()
1639        }
1640    }
1641    pub unsafe fn add_ContainsFullScreenElementChanged<P0>(
1642        &self,
1643        eventhandler: P0,
1644        token: *mut i64,
1645    ) -> windows_core::Result<()>
1646    where
1647        P0: windows_core::Param<ICoreWebView2ContainsFullScreenElementChangedEventHandler>,
1648    {
1649        unsafe {
1650            (windows_core::Interface::vtable(self).add_ContainsFullScreenElementChanged)(
1651                windows_core::Interface::as_raw(self),
1652                eventhandler.param().abi(),
1653                token as _,
1654            )
1655            .ok()
1656        }
1657    }
1658    pub unsafe fn remove_ContainsFullScreenElementChanged(
1659        &self,
1660        token: i64,
1661    ) -> windows_core::Result<()> {
1662        unsafe {
1663            (windows_core::Interface::vtable(self).remove_ContainsFullScreenElementChanged)(
1664                windows_core::Interface::as_raw(self),
1665                token,
1666            )
1667            .ok()
1668        }
1669    }
1670    pub unsafe fn ContainsFullScreenElement(
1671        &self,
1672        containsfullscreenelement: *mut windows_core::BOOL,
1673    ) -> windows_core::Result<()> {
1674        unsafe {
1675            (windows_core::Interface::vtable(self).ContainsFullScreenElement)(
1676                windows_core::Interface::as_raw(self),
1677                containsfullscreenelement as _,
1678            )
1679            .ok()
1680        }
1681    }
1682    pub unsafe fn add_WebResourceRequested<P0>(
1683        &self,
1684        eventhandler: P0,
1685        token: *mut i64,
1686    ) -> windows_core::Result<()>
1687    where
1688        P0: windows_core::Param<ICoreWebView2WebResourceRequestedEventHandler>,
1689    {
1690        unsafe {
1691            (windows_core::Interface::vtable(self).add_WebResourceRequested)(
1692                windows_core::Interface::as_raw(self),
1693                eventhandler.param().abi(),
1694                token as _,
1695            )
1696            .ok()
1697        }
1698    }
1699    pub unsafe fn remove_WebResourceRequested(&self, token: i64) -> windows_core::Result<()> {
1700        unsafe {
1701            (windows_core::Interface::vtable(self).remove_WebResourceRequested)(
1702                windows_core::Interface::as_raw(self),
1703                token,
1704            )
1705            .ok()
1706        }
1707    }
1708    pub unsafe fn AddWebResourceRequestedFilter<P0>(
1709        &self,
1710        uri: P0,
1711        resourcecontext: COREWEBVIEW2_WEB_RESOURCE_CONTEXT,
1712    ) -> windows_core::Result<()>
1713    where
1714        P0: windows_core::Param<windows_core::PCWSTR>,
1715    {
1716        unsafe {
1717            (windows_core::Interface::vtable(self).AddWebResourceRequestedFilter)(
1718                windows_core::Interface::as_raw(self),
1719                uri.param().abi(),
1720                resourcecontext,
1721            )
1722            .ok()
1723        }
1724    }
1725    pub unsafe fn RemoveWebResourceRequestedFilter<P0>(
1726        &self,
1727        uri: P0,
1728        resourcecontext: COREWEBVIEW2_WEB_RESOURCE_CONTEXT,
1729    ) -> windows_core::Result<()>
1730    where
1731        P0: windows_core::Param<windows_core::PCWSTR>,
1732    {
1733        unsafe {
1734            (windows_core::Interface::vtable(self).RemoveWebResourceRequestedFilter)(
1735                windows_core::Interface::as_raw(self),
1736                uri.param().abi(),
1737                resourcecontext,
1738            )
1739            .ok()
1740        }
1741    }
1742    pub unsafe fn add_WindowCloseRequested<P0>(
1743        &self,
1744        eventhandler: P0,
1745        token: *mut i64,
1746    ) -> windows_core::Result<()>
1747    where
1748        P0: windows_core::Param<ICoreWebView2WindowCloseRequestedEventHandler>,
1749    {
1750        unsafe {
1751            (windows_core::Interface::vtable(self).add_WindowCloseRequested)(
1752                windows_core::Interface::as_raw(self),
1753                eventhandler.param().abi(),
1754                token as _,
1755            )
1756            .ok()
1757        }
1758    }
1759    pub unsafe fn remove_WindowCloseRequested(&self, token: i64) -> windows_core::Result<()> {
1760        unsafe {
1761            (windows_core::Interface::vtable(self).remove_WindowCloseRequested)(
1762                windows_core::Interface::as_raw(self),
1763                token,
1764            )
1765            .ok()
1766        }
1767    }
1768}
1769#[repr(C)]
1770#[doc(hidden)]
1771pub struct ICoreWebView2_Vtbl {
1772    pub base__: windows_core::IUnknown_Vtbl,
1773    pub Settings: unsafe extern "system" fn(
1774        *mut core::ffi::c_void,
1775        *mut *mut core::ffi::c_void,
1776    ) -> windows_core::HRESULT,
1777    pub Source: unsafe extern "system" fn(
1778        *mut core::ffi::c_void,
1779        *mut windows_core::PWSTR,
1780    ) -> windows_core::HRESULT,
1781    pub Navigate: unsafe extern "system" fn(
1782        *mut core::ffi::c_void,
1783        windows_core::PCWSTR,
1784    ) -> windows_core::HRESULT,
1785    pub NavigateToString: unsafe extern "system" fn(
1786        *mut core::ffi::c_void,
1787        windows_core::PCWSTR,
1788    ) -> windows_core::HRESULT,
1789    pub add_NavigationStarting: unsafe extern "system" fn(
1790        *mut core::ffi::c_void,
1791        *mut core::ffi::c_void,
1792        *mut i64,
1793    ) -> windows_core::HRESULT,
1794    pub remove_NavigationStarting:
1795        unsafe extern "system" fn(*mut core::ffi::c_void, i64) -> windows_core::HRESULT,
1796    pub add_ContentLoading: unsafe extern "system" fn(
1797        *mut core::ffi::c_void,
1798        *mut core::ffi::c_void,
1799        *mut i64,
1800    ) -> windows_core::HRESULT,
1801    pub remove_ContentLoading:
1802        unsafe extern "system" fn(*mut core::ffi::c_void, i64) -> windows_core::HRESULT,
1803    pub add_SourceChanged: unsafe extern "system" fn(
1804        *mut core::ffi::c_void,
1805        *mut core::ffi::c_void,
1806        *mut i64,
1807    ) -> windows_core::HRESULT,
1808    pub remove_SourceChanged:
1809        unsafe extern "system" fn(*mut core::ffi::c_void, i64) -> windows_core::HRESULT,
1810    pub add_HistoryChanged: unsafe extern "system" fn(
1811        *mut core::ffi::c_void,
1812        *mut core::ffi::c_void,
1813        *mut i64,
1814    ) -> windows_core::HRESULT,
1815    pub remove_HistoryChanged:
1816        unsafe extern "system" fn(*mut core::ffi::c_void, i64) -> windows_core::HRESULT,
1817    pub add_NavigationCompleted: unsafe extern "system" fn(
1818        *mut core::ffi::c_void,
1819        *mut core::ffi::c_void,
1820        *mut i64,
1821    ) -> windows_core::HRESULT,
1822    pub remove_NavigationCompleted:
1823        unsafe extern "system" fn(*mut core::ffi::c_void, i64) -> windows_core::HRESULT,
1824    pub add_FrameNavigationStarting: unsafe extern "system" fn(
1825        *mut core::ffi::c_void,
1826        *mut core::ffi::c_void,
1827        *mut i64,
1828    ) -> windows_core::HRESULT,
1829    pub remove_FrameNavigationStarting:
1830        unsafe extern "system" fn(*mut core::ffi::c_void, i64) -> windows_core::HRESULT,
1831    pub add_FrameNavigationCompleted: unsafe extern "system" fn(
1832        *mut core::ffi::c_void,
1833        *mut core::ffi::c_void,
1834        *mut i64,
1835    ) -> windows_core::HRESULT,
1836    pub remove_FrameNavigationCompleted:
1837        unsafe extern "system" fn(*mut core::ffi::c_void, i64) -> windows_core::HRESULT,
1838    pub add_ScriptDialogOpening: unsafe extern "system" fn(
1839        *mut core::ffi::c_void,
1840        *mut core::ffi::c_void,
1841        *mut i64,
1842    ) -> windows_core::HRESULT,
1843    pub remove_ScriptDialogOpening:
1844        unsafe extern "system" fn(*mut core::ffi::c_void, i64) -> windows_core::HRESULT,
1845    pub add_PermissionRequested: unsafe extern "system" fn(
1846        *mut core::ffi::c_void,
1847        *mut core::ffi::c_void,
1848        *mut i64,
1849    ) -> windows_core::HRESULT,
1850    pub remove_PermissionRequested:
1851        unsafe extern "system" fn(*mut core::ffi::c_void, i64) -> windows_core::HRESULT,
1852    pub add_ProcessFailed: unsafe extern "system" fn(
1853        *mut core::ffi::c_void,
1854        *mut core::ffi::c_void,
1855        *mut i64,
1856    ) -> windows_core::HRESULT,
1857    pub remove_ProcessFailed:
1858        unsafe extern "system" fn(*mut core::ffi::c_void, i64) -> windows_core::HRESULT,
1859    pub AddScriptToExecuteOnDocumentCreated: unsafe extern "system" fn(
1860        *mut core::ffi::c_void,
1861        windows_core::PCWSTR,
1862        *mut core::ffi::c_void,
1863    )
1864        -> windows_core::HRESULT,
1865    pub RemoveScriptToExecuteOnDocumentCreated: unsafe extern "system" fn(
1866        *mut core::ffi::c_void,
1867        windows_core::PCWSTR,
1868    )
1869        -> windows_core::HRESULT,
1870    pub ExecuteScript: unsafe extern "system" fn(
1871        *mut core::ffi::c_void,
1872        windows_core::PCWSTR,
1873        *mut core::ffi::c_void,
1874    ) -> windows_core::HRESULT,
1875    pub CapturePreview: unsafe extern "system" fn(
1876        *mut core::ffi::c_void,
1877        COREWEBVIEW2_CAPTURE_PREVIEW_IMAGE_FORMAT,
1878        *mut core::ffi::c_void,
1879        *mut core::ffi::c_void,
1880    ) -> windows_core::HRESULT,
1881    pub Reload: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
1882    pub PostWebMessageAsJson: unsafe extern "system" fn(
1883        *mut core::ffi::c_void,
1884        windows_core::PCWSTR,
1885    ) -> windows_core::HRESULT,
1886    pub PostWebMessageAsString: unsafe extern "system" fn(
1887        *mut core::ffi::c_void,
1888        windows_core::PCWSTR,
1889    ) -> windows_core::HRESULT,
1890    pub add_WebMessageReceived: unsafe extern "system" fn(
1891        *mut core::ffi::c_void,
1892        *mut core::ffi::c_void,
1893        *mut i64,
1894    ) -> windows_core::HRESULT,
1895    pub remove_WebMessageReceived:
1896        unsafe extern "system" fn(*mut core::ffi::c_void, i64) -> windows_core::HRESULT,
1897    pub CallDevToolsProtocolMethod: unsafe extern "system" fn(
1898        *mut core::ffi::c_void,
1899        windows_core::PCWSTR,
1900        windows_core::PCWSTR,
1901        *mut core::ffi::c_void,
1902    ) -> windows_core::HRESULT,
1903    pub BrowserProcessId:
1904        unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
1905    pub CanGoBack: unsafe extern "system" fn(
1906        *mut core::ffi::c_void,
1907        *mut windows_core::BOOL,
1908    ) -> windows_core::HRESULT,
1909    pub CanGoForward: unsafe extern "system" fn(
1910        *mut core::ffi::c_void,
1911        *mut windows_core::BOOL,
1912    ) -> windows_core::HRESULT,
1913    pub GoBack: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
1914    pub GoForward: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
1915    pub GetDevToolsProtocolEventReceiver: unsafe extern "system" fn(
1916        *mut core::ffi::c_void,
1917        windows_core::PCWSTR,
1918        *mut *mut core::ffi::c_void,
1919    ) -> windows_core::HRESULT,
1920    pub Stop: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
1921    pub add_NewWindowRequested: unsafe extern "system" fn(
1922        *mut core::ffi::c_void,
1923        *mut core::ffi::c_void,
1924        *mut i64,
1925    ) -> windows_core::HRESULT,
1926    pub remove_NewWindowRequested:
1927        unsafe extern "system" fn(*mut core::ffi::c_void, i64) -> windows_core::HRESULT,
1928    pub add_DocumentTitleChanged: unsafe extern "system" fn(
1929        *mut core::ffi::c_void,
1930        *mut core::ffi::c_void,
1931        *mut i64,
1932    ) -> windows_core::HRESULT,
1933    pub remove_DocumentTitleChanged:
1934        unsafe extern "system" fn(*mut core::ffi::c_void, i64) -> windows_core::HRESULT,
1935    pub DocumentTitle: unsafe extern "system" fn(
1936        *mut core::ffi::c_void,
1937        *mut windows_core::PWSTR,
1938    ) -> windows_core::HRESULT,
1939    pub AddHostObjectToScript: unsafe extern "system" fn(
1940        *mut core::ffi::c_void,
1941        windows_core::PCWSTR,
1942        *mut windows::Win32::System::Variant::VARIANT,
1943    ) -> windows_core::HRESULT,
1944    pub RemoveHostObjectFromScript: unsafe extern "system" fn(
1945        *mut core::ffi::c_void,
1946        windows_core::PCWSTR,
1947    ) -> windows_core::HRESULT,
1948    pub OpenDevToolsWindow:
1949        unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
1950    pub add_ContainsFullScreenElementChanged: unsafe extern "system" fn(
1951        *mut core::ffi::c_void,
1952        *mut core::ffi::c_void,
1953        *mut i64,
1954    )
1955        -> windows_core::HRESULT,
1956    pub remove_ContainsFullScreenElementChanged:
1957        unsafe extern "system" fn(*mut core::ffi::c_void, i64) -> windows_core::HRESULT,
1958    pub ContainsFullScreenElement: unsafe extern "system" fn(
1959        *mut core::ffi::c_void,
1960        *mut windows_core::BOOL,
1961    ) -> windows_core::HRESULT,
1962    pub add_WebResourceRequested: unsafe extern "system" fn(
1963        *mut core::ffi::c_void,
1964        *mut core::ffi::c_void,
1965        *mut i64,
1966    ) -> windows_core::HRESULT,
1967    pub remove_WebResourceRequested:
1968        unsafe extern "system" fn(*mut core::ffi::c_void, i64) -> windows_core::HRESULT,
1969    pub AddWebResourceRequestedFilter: unsafe extern "system" fn(
1970        *mut core::ffi::c_void,
1971        windows_core::PCWSTR,
1972        COREWEBVIEW2_WEB_RESOURCE_CONTEXT,
1973    ) -> windows_core::HRESULT,
1974    pub RemoveWebResourceRequestedFilter: unsafe extern "system" fn(
1975        *mut core::ffi::c_void,
1976        windows_core::PCWSTR,
1977        COREWEBVIEW2_WEB_RESOURCE_CONTEXT,
1978    ) -> windows_core::HRESULT,
1979    pub add_WindowCloseRequested: unsafe extern "system" fn(
1980        *mut core::ffi::c_void,
1981        *mut core::ffi::c_void,
1982        *mut i64,
1983    ) -> windows_core::HRESULT,
1984    pub remove_WindowCloseRequested:
1985        unsafe extern "system" fn(*mut core::ffi::c_void, i64) -> windows_core::HRESULT,
1986}
1987pub trait ICoreWebView2_Impl: windows_core::IUnknownImpl {
1988    fn Settings(&self) -> windows_core::Result<ICoreWebView2Settings>;
1989    fn Source(&self, uri: *mut windows_core::PWSTR) -> windows_core::Result<()>;
1990    fn Navigate(&self, uri: &windows_core::PCWSTR) -> windows_core::Result<()>;
1991    fn NavigateToString(&self, htmlcontent: &windows_core::PCWSTR) -> windows_core::Result<()>;
1992    fn add_NavigationStarting(
1993        &self,
1994        eventhandler: windows_core::Ref<ICoreWebView2NavigationStartingEventHandler>,
1995        token: *mut i64,
1996    ) -> windows_core::Result<()>;
1997    fn remove_NavigationStarting(&self, token: i64) -> windows_core::Result<()>;
1998    fn add_ContentLoading(
1999        &self,
2000        eventhandler: windows_core::Ref<ICoreWebView2ContentLoadingEventHandler>,
2001        token: *mut i64,
2002    ) -> windows_core::Result<()>;
2003    fn remove_ContentLoading(&self, token: i64) -> windows_core::Result<()>;
2004    fn add_SourceChanged(
2005        &self,
2006        eventhandler: windows_core::Ref<ICoreWebView2SourceChangedEventHandler>,
2007        token: *mut i64,
2008    ) -> windows_core::Result<()>;
2009    fn remove_SourceChanged(&self, token: i64) -> windows_core::Result<()>;
2010    fn add_HistoryChanged(
2011        &self,
2012        eventhandler: windows_core::Ref<ICoreWebView2HistoryChangedEventHandler>,
2013        token: *mut i64,
2014    ) -> windows_core::Result<()>;
2015    fn remove_HistoryChanged(&self, token: i64) -> windows_core::Result<()>;
2016    fn add_NavigationCompleted(
2017        &self,
2018        eventhandler: windows_core::Ref<ICoreWebView2NavigationCompletedEventHandler>,
2019        token: *mut i64,
2020    ) -> windows_core::Result<()>;
2021    fn remove_NavigationCompleted(&self, token: i64) -> windows_core::Result<()>;
2022    fn add_FrameNavigationStarting(
2023        &self,
2024        eventhandler: windows_core::Ref<ICoreWebView2NavigationStartingEventHandler>,
2025        token: *mut i64,
2026    ) -> windows_core::Result<()>;
2027    fn remove_FrameNavigationStarting(&self, token: i64) -> windows_core::Result<()>;
2028    fn add_FrameNavigationCompleted(
2029        &self,
2030        eventhandler: windows_core::Ref<ICoreWebView2NavigationCompletedEventHandler>,
2031        token: *mut i64,
2032    ) -> windows_core::Result<()>;
2033    fn remove_FrameNavigationCompleted(&self, token: i64) -> windows_core::Result<()>;
2034    fn add_ScriptDialogOpening(
2035        &self,
2036        eventhandler: windows_core::Ref<ICoreWebView2ScriptDialogOpeningEventHandler>,
2037        token: *mut i64,
2038    ) -> windows_core::Result<()>;
2039    fn remove_ScriptDialogOpening(&self, token: i64) -> windows_core::Result<()>;
2040    fn add_PermissionRequested(
2041        &self,
2042        eventhandler: windows_core::Ref<ICoreWebView2PermissionRequestedEventHandler>,
2043        token: *mut i64,
2044    ) -> windows_core::Result<()>;
2045    fn remove_PermissionRequested(&self, token: i64) -> windows_core::Result<()>;
2046    fn add_ProcessFailed(
2047        &self,
2048        eventhandler: windows_core::Ref<ICoreWebView2ProcessFailedEventHandler>,
2049        token: *mut i64,
2050    ) -> windows_core::Result<()>;
2051    fn remove_ProcessFailed(&self, token: i64) -> windows_core::Result<()>;
2052    fn AddScriptToExecuteOnDocumentCreated(
2053        &self,
2054        javascript: &windows_core::PCWSTR,
2055        handler: windows_core::Ref<
2056            ICoreWebView2AddScriptToExecuteOnDocumentCreatedCompletedHandler,
2057        >,
2058    ) -> windows_core::Result<()>;
2059    fn RemoveScriptToExecuteOnDocumentCreated(
2060        &self,
2061        id: &windows_core::PCWSTR,
2062    ) -> windows_core::Result<()>;
2063    fn ExecuteScript(
2064        &self,
2065        javascript: &windows_core::PCWSTR,
2066        handler: windows_core::Ref<ICoreWebView2ExecuteScriptCompletedHandler>,
2067    ) -> windows_core::Result<()>;
2068    fn CapturePreview(
2069        &self,
2070        imageformat: COREWEBVIEW2_CAPTURE_PREVIEW_IMAGE_FORMAT,
2071        imagestream: windows_core::Ref<windows::Win32::System::Com::IStream>,
2072        handler: windows_core::Ref<ICoreWebView2CapturePreviewCompletedHandler>,
2073    ) -> windows_core::Result<()>;
2074    fn Reload(&self) -> windows_core::Result<()>;
2075    fn PostWebMessageAsJson(
2076        &self,
2077        webmessageasjson: &windows_core::PCWSTR,
2078    ) -> windows_core::Result<()>;
2079    fn PostWebMessageAsString(
2080        &self,
2081        webmessageasstring: &windows_core::PCWSTR,
2082    ) -> windows_core::Result<()>;
2083    fn add_WebMessageReceived(
2084        &self,
2085        handler: windows_core::Ref<ICoreWebView2WebMessageReceivedEventHandler>,
2086        token: *mut i64,
2087    ) -> windows_core::Result<()>;
2088    fn remove_WebMessageReceived(&self, token: i64) -> windows_core::Result<()>;
2089    fn CallDevToolsProtocolMethod(
2090        &self,
2091        methodname: &windows_core::PCWSTR,
2092        parametersasjson: &windows_core::PCWSTR,
2093        handler: windows_core::Ref<ICoreWebView2CallDevToolsProtocolMethodCompletedHandler>,
2094    ) -> windows_core::Result<()>;
2095    fn BrowserProcessId(&self, value: *mut u32) -> windows_core::Result<()>;
2096    fn CanGoBack(&self, cangoback: *mut windows_core::BOOL) -> windows_core::Result<()>;
2097    fn CanGoForward(&self, cangoforward: *mut windows_core::BOOL) -> windows_core::Result<()>;
2098    fn GoBack(&self) -> windows_core::Result<()>;
2099    fn GoForward(&self) -> windows_core::Result<()>;
2100    fn GetDevToolsProtocolEventReceiver(
2101        &self,
2102        eventname: &windows_core::PCWSTR,
2103    ) -> windows_core::Result<ICoreWebView2DevToolsProtocolEventReceiver>;
2104    fn Stop(&self) -> windows_core::Result<()>;
2105    fn add_NewWindowRequested(
2106        &self,
2107        eventhandler: windows_core::Ref<ICoreWebView2NewWindowRequestedEventHandler>,
2108        token: *mut i64,
2109    ) -> windows_core::Result<()>;
2110    fn remove_NewWindowRequested(&self, token: i64) -> windows_core::Result<()>;
2111    fn add_DocumentTitleChanged(
2112        &self,
2113        eventhandler: windows_core::Ref<ICoreWebView2DocumentTitleChangedEventHandler>,
2114        token: *mut i64,
2115    ) -> windows_core::Result<()>;
2116    fn remove_DocumentTitleChanged(&self, token: i64) -> windows_core::Result<()>;
2117    fn DocumentTitle(&self, title: *mut windows_core::PWSTR) -> windows_core::Result<()>;
2118    fn AddHostObjectToScript(
2119        &self,
2120        name: &windows_core::PCWSTR,
2121        object: *mut windows::Win32::System::Variant::VARIANT,
2122    ) -> windows_core::Result<()>;
2123    fn RemoveHostObjectFromScript(&self, name: &windows_core::PCWSTR) -> windows_core::Result<()>;
2124    fn OpenDevToolsWindow(&self) -> windows_core::Result<()>;
2125    fn add_ContainsFullScreenElementChanged(
2126        &self,
2127        eventhandler: windows_core::Ref<ICoreWebView2ContainsFullScreenElementChangedEventHandler>,
2128        token: *mut i64,
2129    ) -> windows_core::Result<()>;
2130    fn remove_ContainsFullScreenElementChanged(&self, token: i64) -> windows_core::Result<()>;
2131    fn ContainsFullScreenElement(
2132        &self,
2133        containsfullscreenelement: *mut windows_core::BOOL,
2134    ) -> windows_core::Result<()>;
2135    fn add_WebResourceRequested(
2136        &self,
2137        eventhandler: windows_core::Ref<ICoreWebView2WebResourceRequestedEventHandler>,
2138        token: *mut i64,
2139    ) -> windows_core::Result<()>;
2140    fn remove_WebResourceRequested(&self, token: i64) -> windows_core::Result<()>;
2141    fn AddWebResourceRequestedFilter(
2142        &self,
2143        uri: &windows_core::PCWSTR,
2144        resourcecontext: COREWEBVIEW2_WEB_RESOURCE_CONTEXT,
2145    ) -> windows_core::Result<()>;
2146    fn RemoveWebResourceRequestedFilter(
2147        &self,
2148        uri: &windows_core::PCWSTR,
2149        resourcecontext: COREWEBVIEW2_WEB_RESOURCE_CONTEXT,
2150    ) -> windows_core::Result<()>;
2151    fn add_WindowCloseRequested(
2152        &self,
2153        eventhandler: windows_core::Ref<ICoreWebView2WindowCloseRequestedEventHandler>,
2154        token: *mut i64,
2155    ) -> windows_core::Result<()>;
2156    fn remove_WindowCloseRequested(&self, token: i64) -> windows_core::Result<()>;
2157}
2158impl ICoreWebView2_Vtbl {
2159    pub const fn new<Identity: ICoreWebView2_Impl, const OFFSET: isize>() -> Self {
2160        unsafe extern "system" fn Settings<Identity: ICoreWebView2_Impl, const OFFSET: isize>(
2161            this: *mut core::ffi::c_void,
2162            settings: *mut *mut core::ffi::c_void,
2163        ) -> windows_core::HRESULT {
2164            unsafe {
2165                let this: &Identity =
2166                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
2167                match ICoreWebView2_Impl::Settings(this) {
2168                    Ok(ok__) => {
2169                        settings.write(core::mem::transmute(ok__));
2170                        windows_core::HRESULT(0)
2171                    }
2172                    Err(err) => err.into(),
2173                }
2174            }
2175        }
2176        unsafe extern "system" fn Source<Identity: ICoreWebView2_Impl, const OFFSET: isize>(
2177            this: *mut core::ffi::c_void,
2178            uri: *mut windows_core::PWSTR,
2179        ) -> windows_core::HRESULT {
2180            unsafe {
2181                let this: &Identity =
2182                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
2183                ICoreWebView2_Impl::Source(this, core::mem::transmute_copy(&uri)).into()
2184            }
2185        }
2186        unsafe extern "system" fn Navigate<Identity: ICoreWebView2_Impl, const OFFSET: isize>(
2187            this: *mut core::ffi::c_void,
2188            uri: windows_core::PCWSTR,
2189        ) -> windows_core::HRESULT {
2190            unsafe {
2191                let this: &Identity =
2192                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
2193                ICoreWebView2_Impl::Navigate(this, core::mem::transmute(&uri)).into()
2194            }
2195        }
2196        unsafe extern "system" fn NavigateToString<
2197            Identity: ICoreWebView2_Impl,
2198            const OFFSET: isize,
2199        >(
2200            this: *mut core::ffi::c_void,
2201            htmlcontent: windows_core::PCWSTR,
2202        ) -> windows_core::HRESULT {
2203            unsafe {
2204                let this: &Identity =
2205                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
2206                ICoreWebView2_Impl::NavigateToString(this, core::mem::transmute(&htmlcontent))
2207                    .into()
2208            }
2209        }
2210        unsafe extern "system" fn add_NavigationStarting<
2211            Identity: ICoreWebView2_Impl,
2212            const OFFSET: isize,
2213        >(
2214            this: *mut core::ffi::c_void,
2215            eventhandler: *mut core::ffi::c_void,
2216            token: *mut i64,
2217        ) -> windows_core::HRESULT {
2218            unsafe {
2219                let this: &Identity =
2220                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
2221                ICoreWebView2_Impl::add_NavigationStarting(
2222                    this,
2223                    core::mem::transmute_copy(&eventhandler),
2224                    core::mem::transmute_copy(&token),
2225                )
2226                .into()
2227            }
2228        }
2229        unsafe extern "system" fn remove_NavigationStarting<
2230            Identity: ICoreWebView2_Impl,
2231            const OFFSET: isize,
2232        >(
2233            this: *mut core::ffi::c_void,
2234            token: i64,
2235        ) -> windows_core::HRESULT {
2236            unsafe {
2237                let this: &Identity =
2238                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
2239                ICoreWebView2_Impl::remove_NavigationStarting(
2240                    this,
2241                    core::mem::transmute_copy(&token),
2242                )
2243                .into()
2244            }
2245        }
2246        unsafe extern "system" fn add_ContentLoading<
2247            Identity: ICoreWebView2_Impl,
2248            const OFFSET: isize,
2249        >(
2250            this: *mut core::ffi::c_void,
2251            eventhandler: *mut core::ffi::c_void,
2252            token: *mut i64,
2253        ) -> windows_core::HRESULT {
2254            unsafe {
2255                let this: &Identity =
2256                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
2257                ICoreWebView2_Impl::add_ContentLoading(
2258                    this,
2259                    core::mem::transmute_copy(&eventhandler),
2260                    core::mem::transmute_copy(&token),
2261                )
2262                .into()
2263            }
2264        }
2265        unsafe extern "system" fn remove_ContentLoading<
2266            Identity: ICoreWebView2_Impl,
2267            const OFFSET: isize,
2268        >(
2269            this: *mut core::ffi::c_void,
2270            token: i64,
2271        ) -> windows_core::HRESULT {
2272            unsafe {
2273                let this: &Identity =
2274                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
2275                ICoreWebView2_Impl::remove_ContentLoading(this, core::mem::transmute_copy(&token))
2276                    .into()
2277            }
2278        }
2279        unsafe extern "system" fn add_SourceChanged<
2280            Identity: ICoreWebView2_Impl,
2281            const OFFSET: isize,
2282        >(
2283            this: *mut core::ffi::c_void,
2284            eventhandler: *mut core::ffi::c_void,
2285            token: *mut i64,
2286        ) -> windows_core::HRESULT {
2287            unsafe {
2288                let this: &Identity =
2289                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
2290                ICoreWebView2_Impl::add_SourceChanged(
2291                    this,
2292                    core::mem::transmute_copy(&eventhandler),
2293                    core::mem::transmute_copy(&token),
2294                )
2295                .into()
2296            }
2297        }
2298        unsafe extern "system" fn remove_SourceChanged<
2299            Identity: ICoreWebView2_Impl,
2300            const OFFSET: isize,
2301        >(
2302            this: *mut core::ffi::c_void,
2303            token: i64,
2304        ) -> windows_core::HRESULT {
2305            unsafe {
2306                let this: &Identity =
2307                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
2308                ICoreWebView2_Impl::remove_SourceChanged(this, core::mem::transmute_copy(&token))
2309                    .into()
2310            }
2311        }
2312        unsafe extern "system" fn add_HistoryChanged<
2313            Identity: ICoreWebView2_Impl,
2314            const OFFSET: isize,
2315        >(
2316            this: *mut core::ffi::c_void,
2317            eventhandler: *mut core::ffi::c_void,
2318            token: *mut i64,
2319        ) -> windows_core::HRESULT {
2320            unsafe {
2321                let this: &Identity =
2322                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
2323                ICoreWebView2_Impl::add_HistoryChanged(
2324                    this,
2325                    core::mem::transmute_copy(&eventhandler),
2326                    core::mem::transmute_copy(&token),
2327                )
2328                .into()
2329            }
2330        }
2331        unsafe extern "system" fn remove_HistoryChanged<
2332            Identity: ICoreWebView2_Impl,
2333            const OFFSET: isize,
2334        >(
2335            this: *mut core::ffi::c_void,
2336            token: i64,
2337        ) -> windows_core::HRESULT {
2338            unsafe {
2339                let this: &Identity =
2340                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
2341                ICoreWebView2_Impl::remove_HistoryChanged(this, core::mem::transmute_copy(&token))
2342                    .into()
2343            }
2344        }
2345        unsafe extern "system" fn add_NavigationCompleted<
2346            Identity: ICoreWebView2_Impl,
2347            const OFFSET: isize,
2348        >(
2349            this: *mut core::ffi::c_void,
2350            eventhandler: *mut core::ffi::c_void,
2351            token: *mut i64,
2352        ) -> windows_core::HRESULT {
2353            unsafe {
2354                let this: &Identity =
2355                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
2356                ICoreWebView2_Impl::add_NavigationCompleted(
2357                    this,
2358                    core::mem::transmute_copy(&eventhandler),
2359                    core::mem::transmute_copy(&token),
2360                )
2361                .into()
2362            }
2363        }
2364        unsafe extern "system" fn remove_NavigationCompleted<
2365            Identity: ICoreWebView2_Impl,
2366            const OFFSET: isize,
2367        >(
2368            this: *mut core::ffi::c_void,
2369            token: i64,
2370        ) -> windows_core::HRESULT {
2371            unsafe {
2372                let this: &Identity =
2373                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
2374                ICoreWebView2_Impl::remove_NavigationCompleted(
2375                    this,
2376                    core::mem::transmute_copy(&token),
2377                )
2378                .into()
2379            }
2380        }
2381        unsafe extern "system" fn add_FrameNavigationStarting<
2382            Identity: ICoreWebView2_Impl,
2383            const OFFSET: isize,
2384        >(
2385            this: *mut core::ffi::c_void,
2386            eventhandler: *mut core::ffi::c_void,
2387            token: *mut i64,
2388        ) -> windows_core::HRESULT {
2389            unsafe {
2390                let this: &Identity =
2391                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
2392                ICoreWebView2_Impl::add_FrameNavigationStarting(
2393                    this,
2394                    core::mem::transmute_copy(&eventhandler),
2395                    core::mem::transmute_copy(&token),
2396                )
2397                .into()
2398            }
2399        }
2400        unsafe extern "system" fn remove_FrameNavigationStarting<
2401            Identity: ICoreWebView2_Impl,
2402            const OFFSET: isize,
2403        >(
2404            this: *mut core::ffi::c_void,
2405            token: i64,
2406        ) -> windows_core::HRESULT {
2407            unsafe {
2408                let this: &Identity =
2409                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
2410                ICoreWebView2_Impl::remove_FrameNavigationStarting(
2411                    this,
2412                    core::mem::transmute_copy(&token),
2413                )
2414                .into()
2415            }
2416        }
2417        unsafe extern "system" fn add_FrameNavigationCompleted<
2418            Identity: ICoreWebView2_Impl,
2419            const OFFSET: isize,
2420        >(
2421            this: *mut core::ffi::c_void,
2422            eventhandler: *mut core::ffi::c_void,
2423            token: *mut i64,
2424        ) -> windows_core::HRESULT {
2425            unsafe {
2426                let this: &Identity =
2427                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
2428                ICoreWebView2_Impl::add_FrameNavigationCompleted(
2429                    this,
2430                    core::mem::transmute_copy(&eventhandler),
2431                    core::mem::transmute_copy(&token),
2432                )
2433                .into()
2434            }
2435        }
2436        unsafe extern "system" fn remove_FrameNavigationCompleted<
2437            Identity: ICoreWebView2_Impl,
2438            const OFFSET: isize,
2439        >(
2440            this: *mut core::ffi::c_void,
2441            token: i64,
2442        ) -> windows_core::HRESULT {
2443            unsafe {
2444                let this: &Identity =
2445                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
2446                ICoreWebView2_Impl::remove_FrameNavigationCompleted(
2447                    this,
2448                    core::mem::transmute_copy(&token),
2449                )
2450                .into()
2451            }
2452        }
2453        unsafe extern "system" fn add_ScriptDialogOpening<
2454            Identity: ICoreWebView2_Impl,
2455            const OFFSET: isize,
2456        >(
2457            this: *mut core::ffi::c_void,
2458            eventhandler: *mut core::ffi::c_void,
2459            token: *mut i64,
2460        ) -> windows_core::HRESULT {
2461            unsafe {
2462                let this: &Identity =
2463                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
2464                ICoreWebView2_Impl::add_ScriptDialogOpening(
2465                    this,
2466                    core::mem::transmute_copy(&eventhandler),
2467                    core::mem::transmute_copy(&token),
2468                )
2469                .into()
2470            }
2471        }
2472        unsafe extern "system" fn remove_ScriptDialogOpening<
2473            Identity: ICoreWebView2_Impl,
2474            const OFFSET: isize,
2475        >(
2476            this: *mut core::ffi::c_void,
2477            token: i64,
2478        ) -> windows_core::HRESULT {
2479            unsafe {
2480                let this: &Identity =
2481                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
2482                ICoreWebView2_Impl::remove_ScriptDialogOpening(
2483                    this,
2484                    core::mem::transmute_copy(&token),
2485                )
2486                .into()
2487            }
2488        }
2489        unsafe extern "system" fn add_PermissionRequested<
2490            Identity: ICoreWebView2_Impl,
2491            const OFFSET: isize,
2492        >(
2493            this: *mut core::ffi::c_void,
2494            eventhandler: *mut core::ffi::c_void,
2495            token: *mut i64,
2496        ) -> windows_core::HRESULT {
2497            unsafe {
2498                let this: &Identity =
2499                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
2500                ICoreWebView2_Impl::add_PermissionRequested(
2501                    this,
2502                    core::mem::transmute_copy(&eventhandler),
2503                    core::mem::transmute_copy(&token),
2504                )
2505                .into()
2506            }
2507        }
2508        unsafe extern "system" fn remove_PermissionRequested<
2509            Identity: ICoreWebView2_Impl,
2510            const OFFSET: isize,
2511        >(
2512            this: *mut core::ffi::c_void,
2513            token: i64,
2514        ) -> windows_core::HRESULT {
2515            unsafe {
2516                let this: &Identity =
2517                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
2518                ICoreWebView2_Impl::remove_PermissionRequested(
2519                    this,
2520                    core::mem::transmute_copy(&token),
2521                )
2522                .into()
2523            }
2524        }
2525        unsafe extern "system" fn add_ProcessFailed<
2526            Identity: ICoreWebView2_Impl,
2527            const OFFSET: isize,
2528        >(
2529            this: *mut core::ffi::c_void,
2530            eventhandler: *mut core::ffi::c_void,
2531            token: *mut i64,
2532        ) -> windows_core::HRESULT {
2533            unsafe {
2534                let this: &Identity =
2535                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
2536                ICoreWebView2_Impl::add_ProcessFailed(
2537                    this,
2538                    core::mem::transmute_copy(&eventhandler),
2539                    core::mem::transmute_copy(&token),
2540                )
2541                .into()
2542            }
2543        }
2544        unsafe extern "system" fn remove_ProcessFailed<
2545            Identity: ICoreWebView2_Impl,
2546            const OFFSET: isize,
2547        >(
2548            this: *mut core::ffi::c_void,
2549            token: i64,
2550        ) -> windows_core::HRESULT {
2551            unsafe {
2552                let this: &Identity =
2553                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
2554                ICoreWebView2_Impl::remove_ProcessFailed(this, core::mem::transmute_copy(&token))
2555                    .into()
2556            }
2557        }
2558        unsafe extern "system" fn AddScriptToExecuteOnDocumentCreated<
2559            Identity: ICoreWebView2_Impl,
2560            const OFFSET: isize,
2561        >(
2562            this: *mut core::ffi::c_void,
2563            javascript: windows_core::PCWSTR,
2564            handler: *mut core::ffi::c_void,
2565        ) -> windows_core::HRESULT {
2566            unsafe {
2567                let this: &Identity =
2568                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
2569                ICoreWebView2_Impl::AddScriptToExecuteOnDocumentCreated(
2570                    this,
2571                    core::mem::transmute(&javascript),
2572                    core::mem::transmute_copy(&handler),
2573                )
2574                .into()
2575            }
2576        }
2577        unsafe extern "system" fn RemoveScriptToExecuteOnDocumentCreated<
2578            Identity: ICoreWebView2_Impl,
2579            const OFFSET: isize,
2580        >(
2581            this: *mut core::ffi::c_void,
2582            id: windows_core::PCWSTR,
2583        ) -> windows_core::HRESULT {
2584            unsafe {
2585                let this: &Identity =
2586                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
2587                ICoreWebView2_Impl::RemoveScriptToExecuteOnDocumentCreated(
2588                    this,
2589                    core::mem::transmute(&id),
2590                )
2591                .into()
2592            }
2593        }
2594        unsafe extern "system" fn ExecuteScript<
2595            Identity: ICoreWebView2_Impl,
2596            const OFFSET: isize,
2597        >(
2598            this: *mut core::ffi::c_void,
2599            javascript: windows_core::PCWSTR,
2600            handler: *mut core::ffi::c_void,
2601        ) -> windows_core::HRESULT {
2602            unsafe {
2603                let this: &Identity =
2604                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
2605                ICoreWebView2_Impl::ExecuteScript(
2606                    this,
2607                    core::mem::transmute(&javascript),
2608                    core::mem::transmute_copy(&handler),
2609                )
2610                .into()
2611            }
2612        }
2613        unsafe extern "system" fn CapturePreview<
2614            Identity: ICoreWebView2_Impl,
2615            const OFFSET: isize,
2616        >(
2617            this: *mut core::ffi::c_void,
2618            imageformat: COREWEBVIEW2_CAPTURE_PREVIEW_IMAGE_FORMAT,
2619            imagestream: *mut core::ffi::c_void,
2620            handler: *mut core::ffi::c_void,
2621        ) -> windows_core::HRESULT {
2622            unsafe {
2623                let this: &Identity =
2624                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
2625                ICoreWebView2_Impl::CapturePreview(
2626                    this,
2627                    core::mem::transmute_copy(&imageformat),
2628                    core::mem::transmute_copy(&imagestream),
2629                    core::mem::transmute_copy(&handler),
2630                )
2631                .into()
2632            }
2633        }
2634        unsafe extern "system" fn Reload<Identity: ICoreWebView2_Impl, const OFFSET: isize>(
2635            this: *mut core::ffi::c_void,
2636        ) -> windows_core::HRESULT {
2637            unsafe {
2638                let this: &Identity =
2639                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
2640                ICoreWebView2_Impl::Reload(this).into()
2641            }
2642        }
2643        unsafe extern "system" fn PostWebMessageAsJson<
2644            Identity: ICoreWebView2_Impl,
2645            const OFFSET: isize,
2646        >(
2647            this: *mut core::ffi::c_void,
2648            webmessageasjson: windows_core::PCWSTR,
2649        ) -> windows_core::HRESULT {
2650            unsafe {
2651                let this: &Identity =
2652                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
2653                ICoreWebView2_Impl::PostWebMessageAsJson(
2654                    this,
2655                    core::mem::transmute(&webmessageasjson),
2656                )
2657                .into()
2658            }
2659        }
2660        unsafe extern "system" fn PostWebMessageAsString<
2661            Identity: ICoreWebView2_Impl,
2662            const OFFSET: isize,
2663        >(
2664            this: *mut core::ffi::c_void,
2665            webmessageasstring: windows_core::PCWSTR,
2666        ) -> windows_core::HRESULT {
2667            unsafe {
2668                let this: &Identity =
2669                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
2670                ICoreWebView2_Impl::PostWebMessageAsString(
2671                    this,
2672                    core::mem::transmute(&webmessageasstring),
2673                )
2674                .into()
2675            }
2676        }
2677        unsafe extern "system" fn add_WebMessageReceived<
2678            Identity: ICoreWebView2_Impl,
2679            const OFFSET: isize,
2680        >(
2681            this: *mut core::ffi::c_void,
2682            handler: *mut core::ffi::c_void,
2683            token: *mut i64,
2684        ) -> windows_core::HRESULT {
2685            unsafe {
2686                let this: &Identity =
2687                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
2688                ICoreWebView2_Impl::add_WebMessageReceived(
2689                    this,
2690                    core::mem::transmute_copy(&handler),
2691                    core::mem::transmute_copy(&token),
2692                )
2693                .into()
2694            }
2695        }
2696        unsafe extern "system" fn remove_WebMessageReceived<
2697            Identity: ICoreWebView2_Impl,
2698            const OFFSET: isize,
2699        >(
2700            this: *mut core::ffi::c_void,
2701            token: i64,
2702        ) -> windows_core::HRESULT {
2703            unsafe {
2704                let this: &Identity =
2705                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
2706                ICoreWebView2_Impl::remove_WebMessageReceived(
2707                    this,
2708                    core::mem::transmute_copy(&token),
2709                )
2710                .into()
2711            }
2712        }
2713        unsafe extern "system" fn CallDevToolsProtocolMethod<
2714            Identity: ICoreWebView2_Impl,
2715            const OFFSET: isize,
2716        >(
2717            this: *mut core::ffi::c_void,
2718            methodname: windows_core::PCWSTR,
2719            parametersasjson: windows_core::PCWSTR,
2720            handler: *mut core::ffi::c_void,
2721        ) -> windows_core::HRESULT {
2722            unsafe {
2723                let this: &Identity =
2724                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
2725                ICoreWebView2_Impl::CallDevToolsProtocolMethod(
2726                    this,
2727                    core::mem::transmute(&methodname),
2728                    core::mem::transmute(&parametersasjson),
2729                    core::mem::transmute_copy(&handler),
2730                )
2731                .into()
2732            }
2733        }
2734        unsafe extern "system" fn BrowserProcessId<
2735            Identity: ICoreWebView2_Impl,
2736            const OFFSET: isize,
2737        >(
2738            this: *mut core::ffi::c_void,
2739            value: *mut u32,
2740        ) -> windows_core::HRESULT {
2741            unsafe {
2742                let this: &Identity =
2743                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
2744                ICoreWebView2_Impl::BrowserProcessId(this, core::mem::transmute_copy(&value)).into()
2745            }
2746        }
2747        unsafe extern "system" fn CanGoBack<Identity: ICoreWebView2_Impl, const OFFSET: isize>(
2748            this: *mut core::ffi::c_void,
2749            cangoback: *mut windows_core::BOOL,
2750        ) -> windows_core::HRESULT {
2751            unsafe {
2752                let this: &Identity =
2753                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
2754                ICoreWebView2_Impl::CanGoBack(this, core::mem::transmute_copy(&cangoback)).into()
2755            }
2756        }
2757        unsafe extern "system" fn CanGoForward<
2758            Identity: ICoreWebView2_Impl,
2759            const OFFSET: isize,
2760        >(
2761            this: *mut core::ffi::c_void,
2762            cangoforward: *mut windows_core::BOOL,
2763        ) -> windows_core::HRESULT {
2764            unsafe {
2765                let this: &Identity =
2766                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
2767                ICoreWebView2_Impl::CanGoForward(this, core::mem::transmute_copy(&cangoforward))
2768                    .into()
2769            }
2770        }
2771        unsafe extern "system" fn GoBack<Identity: ICoreWebView2_Impl, const OFFSET: isize>(
2772            this: *mut core::ffi::c_void,
2773        ) -> windows_core::HRESULT {
2774            unsafe {
2775                let this: &Identity =
2776                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
2777                ICoreWebView2_Impl::GoBack(this).into()
2778            }
2779        }
2780        unsafe extern "system" fn GoForward<Identity: ICoreWebView2_Impl, const OFFSET: isize>(
2781            this: *mut core::ffi::c_void,
2782        ) -> windows_core::HRESULT {
2783            unsafe {
2784                let this: &Identity =
2785                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
2786                ICoreWebView2_Impl::GoForward(this).into()
2787            }
2788        }
2789        unsafe extern "system" fn GetDevToolsProtocolEventReceiver<
2790            Identity: ICoreWebView2_Impl,
2791            const OFFSET: isize,
2792        >(
2793            this: *mut core::ffi::c_void,
2794            eventname: windows_core::PCWSTR,
2795            receiver: *mut *mut core::ffi::c_void,
2796        ) -> windows_core::HRESULT {
2797            unsafe {
2798                let this: &Identity =
2799                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
2800                match ICoreWebView2_Impl::GetDevToolsProtocolEventReceiver(
2801                    this,
2802                    core::mem::transmute(&eventname),
2803                ) {
2804                    Ok(ok__) => {
2805                        receiver.write(core::mem::transmute(ok__));
2806                        windows_core::HRESULT(0)
2807                    }
2808                    Err(err) => err.into(),
2809                }
2810            }
2811        }
2812        unsafe extern "system" fn Stop<Identity: ICoreWebView2_Impl, const OFFSET: isize>(
2813            this: *mut core::ffi::c_void,
2814        ) -> windows_core::HRESULT {
2815            unsafe {
2816                let this: &Identity =
2817                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
2818                ICoreWebView2_Impl::Stop(this).into()
2819            }
2820        }
2821        unsafe extern "system" fn add_NewWindowRequested<
2822            Identity: ICoreWebView2_Impl,
2823            const OFFSET: isize,
2824        >(
2825            this: *mut core::ffi::c_void,
2826            eventhandler: *mut core::ffi::c_void,
2827            token: *mut i64,
2828        ) -> windows_core::HRESULT {
2829            unsafe {
2830                let this: &Identity =
2831                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
2832                ICoreWebView2_Impl::add_NewWindowRequested(
2833                    this,
2834                    core::mem::transmute_copy(&eventhandler),
2835                    core::mem::transmute_copy(&token),
2836                )
2837                .into()
2838            }
2839        }
2840        unsafe extern "system" fn remove_NewWindowRequested<
2841            Identity: ICoreWebView2_Impl,
2842            const OFFSET: isize,
2843        >(
2844            this: *mut core::ffi::c_void,
2845            token: i64,
2846        ) -> windows_core::HRESULT {
2847            unsafe {
2848                let this: &Identity =
2849                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
2850                ICoreWebView2_Impl::remove_NewWindowRequested(
2851                    this,
2852                    core::mem::transmute_copy(&token),
2853                )
2854                .into()
2855            }
2856        }
2857        unsafe extern "system" fn add_DocumentTitleChanged<
2858            Identity: ICoreWebView2_Impl,
2859            const OFFSET: isize,
2860        >(
2861            this: *mut core::ffi::c_void,
2862            eventhandler: *mut core::ffi::c_void,
2863            token: *mut i64,
2864        ) -> windows_core::HRESULT {
2865            unsafe {
2866                let this: &Identity =
2867                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
2868                ICoreWebView2_Impl::add_DocumentTitleChanged(
2869                    this,
2870                    core::mem::transmute_copy(&eventhandler),
2871                    core::mem::transmute_copy(&token),
2872                )
2873                .into()
2874            }
2875        }
2876        unsafe extern "system" fn remove_DocumentTitleChanged<
2877            Identity: ICoreWebView2_Impl,
2878            const OFFSET: isize,
2879        >(
2880            this: *mut core::ffi::c_void,
2881            token: i64,
2882        ) -> windows_core::HRESULT {
2883            unsafe {
2884                let this: &Identity =
2885                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
2886                ICoreWebView2_Impl::remove_DocumentTitleChanged(
2887                    this,
2888                    core::mem::transmute_copy(&token),
2889                )
2890                .into()
2891            }
2892        }
2893        unsafe extern "system" fn DocumentTitle<
2894            Identity: ICoreWebView2_Impl,
2895            const OFFSET: isize,
2896        >(
2897            this: *mut core::ffi::c_void,
2898            title: *mut windows_core::PWSTR,
2899        ) -> windows_core::HRESULT {
2900            unsafe {
2901                let this: &Identity =
2902                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
2903                ICoreWebView2_Impl::DocumentTitle(this, core::mem::transmute_copy(&title)).into()
2904            }
2905        }
2906        unsafe extern "system" fn AddHostObjectToScript<
2907            Identity: ICoreWebView2_Impl,
2908            const OFFSET: isize,
2909        >(
2910            this: *mut core::ffi::c_void,
2911            name: windows_core::PCWSTR,
2912            object: *mut windows::Win32::System::Variant::VARIANT,
2913        ) -> windows_core::HRESULT {
2914            unsafe {
2915                let this: &Identity =
2916                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
2917                ICoreWebView2_Impl::AddHostObjectToScript(
2918                    this,
2919                    core::mem::transmute(&name),
2920                    core::mem::transmute_copy(&object),
2921                )
2922                .into()
2923            }
2924        }
2925        unsafe extern "system" fn RemoveHostObjectFromScript<
2926            Identity: ICoreWebView2_Impl,
2927            const OFFSET: isize,
2928        >(
2929            this: *mut core::ffi::c_void,
2930            name: windows_core::PCWSTR,
2931        ) -> windows_core::HRESULT {
2932            unsafe {
2933                let this: &Identity =
2934                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
2935                ICoreWebView2_Impl::RemoveHostObjectFromScript(this, core::mem::transmute(&name))
2936                    .into()
2937            }
2938        }
2939        unsafe extern "system" fn OpenDevToolsWindow<
2940            Identity: ICoreWebView2_Impl,
2941            const OFFSET: isize,
2942        >(
2943            this: *mut core::ffi::c_void,
2944        ) -> windows_core::HRESULT {
2945            unsafe {
2946                let this: &Identity =
2947                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
2948                ICoreWebView2_Impl::OpenDevToolsWindow(this).into()
2949            }
2950        }
2951        unsafe extern "system" fn add_ContainsFullScreenElementChanged<
2952            Identity: ICoreWebView2_Impl,
2953            const OFFSET: isize,
2954        >(
2955            this: *mut core::ffi::c_void,
2956            eventhandler: *mut core::ffi::c_void,
2957            token: *mut i64,
2958        ) -> windows_core::HRESULT {
2959            unsafe {
2960                let this: &Identity =
2961                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
2962                ICoreWebView2_Impl::add_ContainsFullScreenElementChanged(
2963                    this,
2964                    core::mem::transmute_copy(&eventhandler),
2965                    core::mem::transmute_copy(&token),
2966                )
2967                .into()
2968            }
2969        }
2970        unsafe extern "system" fn remove_ContainsFullScreenElementChanged<
2971            Identity: ICoreWebView2_Impl,
2972            const OFFSET: isize,
2973        >(
2974            this: *mut core::ffi::c_void,
2975            token: i64,
2976        ) -> windows_core::HRESULT {
2977            unsafe {
2978                let this: &Identity =
2979                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
2980                ICoreWebView2_Impl::remove_ContainsFullScreenElementChanged(
2981                    this,
2982                    core::mem::transmute_copy(&token),
2983                )
2984                .into()
2985            }
2986        }
2987        unsafe extern "system" fn ContainsFullScreenElement<
2988            Identity: ICoreWebView2_Impl,
2989            const OFFSET: isize,
2990        >(
2991            this: *mut core::ffi::c_void,
2992            containsfullscreenelement: *mut windows_core::BOOL,
2993        ) -> windows_core::HRESULT {
2994            unsafe {
2995                let this: &Identity =
2996                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
2997                ICoreWebView2_Impl::ContainsFullScreenElement(
2998                    this,
2999                    core::mem::transmute_copy(&containsfullscreenelement),
3000                )
3001                .into()
3002            }
3003        }
3004        unsafe extern "system" fn add_WebResourceRequested<
3005            Identity: ICoreWebView2_Impl,
3006            const OFFSET: isize,
3007        >(
3008            this: *mut core::ffi::c_void,
3009            eventhandler: *mut core::ffi::c_void,
3010            token: *mut i64,
3011        ) -> windows_core::HRESULT {
3012            unsafe {
3013                let this: &Identity =
3014                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
3015                ICoreWebView2_Impl::add_WebResourceRequested(
3016                    this,
3017                    core::mem::transmute_copy(&eventhandler),
3018                    core::mem::transmute_copy(&token),
3019                )
3020                .into()
3021            }
3022        }
3023        unsafe extern "system" fn remove_WebResourceRequested<
3024            Identity: ICoreWebView2_Impl,
3025            const OFFSET: isize,
3026        >(
3027            this: *mut core::ffi::c_void,
3028            token: i64,
3029        ) -> windows_core::HRESULT {
3030            unsafe {
3031                let this: &Identity =
3032                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
3033                ICoreWebView2_Impl::remove_WebResourceRequested(
3034                    this,
3035                    core::mem::transmute_copy(&token),
3036                )
3037                .into()
3038            }
3039        }
3040        unsafe extern "system" fn AddWebResourceRequestedFilter<
3041            Identity: ICoreWebView2_Impl,
3042            const OFFSET: isize,
3043        >(
3044            this: *mut core::ffi::c_void,
3045            uri: windows_core::PCWSTR,
3046            resourcecontext: COREWEBVIEW2_WEB_RESOURCE_CONTEXT,
3047        ) -> windows_core::HRESULT {
3048            unsafe {
3049                let this: &Identity =
3050                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
3051                ICoreWebView2_Impl::AddWebResourceRequestedFilter(
3052                    this,
3053                    core::mem::transmute(&uri),
3054                    core::mem::transmute_copy(&resourcecontext),
3055                )
3056                .into()
3057            }
3058        }
3059        unsafe extern "system" fn RemoveWebResourceRequestedFilter<
3060            Identity: ICoreWebView2_Impl,
3061            const OFFSET: isize,
3062        >(
3063            this: *mut core::ffi::c_void,
3064            uri: windows_core::PCWSTR,
3065            resourcecontext: COREWEBVIEW2_WEB_RESOURCE_CONTEXT,
3066        ) -> windows_core::HRESULT {
3067            unsafe {
3068                let this: &Identity =
3069                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
3070                ICoreWebView2_Impl::RemoveWebResourceRequestedFilter(
3071                    this,
3072                    core::mem::transmute(&uri),
3073                    core::mem::transmute_copy(&resourcecontext),
3074                )
3075                .into()
3076            }
3077        }
3078        unsafe extern "system" fn add_WindowCloseRequested<
3079            Identity: ICoreWebView2_Impl,
3080            const OFFSET: isize,
3081        >(
3082            this: *mut core::ffi::c_void,
3083            eventhandler: *mut core::ffi::c_void,
3084            token: *mut i64,
3085        ) -> windows_core::HRESULT {
3086            unsafe {
3087                let this: &Identity =
3088                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
3089                ICoreWebView2_Impl::add_WindowCloseRequested(
3090                    this,
3091                    core::mem::transmute_copy(&eventhandler),
3092                    core::mem::transmute_copy(&token),
3093                )
3094                .into()
3095            }
3096        }
3097        unsafe extern "system" fn remove_WindowCloseRequested<
3098            Identity: ICoreWebView2_Impl,
3099            const OFFSET: isize,
3100        >(
3101            this: *mut core::ffi::c_void,
3102            token: i64,
3103        ) -> windows_core::HRESULT {
3104            unsafe {
3105                let this: &Identity =
3106                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
3107                ICoreWebView2_Impl::remove_WindowCloseRequested(
3108                    this,
3109                    core::mem::transmute_copy(&token),
3110                )
3111                .into()
3112            }
3113        }
3114        Self {
3115            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
3116            Settings: Settings::<Identity, OFFSET>,
3117            Source: Source::<Identity, OFFSET>,
3118            Navigate: Navigate::<Identity, OFFSET>,
3119            NavigateToString: NavigateToString::<Identity, OFFSET>,
3120            add_NavigationStarting: add_NavigationStarting::<Identity, OFFSET>,
3121            remove_NavigationStarting: remove_NavigationStarting::<Identity, OFFSET>,
3122            add_ContentLoading: add_ContentLoading::<Identity, OFFSET>,
3123            remove_ContentLoading: remove_ContentLoading::<Identity, OFFSET>,
3124            add_SourceChanged: add_SourceChanged::<Identity, OFFSET>,
3125            remove_SourceChanged: remove_SourceChanged::<Identity, OFFSET>,
3126            add_HistoryChanged: add_HistoryChanged::<Identity, OFFSET>,
3127            remove_HistoryChanged: remove_HistoryChanged::<Identity, OFFSET>,
3128            add_NavigationCompleted: add_NavigationCompleted::<Identity, OFFSET>,
3129            remove_NavigationCompleted: remove_NavigationCompleted::<Identity, OFFSET>,
3130            add_FrameNavigationStarting: add_FrameNavigationStarting::<Identity, OFFSET>,
3131            remove_FrameNavigationStarting: remove_FrameNavigationStarting::<Identity, OFFSET>,
3132            add_FrameNavigationCompleted: add_FrameNavigationCompleted::<Identity, OFFSET>,
3133            remove_FrameNavigationCompleted: remove_FrameNavigationCompleted::<Identity, OFFSET>,
3134            add_ScriptDialogOpening: add_ScriptDialogOpening::<Identity, OFFSET>,
3135            remove_ScriptDialogOpening: remove_ScriptDialogOpening::<Identity, OFFSET>,
3136            add_PermissionRequested: add_PermissionRequested::<Identity, OFFSET>,
3137            remove_PermissionRequested: remove_PermissionRequested::<Identity, OFFSET>,
3138            add_ProcessFailed: add_ProcessFailed::<Identity, OFFSET>,
3139            remove_ProcessFailed: remove_ProcessFailed::<Identity, OFFSET>,
3140            AddScriptToExecuteOnDocumentCreated: AddScriptToExecuteOnDocumentCreated::<
3141                Identity,
3142                OFFSET,
3143            >,
3144            RemoveScriptToExecuteOnDocumentCreated: RemoveScriptToExecuteOnDocumentCreated::<
3145                Identity,
3146                OFFSET,
3147            >,
3148            ExecuteScript: ExecuteScript::<Identity, OFFSET>,
3149            CapturePreview: CapturePreview::<Identity, OFFSET>,
3150            Reload: Reload::<Identity, OFFSET>,
3151            PostWebMessageAsJson: PostWebMessageAsJson::<Identity, OFFSET>,
3152            PostWebMessageAsString: PostWebMessageAsString::<Identity, OFFSET>,
3153            add_WebMessageReceived: add_WebMessageReceived::<Identity, OFFSET>,
3154            remove_WebMessageReceived: remove_WebMessageReceived::<Identity, OFFSET>,
3155            CallDevToolsProtocolMethod: CallDevToolsProtocolMethod::<Identity, OFFSET>,
3156            BrowserProcessId: BrowserProcessId::<Identity, OFFSET>,
3157            CanGoBack: CanGoBack::<Identity, OFFSET>,
3158            CanGoForward: CanGoForward::<Identity, OFFSET>,
3159            GoBack: GoBack::<Identity, OFFSET>,
3160            GoForward: GoForward::<Identity, OFFSET>,
3161            GetDevToolsProtocolEventReceiver: GetDevToolsProtocolEventReceiver::<Identity, OFFSET>,
3162            Stop: Stop::<Identity, OFFSET>,
3163            add_NewWindowRequested: add_NewWindowRequested::<Identity, OFFSET>,
3164            remove_NewWindowRequested: remove_NewWindowRequested::<Identity, OFFSET>,
3165            add_DocumentTitleChanged: add_DocumentTitleChanged::<Identity, OFFSET>,
3166            remove_DocumentTitleChanged: remove_DocumentTitleChanged::<Identity, OFFSET>,
3167            DocumentTitle: DocumentTitle::<Identity, OFFSET>,
3168            AddHostObjectToScript: AddHostObjectToScript::<Identity, OFFSET>,
3169            RemoveHostObjectFromScript: RemoveHostObjectFromScript::<Identity, OFFSET>,
3170            OpenDevToolsWindow: OpenDevToolsWindow::<Identity, OFFSET>,
3171            add_ContainsFullScreenElementChanged: add_ContainsFullScreenElementChanged::<
3172                Identity,
3173                OFFSET,
3174            >,
3175            remove_ContainsFullScreenElementChanged: remove_ContainsFullScreenElementChanged::<
3176                Identity,
3177                OFFSET,
3178            >,
3179            ContainsFullScreenElement: ContainsFullScreenElement::<Identity, OFFSET>,
3180            add_WebResourceRequested: add_WebResourceRequested::<Identity, OFFSET>,
3181            remove_WebResourceRequested: remove_WebResourceRequested::<Identity, OFFSET>,
3182            AddWebResourceRequestedFilter: AddWebResourceRequestedFilter::<Identity, OFFSET>,
3183            RemoveWebResourceRequestedFilter: RemoveWebResourceRequestedFilter::<Identity, OFFSET>,
3184            add_WindowCloseRequested: add_WindowCloseRequested::<Identity, OFFSET>,
3185            remove_WindowCloseRequested: remove_WindowCloseRequested::<Identity, OFFSET>,
3186        }
3187    }
3188    pub fn matches(iid: &windows_core::GUID) -> bool {
3189        iid == &<ICoreWebView2 as windows_core::Interface>::IID
3190    }
3191}
3192impl windows_core::RuntimeName for ICoreWebView2 {}
3193windows_core::imp::define_interface!(
3194    ICoreWebView2AcceleratorKeyPressedEventArgs,
3195    ICoreWebView2AcceleratorKeyPressedEventArgs_Vtbl,
3196    0x9f760f8a_fb79_42be_9990_7b56900fa9c7
3197);
3198windows_core::imp::interface_hierarchy!(
3199    ICoreWebView2AcceleratorKeyPressedEventArgs,
3200    windows_core::IUnknown
3201);
3202impl ICoreWebView2AcceleratorKeyPressedEventArgs {
3203    pub unsafe fn KeyEventKind(
3204        &self,
3205        keyeventkind: *mut COREWEBVIEW2_KEY_EVENT_KIND,
3206    ) -> windows_core::Result<()> {
3207        unsafe {
3208            (windows_core::Interface::vtable(self).KeyEventKind)(
3209                windows_core::Interface::as_raw(self),
3210                keyeventkind as _,
3211            )
3212            .ok()
3213        }
3214    }
3215    pub unsafe fn VirtualKey(&self, virtualkey: *mut u32) -> windows_core::Result<()> {
3216        unsafe {
3217            (windows_core::Interface::vtable(self).VirtualKey)(
3218                windows_core::Interface::as_raw(self),
3219                virtualkey as _,
3220            )
3221            .ok()
3222        }
3223    }
3224    pub unsafe fn KeyEventLParam(&self, lparam: *mut i32) -> windows_core::Result<()> {
3225        unsafe {
3226            (windows_core::Interface::vtable(self).KeyEventLParam)(
3227                windows_core::Interface::as_raw(self),
3228                lparam as _,
3229            )
3230            .ok()
3231        }
3232    }
3233    pub unsafe fn PhysicalKeyStatus(
3234        &self,
3235        physicalkeystatus: *mut COREWEBVIEW2_PHYSICAL_KEY_STATUS,
3236    ) -> windows_core::Result<()> {
3237        unsafe {
3238            (windows_core::Interface::vtable(self).PhysicalKeyStatus)(
3239                windows_core::Interface::as_raw(self),
3240                physicalkeystatus as _,
3241            )
3242            .ok()
3243        }
3244    }
3245    pub unsafe fn Handled(&self, handled: *mut windows_core::BOOL) -> windows_core::Result<()> {
3246        unsafe {
3247            (windows_core::Interface::vtable(self).Handled)(
3248                windows_core::Interface::as_raw(self),
3249                handled as _,
3250            )
3251            .ok()
3252        }
3253    }
3254    pub unsafe fn SetHandled(&self, handled: bool) -> windows_core::Result<()> {
3255        unsafe {
3256            (windows_core::Interface::vtable(self).SetHandled)(
3257                windows_core::Interface::as_raw(self),
3258                handled.into(),
3259            )
3260            .ok()
3261        }
3262    }
3263}
3264#[repr(C)]
3265#[doc(hidden)]
3266pub struct ICoreWebView2AcceleratorKeyPressedEventArgs_Vtbl {
3267    pub base__: windows_core::IUnknown_Vtbl,
3268    pub KeyEventKind: unsafe extern "system" fn(
3269        *mut core::ffi::c_void,
3270        *mut COREWEBVIEW2_KEY_EVENT_KIND,
3271    ) -> windows_core::HRESULT,
3272    pub VirtualKey:
3273        unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
3274    pub KeyEventLParam:
3275        unsafe extern "system" fn(*mut core::ffi::c_void, *mut i32) -> windows_core::HRESULT,
3276    pub PhysicalKeyStatus: unsafe extern "system" fn(
3277        *mut core::ffi::c_void,
3278        *mut COREWEBVIEW2_PHYSICAL_KEY_STATUS,
3279    ) -> windows_core::HRESULT,
3280    pub Handled: unsafe extern "system" fn(
3281        *mut core::ffi::c_void,
3282        *mut windows_core::BOOL,
3283    ) -> windows_core::HRESULT,
3284    pub SetHandled: unsafe extern "system" fn(
3285        *mut core::ffi::c_void,
3286        windows_core::BOOL,
3287    ) -> windows_core::HRESULT,
3288}
3289pub trait ICoreWebView2AcceleratorKeyPressedEventArgs_Impl: windows_core::IUnknownImpl {
3290    fn KeyEventKind(
3291        &self,
3292        keyeventkind: *mut COREWEBVIEW2_KEY_EVENT_KIND,
3293    ) -> windows_core::Result<()>;
3294    fn VirtualKey(&self, virtualkey: *mut u32) -> windows_core::Result<()>;
3295    fn KeyEventLParam(&self, lparam: *mut i32) -> windows_core::Result<()>;
3296    fn PhysicalKeyStatus(
3297        &self,
3298        physicalkeystatus: *mut COREWEBVIEW2_PHYSICAL_KEY_STATUS,
3299    ) -> windows_core::Result<()>;
3300    fn Handled(&self, handled: *mut windows_core::BOOL) -> windows_core::Result<()>;
3301    fn SetHandled(&self, handled: windows_core::BOOL) -> windows_core::Result<()>;
3302}
3303impl ICoreWebView2AcceleratorKeyPressedEventArgs_Vtbl {
3304    pub const fn new<
3305        Identity: ICoreWebView2AcceleratorKeyPressedEventArgs_Impl,
3306        const OFFSET: isize,
3307    >() -> Self {
3308        unsafe extern "system" fn KeyEventKind<
3309            Identity: ICoreWebView2AcceleratorKeyPressedEventArgs_Impl,
3310            const OFFSET: isize,
3311        >(
3312            this: *mut core::ffi::c_void,
3313            keyeventkind: *mut COREWEBVIEW2_KEY_EVENT_KIND,
3314        ) -> windows_core::HRESULT {
3315            unsafe {
3316                let this: &Identity =
3317                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
3318                ICoreWebView2AcceleratorKeyPressedEventArgs_Impl::KeyEventKind(
3319                    this,
3320                    core::mem::transmute_copy(&keyeventkind),
3321                )
3322                .into()
3323            }
3324        }
3325        unsafe extern "system" fn VirtualKey<
3326            Identity: ICoreWebView2AcceleratorKeyPressedEventArgs_Impl,
3327            const OFFSET: isize,
3328        >(
3329            this: *mut core::ffi::c_void,
3330            virtualkey: *mut u32,
3331        ) -> windows_core::HRESULT {
3332            unsafe {
3333                let this: &Identity =
3334                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
3335                ICoreWebView2AcceleratorKeyPressedEventArgs_Impl::VirtualKey(
3336                    this,
3337                    core::mem::transmute_copy(&virtualkey),
3338                )
3339                .into()
3340            }
3341        }
3342        unsafe extern "system" fn KeyEventLParam<
3343            Identity: ICoreWebView2AcceleratorKeyPressedEventArgs_Impl,
3344            const OFFSET: isize,
3345        >(
3346            this: *mut core::ffi::c_void,
3347            lparam: *mut i32,
3348        ) -> windows_core::HRESULT {
3349            unsafe {
3350                let this: &Identity =
3351                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
3352                ICoreWebView2AcceleratorKeyPressedEventArgs_Impl::KeyEventLParam(
3353                    this,
3354                    core::mem::transmute_copy(&lparam),
3355                )
3356                .into()
3357            }
3358        }
3359        unsafe extern "system" fn PhysicalKeyStatus<
3360            Identity: ICoreWebView2AcceleratorKeyPressedEventArgs_Impl,
3361            const OFFSET: isize,
3362        >(
3363            this: *mut core::ffi::c_void,
3364            physicalkeystatus: *mut COREWEBVIEW2_PHYSICAL_KEY_STATUS,
3365        ) -> windows_core::HRESULT {
3366            unsafe {
3367                let this: &Identity =
3368                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
3369                ICoreWebView2AcceleratorKeyPressedEventArgs_Impl::PhysicalKeyStatus(
3370                    this,
3371                    core::mem::transmute_copy(&physicalkeystatus),
3372                )
3373                .into()
3374            }
3375        }
3376        unsafe extern "system" fn Handled<
3377            Identity: ICoreWebView2AcceleratorKeyPressedEventArgs_Impl,
3378            const OFFSET: isize,
3379        >(
3380            this: *mut core::ffi::c_void,
3381            handled: *mut windows_core::BOOL,
3382        ) -> windows_core::HRESULT {
3383            unsafe {
3384                let this: &Identity =
3385                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
3386                ICoreWebView2AcceleratorKeyPressedEventArgs_Impl::Handled(
3387                    this,
3388                    core::mem::transmute_copy(&handled),
3389                )
3390                .into()
3391            }
3392        }
3393        unsafe extern "system" fn SetHandled<
3394            Identity: ICoreWebView2AcceleratorKeyPressedEventArgs_Impl,
3395            const OFFSET: isize,
3396        >(
3397            this: *mut core::ffi::c_void,
3398            handled: windows_core::BOOL,
3399        ) -> windows_core::HRESULT {
3400            unsafe {
3401                let this: &Identity =
3402                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
3403                ICoreWebView2AcceleratorKeyPressedEventArgs_Impl::SetHandled(
3404                    this,
3405                    core::mem::transmute_copy(&handled),
3406                )
3407                .into()
3408            }
3409        }
3410        Self {
3411            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
3412            KeyEventKind: KeyEventKind::<Identity, OFFSET>,
3413            VirtualKey: VirtualKey::<Identity, OFFSET>,
3414            KeyEventLParam: KeyEventLParam::<Identity, OFFSET>,
3415            PhysicalKeyStatus: PhysicalKeyStatus::<Identity, OFFSET>,
3416            Handled: Handled::<Identity, OFFSET>,
3417            SetHandled: SetHandled::<Identity, OFFSET>,
3418        }
3419    }
3420    pub fn matches(iid: &windows_core::GUID) -> bool {
3421        iid == &<ICoreWebView2AcceleratorKeyPressedEventArgs as windows_core::Interface>::IID
3422    }
3423}
3424impl windows_core::RuntimeName for ICoreWebView2AcceleratorKeyPressedEventArgs {}
3425windows_core::imp::define_interface!(
3426    ICoreWebView2AcceleratorKeyPressedEventArgs2,
3427    ICoreWebView2AcceleratorKeyPressedEventArgs2_Vtbl,
3428    0x03b2c8c8_7799_4e34_bd66_ed26aa85f2bf
3429);
3430impl core::ops::Deref for ICoreWebView2AcceleratorKeyPressedEventArgs2 {
3431    type Target = ICoreWebView2AcceleratorKeyPressedEventArgs;
3432    fn deref(&self) -> &Self::Target {
3433        unsafe { core::mem::transmute(self) }
3434    }
3435}
3436windows_core::imp::interface_hierarchy!(
3437    ICoreWebView2AcceleratorKeyPressedEventArgs2,
3438    windows_core::IUnknown,
3439    ICoreWebView2AcceleratorKeyPressedEventArgs
3440);
3441impl ICoreWebView2AcceleratorKeyPressedEventArgs2 {
3442    pub unsafe fn IsBrowserAcceleratorKeyEnabled(
3443        &self,
3444        value: *mut windows_core::BOOL,
3445    ) -> windows_core::Result<()> {
3446        unsafe {
3447            (windows_core::Interface::vtable(self).IsBrowserAcceleratorKeyEnabled)(
3448                windows_core::Interface::as_raw(self),
3449                value as _,
3450            )
3451            .ok()
3452        }
3453    }
3454    pub unsafe fn SetIsBrowserAcceleratorKeyEnabled(
3455        &self,
3456        value: bool,
3457    ) -> windows_core::Result<()> {
3458        unsafe {
3459            (windows_core::Interface::vtable(self).SetIsBrowserAcceleratorKeyEnabled)(
3460                windows_core::Interface::as_raw(self),
3461                value.into(),
3462            )
3463            .ok()
3464        }
3465    }
3466}
3467#[repr(C)]
3468#[doc(hidden)]
3469pub struct ICoreWebView2AcceleratorKeyPressedEventArgs2_Vtbl {
3470    pub base__: ICoreWebView2AcceleratorKeyPressedEventArgs_Vtbl,
3471    pub IsBrowserAcceleratorKeyEnabled: unsafe extern "system" fn(
3472        *mut core::ffi::c_void,
3473        *mut windows_core::BOOL,
3474    ) -> windows_core::HRESULT,
3475    pub SetIsBrowserAcceleratorKeyEnabled: unsafe extern "system" fn(
3476        *mut core::ffi::c_void,
3477        windows_core::BOOL,
3478    ) -> windows_core::HRESULT,
3479}
3480pub trait ICoreWebView2AcceleratorKeyPressedEventArgs2_Impl:
3481    ICoreWebView2AcceleratorKeyPressedEventArgs_Impl
3482{
3483    fn IsBrowserAcceleratorKeyEnabled(
3484        &self,
3485        value: *mut windows_core::BOOL,
3486    ) -> windows_core::Result<()>;
3487    fn SetIsBrowserAcceleratorKeyEnabled(
3488        &self,
3489        value: windows_core::BOOL,
3490    ) -> windows_core::Result<()>;
3491}
3492impl ICoreWebView2AcceleratorKeyPressedEventArgs2_Vtbl {
3493    pub const fn new<
3494        Identity: ICoreWebView2AcceleratorKeyPressedEventArgs2_Impl,
3495        const OFFSET: isize,
3496    >() -> Self {
3497        unsafe extern "system" fn IsBrowserAcceleratorKeyEnabled<
3498            Identity: ICoreWebView2AcceleratorKeyPressedEventArgs2_Impl,
3499            const OFFSET: isize,
3500        >(
3501            this: *mut core::ffi::c_void,
3502            value: *mut windows_core::BOOL,
3503        ) -> windows_core::HRESULT {
3504            unsafe {
3505                let this: &Identity =
3506                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
3507                ICoreWebView2AcceleratorKeyPressedEventArgs2_Impl::IsBrowserAcceleratorKeyEnabled(
3508                    this,
3509                    core::mem::transmute_copy(&value),
3510                )
3511                .into()
3512            }
3513        }
3514        unsafe extern "system" fn SetIsBrowserAcceleratorKeyEnabled<
3515            Identity: ICoreWebView2AcceleratorKeyPressedEventArgs2_Impl,
3516            const OFFSET: isize,
3517        >(
3518            this: *mut core::ffi::c_void,
3519            value: windows_core::BOOL,
3520        ) -> windows_core::HRESULT {
3521            unsafe {
3522                let this: &Identity =
3523                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
3524                ICoreWebView2AcceleratorKeyPressedEventArgs2_Impl:: SetIsBrowserAcceleratorKeyEnabled ( this , core::mem::transmute_copy ( & value ) , ) . into ( )
3525            }
3526        }
3527        Self {
3528            base__: ICoreWebView2AcceleratorKeyPressedEventArgs_Vtbl::new::<Identity, OFFSET>(),
3529            IsBrowserAcceleratorKeyEnabled: IsBrowserAcceleratorKeyEnabled::<Identity, OFFSET>,
3530            SetIsBrowserAcceleratorKeyEnabled: SetIsBrowserAcceleratorKeyEnabled::<Identity, OFFSET>,
3531        }
3532    }
3533    pub fn matches(iid: &windows_core::GUID) -> bool {
3534        iid == &<ICoreWebView2AcceleratorKeyPressedEventArgs2 as windows_core::Interface>::IID
3535            || iid == &<ICoreWebView2AcceleratorKeyPressedEventArgs as windows_core::Interface>::IID
3536    }
3537}
3538impl windows_core::RuntimeName for ICoreWebView2AcceleratorKeyPressedEventArgs2 {}
3539windows_core::imp::define_interface!(
3540    ICoreWebView2AcceleratorKeyPressedEventHandler,
3541    ICoreWebView2AcceleratorKeyPressedEventHandler_Vtbl,
3542    0xb29c7e28_fa79_41a8_8e44_65811c76dcb2
3543);
3544windows_core::imp::interface_hierarchy!(
3545    ICoreWebView2AcceleratorKeyPressedEventHandler,
3546    windows_core::IUnknown
3547);
3548impl ICoreWebView2AcceleratorKeyPressedEventHandler {
3549    pub unsafe fn Invoke<P0, P1>(&self, sender: P0, args: P1) -> windows_core::Result<()>
3550    where
3551        P0: windows_core::Param<ICoreWebView2Controller>,
3552        P1: windows_core::Param<ICoreWebView2AcceleratorKeyPressedEventArgs>,
3553    {
3554        unsafe {
3555            (windows_core::Interface::vtable(self).Invoke)(
3556                windows_core::Interface::as_raw(self),
3557                sender.param().abi(),
3558                args.param().abi(),
3559            )
3560            .ok()
3561        }
3562    }
3563}
3564#[repr(C)]
3565#[doc(hidden)]
3566pub struct ICoreWebView2AcceleratorKeyPressedEventHandler_Vtbl {
3567    pub base__: windows_core::IUnknown_Vtbl,
3568    pub Invoke: unsafe extern "system" fn(
3569        *mut core::ffi::c_void,
3570        *mut core::ffi::c_void,
3571        *mut core::ffi::c_void,
3572    ) -> windows_core::HRESULT,
3573}
3574pub trait ICoreWebView2AcceleratorKeyPressedEventHandler_Impl: windows_core::IUnknownImpl {
3575    fn Invoke(
3576        &self,
3577        sender: windows_core::Ref<ICoreWebView2Controller>,
3578        args: windows_core::Ref<ICoreWebView2AcceleratorKeyPressedEventArgs>,
3579    ) -> windows_core::Result<()>;
3580}
3581impl ICoreWebView2AcceleratorKeyPressedEventHandler_Vtbl {
3582    pub const fn new<
3583        Identity: ICoreWebView2AcceleratorKeyPressedEventHandler_Impl,
3584        const OFFSET: isize,
3585    >() -> Self {
3586        unsafe extern "system" fn Invoke<
3587            Identity: ICoreWebView2AcceleratorKeyPressedEventHandler_Impl,
3588            const OFFSET: isize,
3589        >(
3590            this: *mut core::ffi::c_void,
3591            sender: *mut core::ffi::c_void,
3592            args: *mut core::ffi::c_void,
3593        ) -> windows_core::HRESULT {
3594            unsafe {
3595                let this: &Identity =
3596                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
3597                ICoreWebView2AcceleratorKeyPressedEventHandler_Impl::Invoke(
3598                    this,
3599                    core::mem::transmute_copy(&sender),
3600                    core::mem::transmute_copy(&args),
3601                )
3602                .into()
3603            }
3604        }
3605        Self {
3606            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
3607            Invoke: Invoke::<Identity, OFFSET>,
3608        }
3609    }
3610    pub fn matches(iid: &windows_core::GUID) -> bool {
3611        iid == &<ICoreWebView2AcceleratorKeyPressedEventHandler as windows_core::Interface>::IID
3612    }
3613}
3614impl windows_core::RuntimeName for ICoreWebView2AcceleratorKeyPressedEventHandler {}
3615windows_core::imp::define_interface!(
3616    ICoreWebView2AddScriptToExecuteOnDocumentCreatedCompletedHandler,
3617    ICoreWebView2AddScriptToExecuteOnDocumentCreatedCompletedHandler_Vtbl,
3618    0xb99369f3_9b11_47b5_bc6f_8e7895fcea17
3619);
3620windows_core::imp::interface_hierarchy!(
3621    ICoreWebView2AddScriptToExecuteOnDocumentCreatedCompletedHandler,
3622    windows_core::IUnknown
3623);
3624impl ICoreWebView2AddScriptToExecuteOnDocumentCreatedCompletedHandler {
3625    pub unsafe fn Invoke<P1>(
3626        &self,
3627        errorcode: windows_core::HRESULT,
3628        result: P1,
3629    ) -> windows_core::Result<()>
3630    where
3631        P1: windows_core::Param<windows_core::PCWSTR>,
3632    {
3633        unsafe {
3634            (windows_core::Interface::vtable(self).Invoke)(
3635                windows_core::Interface::as_raw(self),
3636                errorcode,
3637                result.param().abi(),
3638            )
3639            .ok()
3640        }
3641    }
3642}
3643#[repr(C)]
3644#[doc(hidden)]
3645pub struct ICoreWebView2AddScriptToExecuteOnDocumentCreatedCompletedHandler_Vtbl {
3646    pub base__: windows_core::IUnknown_Vtbl,
3647    pub Invoke: unsafe extern "system" fn(
3648        *mut core::ffi::c_void,
3649        windows_core::HRESULT,
3650        windows_core::PCWSTR,
3651    ) -> windows_core::HRESULT,
3652}
3653pub trait ICoreWebView2AddScriptToExecuteOnDocumentCreatedCompletedHandler_Impl:
3654    windows_core::IUnknownImpl
3655{
3656    fn Invoke(
3657        &self,
3658        errorcode: windows_core::HRESULT,
3659        result: &windows_core::PCWSTR,
3660    ) -> windows_core::Result<()>;
3661}
3662impl ICoreWebView2AddScriptToExecuteOnDocumentCreatedCompletedHandler_Vtbl {
3663    pub const fn new<
3664        Identity: ICoreWebView2AddScriptToExecuteOnDocumentCreatedCompletedHandler_Impl,
3665        const OFFSET: isize,
3666    >() -> Self {
3667        unsafe extern "system" fn Invoke<
3668            Identity: ICoreWebView2AddScriptToExecuteOnDocumentCreatedCompletedHandler_Impl,
3669            const OFFSET: isize,
3670        >(
3671            this: *mut core::ffi::c_void,
3672            errorcode: windows_core::HRESULT,
3673            result: windows_core::PCWSTR,
3674        ) -> windows_core::HRESULT {
3675            unsafe {
3676                let this: &Identity =
3677                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
3678                ICoreWebView2AddScriptToExecuteOnDocumentCreatedCompletedHandler_Impl::Invoke(
3679                    this,
3680                    core::mem::transmute_copy(&errorcode),
3681                    core::mem::transmute(&result),
3682                )
3683                .into()
3684            }
3685        }
3686        Self {
3687            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
3688            Invoke: Invoke::<Identity, OFFSET>,
3689        }
3690    }
3691    pub fn matches(iid: &windows_core::GUID) -> bool {
3692        iid == & < ICoreWebView2AddScriptToExecuteOnDocumentCreatedCompletedHandler as windows_core::Interface >::IID
3693    }
3694}
3695impl windows_core::RuntimeName
3696    for ICoreWebView2AddScriptToExecuteOnDocumentCreatedCompletedHandler
3697{
3698}
3699windows_core::imp::define_interface!(
3700    ICoreWebView2BasicAuthenticationRequestedEventArgs,
3701    ICoreWebView2BasicAuthenticationRequestedEventArgs_Vtbl,
3702    0xef05516f_d897_4f9e_b672_d8e2307a3fb0
3703);
3704windows_core::imp::interface_hierarchy!(
3705    ICoreWebView2BasicAuthenticationRequestedEventArgs,
3706    windows_core::IUnknown
3707);
3708impl ICoreWebView2BasicAuthenticationRequestedEventArgs {
3709    pub unsafe fn Uri(&self, value: *mut windows_core::PWSTR) -> windows_core::Result<()> {
3710        unsafe {
3711            (windows_core::Interface::vtable(self).Uri)(
3712                windows_core::Interface::as_raw(self),
3713                value as _,
3714            )
3715            .ok()
3716        }
3717    }
3718    pub unsafe fn Challenge(
3719        &self,
3720        challenge: *mut windows_core::PWSTR,
3721    ) -> windows_core::Result<()> {
3722        unsafe {
3723            (windows_core::Interface::vtable(self).Challenge)(
3724                windows_core::Interface::as_raw(self),
3725                challenge as _,
3726            )
3727            .ok()
3728        }
3729    }
3730    pub unsafe fn Response(
3731        &self,
3732    ) -> windows_core::Result<ICoreWebView2BasicAuthenticationResponse> {
3733        unsafe {
3734            let mut result__ = core::mem::zeroed();
3735            (windows_core::Interface::vtable(self).Response)(
3736                windows_core::Interface::as_raw(self),
3737                &mut result__,
3738            )
3739            .and_then(|| windows_core::Type::from_abi(result__))
3740        }
3741    }
3742    pub unsafe fn Cancel(&self, cancel: *mut windows_core::BOOL) -> windows_core::Result<()> {
3743        unsafe {
3744            (windows_core::Interface::vtable(self).Cancel)(
3745                windows_core::Interface::as_raw(self),
3746                cancel as _,
3747            )
3748            .ok()
3749        }
3750    }
3751    pub unsafe fn SetCancel(&self, cancel: bool) -> windows_core::Result<()> {
3752        unsafe {
3753            (windows_core::Interface::vtable(self).SetCancel)(
3754                windows_core::Interface::as_raw(self),
3755                cancel.into(),
3756            )
3757            .ok()
3758        }
3759    }
3760    pub unsafe fn GetDeferral(&self) -> windows_core::Result<ICoreWebView2Deferral> {
3761        unsafe {
3762            let mut result__ = core::mem::zeroed();
3763            (windows_core::Interface::vtable(self).GetDeferral)(
3764                windows_core::Interface::as_raw(self),
3765                &mut result__,
3766            )
3767            .and_then(|| windows_core::Type::from_abi(result__))
3768        }
3769    }
3770}
3771#[repr(C)]
3772#[doc(hidden)]
3773pub struct ICoreWebView2BasicAuthenticationRequestedEventArgs_Vtbl {
3774    pub base__: windows_core::IUnknown_Vtbl,
3775    pub Uri: unsafe extern "system" fn(
3776        *mut core::ffi::c_void,
3777        *mut windows_core::PWSTR,
3778    ) -> windows_core::HRESULT,
3779    pub Challenge: unsafe extern "system" fn(
3780        *mut core::ffi::c_void,
3781        *mut windows_core::PWSTR,
3782    ) -> windows_core::HRESULT,
3783    pub Response: unsafe extern "system" fn(
3784        *mut core::ffi::c_void,
3785        *mut *mut core::ffi::c_void,
3786    ) -> windows_core::HRESULT,
3787    pub Cancel: unsafe extern "system" fn(
3788        *mut core::ffi::c_void,
3789        *mut windows_core::BOOL,
3790    ) -> windows_core::HRESULT,
3791    pub SetCancel: unsafe extern "system" fn(
3792        *mut core::ffi::c_void,
3793        windows_core::BOOL,
3794    ) -> windows_core::HRESULT,
3795    pub GetDeferral: unsafe extern "system" fn(
3796        *mut core::ffi::c_void,
3797        *mut *mut core::ffi::c_void,
3798    ) -> windows_core::HRESULT,
3799}
3800pub trait ICoreWebView2BasicAuthenticationRequestedEventArgs_Impl:
3801    windows_core::IUnknownImpl
3802{
3803    fn Uri(&self, value: *mut windows_core::PWSTR) -> windows_core::Result<()>;
3804    fn Challenge(&self, challenge: *mut windows_core::PWSTR) -> windows_core::Result<()>;
3805    fn Response(&self) -> windows_core::Result<ICoreWebView2BasicAuthenticationResponse>;
3806    fn Cancel(&self, cancel: *mut windows_core::BOOL) -> windows_core::Result<()>;
3807    fn SetCancel(&self, cancel: windows_core::BOOL) -> windows_core::Result<()>;
3808    fn GetDeferral(&self) -> windows_core::Result<ICoreWebView2Deferral>;
3809}
3810impl ICoreWebView2BasicAuthenticationRequestedEventArgs_Vtbl {
3811    pub const fn new<
3812        Identity: ICoreWebView2BasicAuthenticationRequestedEventArgs_Impl,
3813        const OFFSET: isize,
3814    >() -> Self {
3815        unsafe extern "system" fn Uri<
3816            Identity: ICoreWebView2BasicAuthenticationRequestedEventArgs_Impl,
3817            const OFFSET: isize,
3818        >(
3819            this: *mut core::ffi::c_void,
3820            value: *mut windows_core::PWSTR,
3821        ) -> windows_core::HRESULT {
3822            unsafe {
3823                let this: &Identity =
3824                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
3825                ICoreWebView2BasicAuthenticationRequestedEventArgs_Impl::Uri(
3826                    this,
3827                    core::mem::transmute_copy(&value),
3828                )
3829                .into()
3830            }
3831        }
3832        unsafe extern "system" fn Challenge<
3833            Identity: ICoreWebView2BasicAuthenticationRequestedEventArgs_Impl,
3834            const OFFSET: isize,
3835        >(
3836            this: *mut core::ffi::c_void,
3837            challenge: *mut windows_core::PWSTR,
3838        ) -> windows_core::HRESULT {
3839            unsafe {
3840                let this: &Identity =
3841                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
3842                ICoreWebView2BasicAuthenticationRequestedEventArgs_Impl::Challenge(
3843                    this,
3844                    core::mem::transmute_copy(&challenge),
3845                )
3846                .into()
3847            }
3848        }
3849        unsafe extern "system" fn Response<
3850            Identity: ICoreWebView2BasicAuthenticationRequestedEventArgs_Impl,
3851            const OFFSET: isize,
3852        >(
3853            this: *mut core::ffi::c_void,
3854            response: *mut *mut core::ffi::c_void,
3855        ) -> windows_core::HRESULT {
3856            unsafe {
3857                let this: &Identity =
3858                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
3859                match ICoreWebView2BasicAuthenticationRequestedEventArgs_Impl::Response(this) {
3860                    Ok(ok__) => {
3861                        response.write(core::mem::transmute(ok__));
3862                        windows_core::HRESULT(0)
3863                    }
3864                    Err(err) => err.into(),
3865                }
3866            }
3867        }
3868        unsafe extern "system" fn Cancel<
3869            Identity: ICoreWebView2BasicAuthenticationRequestedEventArgs_Impl,
3870            const OFFSET: isize,
3871        >(
3872            this: *mut core::ffi::c_void,
3873            cancel: *mut windows_core::BOOL,
3874        ) -> windows_core::HRESULT {
3875            unsafe {
3876                let this: &Identity =
3877                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
3878                ICoreWebView2BasicAuthenticationRequestedEventArgs_Impl::Cancel(
3879                    this,
3880                    core::mem::transmute_copy(&cancel),
3881                )
3882                .into()
3883            }
3884        }
3885        unsafe extern "system" fn SetCancel<
3886            Identity: ICoreWebView2BasicAuthenticationRequestedEventArgs_Impl,
3887            const OFFSET: isize,
3888        >(
3889            this: *mut core::ffi::c_void,
3890            cancel: windows_core::BOOL,
3891        ) -> windows_core::HRESULT {
3892            unsafe {
3893                let this: &Identity =
3894                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
3895                ICoreWebView2BasicAuthenticationRequestedEventArgs_Impl::SetCancel(
3896                    this,
3897                    core::mem::transmute_copy(&cancel),
3898                )
3899                .into()
3900            }
3901        }
3902        unsafe extern "system" fn GetDeferral<
3903            Identity: ICoreWebView2BasicAuthenticationRequestedEventArgs_Impl,
3904            const OFFSET: isize,
3905        >(
3906            this: *mut core::ffi::c_void,
3907            deferral: *mut *mut core::ffi::c_void,
3908        ) -> windows_core::HRESULT {
3909            unsafe {
3910                let this: &Identity =
3911                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
3912                match ICoreWebView2BasicAuthenticationRequestedEventArgs_Impl::GetDeferral(this) {
3913                    Ok(ok__) => {
3914                        deferral.write(core::mem::transmute(ok__));
3915                        windows_core::HRESULT(0)
3916                    }
3917                    Err(err) => err.into(),
3918                }
3919            }
3920        }
3921        Self {
3922            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
3923            Uri: Uri::<Identity, OFFSET>,
3924            Challenge: Challenge::<Identity, OFFSET>,
3925            Response: Response::<Identity, OFFSET>,
3926            Cancel: Cancel::<Identity, OFFSET>,
3927            SetCancel: SetCancel::<Identity, OFFSET>,
3928            GetDeferral: GetDeferral::<Identity, OFFSET>,
3929        }
3930    }
3931    pub fn matches(iid: &windows_core::GUID) -> bool {
3932        iid == &<ICoreWebView2BasicAuthenticationRequestedEventArgs as windows_core::Interface>::IID
3933    }
3934}
3935impl windows_core::RuntimeName for ICoreWebView2BasicAuthenticationRequestedEventArgs {}
3936windows_core::imp::define_interface!(
3937    ICoreWebView2BasicAuthenticationRequestedEventHandler,
3938    ICoreWebView2BasicAuthenticationRequestedEventHandler_Vtbl,
3939    0x58b4d6c2_18d4_497e_b39b_9a96533fa278
3940);
3941windows_core::imp::interface_hierarchy!(
3942    ICoreWebView2BasicAuthenticationRequestedEventHandler,
3943    windows_core::IUnknown
3944);
3945impl ICoreWebView2BasicAuthenticationRequestedEventHandler {
3946    pub unsafe fn Invoke<P0, P1>(&self, sender: P0, args: P1) -> windows_core::Result<()>
3947    where
3948        P0: windows_core::Param<ICoreWebView2>,
3949        P1: windows_core::Param<ICoreWebView2BasicAuthenticationRequestedEventArgs>,
3950    {
3951        unsafe {
3952            (windows_core::Interface::vtable(self).Invoke)(
3953                windows_core::Interface::as_raw(self),
3954                sender.param().abi(),
3955                args.param().abi(),
3956            )
3957            .ok()
3958        }
3959    }
3960}
3961#[repr(C)]
3962#[doc(hidden)]
3963pub struct ICoreWebView2BasicAuthenticationRequestedEventHandler_Vtbl {
3964    pub base__: windows_core::IUnknown_Vtbl,
3965    pub Invoke: unsafe extern "system" fn(
3966        *mut core::ffi::c_void,
3967        *mut core::ffi::c_void,
3968        *mut core::ffi::c_void,
3969    ) -> windows_core::HRESULT,
3970}
3971pub trait ICoreWebView2BasicAuthenticationRequestedEventHandler_Impl:
3972    windows_core::IUnknownImpl
3973{
3974    fn Invoke(
3975        &self,
3976        sender: windows_core::Ref<ICoreWebView2>,
3977        args: windows_core::Ref<ICoreWebView2BasicAuthenticationRequestedEventArgs>,
3978    ) -> windows_core::Result<()>;
3979}
3980impl ICoreWebView2BasicAuthenticationRequestedEventHandler_Vtbl {
3981    pub const fn new<
3982        Identity: ICoreWebView2BasicAuthenticationRequestedEventHandler_Impl,
3983        const OFFSET: isize,
3984    >() -> Self {
3985        unsafe extern "system" fn Invoke<
3986            Identity: ICoreWebView2BasicAuthenticationRequestedEventHandler_Impl,
3987            const OFFSET: isize,
3988        >(
3989            this: *mut core::ffi::c_void,
3990            sender: *mut core::ffi::c_void,
3991            args: *mut core::ffi::c_void,
3992        ) -> windows_core::HRESULT {
3993            unsafe {
3994                let this: &Identity =
3995                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
3996                ICoreWebView2BasicAuthenticationRequestedEventHandler_Impl::Invoke(
3997                    this,
3998                    core::mem::transmute_copy(&sender),
3999                    core::mem::transmute_copy(&args),
4000                )
4001                .into()
4002            }
4003        }
4004        Self {
4005            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
4006            Invoke: Invoke::<Identity, OFFSET>,
4007        }
4008    }
4009    pub fn matches(iid: &windows_core::GUID) -> bool {
4010        iid == & < ICoreWebView2BasicAuthenticationRequestedEventHandler as windows_core::Interface >::IID
4011    }
4012}
4013impl windows_core::RuntimeName for ICoreWebView2BasicAuthenticationRequestedEventHandler {}
4014windows_core::imp::define_interface!(
4015    ICoreWebView2BasicAuthenticationResponse,
4016    ICoreWebView2BasicAuthenticationResponse_Vtbl,
4017    0x07023f7d_2d77_4d67_9040_6e7d428c6a40
4018);
4019windows_core::imp::interface_hierarchy!(
4020    ICoreWebView2BasicAuthenticationResponse,
4021    windows_core::IUnknown
4022);
4023impl ICoreWebView2BasicAuthenticationResponse {
4024    pub unsafe fn UserName(&self, username: *mut windows_core::PWSTR) -> windows_core::Result<()> {
4025        unsafe {
4026            (windows_core::Interface::vtable(self).UserName)(
4027                windows_core::Interface::as_raw(self),
4028                username as _,
4029            )
4030            .ok()
4031        }
4032    }
4033    pub unsafe fn SetUserName<P0>(&self, username: P0) -> windows_core::Result<()>
4034    where
4035        P0: windows_core::Param<windows_core::PCWSTR>,
4036    {
4037        unsafe {
4038            (windows_core::Interface::vtable(self).SetUserName)(
4039                windows_core::Interface::as_raw(self),
4040                username.param().abi(),
4041            )
4042            .ok()
4043        }
4044    }
4045    pub unsafe fn Password(&self, password: *mut windows_core::PWSTR) -> windows_core::Result<()> {
4046        unsafe {
4047            (windows_core::Interface::vtable(self).Password)(
4048                windows_core::Interface::as_raw(self),
4049                password as _,
4050            )
4051            .ok()
4052        }
4053    }
4054    pub unsafe fn SetPassword<P0>(&self, password: P0) -> windows_core::Result<()>
4055    where
4056        P0: windows_core::Param<windows_core::PCWSTR>,
4057    {
4058        unsafe {
4059            (windows_core::Interface::vtable(self).SetPassword)(
4060                windows_core::Interface::as_raw(self),
4061                password.param().abi(),
4062            )
4063            .ok()
4064        }
4065    }
4066}
4067#[repr(C)]
4068#[doc(hidden)]
4069pub struct ICoreWebView2BasicAuthenticationResponse_Vtbl {
4070    pub base__: windows_core::IUnknown_Vtbl,
4071    pub UserName: unsafe extern "system" fn(
4072        *mut core::ffi::c_void,
4073        *mut windows_core::PWSTR,
4074    ) -> windows_core::HRESULT,
4075    pub SetUserName: unsafe extern "system" fn(
4076        *mut core::ffi::c_void,
4077        windows_core::PCWSTR,
4078    ) -> windows_core::HRESULT,
4079    pub Password: unsafe extern "system" fn(
4080        *mut core::ffi::c_void,
4081        *mut windows_core::PWSTR,
4082    ) -> windows_core::HRESULT,
4083    pub SetPassword: unsafe extern "system" fn(
4084        *mut core::ffi::c_void,
4085        windows_core::PCWSTR,
4086    ) -> windows_core::HRESULT,
4087}
4088pub trait ICoreWebView2BasicAuthenticationResponse_Impl: windows_core::IUnknownImpl {
4089    fn UserName(&self, username: *mut windows_core::PWSTR) -> windows_core::Result<()>;
4090    fn SetUserName(&self, username: &windows_core::PCWSTR) -> windows_core::Result<()>;
4091    fn Password(&self, password: *mut windows_core::PWSTR) -> windows_core::Result<()>;
4092    fn SetPassword(&self, password: &windows_core::PCWSTR) -> windows_core::Result<()>;
4093}
4094impl ICoreWebView2BasicAuthenticationResponse_Vtbl {
4095    pub const fn new<
4096        Identity: ICoreWebView2BasicAuthenticationResponse_Impl,
4097        const OFFSET: isize,
4098    >() -> Self {
4099        unsafe extern "system" fn UserName<
4100            Identity: ICoreWebView2BasicAuthenticationResponse_Impl,
4101            const OFFSET: isize,
4102        >(
4103            this: *mut core::ffi::c_void,
4104            username: *mut windows_core::PWSTR,
4105        ) -> windows_core::HRESULT {
4106            unsafe {
4107                let this: &Identity =
4108                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
4109                ICoreWebView2BasicAuthenticationResponse_Impl::UserName(
4110                    this,
4111                    core::mem::transmute_copy(&username),
4112                )
4113                .into()
4114            }
4115        }
4116        unsafe extern "system" fn SetUserName<
4117            Identity: ICoreWebView2BasicAuthenticationResponse_Impl,
4118            const OFFSET: isize,
4119        >(
4120            this: *mut core::ffi::c_void,
4121            username: windows_core::PCWSTR,
4122        ) -> windows_core::HRESULT {
4123            unsafe {
4124                let this: &Identity =
4125                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
4126                ICoreWebView2BasicAuthenticationResponse_Impl::SetUserName(
4127                    this,
4128                    core::mem::transmute(&username),
4129                )
4130                .into()
4131            }
4132        }
4133        unsafe extern "system" fn Password<
4134            Identity: ICoreWebView2BasicAuthenticationResponse_Impl,
4135            const OFFSET: isize,
4136        >(
4137            this: *mut core::ffi::c_void,
4138            password: *mut windows_core::PWSTR,
4139        ) -> windows_core::HRESULT {
4140            unsafe {
4141                let this: &Identity =
4142                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
4143                ICoreWebView2BasicAuthenticationResponse_Impl::Password(
4144                    this,
4145                    core::mem::transmute_copy(&password),
4146                )
4147                .into()
4148            }
4149        }
4150        unsafe extern "system" fn SetPassword<
4151            Identity: ICoreWebView2BasicAuthenticationResponse_Impl,
4152            const OFFSET: isize,
4153        >(
4154            this: *mut core::ffi::c_void,
4155            password: windows_core::PCWSTR,
4156        ) -> windows_core::HRESULT {
4157            unsafe {
4158                let this: &Identity =
4159                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
4160                ICoreWebView2BasicAuthenticationResponse_Impl::SetPassword(
4161                    this,
4162                    core::mem::transmute(&password),
4163                )
4164                .into()
4165            }
4166        }
4167        Self {
4168            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
4169            UserName: UserName::<Identity, OFFSET>,
4170            SetUserName: SetUserName::<Identity, OFFSET>,
4171            Password: Password::<Identity, OFFSET>,
4172            SetPassword: SetPassword::<Identity, OFFSET>,
4173        }
4174    }
4175    pub fn matches(iid: &windows_core::GUID) -> bool {
4176        iid == &<ICoreWebView2BasicAuthenticationResponse as windows_core::Interface>::IID
4177    }
4178}
4179impl windows_core::RuntimeName for ICoreWebView2BasicAuthenticationResponse {}
4180windows_core::imp::define_interface!(
4181    ICoreWebView2BrowserExtension,
4182    ICoreWebView2BrowserExtension_Vtbl,
4183    0x7ef7ffa0_fac5_462c_b189_3d9edbe575da
4184);
4185windows_core::imp::interface_hierarchy!(ICoreWebView2BrowserExtension, windows_core::IUnknown);
4186impl ICoreWebView2BrowserExtension {
4187    pub unsafe fn Id(&self, value: *mut windows_core::PWSTR) -> windows_core::Result<()> {
4188        unsafe {
4189            (windows_core::Interface::vtable(self).Id)(
4190                windows_core::Interface::as_raw(self),
4191                value as _,
4192            )
4193            .ok()
4194        }
4195    }
4196    pub unsafe fn Name(&self, value: *mut windows_core::PWSTR) -> windows_core::Result<()> {
4197        unsafe {
4198            (windows_core::Interface::vtable(self).Name)(
4199                windows_core::Interface::as_raw(self),
4200                value as _,
4201            )
4202            .ok()
4203        }
4204    }
4205    pub unsafe fn Remove<P0>(&self, handler: P0) -> windows_core::Result<()>
4206    where
4207        P0: windows_core::Param<ICoreWebView2BrowserExtensionRemoveCompletedHandler>,
4208    {
4209        unsafe {
4210            (windows_core::Interface::vtable(self).Remove)(
4211                windows_core::Interface::as_raw(self),
4212                handler.param().abi(),
4213            )
4214            .ok()
4215        }
4216    }
4217    pub unsafe fn IsEnabled(&self, value: *mut windows_core::BOOL) -> windows_core::Result<()> {
4218        unsafe {
4219            (windows_core::Interface::vtable(self).IsEnabled)(
4220                windows_core::Interface::as_raw(self),
4221                value as _,
4222            )
4223            .ok()
4224        }
4225    }
4226    pub unsafe fn Enable<P1>(&self, isenabled: bool, handler: P1) -> windows_core::Result<()>
4227    where
4228        P1: windows_core::Param<ICoreWebView2BrowserExtensionEnableCompletedHandler>,
4229    {
4230        unsafe {
4231            (windows_core::Interface::vtable(self).Enable)(
4232                windows_core::Interface::as_raw(self),
4233                isenabled.into(),
4234                handler.param().abi(),
4235            )
4236            .ok()
4237        }
4238    }
4239}
4240#[repr(C)]
4241#[doc(hidden)]
4242pub struct ICoreWebView2BrowserExtension_Vtbl {
4243    pub base__: windows_core::IUnknown_Vtbl,
4244    pub Id: unsafe extern "system" fn(
4245        *mut core::ffi::c_void,
4246        *mut windows_core::PWSTR,
4247    ) -> windows_core::HRESULT,
4248    pub Name: unsafe extern "system" fn(
4249        *mut core::ffi::c_void,
4250        *mut windows_core::PWSTR,
4251    ) -> windows_core::HRESULT,
4252    pub Remove: unsafe extern "system" fn(
4253        *mut core::ffi::c_void,
4254        *mut core::ffi::c_void,
4255    ) -> windows_core::HRESULT,
4256    pub IsEnabled: unsafe extern "system" fn(
4257        *mut core::ffi::c_void,
4258        *mut windows_core::BOOL,
4259    ) -> windows_core::HRESULT,
4260    pub Enable: unsafe extern "system" fn(
4261        *mut core::ffi::c_void,
4262        windows_core::BOOL,
4263        *mut core::ffi::c_void,
4264    ) -> windows_core::HRESULT,
4265}
4266pub trait ICoreWebView2BrowserExtension_Impl: windows_core::IUnknownImpl {
4267    fn Id(&self, value: *mut windows_core::PWSTR) -> windows_core::Result<()>;
4268    fn Name(&self, value: *mut windows_core::PWSTR) -> windows_core::Result<()>;
4269    fn Remove(
4270        &self,
4271        handler: windows_core::Ref<ICoreWebView2BrowserExtensionRemoveCompletedHandler>,
4272    ) -> windows_core::Result<()>;
4273    fn IsEnabled(&self, value: *mut windows_core::BOOL) -> windows_core::Result<()>;
4274    fn Enable(
4275        &self,
4276        isenabled: windows_core::BOOL,
4277        handler: windows_core::Ref<ICoreWebView2BrowserExtensionEnableCompletedHandler>,
4278    ) -> windows_core::Result<()>;
4279}
4280impl ICoreWebView2BrowserExtension_Vtbl {
4281    pub const fn new<Identity: ICoreWebView2BrowserExtension_Impl, const OFFSET: isize>() -> Self {
4282        unsafe extern "system" fn Id<
4283            Identity: ICoreWebView2BrowserExtension_Impl,
4284            const OFFSET: isize,
4285        >(
4286            this: *mut core::ffi::c_void,
4287            value: *mut windows_core::PWSTR,
4288        ) -> windows_core::HRESULT {
4289            unsafe {
4290                let this: &Identity =
4291                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
4292                ICoreWebView2BrowserExtension_Impl::Id(this, core::mem::transmute_copy(&value))
4293                    .into()
4294            }
4295        }
4296        unsafe extern "system" fn Name<
4297            Identity: ICoreWebView2BrowserExtension_Impl,
4298            const OFFSET: isize,
4299        >(
4300            this: *mut core::ffi::c_void,
4301            value: *mut windows_core::PWSTR,
4302        ) -> windows_core::HRESULT {
4303            unsafe {
4304                let this: &Identity =
4305                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
4306                ICoreWebView2BrowserExtension_Impl::Name(this, core::mem::transmute_copy(&value))
4307                    .into()
4308            }
4309        }
4310        unsafe extern "system" fn Remove<
4311            Identity: ICoreWebView2BrowserExtension_Impl,
4312            const OFFSET: isize,
4313        >(
4314            this: *mut core::ffi::c_void,
4315            handler: *mut core::ffi::c_void,
4316        ) -> windows_core::HRESULT {
4317            unsafe {
4318                let this: &Identity =
4319                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
4320                ICoreWebView2BrowserExtension_Impl::Remove(
4321                    this,
4322                    core::mem::transmute_copy(&handler),
4323                )
4324                .into()
4325            }
4326        }
4327        unsafe extern "system" fn IsEnabled<
4328            Identity: ICoreWebView2BrowserExtension_Impl,
4329            const OFFSET: isize,
4330        >(
4331            this: *mut core::ffi::c_void,
4332            value: *mut windows_core::BOOL,
4333        ) -> windows_core::HRESULT {
4334            unsafe {
4335                let this: &Identity =
4336                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
4337                ICoreWebView2BrowserExtension_Impl::IsEnabled(
4338                    this,
4339                    core::mem::transmute_copy(&value),
4340                )
4341                .into()
4342            }
4343        }
4344        unsafe extern "system" fn Enable<
4345            Identity: ICoreWebView2BrowserExtension_Impl,
4346            const OFFSET: isize,
4347        >(
4348            this: *mut core::ffi::c_void,
4349            isenabled: windows_core::BOOL,
4350            handler: *mut core::ffi::c_void,
4351        ) -> windows_core::HRESULT {
4352            unsafe {
4353                let this: &Identity =
4354                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
4355                ICoreWebView2BrowserExtension_Impl::Enable(
4356                    this,
4357                    core::mem::transmute_copy(&isenabled),
4358                    core::mem::transmute_copy(&handler),
4359                )
4360                .into()
4361            }
4362        }
4363        Self {
4364            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
4365            Id: Id::<Identity, OFFSET>,
4366            Name: Name::<Identity, OFFSET>,
4367            Remove: Remove::<Identity, OFFSET>,
4368            IsEnabled: IsEnabled::<Identity, OFFSET>,
4369            Enable: Enable::<Identity, OFFSET>,
4370        }
4371    }
4372    pub fn matches(iid: &windows_core::GUID) -> bool {
4373        iid == &<ICoreWebView2BrowserExtension as windows_core::Interface>::IID
4374    }
4375}
4376impl windows_core::RuntimeName for ICoreWebView2BrowserExtension {}
4377windows_core::imp::define_interface!(
4378    ICoreWebView2BrowserExtensionEnableCompletedHandler,
4379    ICoreWebView2BrowserExtensionEnableCompletedHandler_Vtbl,
4380    0x30c186ce_7fad_421f_a3bc_a8eaf071ddb8
4381);
4382windows_core::imp::interface_hierarchy!(
4383    ICoreWebView2BrowserExtensionEnableCompletedHandler,
4384    windows_core::IUnknown
4385);
4386impl ICoreWebView2BrowserExtensionEnableCompletedHandler {
4387    pub unsafe fn Invoke(&self, errorcode: windows_core::HRESULT) -> windows_core::Result<()> {
4388        unsafe {
4389            (windows_core::Interface::vtable(self).Invoke)(
4390                windows_core::Interface::as_raw(self),
4391                errorcode,
4392            )
4393            .ok()
4394        }
4395    }
4396}
4397#[repr(C)]
4398#[doc(hidden)]
4399pub struct ICoreWebView2BrowserExtensionEnableCompletedHandler_Vtbl {
4400    pub base__: windows_core::IUnknown_Vtbl,
4401    pub Invoke: unsafe extern "system" fn(
4402        *mut core::ffi::c_void,
4403        windows_core::HRESULT,
4404    ) -> windows_core::HRESULT,
4405}
4406pub trait ICoreWebView2BrowserExtensionEnableCompletedHandler_Impl:
4407    windows_core::IUnknownImpl
4408{
4409    fn Invoke(&self, errorcode: windows_core::HRESULT) -> windows_core::Result<()>;
4410}
4411impl ICoreWebView2BrowserExtensionEnableCompletedHandler_Vtbl {
4412    pub const fn new<
4413        Identity: ICoreWebView2BrowserExtensionEnableCompletedHandler_Impl,
4414        const OFFSET: isize,
4415    >() -> Self {
4416        unsafe extern "system" fn Invoke<
4417            Identity: ICoreWebView2BrowserExtensionEnableCompletedHandler_Impl,
4418            const OFFSET: isize,
4419        >(
4420            this: *mut core::ffi::c_void,
4421            errorcode: windows_core::HRESULT,
4422        ) -> windows_core::HRESULT {
4423            unsafe {
4424                let this: &Identity =
4425                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
4426                ICoreWebView2BrowserExtensionEnableCompletedHandler_Impl::Invoke(
4427                    this,
4428                    core::mem::transmute_copy(&errorcode),
4429                )
4430                .into()
4431            }
4432        }
4433        Self {
4434            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
4435            Invoke: Invoke::<Identity, OFFSET>,
4436        }
4437    }
4438    pub fn matches(iid: &windows_core::GUID) -> bool {
4439        iid == & < ICoreWebView2BrowserExtensionEnableCompletedHandler as windows_core::Interface >::IID
4440    }
4441}
4442impl windows_core::RuntimeName for ICoreWebView2BrowserExtensionEnableCompletedHandler {}
4443windows_core::imp::define_interface!(
4444    ICoreWebView2BrowserExtensionList,
4445    ICoreWebView2BrowserExtensionList_Vtbl,
4446    0x2ef3d2dc_bd5f_4f4d_90af_fd67798f0c2f
4447);
4448windows_core::imp::interface_hierarchy!(ICoreWebView2BrowserExtensionList, windows_core::IUnknown);
4449impl ICoreWebView2BrowserExtensionList {
4450    pub unsafe fn Count(&self, value: *mut u32) -> windows_core::Result<()> {
4451        unsafe {
4452            (windows_core::Interface::vtable(self).Count)(
4453                windows_core::Interface::as_raw(self),
4454                value as _,
4455            )
4456            .ok()
4457        }
4458    }
4459    pub unsafe fn GetValueAtIndex(
4460        &self,
4461        index: u32,
4462    ) -> windows_core::Result<ICoreWebView2BrowserExtension> {
4463        unsafe {
4464            let mut result__ = core::mem::zeroed();
4465            (windows_core::Interface::vtable(self).GetValueAtIndex)(
4466                windows_core::Interface::as_raw(self),
4467                index,
4468                &mut result__,
4469            )
4470            .and_then(|| windows_core::Type::from_abi(result__))
4471        }
4472    }
4473}
4474#[repr(C)]
4475#[doc(hidden)]
4476pub struct ICoreWebView2BrowserExtensionList_Vtbl {
4477    pub base__: windows_core::IUnknown_Vtbl,
4478    pub Count: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
4479    pub GetValueAtIndex: unsafe extern "system" fn(
4480        *mut core::ffi::c_void,
4481        u32,
4482        *mut *mut core::ffi::c_void,
4483    ) -> windows_core::HRESULT,
4484}
4485pub trait ICoreWebView2BrowserExtensionList_Impl: windows_core::IUnknownImpl {
4486    fn Count(&self, value: *mut u32) -> windows_core::Result<()>;
4487    fn GetValueAtIndex(&self, index: u32) -> windows_core::Result<ICoreWebView2BrowserExtension>;
4488}
4489impl ICoreWebView2BrowserExtensionList_Vtbl {
4490    pub const fn new<Identity: ICoreWebView2BrowserExtensionList_Impl, const OFFSET: isize>() -> Self
4491    {
4492        unsafe extern "system" fn Count<
4493            Identity: ICoreWebView2BrowserExtensionList_Impl,
4494            const OFFSET: isize,
4495        >(
4496            this: *mut core::ffi::c_void,
4497            value: *mut u32,
4498        ) -> windows_core::HRESULT {
4499            unsafe {
4500                let this: &Identity =
4501                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
4502                ICoreWebView2BrowserExtensionList_Impl::Count(
4503                    this,
4504                    core::mem::transmute_copy(&value),
4505                )
4506                .into()
4507            }
4508        }
4509        unsafe extern "system" fn GetValueAtIndex<
4510            Identity: ICoreWebView2BrowserExtensionList_Impl,
4511            const OFFSET: isize,
4512        >(
4513            this: *mut core::ffi::c_void,
4514            index: u32,
4515            value: *mut *mut core::ffi::c_void,
4516        ) -> windows_core::HRESULT {
4517            unsafe {
4518                let this: &Identity =
4519                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
4520                match ICoreWebView2BrowserExtensionList_Impl::GetValueAtIndex(
4521                    this,
4522                    core::mem::transmute_copy(&index),
4523                ) {
4524                    Ok(ok__) => {
4525                        value.write(core::mem::transmute(ok__));
4526                        windows_core::HRESULT(0)
4527                    }
4528                    Err(err) => err.into(),
4529                }
4530            }
4531        }
4532        Self {
4533            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
4534            Count: Count::<Identity, OFFSET>,
4535            GetValueAtIndex: GetValueAtIndex::<Identity, OFFSET>,
4536        }
4537    }
4538    pub fn matches(iid: &windows_core::GUID) -> bool {
4539        iid == &<ICoreWebView2BrowserExtensionList as windows_core::Interface>::IID
4540    }
4541}
4542impl windows_core::RuntimeName for ICoreWebView2BrowserExtensionList {}
4543windows_core::imp::define_interface!(
4544    ICoreWebView2BrowserExtensionRemoveCompletedHandler,
4545    ICoreWebView2BrowserExtensionRemoveCompletedHandler_Vtbl,
4546    0x8e41909a_9b18_4bb1_8cdf_930f467a50be
4547);
4548windows_core::imp::interface_hierarchy!(
4549    ICoreWebView2BrowserExtensionRemoveCompletedHandler,
4550    windows_core::IUnknown
4551);
4552impl ICoreWebView2BrowserExtensionRemoveCompletedHandler {
4553    pub unsafe fn Invoke(&self, errorcode: windows_core::HRESULT) -> windows_core::Result<()> {
4554        unsafe {
4555            (windows_core::Interface::vtable(self).Invoke)(
4556                windows_core::Interface::as_raw(self),
4557                errorcode,
4558            )
4559            .ok()
4560        }
4561    }
4562}
4563#[repr(C)]
4564#[doc(hidden)]
4565pub struct ICoreWebView2BrowserExtensionRemoveCompletedHandler_Vtbl {
4566    pub base__: windows_core::IUnknown_Vtbl,
4567    pub Invoke: unsafe extern "system" fn(
4568        *mut core::ffi::c_void,
4569        windows_core::HRESULT,
4570    ) -> windows_core::HRESULT,
4571}
4572pub trait ICoreWebView2BrowserExtensionRemoveCompletedHandler_Impl:
4573    windows_core::IUnknownImpl
4574{
4575    fn Invoke(&self, errorcode: windows_core::HRESULT) -> windows_core::Result<()>;
4576}
4577impl ICoreWebView2BrowserExtensionRemoveCompletedHandler_Vtbl {
4578    pub const fn new<
4579        Identity: ICoreWebView2BrowserExtensionRemoveCompletedHandler_Impl,
4580        const OFFSET: isize,
4581    >() -> Self {
4582        unsafe extern "system" fn Invoke<
4583            Identity: ICoreWebView2BrowserExtensionRemoveCompletedHandler_Impl,
4584            const OFFSET: isize,
4585        >(
4586            this: *mut core::ffi::c_void,
4587            errorcode: windows_core::HRESULT,
4588        ) -> windows_core::HRESULT {
4589            unsafe {
4590                let this: &Identity =
4591                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
4592                ICoreWebView2BrowserExtensionRemoveCompletedHandler_Impl::Invoke(
4593                    this,
4594                    core::mem::transmute_copy(&errorcode),
4595                )
4596                .into()
4597            }
4598        }
4599        Self {
4600            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
4601            Invoke: Invoke::<Identity, OFFSET>,
4602        }
4603    }
4604    pub fn matches(iid: &windows_core::GUID) -> bool {
4605        iid == & < ICoreWebView2BrowserExtensionRemoveCompletedHandler as windows_core::Interface >::IID
4606    }
4607}
4608impl windows_core::RuntimeName for ICoreWebView2BrowserExtensionRemoveCompletedHandler {}
4609windows_core::imp::define_interface!(
4610    ICoreWebView2BrowserProcessExitedEventArgs,
4611    ICoreWebView2BrowserProcessExitedEventArgs_Vtbl,
4612    0x1f00663f_af8c_4782_9cdd_dd01c52e34cb
4613);
4614windows_core::imp::interface_hierarchy!(
4615    ICoreWebView2BrowserProcessExitedEventArgs,
4616    windows_core::IUnknown
4617);
4618impl ICoreWebView2BrowserProcessExitedEventArgs {
4619    pub unsafe fn BrowserProcessExitKind(
4620        &self,
4621        value: *mut COREWEBVIEW2_BROWSER_PROCESS_EXIT_KIND,
4622    ) -> windows_core::Result<()> {
4623        unsafe {
4624            (windows_core::Interface::vtable(self).BrowserProcessExitKind)(
4625                windows_core::Interface::as_raw(self),
4626                value as _,
4627            )
4628            .ok()
4629        }
4630    }
4631    pub unsafe fn BrowserProcessId(&self, value: *mut u32) -> windows_core::Result<()> {
4632        unsafe {
4633            (windows_core::Interface::vtable(self).BrowserProcessId)(
4634                windows_core::Interface::as_raw(self),
4635                value as _,
4636            )
4637            .ok()
4638        }
4639    }
4640}
4641#[repr(C)]
4642#[doc(hidden)]
4643pub struct ICoreWebView2BrowserProcessExitedEventArgs_Vtbl {
4644    pub base__: windows_core::IUnknown_Vtbl,
4645    pub BrowserProcessExitKind: unsafe extern "system" fn(
4646        *mut core::ffi::c_void,
4647        *mut COREWEBVIEW2_BROWSER_PROCESS_EXIT_KIND,
4648    ) -> windows_core::HRESULT,
4649    pub BrowserProcessId:
4650        unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
4651}
4652pub trait ICoreWebView2BrowserProcessExitedEventArgs_Impl: windows_core::IUnknownImpl {
4653    fn BrowserProcessExitKind(
4654        &self,
4655        value: *mut COREWEBVIEW2_BROWSER_PROCESS_EXIT_KIND,
4656    ) -> windows_core::Result<()>;
4657    fn BrowserProcessId(&self, value: *mut u32) -> windows_core::Result<()>;
4658}
4659impl ICoreWebView2BrowserProcessExitedEventArgs_Vtbl {
4660    pub const fn new<
4661        Identity: ICoreWebView2BrowserProcessExitedEventArgs_Impl,
4662        const OFFSET: isize,
4663    >() -> Self {
4664        unsafe extern "system" fn BrowserProcessExitKind<
4665            Identity: ICoreWebView2BrowserProcessExitedEventArgs_Impl,
4666            const OFFSET: isize,
4667        >(
4668            this: *mut core::ffi::c_void,
4669            value: *mut COREWEBVIEW2_BROWSER_PROCESS_EXIT_KIND,
4670        ) -> windows_core::HRESULT {
4671            unsafe {
4672                let this: &Identity =
4673                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
4674                ICoreWebView2BrowserProcessExitedEventArgs_Impl::BrowserProcessExitKind(
4675                    this,
4676                    core::mem::transmute_copy(&value),
4677                )
4678                .into()
4679            }
4680        }
4681        unsafe extern "system" fn BrowserProcessId<
4682            Identity: ICoreWebView2BrowserProcessExitedEventArgs_Impl,
4683            const OFFSET: isize,
4684        >(
4685            this: *mut core::ffi::c_void,
4686            value: *mut u32,
4687        ) -> windows_core::HRESULT {
4688            unsafe {
4689                let this: &Identity =
4690                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
4691                ICoreWebView2BrowserProcessExitedEventArgs_Impl::BrowserProcessId(
4692                    this,
4693                    core::mem::transmute_copy(&value),
4694                )
4695                .into()
4696            }
4697        }
4698        Self {
4699            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
4700            BrowserProcessExitKind: BrowserProcessExitKind::<Identity, OFFSET>,
4701            BrowserProcessId: BrowserProcessId::<Identity, OFFSET>,
4702        }
4703    }
4704    pub fn matches(iid: &windows_core::GUID) -> bool {
4705        iid == &<ICoreWebView2BrowserProcessExitedEventArgs as windows_core::Interface>::IID
4706    }
4707}
4708impl windows_core::RuntimeName for ICoreWebView2BrowserProcessExitedEventArgs {}
4709windows_core::imp::define_interface!(
4710    ICoreWebView2BrowserProcessExitedEventHandler,
4711    ICoreWebView2BrowserProcessExitedEventHandler_Vtbl,
4712    0xfa504257_a216_4911_a860_fe8825712861
4713);
4714windows_core::imp::interface_hierarchy!(
4715    ICoreWebView2BrowserProcessExitedEventHandler,
4716    windows_core::IUnknown
4717);
4718impl ICoreWebView2BrowserProcessExitedEventHandler {
4719    pub unsafe fn Invoke<P0, P1>(&self, sender: P0, args: P1) -> windows_core::Result<()>
4720    where
4721        P0: windows_core::Param<ICoreWebView2Environment>,
4722        P1: windows_core::Param<ICoreWebView2BrowserProcessExitedEventArgs>,
4723    {
4724        unsafe {
4725            (windows_core::Interface::vtable(self).Invoke)(
4726                windows_core::Interface::as_raw(self),
4727                sender.param().abi(),
4728                args.param().abi(),
4729            )
4730            .ok()
4731        }
4732    }
4733}
4734#[repr(C)]
4735#[doc(hidden)]
4736pub struct ICoreWebView2BrowserProcessExitedEventHandler_Vtbl {
4737    pub base__: windows_core::IUnknown_Vtbl,
4738    pub Invoke: unsafe extern "system" fn(
4739        *mut core::ffi::c_void,
4740        *mut core::ffi::c_void,
4741        *mut core::ffi::c_void,
4742    ) -> windows_core::HRESULT,
4743}
4744pub trait ICoreWebView2BrowserProcessExitedEventHandler_Impl: windows_core::IUnknownImpl {
4745    fn Invoke(
4746        &self,
4747        sender: windows_core::Ref<ICoreWebView2Environment>,
4748        args: windows_core::Ref<ICoreWebView2BrowserProcessExitedEventArgs>,
4749    ) -> windows_core::Result<()>;
4750}
4751impl ICoreWebView2BrowserProcessExitedEventHandler_Vtbl {
4752    pub const fn new<
4753        Identity: ICoreWebView2BrowserProcessExitedEventHandler_Impl,
4754        const OFFSET: isize,
4755    >() -> Self {
4756        unsafe extern "system" fn Invoke<
4757            Identity: ICoreWebView2BrowserProcessExitedEventHandler_Impl,
4758            const OFFSET: isize,
4759        >(
4760            this: *mut core::ffi::c_void,
4761            sender: *mut core::ffi::c_void,
4762            args: *mut core::ffi::c_void,
4763        ) -> windows_core::HRESULT {
4764            unsafe {
4765                let this: &Identity =
4766                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
4767                ICoreWebView2BrowserProcessExitedEventHandler_Impl::Invoke(
4768                    this,
4769                    core::mem::transmute_copy(&sender),
4770                    core::mem::transmute_copy(&args),
4771                )
4772                .into()
4773            }
4774        }
4775        Self {
4776            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
4777            Invoke: Invoke::<Identity, OFFSET>,
4778        }
4779    }
4780    pub fn matches(iid: &windows_core::GUID) -> bool {
4781        iid == &<ICoreWebView2BrowserProcessExitedEventHandler as windows_core::Interface>::IID
4782    }
4783}
4784impl windows_core::RuntimeName for ICoreWebView2BrowserProcessExitedEventHandler {}
4785windows_core::imp::define_interface!(
4786    ICoreWebView2BytesReceivedChangedEventHandler,
4787    ICoreWebView2BytesReceivedChangedEventHandler_Vtbl,
4788    0x828e8ab6_d94c_4264_9cef_5217170d6251
4789);
4790windows_core::imp::interface_hierarchy!(
4791    ICoreWebView2BytesReceivedChangedEventHandler,
4792    windows_core::IUnknown
4793);
4794impl ICoreWebView2BytesReceivedChangedEventHandler {
4795    pub unsafe fn Invoke<P0, P1>(&self, sender: P0, args: P1) -> windows_core::Result<()>
4796    where
4797        P0: windows_core::Param<ICoreWebView2DownloadOperation>,
4798        P1: windows_core::Param<windows_core::IUnknown>,
4799    {
4800        unsafe {
4801            (windows_core::Interface::vtable(self).Invoke)(
4802                windows_core::Interface::as_raw(self),
4803                sender.param().abi(),
4804                args.param().abi(),
4805            )
4806            .ok()
4807        }
4808    }
4809}
4810#[repr(C)]
4811#[doc(hidden)]
4812pub struct ICoreWebView2BytesReceivedChangedEventHandler_Vtbl {
4813    pub base__: windows_core::IUnknown_Vtbl,
4814    pub Invoke: unsafe extern "system" fn(
4815        *mut core::ffi::c_void,
4816        *mut core::ffi::c_void,
4817        *mut core::ffi::c_void,
4818    ) -> windows_core::HRESULT,
4819}
4820pub trait ICoreWebView2BytesReceivedChangedEventHandler_Impl: windows_core::IUnknownImpl {
4821    fn Invoke(
4822        &self,
4823        sender: windows_core::Ref<ICoreWebView2DownloadOperation>,
4824        args: windows_core::Ref<windows_core::IUnknown>,
4825    ) -> windows_core::Result<()>;
4826}
4827impl ICoreWebView2BytesReceivedChangedEventHandler_Vtbl {
4828    pub const fn new<
4829        Identity: ICoreWebView2BytesReceivedChangedEventHandler_Impl,
4830        const OFFSET: isize,
4831    >() -> Self {
4832        unsafe extern "system" fn Invoke<
4833            Identity: ICoreWebView2BytesReceivedChangedEventHandler_Impl,
4834            const OFFSET: isize,
4835        >(
4836            this: *mut core::ffi::c_void,
4837            sender: *mut core::ffi::c_void,
4838            args: *mut core::ffi::c_void,
4839        ) -> windows_core::HRESULT {
4840            unsafe {
4841                let this: &Identity =
4842                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
4843                ICoreWebView2BytesReceivedChangedEventHandler_Impl::Invoke(
4844                    this,
4845                    core::mem::transmute_copy(&sender),
4846                    core::mem::transmute_copy(&args),
4847                )
4848                .into()
4849            }
4850        }
4851        Self {
4852            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
4853            Invoke: Invoke::<Identity, OFFSET>,
4854        }
4855    }
4856    pub fn matches(iid: &windows_core::GUID) -> bool {
4857        iid == &<ICoreWebView2BytesReceivedChangedEventHandler as windows_core::Interface>::IID
4858    }
4859}
4860impl windows_core::RuntimeName for ICoreWebView2BytesReceivedChangedEventHandler {}
4861windows_core::imp::define_interface!(
4862    ICoreWebView2CallDevToolsProtocolMethodCompletedHandler,
4863    ICoreWebView2CallDevToolsProtocolMethodCompletedHandler_Vtbl,
4864    0x5c4889f0_5ef6_4c5a_952c_d8f1b92d0574
4865);
4866windows_core::imp::interface_hierarchy!(
4867    ICoreWebView2CallDevToolsProtocolMethodCompletedHandler,
4868    windows_core::IUnknown
4869);
4870impl ICoreWebView2CallDevToolsProtocolMethodCompletedHandler {
4871    pub unsafe fn Invoke<P1>(
4872        &self,
4873        errorcode: windows_core::HRESULT,
4874        result: P1,
4875    ) -> windows_core::Result<()>
4876    where
4877        P1: windows_core::Param<windows_core::PCWSTR>,
4878    {
4879        unsafe {
4880            (windows_core::Interface::vtable(self).Invoke)(
4881                windows_core::Interface::as_raw(self),
4882                errorcode,
4883                result.param().abi(),
4884            )
4885            .ok()
4886        }
4887    }
4888}
4889#[repr(C)]
4890#[doc(hidden)]
4891pub struct ICoreWebView2CallDevToolsProtocolMethodCompletedHandler_Vtbl {
4892    pub base__: windows_core::IUnknown_Vtbl,
4893    pub Invoke: unsafe extern "system" fn(
4894        *mut core::ffi::c_void,
4895        windows_core::HRESULT,
4896        windows_core::PCWSTR,
4897    ) -> windows_core::HRESULT,
4898}
4899pub trait ICoreWebView2CallDevToolsProtocolMethodCompletedHandler_Impl:
4900    windows_core::IUnknownImpl
4901{
4902    fn Invoke(
4903        &self,
4904        errorcode: windows_core::HRESULT,
4905        result: &windows_core::PCWSTR,
4906    ) -> windows_core::Result<()>;
4907}
4908impl ICoreWebView2CallDevToolsProtocolMethodCompletedHandler_Vtbl {
4909    pub const fn new<
4910        Identity: ICoreWebView2CallDevToolsProtocolMethodCompletedHandler_Impl,
4911        const OFFSET: isize,
4912    >() -> Self {
4913        unsafe extern "system" fn Invoke<
4914            Identity: ICoreWebView2CallDevToolsProtocolMethodCompletedHandler_Impl,
4915            const OFFSET: isize,
4916        >(
4917            this: *mut core::ffi::c_void,
4918            errorcode: windows_core::HRESULT,
4919            result: windows_core::PCWSTR,
4920        ) -> windows_core::HRESULT {
4921            unsafe {
4922                let this: &Identity =
4923                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
4924                ICoreWebView2CallDevToolsProtocolMethodCompletedHandler_Impl::Invoke(
4925                    this,
4926                    core::mem::transmute_copy(&errorcode),
4927                    core::mem::transmute(&result),
4928                )
4929                .into()
4930            }
4931        }
4932        Self {
4933            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
4934            Invoke: Invoke::<Identity, OFFSET>,
4935        }
4936    }
4937    pub fn matches(iid: &windows_core::GUID) -> bool {
4938        iid == & < ICoreWebView2CallDevToolsProtocolMethodCompletedHandler as windows_core::Interface >::IID
4939    }
4940}
4941impl windows_core::RuntimeName for ICoreWebView2CallDevToolsProtocolMethodCompletedHandler {}
4942windows_core::imp::define_interface!(
4943    ICoreWebView2CapturePreviewCompletedHandler,
4944    ICoreWebView2CapturePreviewCompletedHandler_Vtbl,
4945    0x697e05e9_3d8f_45fa_96f4_8ffe1ededaf5
4946);
4947windows_core::imp::interface_hierarchy!(
4948    ICoreWebView2CapturePreviewCompletedHandler,
4949    windows_core::IUnknown
4950);
4951impl ICoreWebView2CapturePreviewCompletedHandler {
4952    pub unsafe fn Invoke(&self, errorcode: windows_core::HRESULT) -> windows_core::Result<()> {
4953        unsafe {
4954            (windows_core::Interface::vtable(self).Invoke)(
4955                windows_core::Interface::as_raw(self),
4956                errorcode,
4957            )
4958            .ok()
4959        }
4960    }
4961}
4962#[repr(C)]
4963#[doc(hidden)]
4964pub struct ICoreWebView2CapturePreviewCompletedHandler_Vtbl {
4965    pub base__: windows_core::IUnknown_Vtbl,
4966    pub Invoke: unsafe extern "system" fn(
4967        *mut core::ffi::c_void,
4968        windows_core::HRESULT,
4969    ) -> windows_core::HRESULT,
4970}
4971pub trait ICoreWebView2CapturePreviewCompletedHandler_Impl: windows_core::IUnknownImpl {
4972    fn Invoke(&self, errorcode: windows_core::HRESULT) -> windows_core::Result<()>;
4973}
4974impl ICoreWebView2CapturePreviewCompletedHandler_Vtbl {
4975    pub const fn new<
4976        Identity: ICoreWebView2CapturePreviewCompletedHandler_Impl,
4977        const OFFSET: isize,
4978    >() -> Self {
4979        unsafe extern "system" fn Invoke<
4980            Identity: ICoreWebView2CapturePreviewCompletedHandler_Impl,
4981            const OFFSET: isize,
4982        >(
4983            this: *mut core::ffi::c_void,
4984            errorcode: windows_core::HRESULT,
4985        ) -> windows_core::HRESULT {
4986            unsafe {
4987                let this: &Identity =
4988                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
4989                ICoreWebView2CapturePreviewCompletedHandler_Impl::Invoke(
4990                    this,
4991                    core::mem::transmute_copy(&errorcode),
4992                )
4993                .into()
4994            }
4995        }
4996        Self {
4997            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
4998            Invoke: Invoke::<Identity, OFFSET>,
4999        }
5000    }
5001    pub fn matches(iid: &windows_core::GUID) -> bool {
5002        iid == &<ICoreWebView2CapturePreviewCompletedHandler as windows_core::Interface>::IID
5003    }
5004}
5005impl windows_core::RuntimeName for ICoreWebView2CapturePreviewCompletedHandler {}
5006windows_core::imp::define_interface!(
5007    ICoreWebView2Certificate,
5008    ICoreWebView2Certificate_Vtbl,
5009    0xc5fb2fce_1cac_4aee_9c79_5ed0362eaae0
5010);
5011windows_core::imp::interface_hierarchy!(ICoreWebView2Certificate, windows_core::IUnknown);
5012impl ICoreWebView2Certificate {
5013    pub unsafe fn Subject(&self, value: *mut windows_core::PWSTR) -> windows_core::Result<()> {
5014        unsafe {
5015            (windows_core::Interface::vtable(self).Subject)(
5016                windows_core::Interface::as_raw(self),
5017                value as _,
5018            )
5019            .ok()
5020        }
5021    }
5022    pub unsafe fn Issuer(&self, value: *mut windows_core::PWSTR) -> windows_core::Result<()> {
5023        unsafe {
5024            (windows_core::Interface::vtable(self).Issuer)(
5025                windows_core::Interface::as_raw(self),
5026                value as _,
5027            )
5028            .ok()
5029        }
5030    }
5031    pub unsafe fn ValidFrom(&self, value: *mut f64) -> windows_core::Result<()> {
5032        unsafe {
5033            (windows_core::Interface::vtable(self).ValidFrom)(
5034                windows_core::Interface::as_raw(self),
5035                value as _,
5036            )
5037            .ok()
5038        }
5039    }
5040    pub unsafe fn ValidTo(&self, value: *mut f64) -> windows_core::Result<()> {
5041        unsafe {
5042            (windows_core::Interface::vtable(self).ValidTo)(
5043                windows_core::Interface::as_raw(self),
5044                value as _,
5045            )
5046            .ok()
5047        }
5048    }
5049    pub unsafe fn DerEncodedSerialNumber(
5050        &self,
5051        value: *mut windows_core::PWSTR,
5052    ) -> windows_core::Result<()> {
5053        unsafe {
5054            (windows_core::Interface::vtable(self).DerEncodedSerialNumber)(
5055                windows_core::Interface::as_raw(self),
5056                value as _,
5057            )
5058            .ok()
5059        }
5060    }
5061    pub unsafe fn DisplayName(&self, value: *mut windows_core::PWSTR) -> windows_core::Result<()> {
5062        unsafe {
5063            (windows_core::Interface::vtable(self).DisplayName)(
5064                windows_core::Interface::as_raw(self),
5065                value as _,
5066            )
5067            .ok()
5068        }
5069    }
5070    pub unsafe fn ToPemEncoding(
5071        &self,
5072        pemencodeddata: *mut windows_core::PWSTR,
5073    ) -> windows_core::Result<()> {
5074        unsafe {
5075            (windows_core::Interface::vtable(self).ToPemEncoding)(
5076                windows_core::Interface::as_raw(self),
5077                pemencodeddata as _,
5078            )
5079            .ok()
5080        }
5081    }
5082    pub unsafe fn PemEncodedIssuerCertificateChain(
5083        &self,
5084    ) -> windows_core::Result<ICoreWebView2StringCollection> {
5085        unsafe {
5086            let mut result__ = core::mem::zeroed();
5087            (windows_core::Interface::vtable(self).PemEncodedIssuerCertificateChain)(
5088                windows_core::Interface::as_raw(self),
5089                &mut result__,
5090            )
5091            .and_then(|| windows_core::Type::from_abi(result__))
5092        }
5093    }
5094}
5095#[repr(C)]
5096#[doc(hidden)]
5097pub struct ICoreWebView2Certificate_Vtbl {
5098    pub base__: windows_core::IUnknown_Vtbl,
5099    pub Subject: unsafe extern "system" fn(
5100        *mut core::ffi::c_void,
5101        *mut windows_core::PWSTR,
5102    ) -> windows_core::HRESULT,
5103    pub Issuer: unsafe extern "system" fn(
5104        *mut core::ffi::c_void,
5105        *mut windows_core::PWSTR,
5106    ) -> windows_core::HRESULT,
5107    pub ValidFrom:
5108        unsafe extern "system" fn(*mut core::ffi::c_void, *mut f64) -> windows_core::HRESULT,
5109    pub ValidTo:
5110        unsafe extern "system" fn(*mut core::ffi::c_void, *mut f64) -> windows_core::HRESULT,
5111    pub DerEncodedSerialNumber: unsafe extern "system" fn(
5112        *mut core::ffi::c_void,
5113        *mut windows_core::PWSTR,
5114    ) -> windows_core::HRESULT,
5115    pub DisplayName: unsafe extern "system" fn(
5116        *mut core::ffi::c_void,
5117        *mut windows_core::PWSTR,
5118    ) -> windows_core::HRESULT,
5119    pub ToPemEncoding: unsafe extern "system" fn(
5120        *mut core::ffi::c_void,
5121        *mut windows_core::PWSTR,
5122    ) -> windows_core::HRESULT,
5123    pub PemEncodedIssuerCertificateChain: unsafe extern "system" fn(
5124        *mut core::ffi::c_void,
5125        *mut *mut core::ffi::c_void,
5126    ) -> windows_core::HRESULT,
5127}
5128pub trait ICoreWebView2Certificate_Impl: windows_core::IUnknownImpl {
5129    fn Subject(&self, value: *mut windows_core::PWSTR) -> windows_core::Result<()>;
5130    fn Issuer(&self, value: *mut windows_core::PWSTR) -> windows_core::Result<()>;
5131    fn ValidFrom(&self, value: *mut f64) -> windows_core::Result<()>;
5132    fn ValidTo(&self, value: *mut f64) -> windows_core::Result<()>;
5133    fn DerEncodedSerialNumber(&self, value: *mut windows_core::PWSTR) -> windows_core::Result<()>;
5134    fn DisplayName(&self, value: *mut windows_core::PWSTR) -> windows_core::Result<()>;
5135    fn ToPemEncoding(&self, pemencodeddata: *mut windows_core::PWSTR) -> windows_core::Result<()>;
5136    fn PemEncodedIssuerCertificateChain(
5137        &self,
5138    ) -> windows_core::Result<ICoreWebView2StringCollection>;
5139}
5140impl ICoreWebView2Certificate_Vtbl {
5141    pub const fn new<Identity: ICoreWebView2Certificate_Impl, const OFFSET: isize>() -> Self {
5142        unsafe extern "system" fn Subject<
5143            Identity: ICoreWebView2Certificate_Impl,
5144            const OFFSET: isize,
5145        >(
5146            this: *mut core::ffi::c_void,
5147            value: *mut windows_core::PWSTR,
5148        ) -> windows_core::HRESULT {
5149            unsafe {
5150                let this: &Identity =
5151                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
5152                ICoreWebView2Certificate_Impl::Subject(this, core::mem::transmute_copy(&value))
5153                    .into()
5154            }
5155        }
5156        unsafe extern "system" fn Issuer<
5157            Identity: ICoreWebView2Certificate_Impl,
5158            const OFFSET: isize,
5159        >(
5160            this: *mut core::ffi::c_void,
5161            value: *mut windows_core::PWSTR,
5162        ) -> windows_core::HRESULT {
5163            unsafe {
5164                let this: &Identity =
5165                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
5166                ICoreWebView2Certificate_Impl::Issuer(this, core::mem::transmute_copy(&value))
5167                    .into()
5168            }
5169        }
5170        unsafe extern "system" fn ValidFrom<
5171            Identity: ICoreWebView2Certificate_Impl,
5172            const OFFSET: isize,
5173        >(
5174            this: *mut core::ffi::c_void,
5175            value: *mut f64,
5176        ) -> windows_core::HRESULT {
5177            unsafe {
5178                let this: &Identity =
5179                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
5180                ICoreWebView2Certificate_Impl::ValidFrom(this, core::mem::transmute_copy(&value))
5181                    .into()
5182            }
5183        }
5184        unsafe extern "system" fn ValidTo<
5185            Identity: ICoreWebView2Certificate_Impl,
5186            const OFFSET: isize,
5187        >(
5188            this: *mut core::ffi::c_void,
5189            value: *mut f64,
5190        ) -> windows_core::HRESULT {
5191            unsafe {
5192                let this: &Identity =
5193                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
5194                ICoreWebView2Certificate_Impl::ValidTo(this, core::mem::transmute_copy(&value))
5195                    .into()
5196            }
5197        }
5198        unsafe extern "system" fn DerEncodedSerialNumber<
5199            Identity: ICoreWebView2Certificate_Impl,
5200            const OFFSET: isize,
5201        >(
5202            this: *mut core::ffi::c_void,
5203            value: *mut windows_core::PWSTR,
5204        ) -> windows_core::HRESULT {
5205            unsafe {
5206                let this: &Identity =
5207                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
5208                ICoreWebView2Certificate_Impl::DerEncodedSerialNumber(
5209                    this,
5210                    core::mem::transmute_copy(&value),
5211                )
5212                .into()
5213            }
5214        }
5215        unsafe extern "system" fn DisplayName<
5216            Identity: ICoreWebView2Certificate_Impl,
5217            const OFFSET: isize,
5218        >(
5219            this: *mut core::ffi::c_void,
5220            value: *mut windows_core::PWSTR,
5221        ) -> windows_core::HRESULT {
5222            unsafe {
5223                let this: &Identity =
5224                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
5225                ICoreWebView2Certificate_Impl::DisplayName(this, core::mem::transmute_copy(&value))
5226                    .into()
5227            }
5228        }
5229        unsafe extern "system" fn ToPemEncoding<
5230            Identity: ICoreWebView2Certificate_Impl,
5231            const OFFSET: isize,
5232        >(
5233            this: *mut core::ffi::c_void,
5234            pemencodeddata: *mut windows_core::PWSTR,
5235        ) -> windows_core::HRESULT {
5236            unsafe {
5237                let this: &Identity =
5238                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
5239                ICoreWebView2Certificate_Impl::ToPemEncoding(
5240                    this,
5241                    core::mem::transmute_copy(&pemencodeddata),
5242                )
5243                .into()
5244            }
5245        }
5246        unsafe extern "system" fn PemEncodedIssuerCertificateChain<
5247            Identity: ICoreWebView2Certificate_Impl,
5248            const OFFSET: isize,
5249        >(
5250            this: *mut core::ffi::c_void,
5251            value: *mut *mut core::ffi::c_void,
5252        ) -> windows_core::HRESULT {
5253            unsafe {
5254                let this: &Identity =
5255                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
5256                match ICoreWebView2Certificate_Impl::PemEncodedIssuerCertificateChain(this) {
5257                    Ok(ok__) => {
5258                        value.write(core::mem::transmute(ok__));
5259                        windows_core::HRESULT(0)
5260                    }
5261                    Err(err) => err.into(),
5262                }
5263            }
5264        }
5265        Self {
5266            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
5267            Subject: Subject::<Identity, OFFSET>,
5268            Issuer: Issuer::<Identity, OFFSET>,
5269            ValidFrom: ValidFrom::<Identity, OFFSET>,
5270            ValidTo: ValidTo::<Identity, OFFSET>,
5271            DerEncodedSerialNumber: DerEncodedSerialNumber::<Identity, OFFSET>,
5272            DisplayName: DisplayName::<Identity, OFFSET>,
5273            ToPemEncoding: ToPemEncoding::<Identity, OFFSET>,
5274            PemEncodedIssuerCertificateChain: PemEncodedIssuerCertificateChain::<Identity, OFFSET>,
5275        }
5276    }
5277    pub fn matches(iid: &windows_core::GUID) -> bool {
5278        iid == &<ICoreWebView2Certificate as windows_core::Interface>::IID
5279    }
5280}
5281impl windows_core::RuntimeName for ICoreWebView2Certificate {}
5282windows_core::imp::define_interface!(
5283    ICoreWebView2ClearBrowsingDataCompletedHandler,
5284    ICoreWebView2ClearBrowsingDataCompletedHandler_Vtbl,
5285    0xe9710a06_1d1d_49b2_8234_226f35846ae5
5286);
5287windows_core::imp::interface_hierarchy!(
5288    ICoreWebView2ClearBrowsingDataCompletedHandler,
5289    windows_core::IUnknown
5290);
5291impl ICoreWebView2ClearBrowsingDataCompletedHandler {
5292    pub unsafe fn Invoke(&self, errorcode: windows_core::HRESULT) -> windows_core::Result<()> {
5293        unsafe {
5294            (windows_core::Interface::vtable(self).Invoke)(
5295                windows_core::Interface::as_raw(self),
5296                errorcode,
5297            )
5298            .ok()
5299        }
5300    }
5301}
5302#[repr(C)]
5303#[doc(hidden)]
5304pub struct ICoreWebView2ClearBrowsingDataCompletedHandler_Vtbl {
5305    pub base__: windows_core::IUnknown_Vtbl,
5306    pub Invoke: unsafe extern "system" fn(
5307        *mut core::ffi::c_void,
5308        windows_core::HRESULT,
5309    ) -> windows_core::HRESULT,
5310}
5311pub trait ICoreWebView2ClearBrowsingDataCompletedHandler_Impl: windows_core::IUnknownImpl {
5312    fn Invoke(&self, errorcode: windows_core::HRESULT) -> windows_core::Result<()>;
5313}
5314impl ICoreWebView2ClearBrowsingDataCompletedHandler_Vtbl {
5315    pub const fn new<
5316        Identity: ICoreWebView2ClearBrowsingDataCompletedHandler_Impl,
5317        const OFFSET: isize,
5318    >() -> Self {
5319        unsafe extern "system" fn Invoke<
5320            Identity: ICoreWebView2ClearBrowsingDataCompletedHandler_Impl,
5321            const OFFSET: isize,
5322        >(
5323            this: *mut core::ffi::c_void,
5324            errorcode: windows_core::HRESULT,
5325        ) -> windows_core::HRESULT {
5326            unsafe {
5327                let this: &Identity =
5328                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
5329                ICoreWebView2ClearBrowsingDataCompletedHandler_Impl::Invoke(
5330                    this,
5331                    core::mem::transmute_copy(&errorcode),
5332                )
5333                .into()
5334            }
5335        }
5336        Self {
5337            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
5338            Invoke: Invoke::<Identity, OFFSET>,
5339        }
5340    }
5341    pub fn matches(iid: &windows_core::GUID) -> bool {
5342        iid == &<ICoreWebView2ClearBrowsingDataCompletedHandler as windows_core::Interface>::IID
5343    }
5344}
5345impl windows_core::RuntimeName for ICoreWebView2ClearBrowsingDataCompletedHandler {}
5346windows_core::imp::define_interface!(
5347    ICoreWebView2ClearServerCertificateErrorActionsCompletedHandler,
5348    ICoreWebView2ClearServerCertificateErrorActionsCompletedHandler_Vtbl,
5349    0x3b40aac6_acfe_4ffd_8211_f607b96e2d5b
5350);
5351windows_core::imp::interface_hierarchy!(
5352    ICoreWebView2ClearServerCertificateErrorActionsCompletedHandler,
5353    windows_core::IUnknown
5354);
5355impl ICoreWebView2ClearServerCertificateErrorActionsCompletedHandler {
5356    pub unsafe fn Invoke(&self, errorcode: windows_core::HRESULT) -> windows_core::Result<()> {
5357        unsafe {
5358            (windows_core::Interface::vtable(self).Invoke)(
5359                windows_core::Interface::as_raw(self),
5360                errorcode,
5361            )
5362            .ok()
5363        }
5364    }
5365}
5366#[repr(C)]
5367#[doc(hidden)]
5368pub struct ICoreWebView2ClearServerCertificateErrorActionsCompletedHandler_Vtbl {
5369    pub base__: windows_core::IUnknown_Vtbl,
5370    pub Invoke: unsafe extern "system" fn(
5371        *mut core::ffi::c_void,
5372        windows_core::HRESULT,
5373    ) -> windows_core::HRESULT,
5374}
5375pub trait ICoreWebView2ClearServerCertificateErrorActionsCompletedHandler_Impl:
5376    windows_core::IUnknownImpl
5377{
5378    fn Invoke(&self, errorcode: windows_core::HRESULT) -> windows_core::Result<()>;
5379}
5380impl ICoreWebView2ClearServerCertificateErrorActionsCompletedHandler_Vtbl {
5381    pub const fn new<
5382        Identity: ICoreWebView2ClearServerCertificateErrorActionsCompletedHandler_Impl,
5383        const OFFSET: isize,
5384    >() -> Self {
5385        unsafe extern "system" fn Invoke<
5386            Identity: ICoreWebView2ClearServerCertificateErrorActionsCompletedHandler_Impl,
5387            const OFFSET: isize,
5388        >(
5389            this: *mut core::ffi::c_void,
5390            errorcode: windows_core::HRESULT,
5391        ) -> windows_core::HRESULT {
5392            unsafe {
5393                let this: &Identity =
5394                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
5395                ICoreWebView2ClearServerCertificateErrorActionsCompletedHandler_Impl::Invoke(
5396                    this,
5397                    core::mem::transmute_copy(&errorcode),
5398                )
5399                .into()
5400            }
5401        }
5402        Self {
5403            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
5404            Invoke: Invoke::<Identity, OFFSET>,
5405        }
5406    }
5407    pub fn matches(iid: &windows_core::GUID) -> bool {
5408        iid == & < ICoreWebView2ClearServerCertificateErrorActionsCompletedHandler as windows_core::Interface >::IID
5409    }
5410}
5411impl windows_core::RuntimeName for ICoreWebView2ClearServerCertificateErrorActionsCompletedHandler {}
5412windows_core::imp::define_interface!(
5413    ICoreWebView2ClientCertificate,
5414    ICoreWebView2ClientCertificate_Vtbl,
5415    0xe7188076_bcc3_11eb_8529_0242ac130003
5416);
5417windows_core::imp::interface_hierarchy!(ICoreWebView2ClientCertificate, windows_core::IUnknown);
5418impl ICoreWebView2ClientCertificate {
5419    pub unsafe fn Subject(&self, value: *mut windows_core::PWSTR) -> windows_core::Result<()> {
5420        unsafe {
5421            (windows_core::Interface::vtable(self).Subject)(
5422                windows_core::Interface::as_raw(self),
5423                value as _,
5424            )
5425            .ok()
5426        }
5427    }
5428    pub unsafe fn Issuer(&self, value: *mut windows_core::PWSTR) -> windows_core::Result<()> {
5429        unsafe {
5430            (windows_core::Interface::vtable(self).Issuer)(
5431                windows_core::Interface::as_raw(self),
5432                value as _,
5433            )
5434            .ok()
5435        }
5436    }
5437    pub unsafe fn ValidFrom(&self, value: *mut f64) -> windows_core::Result<()> {
5438        unsafe {
5439            (windows_core::Interface::vtable(self).ValidFrom)(
5440                windows_core::Interface::as_raw(self),
5441                value as _,
5442            )
5443            .ok()
5444        }
5445    }
5446    pub unsafe fn ValidTo(&self, value: *mut f64) -> windows_core::Result<()> {
5447        unsafe {
5448            (windows_core::Interface::vtable(self).ValidTo)(
5449                windows_core::Interface::as_raw(self),
5450                value as _,
5451            )
5452            .ok()
5453        }
5454    }
5455    pub unsafe fn DerEncodedSerialNumber(
5456        &self,
5457        value: *mut windows_core::PWSTR,
5458    ) -> windows_core::Result<()> {
5459        unsafe {
5460            (windows_core::Interface::vtable(self).DerEncodedSerialNumber)(
5461                windows_core::Interface::as_raw(self),
5462                value as _,
5463            )
5464            .ok()
5465        }
5466    }
5467    pub unsafe fn DisplayName(&self, value: *mut windows_core::PWSTR) -> windows_core::Result<()> {
5468        unsafe {
5469            (windows_core::Interface::vtable(self).DisplayName)(
5470                windows_core::Interface::as_raw(self),
5471                value as _,
5472            )
5473            .ok()
5474        }
5475    }
5476    pub unsafe fn ToPemEncoding(
5477        &self,
5478        pemencodeddata: *mut windows_core::PWSTR,
5479    ) -> windows_core::Result<()> {
5480        unsafe {
5481            (windows_core::Interface::vtable(self).ToPemEncoding)(
5482                windows_core::Interface::as_raw(self),
5483                pemencodeddata as _,
5484            )
5485            .ok()
5486        }
5487    }
5488    pub unsafe fn PemEncodedIssuerCertificateChain(
5489        &self,
5490    ) -> windows_core::Result<ICoreWebView2StringCollection> {
5491        unsafe {
5492            let mut result__ = core::mem::zeroed();
5493            (windows_core::Interface::vtable(self).PemEncodedIssuerCertificateChain)(
5494                windows_core::Interface::as_raw(self),
5495                &mut result__,
5496            )
5497            .and_then(|| windows_core::Type::from_abi(result__))
5498        }
5499    }
5500    pub unsafe fn Kind(
5501        &self,
5502        value: *mut COREWEBVIEW2_CLIENT_CERTIFICATE_KIND,
5503    ) -> windows_core::Result<()> {
5504        unsafe {
5505            (windows_core::Interface::vtable(self).Kind)(
5506                windows_core::Interface::as_raw(self),
5507                value as _,
5508            )
5509            .ok()
5510        }
5511    }
5512}
5513#[repr(C)]
5514#[doc(hidden)]
5515pub struct ICoreWebView2ClientCertificate_Vtbl {
5516    pub base__: windows_core::IUnknown_Vtbl,
5517    pub Subject: unsafe extern "system" fn(
5518        *mut core::ffi::c_void,
5519        *mut windows_core::PWSTR,
5520    ) -> windows_core::HRESULT,
5521    pub Issuer: unsafe extern "system" fn(
5522        *mut core::ffi::c_void,
5523        *mut windows_core::PWSTR,
5524    ) -> windows_core::HRESULT,
5525    pub ValidFrom:
5526        unsafe extern "system" fn(*mut core::ffi::c_void, *mut f64) -> windows_core::HRESULT,
5527    pub ValidTo:
5528        unsafe extern "system" fn(*mut core::ffi::c_void, *mut f64) -> windows_core::HRESULT,
5529    pub DerEncodedSerialNumber: unsafe extern "system" fn(
5530        *mut core::ffi::c_void,
5531        *mut windows_core::PWSTR,
5532    ) -> windows_core::HRESULT,
5533    pub DisplayName: unsafe extern "system" fn(
5534        *mut core::ffi::c_void,
5535        *mut windows_core::PWSTR,
5536    ) -> windows_core::HRESULT,
5537    pub ToPemEncoding: unsafe extern "system" fn(
5538        *mut core::ffi::c_void,
5539        *mut windows_core::PWSTR,
5540    ) -> windows_core::HRESULT,
5541    pub PemEncodedIssuerCertificateChain: unsafe extern "system" fn(
5542        *mut core::ffi::c_void,
5543        *mut *mut core::ffi::c_void,
5544    ) -> windows_core::HRESULT,
5545    pub Kind: unsafe extern "system" fn(
5546        *mut core::ffi::c_void,
5547        *mut COREWEBVIEW2_CLIENT_CERTIFICATE_KIND,
5548    ) -> windows_core::HRESULT,
5549}
5550pub trait ICoreWebView2ClientCertificate_Impl: windows_core::IUnknownImpl {
5551    fn Subject(&self, value: *mut windows_core::PWSTR) -> windows_core::Result<()>;
5552    fn Issuer(&self, value: *mut windows_core::PWSTR) -> windows_core::Result<()>;
5553    fn ValidFrom(&self, value: *mut f64) -> windows_core::Result<()>;
5554    fn ValidTo(&self, value: *mut f64) -> windows_core::Result<()>;
5555    fn DerEncodedSerialNumber(&self, value: *mut windows_core::PWSTR) -> windows_core::Result<()>;
5556    fn DisplayName(&self, value: *mut windows_core::PWSTR) -> windows_core::Result<()>;
5557    fn ToPemEncoding(&self, pemencodeddata: *mut windows_core::PWSTR) -> windows_core::Result<()>;
5558    fn PemEncodedIssuerCertificateChain(
5559        &self,
5560    ) -> windows_core::Result<ICoreWebView2StringCollection>;
5561    fn Kind(&self, value: *mut COREWEBVIEW2_CLIENT_CERTIFICATE_KIND) -> windows_core::Result<()>;
5562}
5563impl ICoreWebView2ClientCertificate_Vtbl {
5564    pub const fn new<Identity: ICoreWebView2ClientCertificate_Impl, const OFFSET: isize>() -> Self {
5565        unsafe extern "system" fn Subject<
5566            Identity: ICoreWebView2ClientCertificate_Impl,
5567            const OFFSET: isize,
5568        >(
5569            this: *mut core::ffi::c_void,
5570            value: *mut windows_core::PWSTR,
5571        ) -> windows_core::HRESULT {
5572            unsafe {
5573                let this: &Identity =
5574                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
5575                ICoreWebView2ClientCertificate_Impl::Subject(
5576                    this,
5577                    core::mem::transmute_copy(&value),
5578                )
5579                .into()
5580            }
5581        }
5582        unsafe extern "system" fn Issuer<
5583            Identity: ICoreWebView2ClientCertificate_Impl,
5584            const OFFSET: isize,
5585        >(
5586            this: *mut core::ffi::c_void,
5587            value: *mut windows_core::PWSTR,
5588        ) -> windows_core::HRESULT {
5589            unsafe {
5590                let this: &Identity =
5591                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
5592                ICoreWebView2ClientCertificate_Impl::Issuer(this, core::mem::transmute_copy(&value))
5593                    .into()
5594            }
5595        }
5596        unsafe extern "system" fn ValidFrom<
5597            Identity: ICoreWebView2ClientCertificate_Impl,
5598            const OFFSET: isize,
5599        >(
5600            this: *mut core::ffi::c_void,
5601            value: *mut f64,
5602        ) -> windows_core::HRESULT {
5603            unsafe {
5604                let this: &Identity =
5605                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
5606                ICoreWebView2ClientCertificate_Impl::ValidFrom(
5607                    this,
5608                    core::mem::transmute_copy(&value),
5609                )
5610                .into()
5611            }
5612        }
5613        unsafe extern "system" fn ValidTo<
5614            Identity: ICoreWebView2ClientCertificate_Impl,
5615            const OFFSET: isize,
5616        >(
5617            this: *mut core::ffi::c_void,
5618            value: *mut f64,
5619        ) -> windows_core::HRESULT {
5620            unsafe {
5621                let this: &Identity =
5622                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
5623                ICoreWebView2ClientCertificate_Impl::ValidTo(
5624                    this,
5625                    core::mem::transmute_copy(&value),
5626                )
5627                .into()
5628            }
5629        }
5630        unsafe extern "system" fn DerEncodedSerialNumber<
5631            Identity: ICoreWebView2ClientCertificate_Impl,
5632            const OFFSET: isize,
5633        >(
5634            this: *mut core::ffi::c_void,
5635            value: *mut windows_core::PWSTR,
5636        ) -> windows_core::HRESULT {
5637            unsafe {
5638                let this: &Identity =
5639                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
5640                ICoreWebView2ClientCertificate_Impl::DerEncodedSerialNumber(
5641                    this,
5642                    core::mem::transmute_copy(&value),
5643                )
5644                .into()
5645            }
5646        }
5647        unsafe extern "system" fn DisplayName<
5648            Identity: ICoreWebView2ClientCertificate_Impl,
5649            const OFFSET: isize,
5650        >(
5651            this: *mut core::ffi::c_void,
5652            value: *mut windows_core::PWSTR,
5653        ) -> windows_core::HRESULT {
5654            unsafe {
5655                let this: &Identity =
5656                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
5657                ICoreWebView2ClientCertificate_Impl::DisplayName(
5658                    this,
5659                    core::mem::transmute_copy(&value),
5660                )
5661                .into()
5662            }
5663        }
5664        unsafe extern "system" fn ToPemEncoding<
5665            Identity: ICoreWebView2ClientCertificate_Impl,
5666            const OFFSET: isize,
5667        >(
5668            this: *mut core::ffi::c_void,
5669            pemencodeddata: *mut windows_core::PWSTR,
5670        ) -> windows_core::HRESULT {
5671            unsafe {
5672                let this: &Identity =
5673                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
5674                ICoreWebView2ClientCertificate_Impl::ToPemEncoding(
5675                    this,
5676                    core::mem::transmute_copy(&pemencodeddata),
5677                )
5678                .into()
5679            }
5680        }
5681        unsafe extern "system" fn PemEncodedIssuerCertificateChain<
5682            Identity: ICoreWebView2ClientCertificate_Impl,
5683            const OFFSET: isize,
5684        >(
5685            this: *mut core::ffi::c_void,
5686            value: *mut *mut core::ffi::c_void,
5687        ) -> windows_core::HRESULT {
5688            unsafe {
5689                let this: &Identity =
5690                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
5691                match ICoreWebView2ClientCertificate_Impl::PemEncodedIssuerCertificateChain(this) {
5692                    Ok(ok__) => {
5693                        value.write(core::mem::transmute(ok__));
5694                        windows_core::HRESULT(0)
5695                    }
5696                    Err(err) => err.into(),
5697                }
5698            }
5699        }
5700        unsafe extern "system" fn Kind<
5701            Identity: ICoreWebView2ClientCertificate_Impl,
5702            const OFFSET: isize,
5703        >(
5704            this: *mut core::ffi::c_void,
5705            value: *mut COREWEBVIEW2_CLIENT_CERTIFICATE_KIND,
5706        ) -> windows_core::HRESULT {
5707            unsafe {
5708                let this: &Identity =
5709                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
5710                ICoreWebView2ClientCertificate_Impl::Kind(this, core::mem::transmute_copy(&value))
5711                    .into()
5712            }
5713        }
5714        Self {
5715            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
5716            Subject: Subject::<Identity, OFFSET>,
5717            Issuer: Issuer::<Identity, OFFSET>,
5718            ValidFrom: ValidFrom::<Identity, OFFSET>,
5719            ValidTo: ValidTo::<Identity, OFFSET>,
5720            DerEncodedSerialNumber: DerEncodedSerialNumber::<Identity, OFFSET>,
5721            DisplayName: DisplayName::<Identity, OFFSET>,
5722            ToPemEncoding: ToPemEncoding::<Identity, OFFSET>,
5723            PemEncodedIssuerCertificateChain: PemEncodedIssuerCertificateChain::<Identity, OFFSET>,
5724            Kind: Kind::<Identity, OFFSET>,
5725        }
5726    }
5727    pub fn matches(iid: &windows_core::GUID) -> bool {
5728        iid == &<ICoreWebView2ClientCertificate as windows_core::Interface>::IID
5729    }
5730}
5731impl windows_core::RuntimeName for ICoreWebView2ClientCertificate {}
5732windows_core::imp::define_interface!(
5733    ICoreWebView2ClientCertificateCollection,
5734    ICoreWebView2ClientCertificateCollection_Vtbl,
5735    0xef5674d2_bcc3_11eb_8529_0242ac130003
5736);
5737windows_core::imp::interface_hierarchy!(
5738    ICoreWebView2ClientCertificateCollection,
5739    windows_core::IUnknown
5740);
5741impl ICoreWebView2ClientCertificateCollection {
5742    pub unsafe fn Count(&self, value: *mut u32) -> windows_core::Result<()> {
5743        unsafe {
5744            (windows_core::Interface::vtable(self).Count)(
5745                windows_core::Interface::as_raw(self),
5746                value as _,
5747            )
5748            .ok()
5749        }
5750    }
5751    pub unsafe fn GetValueAtIndex(
5752        &self,
5753        index: u32,
5754    ) -> windows_core::Result<ICoreWebView2ClientCertificate> {
5755        unsafe {
5756            let mut result__ = core::mem::zeroed();
5757            (windows_core::Interface::vtable(self).GetValueAtIndex)(
5758                windows_core::Interface::as_raw(self),
5759                index,
5760                &mut result__,
5761            )
5762            .and_then(|| windows_core::Type::from_abi(result__))
5763        }
5764    }
5765}
5766#[repr(C)]
5767#[doc(hidden)]
5768pub struct ICoreWebView2ClientCertificateCollection_Vtbl {
5769    pub base__: windows_core::IUnknown_Vtbl,
5770    pub Count: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
5771    pub GetValueAtIndex: unsafe extern "system" fn(
5772        *mut core::ffi::c_void,
5773        u32,
5774        *mut *mut core::ffi::c_void,
5775    ) -> windows_core::HRESULT,
5776}
5777pub trait ICoreWebView2ClientCertificateCollection_Impl: windows_core::IUnknownImpl {
5778    fn Count(&self, value: *mut u32) -> windows_core::Result<()>;
5779    fn GetValueAtIndex(&self, index: u32) -> windows_core::Result<ICoreWebView2ClientCertificate>;
5780}
5781impl ICoreWebView2ClientCertificateCollection_Vtbl {
5782    pub const fn new<
5783        Identity: ICoreWebView2ClientCertificateCollection_Impl,
5784        const OFFSET: isize,
5785    >() -> Self {
5786        unsafe extern "system" fn Count<
5787            Identity: ICoreWebView2ClientCertificateCollection_Impl,
5788            const OFFSET: isize,
5789        >(
5790            this: *mut core::ffi::c_void,
5791            value: *mut u32,
5792        ) -> windows_core::HRESULT {
5793            unsafe {
5794                let this: &Identity =
5795                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
5796                ICoreWebView2ClientCertificateCollection_Impl::Count(
5797                    this,
5798                    core::mem::transmute_copy(&value),
5799                )
5800                .into()
5801            }
5802        }
5803        unsafe extern "system" fn GetValueAtIndex<
5804            Identity: ICoreWebView2ClientCertificateCollection_Impl,
5805            const OFFSET: isize,
5806        >(
5807            this: *mut core::ffi::c_void,
5808            index: u32,
5809            value: *mut *mut core::ffi::c_void,
5810        ) -> windows_core::HRESULT {
5811            unsafe {
5812                let this: &Identity =
5813                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
5814                match ICoreWebView2ClientCertificateCollection_Impl::GetValueAtIndex(
5815                    this,
5816                    core::mem::transmute_copy(&index),
5817                ) {
5818                    Ok(ok__) => {
5819                        value.write(core::mem::transmute(ok__));
5820                        windows_core::HRESULT(0)
5821                    }
5822                    Err(err) => err.into(),
5823                }
5824            }
5825        }
5826        Self {
5827            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
5828            Count: Count::<Identity, OFFSET>,
5829            GetValueAtIndex: GetValueAtIndex::<Identity, OFFSET>,
5830        }
5831    }
5832    pub fn matches(iid: &windows_core::GUID) -> bool {
5833        iid == &<ICoreWebView2ClientCertificateCollection as windows_core::Interface>::IID
5834    }
5835}
5836impl windows_core::RuntimeName for ICoreWebView2ClientCertificateCollection {}
5837windows_core::imp::define_interface!(
5838    ICoreWebView2ClientCertificateRequestedEventArgs,
5839    ICoreWebView2ClientCertificateRequestedEventArgs_Vtbl,
5840    0xbc59db28_bcc3_11eb_8529_0242ac130003
5841);
5842windows_core::imp::interface_hierarchy!(
5843    ICoreWebView2ClientCertificateRequestedEventArgs,
5844    windows_core::IUnknown
5845);
5846impl ICoreWebView2ClientCertificateRequestedEventArgs {
5847    pub unsafe fn Host(&self, value: *mut windows_core::PWSTR) -> windows_core::Result<()> {
5848        unsafe {
5849            (windows_core::Interface::vtable(self).Host)(
5850                windows_core::Interface::as_raw(self),
5851                value as _,
5852            )
5853            .ok()
5854        }
5855    }
5856    pub unsafe fn Port(&self, value: *mut i32) -> windows_core::Result<()> {
5857        unsafe {
5858            (windows_core::Interface::vtable(self).Port)(
5859                windows_core::Interface::as_raw(self),
5860                value as _,
5861            )
5862            .ok()
5863        }
5864    }
5865    pub unsafe fn IsProxy(&self, value: *mut windows_core::BOOL) -> windows_core::Result<()> {
5866        unsafe {
5867            (windows_core::Interface::vtable(self).IsProxy)(
5868                windows_core::Interface::as_raw(self),
5869                value as _,
5870            )
5871            .ok()
5872        }
5873    }
5874    pub unsafe fn AllowedCertificateAuthorities(
5875        &self,
5876    ) -> windows_core::Result<ICoreWebView2StringCollection> {
5877        unsafe {
5878            let mut result__ = core::mem::zeroed();
5879            (windows_core::Interface::vtable(self).AllowedCertificateAuthorities)(
5880                windows_core::Interface::as_raw(self),
5881                &mut result__,
5882            )
5883            .and_then(|| windows_core::Type::from_abi(result__))
5884        }
5885    }
5886    pub unsafe fn MutuallyTrustedCertificates(
5887        &self,
5888    ) -> windows_core::Result<ICoreWebView2ClientCertificateCollection> {
5889        unsafe {
5890            let mut result__ = core::mem::zeroed();
5891            (windows_core::Interface::vtable(self).MutuallyTrustedCertificates)(
5892                windows_core::Interface::as_raw(self),
5893                &mut result__,
5894            )
5895            .and_then(|| windows_core::Type::from_abi(result__))
5896        }
5897    }
5898    pub unsafe fn SelectedCertificate(
5899        &self,
5900    ) -> windows_core::Result<ICoreWebView2ClientCertificate> {
5901        unsafe {
5902            let mut result__ = core::mem::zeroed();
5903            (windows_core::Interface::vtable(self).SelectedCertificate)(
5904                windows_core::Interface::as_raw(self),
5905                &mut result__,
5906            )
5907            .and_then(|| windows_core::Type::from_abi(result__))
5908        }
5909    }
5910    pub unsafe fn SetSelectedCertificate<P0>(&self, value: P0) -> windows_core::Result<()>
5911    where
5912        P0: windows_core::Param<ICoreWebView2ClientCertificate>,
5913    {
5914        unsafe {
5915            (windows_core::Interface::vtable(self).SetSelectedCertificate)(
5916                windows_core::Interface::as_raw(self),
5917                value.param().abi(),
5918            )
5919            .ok()
5920        }
5921    }
5922    pub unsafe fn Cancel(&self, value: *mut windows_core::BOOL) -> windows_core::Result<()> {
5923        unsafe {
5924            (windows_core::Interface::vtable(self).Cancel)(
5925                windows_core::Interface::as_raw(self),
5926                value as _,
5927            )
5928            .ok()
5929        }
5930    }
5931    pub unsafe fn SetCancel(&self, value: bool) -> windows_core::Result<()> {
5932        unsafe {
5933            (windows_core::Interface::vtable(self).SetCancel)(
5934                windows_core::Interface::as_raw(self),
5935                value.into(),
5936            )
5937            .ok()
5938        }
5939    }
5940    pub unsafe fn Handled(&self, value: *mut windows_core::BOOL) -> windows_core::Result<()> {
5941        unsafe {
5942            (windows_core::Interface::vtable(self).Handled)(
5943                windows_core::Interface::as_raw(self),
5944                value as _,
5945            )
5946            .ok()
5947        }
5948    }
5949    pub unsafe fn SetHandled(&self, value: bool) -> windows_core::Result<()> {
5950        unsafe {
5951            (windows_core::Interface::vtable(self).SetHandled)(
5952                windows_core::Interface::as_raw(self),
5953                value.into(),
5954            )
5955            .ok()
5956        }
5957    }
5958    pub unsafe fn GetDeferral(&self) -> windows_core::Result<ICoreWebView2Deferral> {
5959        unsafe {
5960            let mut result__ = core::mem::zeroed();
5961            (windows_core::Interface::vtable(self).GetDeferral)(
5962                windows_core::Interface::as_raw(self),
5963                &mut result__,
5964            )
5965            .and_then(|| windows_core::Type::from_abi(result__))
5966        }
5967    }
5968}
5969#[repr(C)]
5970#[doc(hidden)]
5971pub struct ICoreWebView2ClientCertificateRequestedEventArgs_Vtbl {
5972    pub base__: windows_core::IUnknown_Vtbl,
5973    pub Host: unsafe extern "system" fn(
5974        *mut core::ffi::c_void,
5975        *mut windows_core::PWSTR,
5976    ) -> windows_core::HRESULT,
5977    pub Port: unsafe extern "system" fn(*mut core::ffi::c_void, *mut i32) -> windows_core::HRESULT,
5978    pub IsProxy: unsafe extern "system" fn(
5979        *mut core::ffi::c_void,
5980        *mut windows_core::BOOL,
5981    ) -> windows_core::HRESULT,
5982    pub AllowedCertificateAuthorities: unsafe extern "system" fn(
5983        *mut core::ffi::c_void,
5984        *mut *mut core::ffi::c_void,
5985    ) -> windows_core::HRESULT,
5986    pub MutuallyTrustedCertificates: unsafe extern "system" fn(
5987        *mut core::ffi::c_void,
5988        *mut *mut core::ffi::c_void,
5989    ) -> windows_core::HRESULT,
5990    pub SelectedCertificate: unsafe extern "system" fn(
5991        *mut core::ffi::c_void,
5992        *mut *mut core::ffi::c_void,
5993    ) -> windows_core::HRESULT,
5994    pub SetSelectedCertificate: unsafe extern "system" fn(
5995        *mut core::ffi::c_void,
5996        *mut core::ffi::c_void,
5997    ) -> windows_core::HRESULT,
5998    pub Cancel: unsafe extern "system" fn(
5999        *mut core::ffi::c_void,
6000        *mut windows_core::BOOL,
6001    ) -> windows_core::HRESULT,
6002    pub SetCancel: unsafe extern "system" fn(
6003        *mut core::ffi::c_void,
6004        windows_core::BOOL,
6005    ) -> windows_core::HRESULT,
6006    pub Handled: unsafe extern "system" fn(
6007        *mut core::ffi::c_void,
6008        *mut windows_core::BOOL,
6009    ) -> windows_core::HRESULT,
6010    pub SetHandled: unsafe extern "system" fn(
6011        *mut core::ffi::c_void,
6012        windows_core::BOOL,
6013    ) -> windows_core::HRESULT,
6014    pub GetDeferral: unsafe extern "system" fn(
6015        *mut core::ffi::c_void,
6016        *mut *mut core::ffi::c_void,
6017    ) -> windows_core::HRESULT,
6018}
6019pub trait ICoreWebView2ClientCertificateRequestedEventArgs_Impl:
6020    windows_core::IUnknownImpl
6021{
6022    fn Host(&self, value: *mut windows_core::PWSTR) -> windows_core::Result<()>;
6023    fn Port(&self, value: *mut i32) -> windows_core::Result<()>;
6024    fn IsProxy(&self, value: *mut windows_core::BOOL) -> windows_core::Result<()>;
6025    fn AllowedCertificateAuthorities(&self) -> windows_core::Result<ICoreWebView2StringCollection>;
6026    fn MutuallyTrustedCertificates(
6027        &self,
6028    ) -> windows_core::Result<ICoreWebView2ClientCertificateCollection>;
6029    fn SelectedCertificate(&self) -> windows_core::Result<ICoreWebView2ClientCertificate>;
6030    fn SetSelectedCertificate(
6031        &self,
6032        value: windows_core::Ref<ICoreWebView2ClientCertificate>,
6033    ) -> windows_core::Result<()>;
6034    fn Cancel(&self, value: *mut windows_core::BOOL) -> windows_core::Result<()>;
6035    fn SetCancel(&self, value: windows_core::BOOL) -> windows_core::Result<()>;
6036    fn Handled(&self, value: *mut windows_core::BOOL) -> windows_core::Result<()>;
6037    fn SetHandled(&self, value: windows_core::BOOL) -> windows_core::Result<()>;
6038    fn GetDeferral(&self) -> windows_core::Result<ICoreWebView2Deferral>;
6039}
6040impl ICoreWebView2ClientCertificateRequestedEventArgs_Vtbl {
6041    pub const fn new<
6042        Identity: ICoreWebView2ClientCertificateRequestedEventArgs_Impl,
6043        const OFFSET: isize,
6044    >() -> Self {
6045        unsafe extern "system" fn Host<
6046            Identity: ICoreWebView2ClientCertificateRequestedEventArgs_Impl,
6047            const OFFSET: isize,
6048        >(
6049            this: *mut core::ffi::c_void,
6050            value: *mut windows_core::PWSTR,
6051        ) -> windows_core::HRESULT {
6052            unsafe {
6053                let this: &Identity =
6054                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
6055                ICoreWebView2ClientCertificateRequestedEventArgs_Impl::Host(
6056                    this,
6057                    core::mem::transmute_copy(&value),
6058                )
6059                .into()
6060            }
6061        }
6062        unsafe extern "system" fn Port<
6063            Identity: ICoreWebView2ClientCertificateRequestedEventArgs_Impl,
6064            const OFFSET: isize,
6065        >(
6066            this: *mut core::ffi::c_void,
6067            value: *mut i32,
6068        ) -> windows_core::HRESULT {
6069            unsafe {
6070                let this: &Identity =
6071                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
6072                ICoreWebView2ClientCertificateRequestedEventArgs_Impl::Port(
6073                    this,
6074                    core::mem::transmute_copy(&value),
6075                )
6076                .into()
6077            }
6078        }
6079        unsafe extern "system" fn IsProxy<
6080            Identity: ICoreWebView2ClientCertificateRequestedEventArgs_Impl,
6081            const OFFSET: isize,
6082        >(
6083            this: *mut core::ffi::c_void,
6084            value: *mut windows_core::BOOL,
6085        ) -> windows_core::HRESULT {
6086            unsafe {
6087                let this: &Identity =
6088                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
6089                ICoreWebView2ClientCertificateRequestedEventArgs_Impl::IsProxy(
6090                    this,
6091                    core::mem::transmute_copy(&value),
6092                )
6093                .into()
6094            }
6095        }
6096        unsafe extern "system" fn AllowedCertificateAuthorities<
6097            Identity: ICoreWebView2ClientCertificateRequestedEventArgs_Impl,
6098            const OFFSET: isize,
6099        >(
6100            this: *mut core::ffi::c_void,
6101            value: *mut *mut core::ffi::c_void,
6102        ) -> windows_core::HRESULT {
6103            unsafe {
6104                let this: &Identity =
6105                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
6106                match ICoreWebView2ClientCertificateRequestedEventArgs_Impl:: AllowedCertificateAuthorities ( this , ) { Ok ( ok__ ) => { value . write ( core::mem::transmute ( ok__ ) ) ; windows_core::HRESULT ( 0 ) } Err ( err ) => err . into ( ) }
6107            }
6108        }
6109        unsafe extern "system" fn MutuallyTrustedCertificates<
6110            Identity: ICoreWebView2ClientCertificateRequestedEventArgs_Impl,
6111            const OFFSET: isize,
6112        >(
6113            this: *mut core::ffi::c_void,
6114            value: *mut *mut core::ffi::c_void,
6115        ) -> windows_core::HRESULT {
6116            unsafe {
6117                let this: &Identity =
6118                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
6119                match ICoreWebView2ClientCertificateRequestedEventArgs_Impl:: MutuallyTrustedCertificates ( this , ) { Ok ( ok__ ) => { value . write ( core::mem::transmute ( ok__ ) ) ; windows_core::HRESULT ( 0 ) } Err ( err ) => err . into ( ) }
6120            }
6121        }
6122        unsafe extern "system" fn SelectedCertificate<
6123            Identity: ICoreWebView2ClientCertificateRequestedEventArgs_Impl,
6124            const OFFSET: isize,
6125        >(
6126            this: *mut core::ffi::c_void,
6127            value: *mut *mut core::ffi::c_void,
6128        ) -> windows_core::HRESULT {
6129            unsafe {
6130                let this: &Identity =
6131                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
6132                match ICoreWebView2ClientCertificateRequestedEventArgs_Impl::SelectedCertificate(
6133                    this,
6134                ) {
6135                    Ok(ok__) => {
6136                        value.write(core::mem::transmute(ok__));
6137                        windows_core::HRESULT(0)
6138                    }
6139                    Err(err) => err.into(),
6140                }
6141            }
6142        }
6143        unsafe extern "system" fn SetSelectedCertificate<
6144            Identity: ICoreWebView2ClientCertificateRequestedEventArgs_Impl,
6145            const OFFSET: isize,
6146        >(
6147            this: *mut core::ffi::c_void,
6148            value: *mut core::ffi::c_void,
6149        ) -> windows_core::HRESULT {
6150            unsafe {
6151                let this: &Identity =
6152                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
6153                ICoreWebView2ClientCertificateRequestedEventArgs_Impl::SetSelectedCertificate(
6154                    this,
6155                    core::mem::transmute_copy(&value),
6156                )
6157                .into()
6158            }
6159        }
6160        unsafe extern "system" fn Cancel<
6161            Identity: ICoreWebView2ClientCertificateRequestedEventArgs_Impl,
6162            const OFFSET: isize,
6163        >(
6164            this: *mut core::ffi::c_void,
6165            value: *mut windows_core::BOOL,
6166        ) -> windows_core::HRESULT {
6167            unsafe {
6168                let this: &Identity =
6169                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
6170                ICoreWebView2ClientCertificateRequestedEventArgs_Impl::Cancel(
6171                    this,
6172                    core::mem::transmute_copy(&value),
6173                )
6174                .into()
6175            }
6176        }
6177        unsafe extern "system" fn SetCancel<
6178            Identity: ICoreWebView2ClientCertificateRequestedEventArgs_Impl,
6179            const OFFSET: isize,
6180        >(
6181            this: *mut core::ffi::c_void,
6182            value: windows_core::BOOL,
6183        ) -> windows_core::HRESULT {
6184            unsafe {
6185                let this: &Identity =
6186                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
6187                ICoreWebView2ClientCertificateRequestedEventArgs_Impl::SetCancel(
6188                    this,
6189                    core::mem::transmute_copy(&value),
6190                )
6191                .into()
6192            }
6193        }
6194        unsafe extern "system" fn Handled<
6195            Identity: ICoreWebView2ClientCertificateRequestedEventArgs_Impl,
6196            const OFFSET: isize,
6197        >(
6198            this: *mut core::ffi::c_void,
6199            value: *mut windows_core::BOOL,
6200        ) -> windows_core::HRESULT {
6201            unsafe {
6202                let this: &Identity =
6203                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
6204                ICoreWebView2ClientCertificateRequestedEventArgs_Impl::Handled(
6205                    this,
6206                    core::mem::transmute_copy(&value),
6207                )
6208                .into()
6209            }
6210        }
6211        unsafe extern "system" fn SetHandled<
6212            Identity: ICoreWebView2ClientCertificateRequestedEventArgs_Impl,
6213            const OFFSET: isize,
6214        >(
6215            this: *mut core::ffi::c_void,
6216            value: windows_core::BOOL,
6217        ) -> windows_core::HRESULT {
6218            unsafe {
6219                let this: &Identity =
6220                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
6221                ICoreWebView2ClientCertificateRequestedEventArgs_Impl::SetHandled(
6222                    this,
6223                    core::mem::transmute_copy(&value),
6224                )
6225                .into()
6226            }
6227        }
6228        unsafe extern "system" fn GetDeferral<
6229            Identity: ICoreWebView2ClientCertificateRequestedEventArgs_Impl,
6230            const OFFSET: isize,
6231        >(
6232            this: *mut core::ffi::c_void,
6233            deferral: *mut *mut core::ffi::c_void,
6234        ) -> windows_core::HRESULT {
6235            unsafe {
6236                let this: &Identity =
6237                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
6238                match ICoreWebView2ClientCertificateRequestedEventArgs_Impl::GetDeferral(this) {
6239                    Ok(ok__) => {
6240                        deferral.write(core::mem::transmute(ok__));
6241                        windows_core::HRESULT(0)
6242                    }
6243                    Err(err) => err.into(),
6244                }
6245            }
6246        }
6247        Self {
6248            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
6249            Host: Host::<Identity, OFFSET>,
6250            Port: Port::<Identity, OFFSET>,
6251            IsProxy: IsProxy::<Identity, OFFSET>,
6252            AllowedCertificateAuthorities: AllowedCertificateAuthorities::<Identity, OFFSET>,
6253            MutuallyTrustedCertificates: MutuallyTrustedCertificates::<Identity, OFFSET>,
6254            SelectedCertificate: SelectedCertificate::<Identity, OFFSET>,
6255            SetSelectedCertificate: SetSelectedCertificate::<Identity, OFFSET>,
6256            Cancel: Cancel::<Identity, OFFSET>,
6257            SetCancel: SetCancel::<Identity, OFFSET>,
6258            Handled: Handled::<Identity, OFFSET>,
6259            SetHandled: SetHandled::<Identity, OFFSET>,
6260            GetDeferral: GetDeferral::<Identity, OFFSET>,
6261        }
6262    }
6263    pub fn matches(iid: &windows_core::GUID) -> bool {
6264        iid == &<ICoreWebView2ClientCertificateRequestedEventArgs as windows_core::Interface>::IID
6265    }
6266}
6267impl windows_core::RuntimeName for ICoreWebView2ClientCertificateRequestedEventArgs {}
6268windows_core::imp::define_interface!(
6269    ICoreWebView2ClientCertificateRequestedEventHandler,
6270    ICoreWebView2ClientCertificateRequestedEventHandler_Vtbl,
6271    0xd7175ba2_bcc3_11eb_8529_0242ac130003
6272);
6273windows_core::imp::interface_hierarchy!(
6274    ICoreWebView2ClientCertificateRequestedEventHandler,
6275    windows_core::IUnknown
6276);
6277impl ICoreWebView2ClientCertificateRequestedEventHandler {
6278    pub unsafe fn Invoke<P0, P1>(&self, sender: P0, args: P1) -> windows_core::Result<()>
6279    where
6280        P0: windows_core::Param<ICoreWebView2>,
6281        P1: windows_core::Param<ICoreWebView2ClientCertificateRequestedEventArgs>,
6282    {
6283        unsafe {
6284            (windows_core::Interface::vtable(self).Invoke)(
6285                windows_core::Interface::as_raw(self),
6286                sender.param().abi(),
6287                args.param().abi(),
6288            )
6289            .ok()
6290        }
6291    }
6292}
6293#[repr(C)]
6294#[doc(hidden)]
6295pub struct ICoreWebView2ClientCertificateRequestedEventHandler_Vtbl {
6296    pub base__: windows_core::IUnknown_Vtbl,
6297    pub Invoke: unsafe extern "system" fn(
6298        *mut core::ffi::c_void,
6299        *mut core::ffi::c_void,
6300        *mut core::ffi::c_void,
6301    ) -> windows_core::HRESULT,
6302}
6303pub trait ICoreWebView2ClientCertificateRequestedEventHandler_Impl:
6304    windows_core::IUnknownImpl
6305{
6306    fn Invoke(
6307        &self,
6308        sender: windows_core::Ref<ICoreWebView2>,
6309        args: windows_core::Ref<ICoreWebView2ClientCertificateRequestedEventArgs>,
6310    ) -> windows_core::Result<()>;
6311}
6312impl ICoreWebView2ClientCertificateRequestedEventHandler_Vtbl {
6313    pub const fn new<
6314        Identity: ICoreWebView2ClientCertificateRequestedEventHandler_Impl,
6315        const OFFSET: isize,
6316    >() -> Self {
6317        unsafe extern "system" fn Invoke<
6318            Identity: ICoreWebView2ClientCertificateRequestedEventHandler_Impl,
6319            const OFFSET: isize,
6320        >(
6321            this: *mut core::ffi::c_void,
6322            sender: *mut core::ffi::c_void,
6323            args: *mut core::ffi::c_void,
6324        ) -> windows_core::HRESULT {
6325            unsafe {
6326                let this: &Identity =
6327                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
6328                ICoreWebView2ClientCertificateRequestedEventHandler_Impl::Invoke(
6329                    this,
6330                    core::mem::transmute_copy(&sender),
6331                    core::mem::transmute_copy(&args),
6332                )
6333                .into()
6334            }
6335        }
6336        Self {
6337            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
6338            Invoke: Invoke::<Identity, OFFSET>,
6339        }
6340    }
6341    pub fn matches(iid: &windows_core::GUID) -> bool {
6342        iid == & < ICoreWebView2ClientCertificateRequestedEventHandler as windows_core::Interface >::IID
6343    }
6344}
6345impl windows_core::RuntimeName for ICoreWebView2ClientCertificateRequestedEventHandler {}
6346windows_core::imp::define_interface!(
6347    ICoreWebView2CompositionController,
6348    ICoreWebView2CompositionController_Vtbl,
6349    0x3df9b733_b9ae_4a15_86b4_eb9ee9826469
6350);
6351windows_core::imp::interface_hierarchy!(ICoreWebView2CompositionController, windows_core::IUnknown);
6352impl ICoreWebView2CompositionController {
6353    pub unsafe fn RootVisualTarget(&self) -> windows_core::Result<windows_core::IUnknown> {
6354        unsafe {
6355            let mut result__ = core::mem::zeroed();
6356            (windows_core::Interface::vtable(self).RootVisualTarget)(
6357                windows_core::Interface::as_raw(self),
6358                &mut result__,
6359            )
6360            .and_then(|| windows_core::Type::from_abi(result__))
6361        }
6362    }
6363    pub unsafe fn SetRootVisualTarget<P0>(&self, target: P0) -> windows_core::Result<()>
6364    where
6365        P0: windows_core::Param<windows_core::IUnknown>,
6366    {
6367        unsafe {
6368            (windows_core::Interface::vtable(self).SetRootVisualTarget)(
6369                windows_core::Interface::as_raw(self),
6370                target.param().abi(),
6371            )
6372            .ok()
6373        }
6374    }
6375    pub unsafe fn SendMouseInput(
6376        &self,
6377        eventkind: COREWEBVIEW2_MOUSE_EVENT_KIND,
6378        virtualkeys: COREWEBVIEW2_MOUSE_EVENT_VIRTUAL_KEYS,
6379        mousedata: u32,
6380        point: windows::Win32::Foundation::POINT,
6381    ) -> windows_core::Result<()> {
6382        unsafe {
6383            (windows_core::Interface::vtable(self).SendMouseInput)(
6384                windows_core::Interface::as_raw(self),
6385                eventkind,
6386                virtualkeys,
6387                mousedata,
6388                core::mem::transmute(point),
6389            )
6390            .ok()
6391        }
6392    }
6393    pub unsafe fn SendPointerInput<P1>(
6394        &self,
6395        eventkind: COREWEBVIEW2_POINTER_EVENT_KIND,
6396        pointerinfo: P1,
6397    ) -> windows_core::Result<()>
6398    where
6399        P1: windows_core::Param<ICoreWebView2PointerInfo>,
6400    {
6401        unsafe {
6402            (windows_core::Interface::vtable(self).SendPointerInput)(
6403                windows_core::Interface::as_raw(self),
6404                eventkind,
6405                pointerinfo.param().abi(),
6406            )
6407            .ok()
6408        }
6409    }
6410    pub unsafe fn Cursor(
6411        &self,
6412        cursor: *mut windows::Win32::UI::WindowsAndMessaging::HCURSOR,
6413    ) -> windows_core::Result<()> {
6414        unsafe {
6415            (windows_core::Interface::vtable(self).Cursor)(
6416                windows_core::Interface::as_raw(self),
6417                cursor as _,
6418            )
6419            .ok()
6420        }
6421    }
6422    pub unsafe fn SystemCursorId(&self, systemcursorid: *mut u32) -> windows_core::Result<()> {
6423        unsafe {
6424            (windows_core::Interface::vtable(self).SystemCursorId)(
6425                windows_core::Interface::as_raw(self),
6426                systemcursorid as _,
6427            )
6428            .ok()
6429        }
6430    }
6431    pub unsafe fn add_CursorChanged<P0>(
6432        &self,
6433        eventhandler: P0,
6434        token: *mut i64,
6435    ) -> windows_core::Result<()>
6436    where
6437        P0: windows_core::Param<ICoreWebView2CursorChangedEventHandler>,
6438    {
6439        unsafe {
6440            (windows_core::Interface::vtable(self).add_CursorChanged)(
6441                windows_core::Interface::as_raw(self),
6442                eventhandler.param().abi(),
6443                token as _,
6444            )
6445            .ok()
6446        }
6447    }
6448    pub unsafe fn remove_CursorChanged(&self, token: i64) -> windows_core::Result<()> {
6449        unsafe {
6450            (windows_core::Interface::vtable(self).remove_CursorChanged)(
6451                windows_core::Interface::as_raw(self),
6452                token,
6453            )
6454            .ok()
6455        }
6456    }
6457}
6458#[repr(C)]
6459#[doc(hidden)]
6460pub struct ICoreWebView2CompositionController_Vtbl {
6461    pub base__: windows_core::IUnknown_Vtbl,
6462    pub RootVisualTarget: unsafe extern "system" fn(
6463        *mut core::ffi::c_void,
6464        *mut *mut core::ffi::c_void,
6465    ) -> windows_core::HRESULT,
6466    pub SetRootVisualTarget: unsafe extern "system" fn(
6467        *mut core::ffi::c_void,
6468        *mut core::ffi::c_void,
6469    ) -> windows_core::HRESULT,
6470    pub SendMouseInput: unsafe extern "system" fn(
6471        *mut core::ffi::c_void,
6472        COREWEBVIEW2_MOUSE_EVENT_KIND,
6473        COREWEBVIEW2_MOUSE_EVENT_VIRTUAL_KEYS,
6474        u32,
6475        windows::Win32::Foundation::POINT,
6476    ) -> windows_core::HRESULT,
6477    pub SendPointerInput: unsafe extern "system" fn(
6478        *mut core::ffi::c_void,
6479        COREWEBVIEW2_POINTER_EVENT_KIND,
6480        *mut core::ffi::c_void,
6481    ) -> windows_core::HRESULT,
6482    pub Cursor: unsafe extern "system" fn(
6483        *mut core::ffi::c_void,
6484        *mut windows::Win32::UI::WindowsAndMessaging::HCURSOR,
6485    ) -> windows_core::HRESULT,
6486    pub SystemCursorId:
6487        unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
6488    pub add_CursorChanged: unsafe extern "system" fn(
6489        *mut core::ffi::c_void,
6490        *mut core::ffi::c_void,
6491        *mut i64,
6492    ) -> windows_core::HRESULT,
6493    pub remove_CursorChanged:
6494        unsafe extern "system" fn(*mut core::ffi::c_void, i64) -> windows_core::HRESULT,
6495}
6496pub trait ICoreWebView2CompositionController_Impl: windows_core::IUnknownImpl {
6497    fn RootVisualTarget(&self) -> windows_core::Result<windows_core::IUnknown>;
6498    fn SetRootVisualTarget(
6499        &self,
6500        target: windows_core::Ref<windows_core::IUnknown>,
6501    ) -> windows_core::Result<()>;
6502    fn SendMouseInput(
6503        &self,
6504        eventkind: COREWEBVIEW2_MOUSE_EVENT_KIND,
6505        virtualkeys: COREWEBVIEW2_MOUSE_EVENT_VIRTUAL_KEYS,
6506        mousedata: u32,
6507        point: &windows::Win32::Foundation::POINT,
6508    ) -> windows_core::Result<()>;
6509    fn SendPointerInput(
6510        &self,
6511        eventkind: COREWEBVIEW2_POINTER_EVENT_KIND,
6512        pointerinfo: windows_core::Ref<ICoreWebView2PointerInfo>,
6513    ) -> windows_core::Result<()>;
6514    fn Cursor(
6515        &self,
6516        cursor: *mut windows::Win32::UI::WindowsAndMessaging::HCURSOR,
6517    ) -> windows_core::Result<()>;
6518    fn SystemCursorId(&self, systemcursorid: *mut u32) -> windows_core::Result<()>;
6519    fn add_CursorChanged(
6520        &self,
6521        eventhandler: windows_core::Ref<ICoreWebView2CursorChangedEventHandler>,
6522        token: *mut i64,
6523    ) -> windows_core::Result<()>;
6524    fn remove_CursorChanged(&self, token: i64) -> windows_core::Result<()>;
6525}
6526impl ICoreWebView2CompositionController_Vtbl {
6527    pub const fn new<Identity: ICoreWebView2CompositionController_Impl, const OFFSET: isize>(
6528    ) -> Self {
6529        unsafe extern "system" fn RootVisualTarget<
6530            Identity: ICoreWebView2CompositionController_Impl,
6531            const OFFSET: isize,
6532        >(
6533            this: *mut core::ffi::c_void,
6534            target: *mut *mut core::ffi::c_void,
6535        ) -> windows_core::HRESULT {
6536            unsafe {
6537                let this: &Identity =
6538                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
6539                match ICoreWebView2CompositionController_Impl::RootVisualTarget(this) {
6540                    Ok(ok__) => {
6541                        target.write(core::mem::transmute(ok__));
6542                        windows_core::HRESULT(0)
6543                    }
6544                    Err(err) => err.into(),
6545                }
6546            }
6547        }
6548        unsafe extern "system" fn SetRootVisualTarget<
6549            Identity: ICoreWebView2CompositionController_Impl,
6550            const OFFSET: isize,
6551        >(
6552            this: *mut core::ffi::c_void,
6553            target: *mut core::ffi::c_void,
6554        ) -> windows_core::HRESULT {
6555            unsafe {
6556                let this: &Identity =
6557                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
6558                ICoreWebView2CompositionController_Impl::SetRootVisualTarget(
6559                    this,
6560                    core::mem::transmute_copy(&target),
6561                )
6562                .into()
6563            }
6564        }
6565        unsafe extern "system" fn SendMouseInput<
6566            Identity: ICoreWebView2CompositionController_Impl,
6567            const OFFSET: isize,
6568        >(
6569            this: *mut core::ffi::c_void,
6570            eventkind: COREWEBVIEW2_MOUSE_EVENT_KIND,
6571            virtualkeys: COREWEBVIEW2_MOUSE_EVENT_VIRTUAL_KEYS,
6572            mousedata: u32,
6573            point: windows::Win32::Foundation::POINT,
6574        ) -> windows_core::HRESULT {
6575            unsafe {
6576                let this: &Identity =
6577                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
6578                ICoreWebView2CompositionController_Impl::SendMouseInput(
6579                    this,
6580                    core::mem::transmute_copy(&eventkind),
6581                    core::mem::transmute_copy(&virtualkeys),
6582                    core::mem::transmute_copy(&mousedata),
6583                    core::mem::transmute(&point),
6584                )
6585                .into()
6586            }
6587        }
6588        unsafe extern "system" fn SendPointerInput<
6589            Identity: ICoreWebView2CompositionController_Impl,
6590            const OFFSET: isize,
6591        >(
6592            this: *mut core::ffi::c_void,
6593            eventkind: COREWEBVIEW2_POINTER_EVENT_KIND,
6594            pointerinfo: *mut core::ffi::c_void,
6595        ) -> windows_core::HRESULT {
6596            unsafe {
6597                let this: &Identity =
6598                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
6599                ICoreWebView2CompositionController_Impl::SendPointerInput(
6600                    this,
6601                    core::mem::transmute_copy(&eventkind),
6602                    core::mem::transmute_copy(&pointerinfo),
6603                )
6604                .into()
6605            }
6606        }
6607        unsafe extern "system" fn Cursor<
6608            Identity: ICoreWebView2CompositionController_Impl,
6609            const OFFSET: isize,
6610        >(
6611            this: *mut core::ffi::c_void,
6612            cursor: *mut windows::Win32::UI::WindowsAndMessaging::HCURSOR,
6613        ) -> windows_core::HRESULT {
6614            unsafe {
6615                let this: &Identity =
6616                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
6617                ICoreWebView2CompositionController_Impl::Cursor(
6618                    this,
6619                    core::mem::transmute_copy(&cursor),
6620                )
6621                .into()
6622            }
6623        }
6624        unsafe extern "system" fn SystemCursorId<
6625            Identity: ICoreWebView2CompositionController_Impl,
6626            const OFFSET: isize,
6627        >(
6628            this: *mut core::ffi::c_void,
6629            systemcursorid: *mut u32,
6630        ) -> windows_core::HRESULT {
6631            unsafe {
6632                let this: &Identity =
6633                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
6634                ICoreWebView2CompositionController_Impl::SystemCursorId(
6635                    this,
6636                    core::mem::transmute_copy(&systemcursorid),
6637                )
6638                .into()
6639            }
6640        }
6641        unsafe extern "system" fn add_CursorChanged<
6642            Identity: ICoreWebView2CompositionController_Impl,
6643            const OFFSET: isize,
6644        >(
6645            this: *mut core::ffi::c_void,
6646            eventhandler: *mut core::ffi::c_void,
6647            token: *mut i64,
6648        ) -> windows_core::HRESULT {
6649            unsafe {
6650                let this: &Identity =
6651                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
6652                ICoreWebView2CompositionController_Impl::add_CursorChanged(
6653                    this,
6654                    core::mem::transmute_copy(&eventhandler),
6655                    core::mem::transmute_copy(&token),
6656                )
6657                .into()
6658            }
6659        }
6660        unsafe extern "system" fn remove_CursorChanged<
6661            Identity: ICoreWebView2CompositionController_Impl,
6662            const OFFSET: isize,
6663        >(
6664            this: *mut core::ffi::c_void,
6665            token: i64,
6666        ) -> windows_core::HRESULT {
6667            unsafe {
6668                let this: &Identity =
6669                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
6670                ICoreWebView2CompositionController_Impl::remove_CursorChanged(
6671                    this,
6672                    core::mem::transmute_copy(&token),
6673                )
6674                .into()
6675            }
6676        }
6677        Self {
6678            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
6679            RootVisualTarget: RootVisualTarget::<Identity, OFFSET>,
6680            SetRootVisualTarget: SetRootVisualTarget::<Identity, OFFSET>,
6681            SendMouseInput: SendMouseInput::<Identity, OFFSET>,
6682            SendPointerInput: SendPointerInput::<Identity, OFFSET>,
6683            Cursor: Cursor::<Identity, OFFSET>,
6684            SystemCursorId: SystemCursorId::<Identity, OFFSET>,
6685            add_CursorChanged: add_CursorChanged::<Identity, OFFSET>,
6686            remove_CursorChanged: remove_CursorChanged::<Identity, OFFSET>,
6687        }
6688    }
6689    pub fn matches(iid: &windows_core::GUID) -> bool {
6690        iid == &<ICoreWebView2CompositionController as windows_core::Interface>::IID
6691    }
6692}
6693impl windows_core::RuntimeName for ICoreWebView2CompositionController {}
6694windows_core::imp::define_interface!(
6695    ICoreWebView2CompositionController2,
6696    ICoreWebView2CompositionController2_Vtbl,
6697    0x0b6a3d24_49cb_4806_ba20_b5e0734a7b26
6698);
6699impl core::ops::Deref for ICoreWebView2CompositionController2 {
6700    type Target = ICoreWebView2CompositionController;
6701    fn deref(&self) -> &Self::Target {
6702        unsafe { core::mem::transmute(self) }
6703    }
6704}
6705windows_core::imp::interface_hierarchy!(
6706    ICoreWebView2CompositionController2,
6707    windows_core::IUnknown,
6708    ICoreWebView2CompositionController
6709);
6710impl ICoreWebView2CompositionController2 {
6711    pub unsafe fn AutomationProvider(&self) -> windows_core::Result<windows_core::IUnknown> {
6712        unsafe {
6713            let mut result__ = core::mem::zeroed();
6714            (windows_core::Interface::vtable(self).AutomationProvider)(
6715                windows_core::Interface::as_raw(self),
6716                &mut result__,
6717            )
6718            .and_then(|| windows_core::Type::from_abi(result__))
6719        }
6720    }
6721}
6722#[repr(C)]
6723#[doc(hidden)]
6724pub struct ICoreWebView2CompositionController2_Vtbl {
6725    pub base__: ICoreWebView2CompositionController_Vtbl,
6726    pub AutomationProvider: unsafe extern "system" fn(
6727        *mut core::ffi::c_void,
6728        *mut *mut core::ffi::c_void,
6729    ) -> windows_core::HRESULT,
6730}
6731pub trait ICoreWebView2CompositionController2_Impl:
6732    ICoreWebView2CompositionController_Impl
6733{
6734    fn AutomationProvider(&self) -> windows_core::Result<windows_core::IUnknown>;
6735}
6736impl ICoreWebView2CompositionController2_Vtbl {
6737    pub const fn new<Identity: ICoreWebView2CompositionController2_Impl, const OFFSET: isize>(
6738    ) -> Self {
6739        unsafe extern "system" fn AutomationProvider<
6740            Identity: ICoreWebView2CompositionController2_Impl,
6741            const OFFSET: isize,
6742        >(
6743            this: *mut core::ffi::c_void,
6744            value: *mut *mut core::ffi::c_void,
6745        ) -> windows_core::HRESULT {
6746            unsafe {
6747                let this: &Identity =
6748                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
6749                match ICoreWebView2CompositionController2_Impl::AutomationProvider(this) {
6750                    Ok(ok__) => {
6751                        value.write(core::mem::transmute(ok__));
6752                        windows_core::HRESULT(0)
6753                    }
6754                    Err(err) => err.into(),
6755                }
6756            }
6757        }
6758        Self {
6759            base__: ICoreWebView2CompositionController_Vtbl::new::<Identity, OFFSET>(),
6760            AutomationProvider: AutomationProvider::<Identity, OFFSET>,
6761        }
6762    }
6763    pub fn matches(iid: &windows_core::GUID) -> bool {
6764        iid == &<ICoreWebView2CompositionController2 as windows_core::Interface>::IID
6765            || iid == &<ICoreWebView2CompositionController as windows_core::Interface>::IID
6766    }
6767}
6768impl windows_core::RuntimeName for ICoreWebView2CompositionController2 {}
6769windows_core::imp::define_interface!(
6770    ICoreWebView2CompositionController3,
6771    ICoreWebView2CompositionController3_Vtbl,
6772    0x9570570e_4d76_4361_9ee1_f04d0dbdfb1e
6773);
6774impl core::ops::Deref for ICoreWebView2CompositionController3 {
6775    type Target = ICoreWebView2CompositionController2;
6776    fn deref(&self) -> &Self::Target {
6777        unsafe { core::mem::transmute(self) }
6778    }
6779}
6780windows_core::imp::interface_hierarchy!(
6781    ICoreWebView2CompositionController3,
6782    windows_core::IUnknown,
6783    ICoreWebView2CompositionController,
6784    ICoreWebView2CompositionController2
6785);
6786impl ICoreWebView2CompositionController3 {
6787    pub unsafe fn DragEnter<P0>(
6788        &self,
6789        dataobject: P0,
6790        keystate: u32,
6791        point: windows::Win32::Foundation::POINT,
6792        effect: *mut u32,
6793    ) -> windows_core::Result<()>
6794    where
6795        P0: windows_core::Param<windows::Win32::System::Com::IDataObject>,
6796    {
6797        unsafe {
6798            (windows_core::Interface::vtable(self).DragEnter)(
6799                windows_core::Interface::as_raw(self),
6800                dataobject.param().abi(),
6801                keystate,
6802                core::mem::transmute(point),
6803                effect as _,
6804            )
6805            .ok()
6806        }
6807    }
6808    pub unsafe fn DragLeave(&self) -> windows_core::Result<()> {
6809        unsafe {
6810            (windows_core::Interface::vtable(self).DragLeave)(windows_core::Interface::as_raw(self))
6811                .ok()
6812        }
6813    }
6814    pub unsafe fn DragOver(
6815        &self,
6816        keystate: u32,
6817        point: windows::Win32::Foundation::POINT,
6818        effect: *mut u32,
6819    ) -> windows_core::Result<()> {
6820        unsafe {
6821            (windows_core::Interface::vtable(self).DragOver)(
6822                windows_core::Interface::as_raw(self),
6823                keystate,
6824                core::mem::transmute(point),
6825                effect as _,
6826            )
6827            .ok()
6828        }
6829    }
6830    pub unsafe fn Drop<P0>(
6831        &self,
6832        dataobject: P0,
6833        keystate: u32,
6834        point: windows::Win32::Foundation::POINT,
6835        effect: *mut u32,
6836    ) -> windows_core::Result<()>
6837    where
6838        P0: windows_core::Param<windows::Win32::System::Com::IDataObject>,
6839    {
6840        unsafe {
6841            (windows_core::Interface::vtable(self).Drop)(
6842                windows_core::Interface::as_raw(self),
6843                dataobject.param().abi(),
6844                keystate,
6845                core::mem::transmute(point),
6846                effect as _,
6847            )
6848            .ok()
6849        }
6850    }
6851}
6852#[repr(C)]
6853#[doc(hidden)]
6854pub struct ICoreWebView2CompositionController3_Vtbl {
6855    pub base__: ICoreWebView2CompositionController2_Vtbl,
6856    pub DragEnter: unsafe extern "system" fn(
6857        *mut core::ffi::c_void,
6858        *mut core::ffi::c_void,
6859        u32,
6860        windows::Win32::Foundation::POINT,
6861        *mut u32,
6862    ) -> windows_core::HRESULT,
6863    pub DragLeave: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
6864    pub DragOver: unsafe extern "system" fn(
6865        *mut core::ffi::c_void,
6866        u32,
6867        windows::Win32::Foundation::POINT,
6868        *mut u32,
6869    ) -> windows_core::HRESULT,
6870    pub Drop: unsafe extern "system" fn(
6871        *mut core::ffi::c_void,
6872        *mut core::ffi::c_void,
6873        u32,
6874        windows::Win32::Foundation::POINT,
6875        *mut u32,
6876    ) -> windows_core::HRESULT,
6877}
6878pub trait ICoreWebView2CompositionController3_Impl:
6879    ICoreWebView2CompositionController2_Impl
6880{
6881    fn DragEnter(
6882        &self,
6883        dataobject: windows_core::Ref<windows::Win32::System::Com::IDataObject>,
6884        keystate: u32,
6885        point: &windows::Win32::Foundation::POINT,
6886        effect: *mut u32,
6887    ) -> windows_core::Result<()>;
6888    fn DragLeave(&self) -> windows_core::Result<()>;
6889    fn DragOver(
6890        &self,
6891        keystate: u32,
6892        point: &windows::Win32::Foundation::POINT,
6893        effect: *mut u32,
6894    ) -> windows_core::Result<()>;
6895    fn Drop(
6896        &self,
6897        dataobject: windows_core::Ref<windows::Win32::System::Com::IDataObject>,
6898        keystate: u32,
6899        point: &windows::Win32::Foundation::POINT,
6900        effect: *mut u32,
6901    ) -> windows_core::Result<()>;
6902}
6903impl ICoreWebView2CompositionController3_Vtbl {
6904    pub const fn new<Identity: ICoreWebView2CompositionController3_Impl, const OFFSET: isize>(
6905    ) -> Self {
6906        unsafe extern "system" fn DragEnter<
6907            Identity: ICoreWebView2CompositionController3_Impl,
6908            const OFFSET: isize,
6909        >(
6910            this: *mut core::ffi::c_void,
6911            dataobject: *mut core::ffi::c_void,
6912            keystate: u32,
6913            point: windows::Win32::Foundation::POINT,
6914            effect: *mut u32,
6915        ) -> windows_core::HRESULT {
6916            unsafe {
6917                let this: &Identity =
6918                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
6919                ICoreWebView2CompositionController3_Impl::DragEnter(
6920                    this,
6921                    core::mem::transmute_copy(&dataobject),
6922                    core::mem::transmute_copy(&keystate),
6923                    core::mem::transmute(&point),
6924                    core::mem::transmute_copy(&effect),
6925                )
6926                .into()
6927            }
6928        }
6929        unsafe extern "system" fn DragLeave<
6930            Identity: ICoreWebView2CompositionController3_Impl,
6931            const OFFSET: isize,
6932        >(
6933            this: *mut core::ffi::c_void,
6934        ) -> windows_core::HRESULT {
6935            unsafe {
6936                let this: &Identity =
6937                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
6938                ICoreWebView2CompositionController3_Impl::DragLeave(this).into()
6939            }
6940        }
6941        unsafe extern "system" fn DragOver<
6942            Identity: ICoreWebView2CompositionController3_Impl,
6943            const OFFSET: isize,
6944        >(
6945            this: *mut core::ffi::c_void,
6946            keystate: u32,
6947            point: windows::Win32::Foundation::POINT,
6948            effect: *mut u32,
6949        ) -> windows_core::HRESULT {
6950            unsafe {
6951                let this: &Identity =
6952                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
6953                ICoreWebView2CompositionController3_Impl::DragOver(
6954                    this,
6955                    core::mem::transmute_copy(&keystate),
6956                    core::mem::transmute(&point),
6957                    core::mem::transmute_copy(&effect),
6958                )
6959                .into()
6960            }
6961        }
6962        unsafe extern "system" fn Drop<
6963            Identity: ICoreWebView2CompositionController3_Impl,
6964            const OFFSET: isize,
6965        >(
6966            this: *mut core::ffi::c_void,
6967            dataobject: *mut core::ffi::c_void,
6968            keystate: u32,
6969            point: windows::Win32::Foundation::POINT,
6970            effect: *mut u32,
6971        ) -> windows_core::HRESULT {
6972            unsafe {
6973                let this: &Identity =
6974                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
6975                ICoreWebView2CompositionController3_Impl::Drop(
6976                    this,
6977                    core::mem::transmute_copy(&dataobject),
6978                    core::mem::transmute_copy(&keystate),
6979                    core::mem::transmute(&point),
6980                    core::mem::transmute_copy(&effect),
6981                )
6982                .into()
6983            }
6984        }
6985        Self {
6986            base__: ICoreWebView2CompositionController2_Vtbl::new::<Identity, OFFSET>(),
6987            DragEnter: DragEnter::<Identity, OFFSET>,
6988            DragLeave: DragLeave::<Identity, OFFSET>,
6989            DragOver: DragOver::<Identity, OFFSET>,
6990            Drop: Drop::<Identity, OFFSET>,
6991        }
6992    }
6993    pub fn matches(iid: &windows_core::GUID) -> bool {
6994        iid == &<ICoreWebView2CompositionController3 as windows_core::Interface>::IID
6995            || iid == &<ICoreWebView2CompositionController as windows_core::Interface>::IID
6996            || iid == &<ICoreWebView2CompositionController2 as windows_core::Interface>::IID
6997    }
6998}
6999impl windows_core::RuntimeName for ICoreWebView2CompositionController3 {}
7000windows_core::imp::define_interface!(
7001    ICoreWebView2CompositionController4,
7002    ICoreWebView2CompositionController4_Vtbl,
7003    0x7c367b9b_3d2b_450f_9e58_d61a20f486aa
7004);
7005impl core::ops::Deref for ICoreWebView2CompositionController4 {
7006    type Target = ICoreWebView2CompositionController3;
7007    fn deref(&self) -> &Self::Target {
7008        unsafe { core::mem::transmute(self) }
7009    }
7010}
7011windows_core::imp::interface_hierarchy!(
7012    ICoreWebView2CompositionController4,
7013    windows_core::IUnknown,
7014    ICoreWebView2CompositionController,
7015    ICoreWebView2CompositionController2,
7016    ICoreWebView2CompositionController3
7017);
7018impl ICoreWebView2CompositionController4 {
7019    pub unsafe fn GetNonClientRegionAtPoint(
7020        &self,
7021        point: windows::Win32::Foundation::POINT,
7022        value: *mut COREWEBVIEW2_NON_CLIENT_REGION_KIND,
7023    ) -> windows_core::Result<()> {
7024        unsafe {
7025            (windows_core::Interface::vtable(self).GetNonClientRegionAtPoint)(
7026                windows_core::Interface::as_raw(self),
7027                core::mem::transmute(point),
7028                value as _,
7029            )
7030            .ok()
7031        }
7032    }
7033    pub unsafe fn QueryNonClientRegion(
7034        &self,
7035        kind: COREWEBVIEW2_NON_CLIENT_REGION_KIND,
7036    ) -> windows_core::Result<ICoreWebView2RegionRectCollectionView> {
7037        unsafe {
7038            let mut result__ = core::mem::zeroed();
7039            (windows_core::Interface::vtable(self).QueryNonClientRegion)(
7040                windows_core::Interface::as_raw(self),
7041                kind,
7042                &mut result__,
7043            )
7044            .and_then(|| windows_core::Type::from_abi(result__))
7045        }
7046    }
7047    pub unsafe fn add_NonClientRegionChanged<P0>(
7048        &self,
7049        eventhandler: P0,
7050        token: *mut i64,
7051    ) -> windows_core::Result<()>
7052    where
7053        P0: windows_core::Param<ICoreWebView2NonClientRegionChangedEventHandler>,
7054    {
7055        unsafe {
7056            (windows_core::Interface::vtable(self).add_NonClientRegionChanged)(
7057                windows_core::Interface::as_raw(self),
7058                eventhandler.param().abi(),
7059                token as _,
7060            )
7061            .ok()
7062        }
7063    }
7064    pub unsafe fn remove_NonClientRegionChanged(&self, token: i64) -> windows_core::Result<()> {
7065        unsafe {
7066            (windows_core::Interface::vtable(self).remove_NonClientRegionChanged)(
7067                windows_core::Interface::as_raw(self),
7068                token,
7069            )
7070            .ok()
7071        }
7072    }
7073}
7074#[repr(C)]
7075#[doc(hidden)]
7076pub struct ICoreWebView2CompositionController4_Vtbl {
7077    pub base__: ICoreWebView2CompositionController3_Vtbl,
7078    pub GetNonClientRegionAtPoint: unsafe extern "system" fn(
7079        *mut core::ffi::c_void,
7080        windows::Win32::Foundation::POINT,
7081        *mut COREWEBVIEW2_NON_CLIENT_REGION_KIND,
7082    ) -> windows_core::HRESULT,
7083    pub QueryNonClientRegion: unsafe extern "system" fn(
7084        *mut core::ffi::c_void,
7085        COREWEBVIEW2_NON_CLIENT_REGION_KIND,
7086        *mut *mut core::ffi::c_void,
7087    ) -> windows_core::HRESULT,
7088    pub add_NonClientRegionChanged: unsafe extern "system" fn(
7089        *mut core::ffi::c_void,
7090        *mut core::ffi::c_void,
7091        *mut i64,
7092    ) -> windows_core::HRESULT,
7093    pub remove_NonClientRegionChanged:
7094        unsafe extern "system" fn(*mut core::ffi::c_void, i64) -> windows_core::HRESULT,
7095}
7096pub trait ICoreWebView2CompositionController4_Impl:
7097    ICoreWebView2CompositionController3_Impl
7098{
7099    fn GetNonClientRegionAtPoint(
7100        &self,
7101        point: &windows::Win32::Foundation::POINT,
7102        value: *mut COREWEBVIEW2_NON_CLIENT_REGION_KIND,
7103    ) -> windows_core::Result<()>;
7104    fn QueryNonClientRegion(
7105        &self,
7106        kind: COREWEBVIEW2_NON_CLIENT_REGION_KIND,
7107    ) -> windows_core::Result<ICoreWebView2RegionRectCollectionView>;
7108    fn add_NonClientRegionChanged(
7109        &self,
7110        eventhandler: windows_core::Ref<ICoreWebView2NonClientRegionChangedEventHandler>,
7111        token: *mut i64,
7112    ) -> windows_core::Result<()>;
7113    fn remove_NonClientRegionChanged(&self, token: i64) -> windows_core::Result<()>;
7114}
7115impl ICoreWebView2CompositionController4_Vtbl {
7116    pub const fn new<Identity: ICoreWebView2CompositionController4_Impl, const OFFSET: isize>(
7117    ) -> Self {
7118        unsafe extern "system" fn GetNonClientRegionAtPoint<
7119            Identity: ICoreWebView2CompositionController4_Impl,
7120            const OFFSET: isize,
7121        >(
7122            this: *mut core::ffi::c_void,
7123            point: windows::Win32::Foundation::POINT,
7124            value: *mut COREWEBVIEW2_NON_CLIENT_REGION_KIND,
7125        ) -> windows_core::HRESULT {
7126            unsafe {
7127                let this: &Identity =
7128                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
7129                ICoreWebView2CompositionController4_Impl::GetNonClientRegionAtPoint(
7130                    this,
7131                    core::mem::transmute(&point),
7132                    core::mem::transmute_copy(&value),
7133                )
7134                .into()
7135            }
7136        }
7137        unsafe extern "system" fn QueryNonClientRegion<
7138            Identity: ICoreWebView2CompositionController4_Impl,
7139            const OFFSET: isize,
7140        >(
7141            this: *mut core::ffi::c_void,
7142            kind: COREWEBVIEW2_NON_CLIENT_REGION_KIND,
7143            rects: *mut *mut core::ffi::c_void,
7144        ) -> windows_core::HRESULT {
7145            unsafe {
7146                let this: &Identity =
7147                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
7148                match ICoreWebView2CompositionController4_Impl::QueryNonClientRegion(
7149                    this,
7150                    core::mem::transmute_copy(&kind),
7151                ) {
7152                    Ok(ok__) => {
7153                        rects.write(core::mem::transmute(ok__));
7154                        windows_core::HRESULT(0)
7155                    }
7156                    Err(err) => err.into(),
7157                }
7158            }
7159        }
7160        unsafe extern "system" fn add_NonClientRegionChanged<
7161            Identity: ICoreWebView2CompositionController4_Impl,
7162            const OFFSET: isize,
7163        >(
7164            this: *mut core::ffi::c_void,
7165            eventhandler: *mut core::ffi::c_void,
7166            token: *mut i64,
7167        ) -> windows_core::HRESULT {
7168            unsafe {
7169                let this: &Identity =
7170                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
7171                ICoreWebView2CompositionController4_Impl::add_NonClientRegionChanged(
7172                    this,
7173                    core::mem::transmute_copy(&eventhandler),
7174                    core::mem::transmute_copy(&token),
7175                )
7176                .into()
7177            }
7178        }
7179        unsafe extern "system" fn remove_NonClientRegionChanged<
7180            Identity: ICoreWebView2CompositionController4_Impl,
7181            const OFFSET: isize,
7182        >(
7183            this: *mut core::ffi::c_void,
7184            token: i64,
7185        ) -> windows_core::HRESULT {
7186            unsafe {
7187                let this: &Identity =
7188                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
7189                ICoreWebView2CompositionController4_Impl::remove_NonClientRegionChanged(
7190                    this,
7191                    core::mem::transmute_copy(&token),
7192                )
7193                .into()
7194            }
7195        }
7196        Self {
7197            base__: ICoreWebView2CompositionController3_Vtbl::new::<Identity, OFFSET>(),
7198            GetNonClientRegionAtPoint: GetNonClientRegionAtPoint::<Identity, OFFSET>,
7199            QueryNonClientRegion: QueryNonClientRegion::<Identity, OFFSET>,
7200            add_NonClientRegionChanged: add_NonClientRegionChanged::<Identity, OFFSET>,
7201            remove_NonClientRegionChanged: remove_NonClientRegionChanged::<Identity, OFFSET>,
7202        }
7203    }
7204    pub fn matches(iid: &windows_core::GUID) -> bool {
7205        iid == &<ICoreWebView2CompositionController4 as windows_core::Interface>::IID
7206            || iid == &<ICoreWebView2CompositionController as windows_core::Interface>::IID
7207            || iid == &<ICoreWebView2CompositionController2 as windows_core::Interface>::IID
7208            || iid == &<ICoreWebView2CompositionController3 as windows_core::Interface>::IID
7209    }
7210}
7211impl windows_core::RuntimeName for ICoreWebView2CompositionController4 {}
7212windows_core::imp::define_interface!(
7213    ICoreWebView2CompositionController5,
7214    ICoreWebView2CompositionController5_Vtbl,
7215    0x8d0f82eb_7c33_5a4c_9108_84ca28ccc3b4
7216);
7217impl core::ops::Deref for ICoreWebView2CompositionController5 {
7218    type Target = ICoreWebView2CompositionController4;
7219    fn deref(&self) -> &Self::Target {
7220        unsafe { core::mem::transmute(self) }
7221    }
7222}
7223windows_core::imp::interface_hierarchy!(
7224    ICoreWebView2CompositionController5,
7225    windows_core::IUnknown,
7226    ICoreWebView2CompositionController,
7227    ICoreWebView2CompositionController2,
7228    ICoreWebView2CompositionController3,
7229    ICoreWebView2CompositionController4
7230);
7231impl ICoreWebView2CompositionController5 {
7232    pub unsafe fn add_DragStarting<P0>(
7233        &self,
7234        eventhandler: P0,
7235        token: *mut i64,
7236    ) -> windows_core::Result<()>
7237    where
7238        P0: windows_core::Param<ICoreWebView2DragStartingEventHandler>,
7239    {
7240        unsafe {
7241            (windows_core::Interface::vtable(self).add_DragStarting)(
7242                windows_core::Interface::as_raw(self),
7243                eventhandler.param().abi(),
7244                token as _,
7245            )
7246            .ok()
7247        }
7248    }
7249    pub unsafe fn remove_DragStarting(&self, token: i64) -> windows_core::Result<()> {
7250        unsafe {
7251            (windows_core::Interface::vtable(self).remove_DragStarting)(
7252                windows_core::Interface::as_raw(self),
7253                token,
7254            )
7255            .ok()
7256        }
7257    }
7258}
7259#[repr(C)]
7260#[doc(hidden)]
7261pub struct ICoreWebView2CompositionController5_Vtbl {
7262    pub base__: ICoreWebView2CompositionController4_Vtbl,
7263    pub add_DragStarting: unsafe extern "system" fn(
7264        *mut core::ffi::c_void,
7265        *mut core::ffi::c_void,
7266        *mut i64,
7267    ) -> windows_core::HRESULT,
7268    pub remove_DragStarting:
7269        unsafe extern "system" fn(*mut core::ffi::c_void, i64) -> windows_core::HRESULT,
7270}
7271pub trait ICoreWebView2CompositionController5_Impl:
7272    ICoreWebView2CompositionController4_Impl
7273{
7274    fn add_DragStarting(
7275        &self,
7276        eventhandler: windows_core::Ref<ICoreWebView2DragStartingEventHandler>,
7277        token: *mut i64,
7278    ) -> windows_core::Result<()>;
7279    fn remove_DragStarting(&self, token: i64) -> windows_core::Result<()>;
7280}
7281impl ICoreWebView2CompositionController5_Vtbl {
7282    pub const fn new<Identity: ICoreWebView2CompositionController5_Impl, const OFFSET: isize>(
7283    ) -> Self {
7284        unsafe extern "system" fn add_DragStarting<
7285            Identity: ICoreWebView2CompositionController5_Impl,
7286            const OFFSET: isize,
7287        >(
7288            this: *mut core::ffi::c_void,
7289            eventhandler: *mut core::ffi::c_void,
7290            token: *mut i64,
7291        ) -> windows_core::HRESULT {
7292            unsafe {
7293                let this: &Identity =
7294                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
7295                ICoreWebView2CompositionController5_Impl::add_DragStarting(
7296                    this,
7297                    core::mem::transmute_copy(&eventhandler),
7298                    core::mem::transmute_copy(&token),
7299                )
7300                .into()
7301            }
7302        }
7303        unsafe extern "system" fn remove_DragStarting<
7304            Identity: ICoreWebView2CompositionController5_Impl,
7305            const OFFSET: isize,
7306        >(
7307            this: *mut core::ffi::c_void,
7308            token: i64,
7309        ) -> windows_core::HRESULT {
7310            unsafe {
7311                let this: &Identity =
7312                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
7313                ICoreWebView2CompositionController5_Impl::remove_DragStarting(
7314                    this,
7315                    core::mem::transmute_copy(&token),
7316                )
7317                .into()
7318            }
7319        }
7320        Self {
7321            base__: ICoreWebView2CompositionController4_Vtbl::new::<Identity, OFFSET>(),
7322            add_DragStarting: add_DragStarting::<Identity, OFFSET>,
7323            remove_DragStarting: remove_DragStarting::<Identity, OFFSET>,
7324        }
7325    }
7326    pub fn matches(iid: &windows_core::GUID) -> bool {
7327        iid == &<ICoreWebView2CompositionController5 as windows_core::Interface>::IID
7328            || iid == &<ICoreWebView2CompositionController as windows_core::Interface>::IID
7329            || iid == &<ICoreWebView2CompositionController2 as windows_core::Interface>::IID
7330            || iid == &<ICoreWebView2CompositionController3 as windows_core::Interface>::IID
7331            || iid == &<ICoreWebView2CompositionController4 as windows_core::Interface>::IID
7332    }
7333}
7334impl windows_core::RuntimeName for ICoreWebView2CompositionController5 {}
7335windows_core::imp::define_interface!(
7336    ICoreWebView2ContainsFullScreenElementChangedEventHandler,
7337    ICoreWebView2ContainsFullScreenElementChangedEventHandler_Vtbl,
7338    0xe45d98b1_afef_45be_8baf_6c7728867f73
7339);
7340windows_core::imp::interface_hierarchy!(
7341    ICoreWebView2ContainsFullScreenElementChangedEventHandler,
7342    windows_core::IUnknown
7343);
7344impl ICoreWebView2ContainsFullScreenElementChangedEventHandler {
7345    pub unsafe fn Invoke<P0, P1>(&self, sender: P0, args: P1) -> windows_core::Result<()>
7346    where
7347        P0: windows_core::Param<ICoreWebView2>,
7348        P1: windows_core::Param<windows_core::IUnknown>,
7349    {
7350        unsafe {
7351            (windows_core::Interface::vtable(self).Invoke)(
7352                windows_core::Interface::as_raw(self),
7353                sender.param().abi(),
7354                args.param().abi(),
7355            )
7356            .ok()
7357        }
7358    }
7359}
7360#[repr(C)]
7361#[doc(hidden)]
7362pub struct ICoreWebView2ContainsFullScreenElementChangedEventHandler_Vtbl {
7363    pub base__: windows_core::IUnknown_Vtbl,
7364    pub Invoke: unsafe extern "system" fn(
7365        *mut core::ffi::c_void,
7366        *mut core::ffi::c_void,
7367        *mut core::ffi::c_void,
7368    ) -> windows_core::HRESULT,
7369}
7370pub trait ICoreWebView2ContainsFullScreenElementChangedEventHandler_Impl:
7371    windows_core::IUnknownImpl
7372{
7373    fn Invoke(
7374        &self,
7375        sender: windows_core::Ref<ICoreWebView2>,
7376        args: windows_core::Ref<windows_core::IUnknown>,
7377    ) -> windows_core::Result<()>;
7378}
7379impl ICoreWebView2ContainsFullScreenElementChangedEventHandler_Vtbl {
7380    pub const fn new<
7381        Identity: ICoreWebView2ContainsFullScreenElementChangedEventHandler_Impl,
7382        const OFFSET: isize,
7383    >() -> Self {
7384        unsafe extern "system" fn Invoke<
7385            Identity: ICoreWebView2ContainsFullScreenElementChangedEventHandler_Impl,
7386            const OFFSET: isize,
7387        >(
7388            this: *mut core::ffi::c_void,
7389            sender: *mut core::ffi::c_void,
7390            args: *mut core::ffi::c_void,
7391        ) -> windows_core::HRESULT {
7392            unsafe {
7393                let this: &Identity =
7394                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
7395                ICoreWebView2ContainsFullScreenElementChangedEventHandler_Impl::Invoke(
7396                    this,
7397                    core::mem::transmute_copy(&sender),
7398                    core::mem::transmute_copy(&args),
7399                )
7400                .into()
7401            }
7402        }
7403        Self {
7404            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
7405            Invoke: Invoke::<Identity, OFFSET>,
7406        }
7407    }
7408    pub fn matches(iid: &windows_core::GUID) -> bool {
7409        iid == & < ICoreWebView2ContainsFullScreenElementChangedEventHandler as windows_core::Interface >::IID
7410    }
7411}
7412impl windows_core::RuntimeName for ICoreWebView2ContainsFullScreenElementChangedEventHandler {}
7413windows_core::imp::define_interface!(
7414    ICoreWebView2ContentLoadingEventArgs,
7415    ICoreWebView2ContentLoadingEventArgs_Vtbl,
7416    0x0c8a1275_9b6b_4901_87ad_70df25bafa6e
7417);
7418windows_core::imp::interface_hierarchy!(
7419    ICoreWebView2ContentLoadingEventArgs,
7420    windows_core::IUnknown
7421);
7422impl ICoreWebView2ContentLoadingEventArgs {
7423    pub unsafe fn IsErrorPage(&self, value: *mut windows_core::BOOL) -> windows_core::Result<()> {
7424        unsafe {
7425            (windows_core::Interface::vtable(self).IsErrorPage)(
7426                windows_core::Interface::as_raw(self),
7427                value as _,
7428            )
7429            .ok()
7430        }
7431    }
7432    pub unsafe fn NavigationId(&self, value: *mut u64) -> windows_core::Result<()> {
7433        unsafe {
7434            (windows_core::Interface::vtable(self).NavigationId)(
7435                windows_core::Interface::as_raw(self),
7436                value as _,
7437            )
7438            .ok()
7439        }
7440    }
7441}
7442#[repr(C)]
7443#[doc(hidden)]
7444pub struct ICoreWebView2ContentLoadingEventArgs_Vtbl {
7445    pub base__: windows_core::IUnknown_Vtbl,
7446    pub IsErrorPage: unsafe extern "system" fn(
7447        *mut core::ffi::c_void,
7448        *mut windows_core::BOOL,
7449    ) -> windows_core::HRESULT,
7450    pub NavigationId:
7451        unsafe extern "system" fn(*mut core::ffi::c_void, *mut u64) -> windows_core::HRESULT,
7452}
7453pub trait ICoreWebView2ContentLoadingEventArgs_Impl: windows_core::IUnknownImpl {
7454    fn IsErrorPage(&self, value: *mut windows_core::BOOL) -> windows_core::Result<()>;
7455    fn NavigationId(&self, value: *mut u64) -> windows_core::Result<()>;
7456}
7457impl ICoreWebView2ContentLoadingEventArgs_Vtbl {
7458    pub const fn new<Identity: ICoreWebView2ContentLoadingEventArgs_Impl, const OFFSET: isize>(
7459    ) -> Self {
7460        unsafe extern "system" fn IsErrorPage<
7461            Identity: ICoreWebView2ContentLoadingEventArgs_Impl,
7462            const OFFSET: isize,
7463        >(
7464            this: *mut core::ffi::c_void,
7465            value: *mut windows_core::BOOL,
7466        ) -> windows_core::HRESULT {
7467            unsafe {
7468                let this: &Identity =
7469                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
7470                ICoreWebView2ContentLoadingEventArgs_Impl::IsErrorPage(
7471                    this,
7472                    core::mem::transmute_copy(&value),
7473                )
7474                .into()
7475            }
7476        }
7477        unsafe extern "system" fn NavigationId<
7478            Identity: ICoreWebView2ContentLoadingEventArgs_Impl,
7479            const OFFSET: isize,
7480        >(
7481            this: *mut core::ffi::c_void,
7482            value: *mut u64,
7483        ) -> windows_core::HRESULT {
7484            unsafe {
7485                let this: &Identity =
7486                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
7487                ICoreWebView2ContentLoadingEventArgs_Impl::NavigationId(
7488                    this,
7489                    core::mem::transmute_copy(&value),
7490                )
7491                .into()
7492            }
7493        }
7494        Self {
7495            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
7496            IsErrorPage: IsErrorPage::<Identity, OFFSET>,
7497            NavigationId: NavigationId::<Identity, OFFSET>,
7498        }
7499    }
7500    pub fn matches(iid: &windows_core::GUID) -> bool {
7501        iid == &<ICoreWebView2ContentLoadingEventArgs as windows_core::Interface>::IID
7502    }
7503}
7504impl windows_core::RuntimeName for ICoreWebView2ContentLoadingEventArgs {}
7505windows_core::imp::define_interface!(
7506    ICoreWebView2ContentLoadingEventHandler,
7507    ICoreWebView2ContentLoadingEventHandler_Vtbl,
7508    0x364471e7_f2be_4910_bdba_d72077d51c4b
7509);
7510windows_core::imp::interface_hierarchy!(
7511    ICoreWebView2ContentLoadingEventHandler,
7512    windows_core::IUnknown
7513);
7514impl ICoreWebView2ContentLoadingEventHandler {
7515    pub unsafe fn Invoke<P0, P1>(&self, sender: P0, args: P1) -> windows_core::Result<()>
7516    where
7517        P0: windows_core::Param<ICoreWebView2>,
7518        P1: windows_core::Param<ICoreWebView2ContentLoadingEventArgs>,
7519    {
7520        unsafe {
7521            (windows_core::Interface::vtable(self).Invoke)(
7522                windows_core::Interface::as_raw(self),
7523                sender.param().abi(),
7524                args.param().abi(),
7525            )
7526            .ok()
7527        }
7528    }
7529}
7530#[repr(C)]
7531#[doc(hidden)]
7532pub struct ICoreWebView2ContentLoadingEventHandler_Vtbl {
7533    pub base__: windows_core::IUnknown_Vtbl,
7534    pub Invoke: unsafe extern "system" fn(
7535        *mut core::ffi::c_void,
7536        *mut core::ffi::c_void,
7537        *mut core::ffi::c_void,
7538    ) -> windows_core::HRESULT,
7539}
7540pub trait ICoreWebView2ContentLoadingEventHandler_Impl: windows_core::IUnknownImpl {
7541    fn Invoke(
7542        &self,
7543        sender: windows_core::Ref<ICoreWebView2>,
7544        args: windows_core::Ref<ICoreWebView2ContentLoadingEventArgs>,
7545    ) -> windows_core::Result<()>;
7546}
7547impl ICoreWebView2ContentLoadingEventHandler_Vtbl {
7548    pub const fn new<
7549        Identity: ICoreWebView2ContentLoadingEventHandler_Impl,
7550        const OFFSET: isize,
7551    >() -> Self {
7552        unsafe extern "system" fn Invoke<
7553            Identity: ICoreWebView2ContentLoadingEventHandler_Impl,
7554            const OFFSET: isize,
7555        >(
7556            this: *mut core::ffi::c_void,
7557            sender: *mut core::ffi::c_void,
7558            args: *mut core::ffi::c_void,
7559        ) -> windows_core::HRESULT {
7560            unsafe {
7561                let this: &Identity =
7562                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
7563                ICoreWebView2ContentLoadingEventHandler_Impl::Invoke(
7564                    this,
7565                    core::mem::transmute_copy(&sender),
7566                    core::mem::transmute_copy(&args),
7567                )
7568                .into()
7569            }
7570        }
7571        Self {
7572            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
7573            Invoke: Invoke::<Identity, OFFSET>,
7574        }
7575    }
7576    pub fn matches(iid: &windows_core::GUID) -> bool {
7577        iid == &<ICoreWebView2ContentLoadingEventHandler as windows_core::Interface>::IID
7578    }
7579}
7580impl windows_core::RuntimeName for ICoreWebView2ContentLoadingEventHandler {}
7581windows_core::imp::define_interface!(
7582    ICoreWebView2ContextMenuItem,
7583    ICoreWebView2ContextMenuItem_Vtbl,
7584    0x7aed49e3_a93f_497a_811c_749c6b6b6c65
7585);
7586windows_core::imp::interface_hierarchy!(ICoreWebView2ContextMenuItem, windows_core::IUnknown);
7587impl ICoreWebView2ContextMenuItem {
7588    pub unsafe fn Name(&self, value: *mut windows_core::PWSTR) -> windows_core::Result<()> {
7589        unsafe {
7590            (windows_core::Interface::vtable(self).Name)(
7591                windows_core::Interface::as_raw(self),
7592                value as _,
7593            )
7594            .ok()
7595        }
7596    }
7597    pub unsafe fn Label(&self, value: *mut windows_core::PWSTR) -> windows_core::Result<()> {
7598        unsafe {
7599            (windows_core::Interface::vtable(self).Label)(
7600                windows_core::Interface::as_raw(self),
7601                value as _,
7602            )
7603            .ok()
7604        }
7605    }
7606    pub unsafe fn CommandId(&self, value: *mut i32) -> windows_core::Result<()> {
7607        unsafe {
7608            (windows_core::Interface::vtable(self).CommandId)(
7609                windows_core::Interface::as_raw(self),
7610                value as _,
7611            )
7612            .ok()
7613        }
7614    }
7615    pub unsafe fn ShortcutKeyDescription(
7616        &self,
7617        value: *mut windows_core::PWSTR,
7618    ) -> windows_core::Result<()> {
7619        unsafe {
7620            (windows_core::Interface::vtable(self).ShortcutKeyDescription)(
7621                windows_core::Interface::as_raw(self),
7622                value as _,
7623            )
7624            .ok()
7625        }
7626    }
7627    pub unsafe fn Icon(&self) -> windows_core::Result<windows::Win32::System::Com::IStream> {
7628        unsafe {
7629            let mut result__ = core::mem::zeroed();
7630            (windows_core::Interface::vtable(self).Icon)(
7631                windows_core::Interface::as_raw(self),
7632                &mut result__,
7633            )
7634            .and_then(|| windows_core::Type::from_abi(result__))
7635        }
7636    }
7637    pub unsafe fn Kind(
7638        &self,
7639        value: *mut COREWEBVIEW2_CONTEXT_MENU_ITEM_KIND,
7640    ) -> windows_core::Result<()> {
7641        unsafe {
7642            (windows_core::Interface::vtable(self).Kind)(
7643                windows_core::Interface::as_raw(self),
7644                value as _,
7645            )
7646            .ok()
7647        }
7648    }
7649    pub unsafe fn SetIsEnabled(&self, value: bool) -> windows_core::Result<()> {
7650        unsafe {
7651            (windows_core::Interface::vtable(self).SetIsEnabled)(
7652                windows_core::Interface::as_raw(self),
7653                value.into(),
7654            )
7655            .ok()
7656        }
7657    }
7658    pub unsafe fn IsEnabled(&self, value: *mut windows_core::BOOL) -> windows_core::Result<()> {
7659        unsafe {
7660            (windows_core::Interface::vtable(self).IsEnabled)(
7661                windows_core::Interface::as_raw(self),
7662                value as _,
7663            )
7664            .ok()
7665        }
7666    }
7667    pub unsafe fn SetIsChecked(&self, value: bool) -> windows_core::Result<()> {
7668        unsafe {
7669            (windows_core::Interface::vtable(self).SetIsChecked)(
7670                windows_core::Interface::as_raw(self),
7671                value.into(),
7672            )
7673            .ok()
7674        }
7675    }
7676    pub unsafe fn IsChecked(&self, value: *mut windows_core::BOOL) -> windows_core::Result<()> {
7677        unsafe {
7678            (windows_core::Interface::vtable(self).IsChecked)(
7679                windows_core::Interface::as_raw(self),
7680                value as _,
7681            )
7682            .ok()
7683        }
7684    }
7685    pub unsafe fn Children(&self) -> windows_core::Result<ICoreWebView2ContextMenuItemCollection> {
7686        unsafe {
7687            let mut result__ = core::mem::zeroed();
7688            (windows_core::Interface::vtable(self).Children)(
7689                windows_core::Interface::as_raw(self),
7690                &mut result__,
7691            )
7692            .and_then(|| windows_core::Type::from_abi(result__))
7693        }
7694    }
7695    pub unsafe fn add_CustomItemSelected<P0>(
7696        &self,
7697        eventhandler: P0,
7698        token: *mut i64,
7699    ) -> windows_core::Result<()>
7700    where
7701        P0: windows_core::Param<ICoreWebView2CustomItemSelectedEventHandler>,
7702    {
7703        unsafe {
7704            (windows_core::Interface::vtable(self).add_CustomItemSelected)(
7705                windows_core::Interface::as_raw(self),
7706                eventhandler.param().abi(),
7707                token as _,
7708            )
7709            .ok()
7710        }
7711    }
7712    pub unsafe fn remove_CustomItemSelected(&self, token: i64) -> windows_core::Result<()> {
7713        unsafe {
7714            (windows_core::Interface::vtable(self).remove_CustomItemSelected)(
7715                windows_core::Interface::as_raw(self),
7716                token,
7717            )
7718            .ok()
7719        }
7720    }
7721}
7722#[repr(C)]
7723#[doc(hidden)]
7724pub struct ICoreWebView2ContextMenuItem_Vtbl {
7725    pub base__: windows_core::IUnknown_Vtbl,
7726    pub Name: unsafe extern "system" fn(
7727        *mut core::ffi::c_void,
7728        *mut windows_core::PWSTR,
7729    ) -> windows_core::HRESULT,
7730    pub Label: unsafe extern "system" fn(
7731        *mut core::ffi::c_void,
7732        *mut windows_core::PWSTR,
7733    ) -> windows_core::HRESULT,
7734    pub CommandId:
7735        unsafe extern "system" fn(*mut core::ffi::c_void, *mut i32) -> windows_core::HRESULT,
7736    pub ShortcutKeyDescription: unsafe extern "system" fn(
7737        *mut core::ffi::c_void,
7738        *mut windows_core::PWSTR,
7739    ) -> windows_core::HRESULT,
7740    pub Icon: unsafe extern "system" fn(
7741        *mut core::ffi::c_void,
7742        *mut *mut core::ffi::c_void,
7743    ) -> windows_core::HRESULT,
7744    pub Kind: unsafe extern "system" fn(
7745        *mut core::ffi::c_void,
7746        *mut COREWEBVIEW2_CONTEXT_MENU_ITEM_KIND,
7747    ) -> windows_core::HRESULT,
7748    pub SetIsEnabled: unsafe extern "system" fn(
7749        *mut core::ffi::c_void,
7750        windows_core::BOOL,
7751    ) -> windows_core::HRESULT,
7752    pub IsEnabled: unsafe extern "system" fn(
7753        *mut core::ffi::c_void,
7754        *mut windows_core::BOOL,
7755    ) -> windows_core::HRESULT,
7756    pub SetIsChecked: unsafe extern "system" fn(
7757        *mut core::ffi::c_void,
7758        windows_core::BOOL,
7759    ) -> windows_core::HRESULT,
7760    pub IsChecked: unsafe extern "system" fn(
7761        *mut core::ffi::c_void,
7762        *mut windows_core::BOOL,
7763    ) -> windows_core::HRESULT,
7764    pub Children: unsafe extern "system" fn(
7765        *mut core::ffi::c_void,
7766        *mut *mut core::ffi::c_void,
7767    ) -> windows_core::HRESULT,
7768    pub add_CustomItemSelected: unsafe extern "system" fn(
7769        *mut core::ffi::c_void,
7770        *mut core::ffi::c_void,
7771        *mut i64,
7772    ) -> windows_core::HRESULT,
7773    pub remove_CustomItemSelected:
7774        unsafe extern "system" fn(*mut core::ffi::c_void, i64) -> windows_core::HRESULT,
7775}
7776pub trait ICoreWebView2ContextMenuItem_Impl: windows_core::IUnknownImpl {
7777    fn Name(&self, value: *mut windows_core::PWSTR) -> windows_core::Result<()>;
7778    fn Label(&self, value: *mut windows_core::PWSTR) -> windows_core::Result<()>;
7779    fn CommandId(&self, value: *mut i32) -> windows_core::Result<()>;
7780    fn ShortcutKeyDescription(&self, value: *mut windows_core::PWSTR) -> windows_core::Result<()>;
7781    fn Icon(&self) -> windows_core::Result<windows::Win32::System::Com::IStream>;
7782    fn Kind(&self, value: *mut COREWEBVIEW2_CONTEXT_MENU_ITEM_KIND) -> windows_core::Result<()>;
7783    fn SetIsEnabled(&self, value: windows_core::BOOL) -> windows_core::Result<()>;
7784    fn IsEnabled(&self, value: *mut windows_core::BOOL) -> windows_core::Result<()>;
7785    fn SetIsChecked(&self, value: windows_core::BOOL) -> windows_core::Result<()>;
7786    fn IsChecked(&self, value: *mut windows_core::BOOL) -> windows_core::Result<()>;
7787    fn Children(&self) -> windows_core::Result<ICoreWebView2ContextMenuItemCollection>;
7788    fn add_CustomItemSelected(
7789        &self,
7790        eventhandler: windows_core::Ref<ICoreWebView2CustomItemSelectedEventHandler>,
7791        token: *mut i64,
7792    ) -> windows_core::Result<()>;
7793    fn remove_CustomItemSelected(&self, token: i64) -> windows_core::Result<()>;
7794}
7795impl ICoreWebView2ContextMenuItem_Vtbl {
7796    pub const fn new<Identity: ICoreWebView2ContextMenuItem_Impl, const OFFSET: isize>() -> Self {
7797        unsafe extern "system" fn Name<
7798            Identity: ICoreWebView2ContextMenuItem_Impl,
7799            const OFFSET: isize,
7800        >(
7801            this: *mut core::ffi::c_void,
7802            value: *mut windows_core::PWSTR,
7803        ) -> windows_core::HRESULT {
7804            unsafe {
7805                let this: &Identity =
7806                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
7807                ICoreWebView2ContextMenuItem_Impl::Name(this, core::mem::transmute_copy(&value))
7808                    .into()
7809            }
7810        }
7811        unsafe extern "system" fn Label<
7812            Identity: ICoreWebView2ContextMenuItem_Impl,
7813            const OFFSET: isize,
7814        >(
7815            this: *mut core::ffi::c_void,
7816            value: *mut windows_core::PWSTR,
7817        ) -> windows_core::HRESULT {
7818            unsafe {
7819                let this: &Identity =
7820                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
7821                ICoreWebView2ContextMenuItem_Impl::Label(this, core::mem::transmute_copy(&value))
7822                    .into()
7823            }
7824        }
7825        unsafe extern "system" fn CommandId<
7826            Identity: ICoreWebView2ContextMenuItem_Impl,
7827            const OFFSET: isize,
7828        >(
7829            this: *mut core::ffi::c_void,
7830            value: *mut i32,
7831        ) -> windows_core::HRESULT {
7832            unsafe {
7833                let this: &Identity =
7834                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
7835                ICoreWebView2ContextMenuItem_Impl::CommandId(
7836                    this,
7837                    core::mem::transmute_copy(&value),
7838                )
7839                .into()
7840            }
7841        }
7842        unsafe extern "system" fn ShortcutKeyDescription<
7843            Identity: ICoreWebView2ContextMenuItem_Impl,
7844            const OFFSET: isize,
7845        >(
7846            this: *mut core::ffi::c_void,
7847            value: *mut windows_core::PWSTR,
7848        ) -> windows_core::HRESULT {
7849            unsafe {
7850                let this: &Identity =
7851                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
7852                ICoreWebView2ContextMenuItem_Impl::ShortcutKeyDescription(
7853                    this,
7854                    core::mem::transmute_copy(&value),
7855                )
7856                .into()
7857            }
7858        }
7859        unsafe extern "system" fn Icon<
7860            Identity: ICoreWebView2ContextMenuItem_Impl,
7861            const OFFSET: isize,
7862        >(
7863            this: *mut core::ffi::c_void,
7864            value: *mut *mut core::ffi::c_void,
7865        ) -> windows_core::HRESULT {
7866            unsafe {
7867                let this: &Identity =
7868                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
7869                match ICoreWebView2ContextMenuItem_Impl::Icon(this) {
7870                    Ok(ok__) => {
7871                        value.write(core::mem::transmute(ok__));
7872                        windows_core::HRESULT(0)
7873                    }
7874                    Err(err) => err.into(),
7875                }
7876            }
7877        }
7878        unsafe extern "system" fn Kind<
7879            Identity: ICoreWebView2ContextMenuItem_Impl,
7880            const OFFSET: isize,
7881        >(
7882            this: *mut core::ffi::c_void,
7883            value: *mut COREWEBVIEW2_CONTEXT_MENU_ITEM_KIND,
7884        ) -> windows_core::HRESULT {
7885            unsafe {
7886                let this: &Identity =
7887                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
7888                ICoreWebView2ContextMenuItem_Impl::Kind(this, core::mem::transmute_copy(&value))
7889                    .into()
7890            }
7891        }
7892        unsafe extern "system" fn SetIsEnabled<
7893            Identity: ICoreWebView2ContextMenuItem_Impl,
7894            const OFFSET: isize,
7895        >(
7896            this: *mut core::ffi::c_void,
7897            value: windows_core::BOOL,
7898        ) -> windows_core::HRESULT {
7899            unsafe {
7900                let this: &Identity =
7901                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
7902                ICoreWebView2ContextMenuItem_Impl::SetIsEnabled(
7903                    this,
7904                    core::mem::transmute_copy(&value),
7905                )
7906                .into()
7907            }
7908        }
7909        unsafe extern "system" fn IsEnabled<
7910            Identity: ICoreWebView2ContextMenuItem_Impl,
7911            const OFFSET: isize,
7912        >(
7913            this: *mut core::ffi::c_void,
7914            value: *mut windows_core::BOOL,
7915        ) -> windows_core::HRESULT {
7916            unsafe {
7917                let this: &Identity =
7918                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
7919                ICoreWebView2ContextMenuItem_Impl::IsEnabled(
7920                    this,
7921                    core::mem::transmute_copy(&value),
7922                )
7923                .into()
7924            }
7925        }
7926        unsafe extern "system" fn SetIsChecked<
7927            Identity: ICoreWebView2ContextMenuItem_Impl,
7928            const OFFSET: isize,
7929        >(
7930            this: *mut core::ffi::c_void,
7931            value: windows_core::BOOL,
7932        ) -> windows_core::HRESULT {
7933            unsafe {
7934                let this: &Identity =
7935                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
7936                ICoreWebView2ContextMenuItem_Impl::SetIsChecked(
7937                    this,
7938                    core::mem::transmute_copy(&value),
7939                )
7940                .into()
7941            }
7942        }
7943        unsafe extern "system" fn IsChecked<
7944            Identity: ICoreWebView2ContextMenuItem_Impl,
7945            const OFFSET: isize,
7946        >(
7947            this: *mut core::ffi::c_void,
7948            value: *mut windows_core::BOOL,
7949        ) -> windows_core::HRESULT {
7950            unsafe {
7951                let this: &Identity =
7952                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
7953                ICoreWebView2ContextMenuItem_Impl::IsChecked(
7954                    this,
7955                    core::mem::transmute_copy(&value),
7956                )
7957                .into()
7958            }
7959        }
7960        unsafe extern "system" fn Children<
7961            Identity: ICoreWebView2ContextMenuItem_Impl,
7962            const OFFSET: isize,
7963        >(
7964            this: *mut core::ffi::c_void,
7965            value: *mut *mut core::ffi::c_void,
7966        ) -> windows_core::HRESULT {
7967            unsafe {
7968                let this: &Identity =
7969                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
7970                match ICoreWebView2ContextMenuItem_Impl::Children(this) {
7971                    Ok(ok__) => {
7972                        value.write(core::mem::transmute(ok__));
7973                        windows_core::HRESULT(0)
7974                    }
7975                    Err(err) => err.into(),
7976                }
7977            }
7978        }
7979        unsafe extern "system" fn add_CustomItemSelected<
7980            Identity: ICoreWebView2ContextMenuItem_Impl,
7981            const OFFSET: isize,
7982        >(
7983            this: *mut core::ffi::c_void,
7984            eventhandler: *mut core::ffi::c_void,
7985            token: *mut i64,
7986        ) -> windows_core::HRESULT {
7987            unsafe {
7988                let this: &Identity =
7989                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
7990                ICoreWebView2ContextMenuItem_Impl::add_CustomItemSelected(
7991                    this,
7992                    core::mem::transmute_copy(&eventhandler),
7993                    core::mem::transmute_copy(&token),
7994                )
7995                .into()
7996            }
7997        }
7998        unsafe extern "system" fn remove_CustomItemSelected<
7999            Identity: ICoreWebView2ContextMenuItem_Impl,
8000            const OFFSET: isize,
8001        >(
8002            this: *mut core::ffi::c_void,
8003            token: i64,
8004        ) -> windows_core::HRESULT {
8005            unsafe {
8006                let this: &Identity =
8007                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
8008                ICoreWebView2ContextMenuItem_Impl::remove_CustomItemSelected(
8009                    this,
8010                    core::mem::transmute_copy(&token),
8011                )
8012                .into()
8013            }
8014        }
8015        Self {
8016            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
8017            Name: Name::<Identity, OFFSET>,
8018            Label: Label::<Identity, OFFSET>,
8019            CommandId: CommandId::<Identity, OFFSET>,
8020            ShortcutKeyDescription: ShortcutKeyDescription::<Identity, OFFSET>,
8021            Icon: Icon::<Identity, OFFSET>,
8022            Kind: Kind::<Identity, OFFSET>,
8023            SetIsEnabled: SetIsEnabled::<Identity, OFFSET>,
8024            IsEnabled: IsEnabled::<Identity, OFFSET>,
8025            SetIsChecked: SetIsChecked::<Identity, OFFSET>,
8026            IsChecked: IsChecked::<Identity, OFFSET>,
8027            Children: Children::<Identity, OFFSET>,
8028            add_CustomItemSelected: add_CustomItemSelected::<Identity, OFFSET>,
8029            remove_CustomItemSelected: remove_CustomItemSelected::<Identity, OFFSET>,
8030        }
8031    }
8032    pub fn matches(iid: &windows_core::GUID) -> bool {
8033        iid == &<ICoreWebView2ContextMenuItem as windows_core::Interface>::IID
8034    }
8035}
8036impl windows_core::RuntimeName for ICoreWebView2ContextMenuItem {}
8037windows_core::imp::define_interface!(
8038    ICoreWebView2ContextMenuItemCollection,
8039    ICoreWebView2ContextMenuItemCollection_Vtbl,
8040    0xf562a2f5_c415_45cf_b909_d4b7c1e276d3
8041);
8042windows_core::imp::interface_hierarchy!(
8043    ICoreWebView2ContextMenuItemCollection,
8044    windows_core::IUnknown
8045);
8046impl ICoreWebView2ContextMenuItemCollection {
8047    pub unsafe fn Count(&self, value: *mut u32) -> windows_core::Result<()> {
8048        unsafe {
8049            (windows_core::Interface::vtable(self).Count)(
8050                windows_core::Interface::as_raw(self),
8051                value as _,
8052            )
8053            .ok()
8054        }
8055    }
8056    pub unsafe fn GetValueAtIndex(
8057        &self,
8058        index: u32,
8059    ) -> windows_core::Result<ICoreWebView2ContextMenuItem> {
8060        unsafe {
8061            let mut result__ = core::mem::zeroed();
8062            (windows_core::Interface::vtable(self).GetValueAtIndex)(
8063                windows_core::Interface::as_raw(self),
8064                index,
8065                &mut result__,
8066            )
8067            .and_then(|| windows_core::Type::from_abi(result__))
8068        }
8069    }
8070    pub unsafe fn RemoveValueAtIndex(&self, index: u32) -> windows_core::Result<()> {
8071        unsafe {
8072            (windows_core::Interface::vtable(self).RemoveValueAtIndex)(
8073                windows_core::Interface::as_raw(self),
8074                index,
8075            )
8076            .ok()
8077        }
8078    }
8079    pub unsafe fn InsertValueAtIndex<P1>(&self, index: u32, value: P1) -> windows_core::Result<()>
8080    where
8081        P1: windows_core::Param<ICoreWebView2ContextMenuItem>,
8082    {
8083        unsafe {
8084            (windows_core::Interface::vtable(self).InsertValueAtIndex)(
8085                windows_core::Interface::as_raw(self),
8086                index,
8087                value.param().abi(),
8088            )
8089            .ok()
8090        }
8091    }
8092}
8093#[repr(C)]
8094#[doc(hidden)]
8095pub struct ICoreWebView2ContextMenuItemCollection_Vtbl {
8096    pub base__: windows_core::IUnknown_Vtbl,
8097    pub Count: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
8098    pub GetValueAtIndex: unsafe extern "system" fn(
8099        *mut core::ffi::c_void,
8100        u32,
8101        *mut *mut core::ffi::c_void,
8102    ) -> windows_core::HRESULT,
8103    pub RemoveValueAtIndex:
8104        unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
8105    pub InsertValueAtIndex: unsafe extern "system" fn(
8106        *mut core::ffi::c_void,
8107        u32,
8108        *mut core::ffi::c_void,
8109    ) -> windows_core::HRESULT,
8110}
8111pub trait ICoreWebView2ContextMenuItemCollection_Impl: windows_core::IUnknownImpl {
8112    fn Count(&self, value: *mut u32) -> windows_core::Result<()>;
8113    fn GetValueAtIndex(&self, index: u32) -> windows_core::Result<ICoreWebView2ContextMenuItem>;
8114    fn RemoveValueAtIndex(&self, index: u32) -> windows_core::Result<()>;
8115    fn InsertValueAtIndex(
8116        &self,
8117        index: u32,
8118        value: windows_core::Ref<ICoreWebView2ContextMenuItem>,
8119    ) -> windows_core::Result<()>;
8120}
8121impl ICoreWebView2ContextMenuItemCollection_Vtbl {
8122    pub const fn new<Identity: ICoreWebView2ContextMenuItemCollection_Impl, const OFFSET: isize>(
8123    ) -> Self {
8124        unsafe extern "system" fn Count<
8125            Identity: ICoreWebView2ContextMenuItemCollection_Impl,
8126            const OFFSET: isize,
8127        >(
8128            this: *mut core::ffi::c_void,
8129            value: *mut u32,
8130        ) -> windows_core::HRESULT {
8131            unsafe {
8132                let this: &Identity =
8133                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
8134                ICoreWebView2ContextMenuItemCollection_Impl::Count(
8135                    this,
8136                    core::mem::transmute_copy(&value),
8137                )
8138                .into()
8139            }
8140        }
8141        unsafe extern "system" fn GetValueAtIndex<
8142            Identity: ICoreWebView2ContextMenuItemCollection_Impl,
8143            const OFFSET: isize,
8144        >(
8145            this: *mut core::ffi::c_void,
8146            index: u32,
8147            value: *mut *mut core::ffi::c_void,
8148        ) -> windows_core::HRESULT {
8149            unsafe {
8150                let this: &Identity =
8151                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
8152                match ICoreWebView2ContextMenuItemCollection_Impl::GetValueAtIndex(
8153                    this,
8154                    core::mem::transmute_copy(&index),
8155                ) {
8156                    Ok(ok__) => {
8157                        value.write(core::mem::transmute(ok__));
8158                        windows_core::HRESULT(0)
8159                    }
8160                    Err(err) => err.into(),
8161                }
8162            }
8163        }
8164        unsafe extern "system" fn RemoveValueAtIndex<
8165            Identity: ICoreWebView2ContextMenuItemCollection_Impl,
8166            const OFFSET: isize,
8167        >(
8168            this: *mut core::ffi::c_void,
8169            index: u32,
8170        ) -> windows_core::HRESULT {
8171            unsafe {
8172                let this: &Identity =
8173                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
8174                ICoreWebView2ContextMenuItemCollection_Impl::RemoveValueAtIndex(
8175                    this,
8176                    core::mem::transmute_copy(&index),
8177                )
8178                .into()
8179            }
8180        }
8181        unsafe extern "system" fn InsertValueAtIndex<
8182            Identity: ICoreWebView2ContextMenuItemCollection_Impl,
8183            const OFFSET: isize,
8184        >(
8185            this: *mut core::ffi::c_void,
8186            index: u32,
8187            value: *mut core::ffi::c_void,
8188        ) -> windows_core::HRESULT {
8189            unsafe {
8190                let this: &Identity =
8191                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
8192                ICoreWebView2ContextMenuItemCollection_Impl::InsertValueAtIndex(
8193                    this,
8194                    core::mem::transmute_copy(&index),
8195                    core::mem::transmute_copy(&value),
8196                )
8197                .into()
8198            }
8199        }
8200        Self {
8201            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
8202            Count: Count::<Identity, OFFSET>,
8203            GetValueAtIndex: GetValueAtIndex::<Identity, OFFSET>,
8204            RemoveValueAtIndex: RemoveValueAtIndex::<Identity, OFFSET>,
8205            InsertValueAtIndex: InsertValueAtIndex::<Identity, OFFSET>,
8206        }
8207    }
8208    pub fn matches(iid: &windows_core::GUID) -> bool {
8209        iid == &<ICoreWebView2ContextMenuItemCollection as windows_core::Interface>::IID
8210    }
8211}
8212impl windows_core::RuntimeName for ICoreWebView2ContextMenuItemCollection {}
8213windows_core::imp::define_interface!(
8214    ICoreWebView2ContextMenuRequestedEventArgs,
8215    ICoreWebView2ContextMenuRequestedEventArgs_Vtbl,
8216    0xa1d309ee_c03f_11eb_8529_0242ac130003
8217);
8218windows_core::imp::interface_hierarchy!(
8219    ICoreWebView2ContextMenuRequestedEventArgs,
8220    windows_core::IUnknown
8221);
8222impl ICoreWebView2ContextMenuRequestedEventArgs {
8223    pub unsafe fn MenuItems(&self) -> windows_core::Result<ICoreWebView2ContextMenuItemCollection> {
8224        unsafe {
8225            let mut result__ = core::mem::zeroed();
8226            (windows_core::Interface::vtable(self).MenuItems)(
8227                windows_core::Interface::as_raw(self),
8228                &mut result__,
8229            )
8230            .and_then(|| windows_core::Type::from_abi(result__))
8231        }
8232    }
8233    pub unsafe fn ContextMenuTarget(&self) -> windows_core::Result<ICoreWebView2ContextMenuTarget> {
8234        unsafe {
8235            let mut result__ = core::mem::zeroed();
8236            (windows_core::Interface::vtable(self).ContextMenuTarget)(
8237                windows_core::Interface::as_raw(self),
8238                &mut result__,
8239            )
8240            .and_then(|| windows_core::Type::from_abi(result__))
8241        }
8242    }
8243    pub unsafe fn Location(
8244        &self,
8245        value: *mut windows::Win32::Foundation::POINT,
8246    ) -> windows_core::Result<()> {
8247        unsafe {
8248            (windows_core::Interface::vtable(self).Location)(
8249                windows_core::Interface::as_raw(self),
8250                value as _,
8251            )
8252            .ok()
8253        }
8254    }
8255    pub unsafe fn SetSelectedCommandId(&self, value: i32) -> windows_core::Result<()> {
8256        unsafe {
8257            (windows_core::Interface::vtable(self).SetSelectedCommandId)(
8258                windows_core::Interface::as_raw(self),
8259                value,
8260            )
8261            .ok()
8262        }
8263    }
8264    pub unsafe fn SelectedCommandId(&self, value: *mut i32) -> windows_core::Result<()> {
8265        unsafe {
8266            (windows_core::Interface::vtable(self).SelectedCommandId)(
8267                windows_core::Interface::as_raw(self),
8268                value as _,
8269            )
8270            .ok()
8271        }
8272    }
8273    pub unsafe fn SetHandled(&self, value: bool) -> windows_core::Result<()> {
8274        unsafe {
8275            (windows_core::Interface::vtable(self).SetHandled)(
8276                windows_core::Interface::as_raw(self),
8277                value.into(),
8278            )
8279            .ok()
8280        }
8281    }
8282    pub unsafe fn Handled(&self, value: *mut windows_core::BOOL) -> windows_core::Result<()> {
8283        unsafe {
8284            (windows_core::Interface::vtable(self).Handled)(
8285                windows_core::Interface::as_raw(self),
8286                value as _,
8287            )
8288            .ok()
8289        }
8290    }
8291    pub unsafe fn GetDeferral(&self) -> windows_core::Result<ICoreWebView2Deferral> {
8292        unsafe {
8293            let mut result__ = core::mem::zeroed();
8294            (windows_core::Interface::vtable(self).GetDeferral)(
8295                windows_core::Interface::as_raw(self),
8296                &mut result__,
8297            )
8298            .and_then(|| windows_core::Type::from_abi(result__))
8299        }
8300    }
8301}
8302#[repr(C)]
8303#[doc(hidden)]
8304pub struct ICoreWebView2ContextMenuRequestedEventArgs_Vtbl {
8305    pub base__: windows_core::IUnknown_Vtbl,
8306    pub MenuItems: unsafe extern "system" fn(
8307        *mut core::ffi::c_void,
8308        *mut *mut core::ffi::c_void,
8309    ) -> windows_core::HRESULT,
8310    pub ContextMenuTarget: unsafe extern "system" fn(
8311        *mut core::ffi::c_void,
8312        *mut *mut core::ffi::c_void,
8313    ) -> windows_core::HRESULT,
8314    pub Location: unsafe extern "system" fn(
8315        *mut core::ffi::c_void,
8316        *mut windows::Win32::Foundation::POINT,
8317    ) -> windows_core::HRESULT,
8318    pub SetSelectedCommandId:
8319        unsafe extern "system" fn(*mut core::ffi::c_void, i32) -> windows_core::HRESULT,
8320    pub SelectedCommandId:
8321        unsafe extern "system" fn(*mut core::ffi::c_void, *mut i32) -> windows_core::HRESULT,
8322    pub SetHandled: unsafe extern "system" fn(
8323        *mut core::ffi::c_void,
8324        windows_core::BOOL,
8325    ) -> windows_core::HRESULT,
8326    pub Handled: unsafe extern "system" fn(
8327        *mut core::ffi::c_void,
8328        *mut windows_core::BOOL,
8329    ) -> windows_core::HRESULT,
8330    pub GetDeferral: unsafe extern "system" fn(
8331        *mut core::ffi::c_void,
8332        *mut *mut core::ffi::c_void,
8333    ) -> windows_core::HRESULT,
8334}
8335pub trait ICoreWebView2ContextMenuRequestedEventArgs_Impl: windows_core::IUnknownImpl {
8336    fn MenuItems(&self) -> windows_core::Result<ICoreWebView2ContextMenuItemCollection>;
8337    fn ContextMenuTarget(&self) -> windows_core::Result<ICoreWebView2ContextMenuTarget>;
8338    fn Location(&self, value: *mut windows::Win32::Foundation::POINT) -> windows_core::Result<()>;
8339    fn SetSelectedCommandId(&self, value: i32) -> windows_core::Result<()>;
8340    fn SelectedCommandId(&self, value: *mut i32) -> windows_core::Result<()>;
8341    fn SetHandled(&self, value: windows_core::BOOL) -> windows_core::Result<()>;
8342    fn Handled(&self, value: *mut windows_core::BOOL) -> windows_core::Result<()>;
8343    fn GetDeferral(&self) -> windows_core::Result<ICoreWebView2Deferral>;
8344}
8345impl ICoreWebView2ContextMenuRequestedEventArgs_Vtbl {
8346    pub const fn new<
8347        Identity: ICoreWebView2ContextMenuRequestedEventArgs_Impl,
8348        const OFFSET: isize,
8349    >() -> Self {
8350        unsafe extern "system" fn MenuItems<
8351            Identity: ICoreWebView2ContextMenuRequestedEventArgs_Impl,
8352            const OFFSET: isize,
8353        >(
8354            this: *mut core::ffi::c_void,
8355            value: *mut *mut core::ffi::c_void,
8356        ) -> windows_core::HRESULT {
8357            unsafe {
8358                let this: &Identity =
8359                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
8360                match ICoreWebView2ContextMenuRequestedEventArgs_Impl::MenuItems(this) {
8361                    Ok(ok__) => {
8362                        value.write(core::mem::transmute(ok__));
8363                        windows_core::HRESULT(0)
8364                    }
8365                    Err(err) => err.into(),
8366                }
8367            }
8368        }
8369        unsafe extern "system" fn ContextMenuTarget<
8370            Identity: ICoreWebView2ContextMenuRequestedEventArgs_Impl,
8371            const OFFSET: isize,
8372        >(
8373            this: *mut core::ffi::c_void,
8374            value: *mut *mut core::ffi::c_void,
8375        ) -> windows_core::HRESULT {
8376            unsafe {
8377                let this: &Identity =
8378                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
8379                match ICoreWebView2ContextMenuRequestedEventArgs_Impl::ContextMenuTarget(this) {
8380                    Ok(ok__) => {
8381                        value.write(core::mem::transmute(ok__));
8382                        windows_core::HRESULT(0)
8383                    }
8384                    Err(err) => err.into(),
8385                }
8386            }
8387        }
8388        unsafe extern "system" fn Location<
8389            Identity: ICoreWebView2ContextMenuRequestedEventArgs_Impl,
8390            const OFFSET: isize,
8391        >(
8392            this: *mut core::ffi::c_void,
8393            value: *mut windows::Win32::Foundation::POINT,
8394        ) -> windows_core::HRESULT {
8395            unsafe {
8396                let this: &Identity =
8397                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
8398                ICoreWebView2ContextMenuRequestedEventArgs_Impl::Location(
8399                    this,
8400                    core::mem::transmute_copy(&value),
8401                )
8402                .into()
8403            }
8404        }
8405        unsafe extern "system" fn SetSelectedCommandId<
8406            Identity: ICoreWebView2ContextMenuRequestedEventArgs_Impl,
8407            const OFFSET: isize,
8408        >(
8409            this: *mut core::ffi::c_void,
8410            value: i32,
8411        ) -> windows_core::HRESULT {
8412            unsafe {
8413                let this: &Identity =
8414                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
8415                ICoreWebView2ContextMenuRequestedEventArgs_Impl::SetSelectedCommandId(
8416                    this,
8417                    core::mem::transmute_copy(&value),
8418                )
8419                .into()
8420            }
8421        }
8422        unsafe extern "system" fn SelectedCommandId<
8423            Identity: ICoreWebView2ContextMenuRequestedEventArgs_Impl,
8424            const OFFSET: isize,
8425        >(
8426            this: *mut core::ffi::c_void,
8427            value: *mut i32,
8428        ) -> windows_core::HRESULT {
8429            unsafe {
8430                let this: &Identity =
8431                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
8432                ICoreWebView2ContextMenuRequestedEventArgs_Impl::SelectedCommandId(
8433                    this,
8434                    core::mem::transmute_copy(&value),
8435                )
8436                .into()
8437            }
8438        }
8439        unsafe extern "system" fn SetHandled<
8440            Identity: ICoreWebView2ContextMenuRequestedEventArgs_Impl,
8441            const OFFSET: isize,
8442        >(
8443            this: *mut core::ffi::c_void,
8444            value: windows_core::BOOL,
8445        ) -> windows_core::HRESULT {
8446            unsafe {
8447                let this: &Identity =
8448                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
8449                ICoreWebView2ContextMenuRequestedEventArgs_Impl::SetHandled(
8450                    this,
8451                    core::mem::transmute_copy(&value),
8452                )
8453                .into()
8454            }
8455        }
8456        unsafe extern "system" fn Handled<
8457            Identity: ICoreWebView2ContextMenuRequestedEventArgs_Impl,
8458            const OFFSET: isize,
8459        >(
8460            this: *mut core::ffi::c_void,
8461            value: *mut windows_core::BOOL,
8462        ) -> windows_core::HRESULT {
8463            unsafe {
8464                let this: &Identity =
8465                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
8466                ICoreWebView2ContextMenuRequestedEventArgs_Impl::Handled(
8467                    this,
8468                    core::mem::transmute_copy(&value),
8469                )
8470                .into()
8471            }
8472        }
8473        unsafe extern "system" fn GetDeferral<
8474            Identity: ICoreWebView2ContextMenuRequestedEventArgs_Impl,
8475            const OFFSET: isize,
8476        >(
8477            this: *mut core::ffi::c_void,
8478            deferral: *mut *mut core::ffi::c_void,
8479        ) -> windows_core::HRESULT {
8480            unsafe {
8481                let this: &Identity =
8482                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
8483                match ICoreWebView2ContextMenuRequestedEventArgs_Impl::GetDeferral(this) {
8484                    Ok(ok__) => {
8485                        deferral.write(core::mem::transmute(ok__));
8486                        windows_core::HRESULT(0)
8487                    }
8488                    Err(err) => err.into(),
8489                }
8490            }
8491        }
8492        Self {
8493            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
8494            MenuItems: MenuItems::<Identity, OFFSET>,
8495            ContextMenuTarget: ContextMenuTarget::<Identity, OFFSET>,
8496            Location: Location::<Identity, OFFSET>,
8497            SetSelectedCommandId: SetSelectedCommandId::<Identity, OFFSET>,
8498            SelectedCommandId: SelectedCommandId::<Identity, OFFSET>,
8499            SetHandled: SetHandled::<Identity, OFFSET>,
8500            Handled: Handled::<Identity, OFFSET>,
8501            GetDeferral: GetDeferral::<Identity, OFFSET>,
8502        }
8503    }
8504    pub fn matches(iid: &windows_core::GUID) -> bool {
8505        iid == &<ICoreWebView2ContextMenuRequestedEventArgs as windows_core::Interface>::IID
8506    }
8507}
8508impl windows_core::RuntimeName for ICoreWebView2ContextMenuRequestedEventArgs {}
8509windows_core::imp::define_interface!(
8510    ICoreWebView2ContextMenuRequestedEventHandler,
8511    ICoreWebView2ContextMenuRequestedEventHandler_Vtbl,
8512    0x04d3fe1d_ab87_42fb_a898_da241d35b63c
8513);
8514windows_core::imp::interface_hierarchy!(
8515    ICoreWebView2ContextMenuRequestedEventHandler,
8516    windows_core::IUnknown
8517);
8518impl ICoreWebView2ContextMenuRequestedEventHandler {
8519    pub unsafe fn Invoke<P0, P1>(&self, sender: P0, args: P1) -> windows_core::Result<()>
8520    where
8521        P0: windows_core::Param<ICoreWebView2>,
8522        P1: windows_core::Param<ICoreWebView2ContextMenuRequestedEventArgs>,
8523    {
8524        unsafe {
8525            (windows_core::Interface::vtable(self).Invoke)(
8526                windows_core::Interface::as_raw(self),
8527                sender.param().abi(),
8528                args.param().abi(),
8529            )
8530            .ok()
8531        }
8532    }
8533}
8534#[repr(C)]
8535#[doc(hidden)]
8536pub struct ICoreWebView2ContextMenuRequestedEventHandler_Vtbl {
8537    pub base__: windows_core::IUnknown_Vtbl,
8538    pub Invoke: unsafe extern "system" fn(
8539        *mut core::ffi::c_void,
8540        *mut core::ffi::c_void,
8541        *mut core::ffi::c_void,
8542    ) -> windows_core::HRESULT,
8543}
8544pub trait ICoreWebView2ContextMenuRequestedEventHandler_Impl: windows_core::IUnknownImpl {
8545    fn Invoke(
8546        &self,
8547        sender: windows_core::Ref<ICoreWebView2>,
8548        args: windows_core::Ref<ICoreWebView2ContextMenuRequestedEventArgs>,
8549    ) -> windows_core::Result<()>;
8550}
8551impl ICoreWebView2ContextMenuRequestedEventHandler_Vtbl {
8552    pub const fn new<
8553        Identity: ICoreWebView2ContextMenuRequestedEventHandler_Impl,
8554        const OFFSET: isize,
8555    >() -> Self {
8556        unsafe extern "system" fn Invoke<
8557            Identity: ICoreWebView2ContextMenuRequestedEventHandler_Impl,
8558            const OFFSET: isize,
8559        >(
8560            this: *mut core::ffi::c_void,
8561            sender: *mut core::ffi::c_void,
8562            args: *mut core::ffi::c_void,
8563        ) -> windows_core::HRESULT {
8564            unsafe {
8565                let this: &Identity =
8566                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
8567                ICoreWebView2ContextMenuRequestedEventHandler_Impl::Invoke(
8568                    this,
8569                    core::mem::transmute_copy(&sender),
8570                    core::mem::transmute_copy(&args),
8571                )
8572                .into()
8573            }
8574        }
8575        Self {
8576            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
8577            Invoke: Invoke::<Identity, OFFSET>,
8578        }
8579    }
8580    pub fn matches(iid: &windows_core::GUID) -> bool {
8581        iid == &<ICoreWebView2ContextMenuRequestedEventHandler as windows_core::Interface>::IID
8582    }
8583}
8584impl windows_core::RuntimeName for ICoreWebView2ContextMenuRequestedEventHandler {}
8585windows_core::imp::define_interface!(
8586    ICoreWebView2ContextMenuTarget,
8587    ICoreWebView2ContextMenuTarget_Vtbl,
8588    0xb8611d99_eed6_4f3f_902c_a198502ad472
8589);
8590windows_core::imp::interface_hierarchy!(ICoreWebView2ContextMenuTarget, windows_core::IUnknown);
8591impl ICoreWebView2ContextMenuTarget {
8592    pub unsafe fn Kind(
8593        &self,
8594        value: *mut COREWEBVIEW2_CONTEXT_MENU_TARGET_KIND,
8595    ) -> windows_core::Result<()> {
8596        unsafe {
8597            (windows_core::Interface::vtable(self).Kind)(
8598                windows_core::Interface::as_raw(self),
8599                value as _,
8600            )
8601            .ok()
8602        }
8603    }
8604    pub unsafe fn IsEditable(&self, value: *mut windows_core::BOOL) -> windows_core::Result<()> {
8605        unsafe {
8606            (windows_core::Interface::vtable(self).IsEditable)(
8607                windows_core::Interface::as_raw(self),
8608                value as _,
8609            )
8610            .ok()
8611        }
8612    }
8613    pub unsafe fn IsRequestedForMainFrame(
8614        &self,
8615        value: *mut windows_core::BOOL,
8616    ) -> windows_core::Result<()> {
8617        unsafe {
8618            (windows_core::Interface::vtable(self).IsRequestedForMainFrame)(
8619                windows_core::Interface::as_raw(self),
8620                value as _,
8621            )
8622            .ok()
8623        }
8624    }
8625    pub unsafe fn PageUri(&self, value: *mut windows_core::PWSTR) -> windows_core::Result<()> {
8626        unsafe {
8627            (windows_core::Interface::vtable(self).PageUri)(
8628                windows_core::Interface::as_raw(self),
8629                value as _,
8630            )
8631            .ok()
8632        }
8633    }
8634    pub unsafe fn FrameUri(&self, value: *mut windows_core::PWSTR) -> windows_core::Result<()> {
8635        unsafe {
8636            (windows_core::Interface::vtable(self).FrameUri)(
8637                windows_core::Interface::as_raw(self),
8638                value as _,
8639            )
8640            .ok()
8641        }
8642    }
8643    pub unsafe fn HasLinkUri(&self, value: *mut windows_core::BOOL) -> windows_core::Result<()> {
8644        unsafe {
8645            (windows_core::Interface::vtable(self).HasLinkUri)(
8646                windows_core::Interface::as_raw(self),
8647                value as _,
8648            )
8649            .ok()
8650        }
8651    }
8652    pub unsafe fn LinkUri(&self, value: *mut windows_core::PWSTR) -> windows_core::Result<()> {
8653        unsafe {
8654            (windows_core::Interface::vtable(self).LinkUri)(
8655                windows_core::Interface::as_raw(self),
8656                value as _,
8657            )
8658            .ok()
8659        }
8660    }
8661    pub unsafe fn HasLinkText(&self, value: *mut windows_core::BOOL) -> windows_core::Result<()> {
8662        unsafe {
8663            (windows_core::Interface::vtable(self).HasLinkText)(
8664                windows_core::Interface::as_raw(self),
8665                value as _,
8666            )
8667            .ok()
8668        }
8669    }
8670    pub unsafe fn LinkText(&self, value: *mut windows_core::PWSTR) -> windows_core::Result<()> {
8671        unsafe {
8672            (windows_core::Interface::vtable(self).LinkText)(
8673                windows_core::Interface::as_raw(self),
8674                value as _,
8675            )
8676            .ok()
8677        }
8678    }
8679    pub unsafe fn HasSourceUri(&self, value: *mut windows_core::BOOL) -> windows_core::Result<()> {
8680        unsafe {
8681            (windows_core::Interface::vtable(self).HasSourceUri)(
8682                windows_core::Interface::as_raw(self),
8683                value as _,
8684            )
8685            .ok()
8686        }
8687    }
8688    pub unsafe fn SourceUri(&self, value: *mut windows_core::PWSTR) -> windows_core::Result<()> {
8689        unsafe {
8690            (windows_core::Interface::vtable(self).SourceUri)(
8691                windows_core::Interface::as_raw(self),
8692                value as _,
8693            )
8694            .ok()
8695        }
8696    }
8697    pub unsafe fn HasSelection(&self, value: *mut windows_core::BOOL) -> windows_core::Result<()> {
8698        unsafe {
8699            (windows_core::Interface::vtable(self).HasSelection)(
8700                windows_core::Interface::as_raw(self),
8701                value as _,
8702            )
8703            .ok()
8704        }
8705    }
8706    pub unsafe fn SelectionText(
8707        &self,
8708        value: *mut windows_core::PWSTR,
8709    ) -> windows_core::Result<()> {
8710        unsafe {
8711            (windows_core::Interface::vtable(self).SelectionText)(
8712                windows_core::Interface::as_raw(self),
8713                value as _,
8714            )
8715            .ok()
8716        }
8717    }
8718}
8719#[repr(C)]
8720#[doc(hidden)]
8721pub struct ICoreWebView2ContextMenuTarget_Vtbl {
8722    pub base__: windows_core::IUnknown_Vtbl,
8723    pub Kind: unsafe extern "system" fn(
8724        *mut core::ffi::c_void,
8725        *mut COREWEBVIEW2_CONTEXT_MENU_TARGET_KIND,
8726    ) -> windows_core::HRESULT,
8727    pub IsEditable: unsafe extern "system" fn(
8728        *mut core::ffi::c_void,
8729        *mut windows_core::BOOL,
8730    ) -> windows_core::HRESULT,
8731    pub IsRequestedForMainFrame: unsafe extern "system" fn(
8732        *mut core::ffi::c_void,
8733        *mut windows_core::BOOL,
8734    ) -> windows_core::HRESULT,
8735    pub PageUri: unsafe extern "system" fn(
8736        *mut core::ffi::c_void,
8737        *mut windows_core::PWSTR,
8738    ) -> windows_core::HRESULT,
8739    pub FrameUri: unsafe extern "system" fn(
8740        *mut core::ffi::c_void,
8741        *mut windows_core::PWSTR,
8742    ) -> windows_core::HRESULT,
8743    pub HasLinkUri: unsafe extern "system" fn(
8744        *mut core::ffi::c_void,
8745        *mut windows_core::BOOL,
8746    ) -> windows_core::HRESULT,
8747    pub LinkUri: unsafe extern "system" fn(
8748        *mut core::ffi::c_void,
8749        *mut windows_core::PWSTR,
8750    ) -> windows_core::HRESULT,
8751    pub HasLinkText: unsafe extern "system" fn(
8752        *mut core::ffi::c_void,
8753        *mut windows_core::BOOL,
8754    ) -> windows_core::HRESULT,
8755    pub LinkText: unsafe extern "system" fn(
8756        *mut core::ffi::c_void,
8757        *mut windows_core::PWSTR,
8758    ) -> windows_core::HRESULT,
8759    pub HasSourceUri: unsafe extern "system" fn(
8760        *mut core::ffi::c_void,
8761        *mut windows_core::BOOL,
8762    ) -> windows_core::HRESULT,
8763    pub SourceUri: unsafe extern "system" fn(
8764        *mut core::ffi::c_void,
8765        *mut windows_core::PWSTR,
8766    ) -> windows_core::HRESULT,
8767    pub HasSelection: unsafe extern "system" fn(
8768        *mut core::ffi::c_void,
8769        *mut windows_core::BOOL,
8770    ) -> windows_core::HRESULT,
8771    pub SelectionText: unsafe extern "system" fn(
8772        *mut core::ffi::c_void,
8773        *mut windows_core::PWSTR,
8774    ) -> windows_core::HRESULT,
8775}
8776pub trait ICoreWebView2ContextMenuTarget_Impl: windows_core::IUnknownImpl {
8777    fn Kind(&self, value: *mut COREWEBVIEW2_CONTEXT_MENU_TARGET_KIND) -> windows_core::Result<()>;
8778    fn IsEditable(&self, value: *mut windows_core::BOOL) -> windows_core::Result<()>;
8779    fn IsRequestedForMainFrame(&self, value: *mut windows_core::BOOL) -> windows_core::Result<()>;
8780    fn PageUri(&self, value: *mut windows_core::PWSTR) -> windows_core::Result<()>;
8781    fn FrameUri(&self, value: *mut windows_core::PWSTR) -> windows_core::Result<()>;
8782    fn HasLinkUri(&self, value: *mut windows_core::BOOL) -> windows_core::Result<()>;
8783    fn LinkUri(&self, value: *mut windows_core::PWSTR) -> windows_core::Result<()>;
8784    fn HasLinkText(&self, value: *mut windows_core::BOOL) -> windows_core::Result<()>;
8785    fn LinkText(&self, value: *mut windows_core::PWSTR) -> windows_core::Result<()>;
8786    fn HasSourceUri(&self, value: *mut windows_core::BOOL) -> windows_core::Result<()>;
8787    fn SourceUri(&self, value: *mut windows_core::PWSTR) -> windows_core::Result<()>;
8788    fn HasSelection(&self, value: *mut windows_core::BOOL) -> windows_core::Result<()>;
8789    fn SelectionText(&self, value: *mut windows_core::PWSTR) -> windows_core::Result<()>;
8790}
8791impl ICoreWebView2ContextMenuTarget_Vtbl {
8792    pub const fn new<Identity: ICoreWebView2ContextMenuTarget_Impl, const OFFSET: isize>() -> Self {
8793        unsafe extern "system" fn Kind<
8794            Identity: ICoreWebView2ContextMenuTarget_Impl,
8795            const OFFSET: isize,
8796        >(
8797            this: *mut core::ffi::c_void,
8798            value: *mut COREWEBVIEW2_CONTEXT_MENU_TARGET_KIND,
8799        ) -> windows_core::HRESULT {
8800            unsafe {
8801                let this: &Identity =
8802                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
8803                ICoreWebView2ContextMenuTarget_Impl::Kind(this, core::mem::transmute_copy(&value))
8804                    .into()
8805            }
8806        }
8807        unsafe extern "system" fn IsEditable<
8808            Identity: ICoreWebView2ContextMenuTarget_Impl,
8809            const OFFSET: isize,
8810        >(
8811            this: *mut core::ffi::c_void,
8812            value: *mut windows_core::BOOL,
8813        ) -> windows_core::HRESULT {
8814            unsafe {
8815                let this: &Identity =
8816                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
8817                ICoreWebView2ContextMenuTarget_Impl::IsEditable(
8818                    this,
8819                    core::mem::transmute_copy(&value),
8820                )
8821                .into()
8822            }
8823        }
8824        unsafe extern "system" fn IsRequestedForMainFrame<
8825            Identity: ICoreWebView2ContextMenuTarget_Impl,
8826            const OFFSET: isize,
8827        >(
8828            this: *mut core::ffi::c_void,
8829            value: *mut windows_core::BOOL,
8830        ) -> windows_core::HRESULT {
8831            unsafe {
8832                let this: &Identity =
8833                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
8834                ICoreWebView2ContextMenuTarget_Impl::IsRequestedForMainFrame(
8835                    this,
8836                    core::mem::transmute_copy(&value),
8837                )
8838                .into()
8839            }
8840        }
8841        unsafe extern "system" fn PageUri<
8842            Identity: ICoreWebView2ContextMenuTarget_Impl,
8843            const OFFSET: isize,
8844        >(
8845            this: *mut core::ffi::c_void,
8846            value: *mut windows_core::PWSTR,
8847        ) -> windows_core::HRESULT {
8848            unsafe {
8849                let this: &Identity =
8850                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
8851                ICoreWebView2ContextMenuTarget_Impl::PageUri(
8852                    this,
8853                    core::mem::transmute_copy(&value),
8854                )
8855                .into()
8856            }
8857        }
8858        unsafe extern "system" fn FrameUri<
8859            Identity: ICoreWebView2ContextMenuTarget_Impl,
8860            const OFFSET: isize,
8861        >(
8862            this: *mut core::ffi::c_void,
8863            value: *mut windows_core::PWSTR,
8864        ) -> windows_core::HRESULT {
8865            unsafe {
8866                let this: &Identity =
8867                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
8868                ICoreWebView2ContextMenuTarget_Impl::FrameUri(
8869                    this,
8870                    core::mem::transmute_copy(&value),
8871                )
8872                .into()
8873            }
8874        }
8875        unsafe extern "system" fn HasLinkUri<
8876            Identity: ICoreWebView2ContextMenuTarget_Impl,
8877            const OFFSET: isize,
8878        >(
8879            this: *mut core::ffi::c_void,
8880            value: *mut windows_core::BOOL,
8881        ) -> windows_core::HRESULT {
8882            unsafe {
8883                let this: &Identity =
8884                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
8885                ICoreWebView2ContextMenuTarget_Impl::HasLinkUri(
8886                    this,
8887                    core::mem::transmute_copy(&value),
8888                )
8889                .into()
8890            }
8891        }
8892        unsafe extern "system" fn LinkUri<
8893            Identity: ICoreWebView2ContextMenuTarget_Impl,
8894            const OFFSET: isize,
8895        >(
8896            this: *mut core::ffi::c_void,
8897            value: *mut windows_core::PWSTR,
8898        ) -> windows_core::HRESULT {
8899            unsafe {
8900                let this: &Identity =
8901                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
8902                ICoreWebView2ContextMenuTarget_Impl::LinkUri(
8903                    this,
8904                    core::mem::transmute_copy(&value),
8905                )
8906                .into()
8907            }
8908        }
8909        unsafe extern "system" fn HasLinkText<
8910            Identity: ICoreWebView2ContextMenuTarget_Impl,
8911            const OFFSET: isize,
8912        >(
8913            this: *mut core::ffi::c_void,
8914            value: *mut windows_core::BOOL,
8915        ) -> windows_core::HRESULT {
8916            unsafe {
8917                let this: &Identity =
8918                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
8919                ICoreWebView2ContextMenuTarget_Impl::HasLinkText(
8920                    this,
8921                    core::mem::transmute_copy(&value),
8922                )
8923                .into()
8924            }
8925        }
8926        unsafe extern "system" fn LinkText<
8927            Identity: ICoreWebView2ContextMenuTarget_Impl,
8928            const OFFSET: isize,
8929        >(
8930            this: *mut core::ffi::c_void,
8931            value: *mut windows_core::PWSTR,
8932        ) -> windows_core::HRESULT {
8933            unsafe {
8934                let this: &Identity =
8935                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
8936                ICoreWebView2ContextMenuTarget_Impl::LinkText(
8937                    this,
8938                    core::mem::transmute_copy(&value),
8939                )
8940                .into()
8941            }
8942        }
8943        unsafe extern "system" fn HasSourceUri<
8944            Identity: ICoreWebView2ContextMenuTarget_Impl,
8945            const OFFSET: isize,
8946        >(
8947            this: *mut core::ffi::c_void,
8948            value: *mut windows_core::BOOL,
8949        ) -> windows_core::HRESULT {
8950            unsafe {
8951                let this: &Identity =
8952                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
8953                ICoreWebView2ContextMenuTarget_Impl::HasSourceUri(
8954                    this,
8955                    core::mem::transmute_copy(&value),
8956                )
8957                .into()
8958            }
8959        }
8960        unsafe extern "system" fn SourceUri<
8961            Identity: ICoreWebView2ContextMenuTarget_Impl,
8962            const OFFSET: isize,
8963        >(
8964            this: *mut core::ffi::c_void,
8965            value: *mut windows_core::PWSTR,
8966        ) -> windows_core::HRESULT {
8967            unsafe {
8968                let this: &Identity =
8969                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
8970                ICoreWebView2ContextMenuTarget_Impl::SourceUri(
8971                    this,
8972                    core::mem::transmute_copy(&value),
8973                )
8974                .into()
8975            }
8976        }
8977        unsafe extern "system" fn HasSelection<
8978            Identity: ICoreWebView2ContextMenuTarget_Impl,
8979            const OFFSET: isize,
8980        >(
8981            this: *mut core::ffi::c_void,
8982            value: *mut windows_core::BOOL,
8983        ) -> windows_core::HRESULT {
8984            unsafe {
8985                let this: &Identity =
8986                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
8987                ICoreWebView2ContextMenuTarget_Impl::HasSelection(
8988                    this,
8989                    core::mem::transmute_copy(&value),
8990                )
8991                .into()
8992            }
8993        }
8994        unsafe extern "system" fn SelectionText<
8995            Identity: ICoreWebView2ContextMenuTarget_Impl,
8996            const OFFSET: isize,
8997        >(
8998            this: *mut core::ffi::c_void,
8999            value: *mut windows_core::PWSTR,
9000        ) -> windows_core::HRESULT {
9001            unsafe {
9002                let this: &Identity =
9003                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
9004                ICoreWebView2ContextMenuTarget_Impl::SelectionText(
9005                    this,
9006                    core::mem::transmute_copy(&value),
9007                )
9008                .into()
9009            }
9010        }
9011        Self {
9012            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
9013            Kind: Kind::<Identity, OFFSET>,
9014            IsEditable: IsEditable::<Identity, OFFSET>,
9015            IsRequestedForMainFrame: IsRequestedForMainFrame::<Identity, OFFSET>,
9016            PageUri: PageUri::<Identity, OFFSET>,
9017            FrameUri: FrameUri::<Identity, OFFSET>,
9018            HasLinkUri: HasLinkUri::<Identity, OFFSET>,
9019            LinkUri: LinkUri::<Identity, OFFSET>,
9020            HasLinkText: HasLinkText::<Identity, OFFSET>,
9021            LinkText: LinkText::<Identity, OFFSET>,
9022            HasSourceUri: HasSourceUri::<Identity, OFFSET>,
9023            SourceUri: SourceUri::<Identity, OFFSET>,
9024            HasSelection: HasSelection::<Identity, OFFSET>,
9025            SelectionText: SelectionText::<Identity, OFFSET>,
9026        }
9027    }
9028    pub fn matches(iid: &windows_core::GUID) -> bool {
9029        iid == &<ICoreWebView2ContextMenuTarget as windows_core::Interface>::IID
9030    }
9031}
9032impl windows_core::RuntimeName for ICoreWebView2ContextMenuTarget {}
9033windows_core::imp::define_interface!(
9034    ICoreWebView2Controller,
9035    ICoreWebView2Controller_Vtbl,
9036    0x4d00c0d1_9434_4eb6_8078_8697a560334f
9037);
9038windows_core::imp::interface_hierarchy!(ICoreWebView2Controller, windows_core::IUnknown);
9039impl ICoreWebView2Controller {
9040    pub unsafe fn IsVisible(&self, isvisible: *mut windows_core::BOOL) -> windows_core::Result<()> {
9041        unsafe {
9042            (windows_core::Interface::vtable(self).IsVisible)(
9043                windows_core::Interface::as_raw(self),
9044                isvisible as _,
9045            )
9046            .ok()
9047        }
9048    }
9049    pub unsafe fn SetIsVisible(&self, isvisible: bool) -> windows_core::Result<()> {
9050        unsafe {
9051            (windows_core::Interface::vtable(self).SetIsVisible)(
9052                windows_core::Interface::as_raw(self),
9053                isvisible.into(),
9054            )
9055            .ok()
9056        }
9057    }
9058    pub unsafe fn Bounds(
9059        &self,
9060        bounds: *mut windows::Win32::Foundation::RECT,
9061    ) -> windows_core::Result<()> {
9062        unsafe {
9063            (windows_core::Interface::vtable(self).Bounds)(
9064                windows_core::Interface::as_raw(self),
9065                bounds as _,
9066            )
9067            .ok()
9068        }
9069    }
9070    pub unsafe fn SetBounds(
9071        &self,
9072        bounds: windows::Win32::Foundation::RECT,
9073    ) -> windows_core::Result<()> {
9074        unsafe {
9075            (windows_core::Interface::vtable(self).SetBounds)(
9076                windows_core::Interface::as_raw(self),
9077                core::mem::transmute(bounds),
9078            )
9079            .ok()
9080        }
9081    }
9082    pub unsafe fn ZoomFactor(&self, zoomfactor: *mut f64) -> windows_core::Result<()> {
9083        unsafe {
9084            (windows_core::Interface::vtable(self).ZoomFactor)(
9085                windows_core::Interface::as_raw(self),
9086                zoomfactor as _,
9087            )
9088            .ok()
9089        }
9090    }
9091    pub unsafe fn SetZoomFactor(&self, zoomfactor: f64) -> windows_core::Result<()> {
9092        unsafe {
9093            (windows_core::Interface::vtable(self).SetZoomFactor)(
9094                windows_core::Interface::as_raw(self),
9095                zoomfactor,
9096            )
9097            .ok()
9098        }
9099    }
9100    pub unsafe fn add_ZoomFactorChanged<P0>(
9101        &self,
9102        eventhandler: P0,
9103        token: *mut i64,
9104    ) -> windows_core::Result<()>
9105    where
9106        P0: windows_core::Param<ICoreWebView2ZoomFactorChangedEventHandler>,
9107    {
9108        unsafe {
9109            (windows_core::Interface::vtable(self).add_ZoomFactorChanged)(
9110                windows_core::Interface::as_raw(self),
9111                eventhandler.param().abi(),
9112                token as _,
9113            )
9114            .ok()
9115        }
9116    }
9117    pub unsafe fn remove_ZoomFactorChanged(&self, token: i64) -> windows_core::Result<()> {
9118        unsafe {
9119            (windows_core::Interface::vtable(self).remove_ZoomFactorChanged)(
9120                windows_core::Interface::as_raw(self),
9121                token,
9122            )
9123            .ok()
9124        }
9125    }
9126    pub unsafe fn SetBoundsAndZoomFactor(
9127        &self,
9128        bounds: windows::Win32::Foundation::RECT,
9129        zoomfactor: f64,
9130    ) -> windows_core::Result<()> {
9131        unsafe {
9132            (windows_core::Interface::vtable(self).SetBoundsAndZoomFactor)(
9133                windows_core::Interface::as_raw(self),
9134                core::mem::transmute(bounds),
9135                zoomfactor,
9136            )
9137            .ok()
9138        }
9139    }
9140    pub unsafe fn MoveFocus(
9141        &self,
9142        reason: COREWEBVIEW2_MOVE_FOCUS_REASON,
9143    ) -> windows_core::Result<()> {
9144        unsafe {
9145            (windows_core::Interface::vtable(self).MoveFocus)(
9146                windows_core::Interface::as_raw(self),
9147                reason,
9148            )
9149            .ok()
9150        }
9151    }
9152    pub unsafe fn add_MoveFocusRequested<P0>(
9153        &self,
9154        eventhandler: P0,
9155        token: *mut i64,
9156    ) -> windows_core::Result<()>
9157    where
9158        P0: windows_core::Param<ICoreWebView2MoveFocusRequestedEventHandler>,
9159    {
9160        unsafe {
9161            (windows_core::Interface::vtable(self).add_MoveFocusRequested)(
9162                windows_core::Interface::as_raw(self),
9163                eventhandler.param().abi(),
9164                token as _,
9165            )
9166            .ok()
9167        }
9168    }
9169    pub unsafe fn remove_MoveFocusRequested(&self, token: i64) -> windows_core::Result<()> {
9170        unsafe {
9171            (windows_core::Interface::vtable(self).remove_MoveFocusRequested)(
9172                windows_core::Interface::as_raw(self),
9173                token,
9174            )
9175            .ok()
9176        }
9177    }
9178    pub unsafe fn add_GotFocus<P0>(
9179        &self,
9180        eventhandler: P0,
9181        token: *mut i64,
9182    ) -> windows_core::Result<()>
9183    where
9184        P0: windows_core::Param<ICoreWebView2FocusChangedEventHandler>,
9185    {
9186        unsafe {
9187            (windows_core::Interface::vtable(self).add_GotFocus)(
9188                windows_core::Interface::as_raw(self),
9189                eventhandler.param().abi(),
9190                token as _,
9191            )
9192            .ok()
9193        }
9194    }
9195    pub unsafe fn remove_GotFocus(&self, token: i64) -> windows_core::Result<()> {
9196        unsafe {
9197            (windows_core::Interface::vtable(self).remove_GotFocus)(
9198                windows_core::Interface::as_raw(self),
9199                token,
9200            )
9201            .ok()
9202        }
9203    }
9204    pub unsafe fn add_LostFocus<P0>(
9205        &self,
9206        eventhandler: P0,
9207        token: *mut i64,
9208    ) -> windows_core::Result<()>
9209    where
9210        P0: windows_core::Param<ICoreWebView2FocusChangedEventHandler>,
9211    {
9212        unsafe {
9213            (windows_core::Interface::vtable(self).add_LostFocus)(
9214                windows_core::Interface::as_raw(self),
9215                eventhandler.param().abi(),
9216                token as _,
9217            )
9218            .ok()
9219        }
9220    }
9221    pub unsafe fn remove_LostFocus(&self, token: i64) -> windows_core::Result<()> {
9222        unsafe {
9223            (windows_core::Interface::vtable(self).remove_LostFocus)(
9224                windows_core::Interface::as_raw(self),
9225                token,
9226            )
9227            .ok()
9228        }
9229    }
9230    pub unsafe fn add_AcceleratorKeyPressed<P0>(
9231        &self,
9232        eventhandler: P0,
9233        token: *mut i64,
9234    ) -> windows_core::Result<()>
9235    where
9236        P0: windows_core::Param<ICoreWebView2AcceleratorKeyPressedEventHandler>,
9237    {
9238        unsafe {
9239            (windows_core::Interface::vtable(self).add_AcceleratorKeyPressed)(
9240                windows_core::Interface::as_raw(self),
9241                eventhandler.param().abi(),
9242                token as _,
9243            )
9244            .ok()
9245        }
9246    }
9247    pub unsafe fn remove_AcceleratorKeyPressed(&self, token: i64) -> windows_core::Result<()> {
9248        unsafe {
9249            (windows_core::Interface::vtable(self).remove_AcceleratorKeyPressed)(
9250                windows_core::Interface::as_raw(self),
9251                token,
9252            )
9253            .ok()
9254        }
9255    }
9256    pub unsafe fn ParentWindow(
9257        &self,
9258        parentwindow: *mut windows::Win32::Foundation::HWND,
9259    ) -> windows_core::Result<()> {
9260        unsafe {
9261            (windows_core::Interface::vtable(self).ParentWindow)(
9262                windows_core::Interface::as_raw(self),
9263                parentwindow as _,
9264            )
9265            .ok()
9266        }
9267    }
9268    pub unsafe fn SetParentWindow(
9269        &self,
9270        parentwindow: windows::Win32::Foundation::HWND,
9271    ) -> windows_core::Result<()> {
9272        unsafe {
9273            (windows_core::Interface::vtable(self).SetParentWindow)(
9274                windows_core::Interface::as_raw(self),
9275                parentwindow,
9276            )
9277            .ok()
9278        }
9279    }
9280    pub unsafe fn NotifyParentWindowPositionChanged(&self) -> windows_core::Result<()> {
9281        unsafe {
9282            (windows_core::Interface::vtable(self).NotifyParentWindowPositionChanged)(
9283                windows_core::Interface::as_raw(self),
9284            )
9285            .ok()
9286        }
9287    }
9288    pub unsafe fn Close(&self) -> windows_core::Result<()> {
9289        unsafe {
9290            (windows_core::Interface::vtable(self).Close)(windows_core::Interface::as_raw(self))
9291                .ok()
9292        }
9293    }
9294    pub unsafe fn CoreWebView2(&self) -> windows_core::Result<ICoreWebView2> {
9295        unsafe {
9296            let mut result__ = core::mem::zeroed();
9297            (windows_core::Interface::vtable(self).CoreWebView2)(
9298                windows_core::Interface::as_raw(self),
9299                &mut result__,
9300            )
9301            .and_then(|| windows_core::Type::from_abi(result__))
9302        }
9303    }
9304}
9305#[repr(C)]
9306#[doc(hidden)]
9307pub struct ICoreWebView2Controller_Vtbl {
9308    pub base__: windows_core::IUnknown_Vtbl,
9309    pub IsVisible: unsafe extern "system" fn(
9310        *mut core::ffi::c_void,
9311        *mut windows_core::BOOL,
9312    ) -> windows_core::HRESULT,
9313    pub SetIsVisible: unsafe extern "system" fn(
9314        *mut core::ffi::c_void,
9315        windows_core::BOOL,
9316    ) -> windows_core::HRESULT,
9317    pub Bounds: unsafe extern "system" fn(
9318        *mut core::ffi::c_void,
9319        *mut windows::Win32::Foundation::RECT,
9320    ) -> windows_core::HRESULT,
9321    pub SetBounds: unsafe extern "system" fn(
9322        *mut core::ffi::c_void,
9323        windows::Win32::Foundation::RECT,
9324    ) -> windows_core::HRESULT,
9325    pub ZoomFactor:
9326        unsafe extern "system" fn(*mut core::ffi::c_void, *mut f64) -> windows_core::HRESULT,
9327    pub SetZoomFactor:
9328        unsafe extern "system" fn(*mut core::ffi::c_void, f64) -> windows_core::HRESULT,
9329    pub add_ZoomFactorChanged: unsafe extern "system" fn(
9330        *mut core::ffi::c_void,
9331        *mut core::ffi::c_void,
9332        *mut i64,
9333    ) -> windows_core::HRESULT,
9334    pub remove_ZoomFactorChanged:
9335        unsafe extern "system" fn(*mut core::ffi::c_void, i64) -> windows_core::HRESULT,
9336    pub SetBoundsAndZoomFactor: unsafe extern "system" fn(
9337        *mut core::ffi::c_void,
9338        windows::Win32::Foundation::RECT,
9339        f64,
9340    ) -> windows_core::HRESULT,
9341    pub MoveFocus: unsafe extern "system" fn(
9342        *mut core::ffi::c_void,
9343        COREWEBVIEW2_MOVE_FOCUS_REASON,
9344    ) -> windows_core::HRESULT,
9345    pub add_MoveFocusRequested: unsafe extern "system" fn(
9346        *mut core::ffi::c_void,
9347        *mut core::ffi::c_void,
9348        *mut i64,
9349    ) -> windows_core::HRESULT,
9350    pub remove_MoveFocusRequested:
9351        unsafe extern "system" fn(*mut core::ffi::c_void, i64) -> windows_core::HRESULT,
9352    pub add_GotFocus: unsafe extern "system" fn(
9353        *mut core::ffi::c_void,
9354        *mut core::ffi::c_void,
9355        *mut i64,
9356    ) -> windows_core::HRESULT,
9357    pub remove_GotFocus:
9358        unsafe extern "system" fn(*mut core::ffi::c_void, i64) -> windows_core::HRESULT,
9359    pub add_LostFocus: unsafe extern "system" fn(
9360        *mut core::ffi::c_void,
9361        *mut core::ffi::c_void,
9362        *mut i64,
9363    ) -> windows_core::HRESULT,
9364    pub remove_LostFocus:
9365        unsafe extern "system" fn(*mut core::ffi::c_void, i64) -> windows_core::HRESULT,
9366    pub add_AcceleratorKeyPressed: unsafe extern "system" fn(
9367        *mut core::ffi::c_void,
9368        *mut core::ffi::c_void,
9369        *mut i64,
9370    ) -> windows_core::HRESULT,
9371    pub remove_AcceleratorKeyPressed:
9372        unsafe extern "system" fn(*mut core::ffi::c_void, i64) -> windows_core::HRESULT,
9373    pub ParentWindow: unsafe extern "system" fn(
9374        *mut core::ffi::c_void,
9375        *mut windows::Win32::Foundation::HWND,
9376    ) -> windows_core::HRESULT,
9377    pub SetParentWindow: unsafe extern "system" fn(
9378        *mut core::ffi::c_void,
9379        windows::Win32::Foundation::HWND,
9380    ) -> windows_core::HRESULT,
9381    pub NotifyParentWindowPositionChanged:
9382        unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
9383    pub Close: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
9384    pub CoreWebView2: unsafe extern "system" fn(
9385        *mut core::ffi::c_void,
9386        *mut *mut core::ffi::c_void,
9387    ) -> windows_core::HRESULT,
9388}
9389pub trait ICoreWebView2Controller_Impl: windows_core::IUnknownImpl {
9390    fn IsVisible(&self, isvisible: *mut windows_core::BOOL) -> windows_core::Result<()>;
9391    fn SetIsVisible(&self, isvisible: windows_core::BOOL) -> windows_core::Result<()>;
9392    fn Bounds(&self, bounds: *mut windows::Win32::Foundation::RECT) -> windows_core::Result<()>;
9393    fn SetBounds(&self, bounds: &windows::Win32::Foundation::RECT) -> windows_core::Result<()>;
9394    fn ZoomFactor(&self, zoomfactor: *mut f64) -> windows_core::Result<()>;
9395    fn SetZoomFactor(&self, zoomfactor: f64) -> windows_core::Result<()>;
9396    fn add_ZoomFactorChanged(
9397        &self,
9398        eventhandler: windows_core::Ref<ICoreWebView2ZoomFactorChangedEventHandler>,
9399        token: *mut i64,
9400    ) -> windows_core::Result<()>;
9401    fn remove_ZoomFactorChanged(&self, token: i64) -> windows_core::Result<()>;
9402    fn SetBoundsAndZoomFactor(
9403        &self,
9404        bounds: &windows::Win32::Foundation::RECT,
9405        zoomfactor: f64,
9406    ) -> windows_core::Result<()>;
9407    fn MoveFocus(&self, reason: COREWEBVIEW2_MOVE_FOCUS_REASON) -> windows_core::Result<()>;
9408    fn add_MoveFocusRequested(
9409        &self,
9410        eventhandler: windows_core::Ref<ICoreWebView2MoveFocusRequestedEventHandler>,
9411        token: *mut i64,
9412    ) -> windows_core::Result<()>;
9413    fn remove_MoveFocusRequested(&self, token: i64) -> windows_core::Result<()>;
9414    fn add_GotFocus(
9415        &self,
9416        eventhandler: windows_core::Ref<ICoreWebView2FocusChangedEventHandler>,
9417        token: *mut i64,
9418    ) -> windows_core::Result<()>;
9419    fn remove_GotFocus(&self, token: i64) -> windows_core::Result<()>;
9420    fn add_LostFocus(
9421        &self,
9422        eventhandler: windows_core::Ref<ICoreWebView2FocusChangedEventHandler>,
9423        token: *mut i64,
9424    ) -> windows_core::Result<()>;
9425    fn remove_LostFocus(&self, token: i64) -> windows_core::Result<()>;
9426    fn add_AcceleratorKeyPressed(
9427        &self,
9428        eventhandler: windows_core::Ref<ICoreWebView2AcceleratorKeyPressedEventHandler>,
9429        token: *mut i64,
9430    ) -> windows_core::Result<()>;
9431    fn remove_AcceleratorKeyPressed(&self, token: i64) -> windows_core::Result<()>;
9432    fn ParentWindow(
9433        &self,
9434        parentwindow: *mut windows::Win32::Foundation::HWND,
9435    ) -> windows_core::Result<()>;
9436    fn SetParentWindow(
9437        &self,
9438        parentwindow: windows::Win32::Foundation::HWND,
9439    ) -> windows_core::Result<()>;
9440    fn NotifyParentWindowPositionChanged(&self) -> windows_core::Result<()>;
9441    fn Close(&self) -> windows_core::Result<()>;
9442    fn CoreWebView2(&self) -> windows_core::Result<ICoreWebView2>;
9443}
9444impl ICoreWebView2Controller_Vtbl {
9445    pub const fn new<Identity: ICoreWebView2Controller_Impl, const OFFSET: isize>() -> Self {
9446        unsafe extern "system" fn IsVisible<
9447            Identity: ICoreWebView2Controller_Impl,
9448            const OFFSET: isize,
9449        >(
9450            this: *mut core::ffi::c_void,
9451            isvisible: *mut windows_core::BOOL,
9452        ) -> windows_core::HRESULT {
9453            unsafe {
9454                let this: &Identity =
9455                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
9456                ICoreWebView2Controller_Impl::IsVisible(this, core::mem::transmute_copy(&isvisible))
9457                    .into()
9458            }
9459        }
9460        unsafe extern "system" fn SetIsVisible<
9461            Identity: ICoreWebView2Controller_Impl,
9462            const OFFSET: isize,
9463        >(
9464            this: *mut core::ffi::c_void,
9465            isvisible: windows_core::BOOL,
9466        ) -> windows_core::HRESULT {
9467            unsafe {
9468                let this: &Identity =
9469                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
9470                ICoreWebView2Controller_Impl::SetIsVisible(
9471                    this,
9472                    core::mem::transmute_copy(&isvisible),
9473                )
9474                .into()
9475            }
9476        }
9477        unsafe extern "system" fn Bounds<
9478            Identity: ICoreWebView2Controller_Impl,
9479            const OFFSET: isize,
9480        >(
9481            this: *mut core::ffi::c_void,
9482            bounds: *mut windows::Win32::Foundation::RECT,
9483        ) -> windows_core::HRESULT {
9484            unsafe {
9485                let this: &Identity =
9486                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
9487                ICoreWebView2Controller_Impl::Bounds(this, core::mem::transmute_copy(&bounds))
9488                    .into()
9489            }
9490        }
9491        unsafe extern "system" fn SetBounds<
9492            Identity: ICoreWebView2Controller_Impl,
9493            const OFFSET: isize,
9494        >(
9495            this: *mut core::ffi::c_void,
9496            bounds: windows::Win32::Foundation::RECT,
9497        ) -> windows_core::HRESULT {
9498            unsafe {
9499                let this: &Identity =
9500                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
9501                ICoreWebView2Controller_Impl::SetBounds(this, core::mem::transmute(&bounds)).into()
9502            }
9503        }
9504        unsafe extern "system" fn ZoomFactor<
9505            Identity: ICoreWebView2Controller_Impl,
9506            const OFFSET: isize,
9507        >(
9508            this: *mut core::ffi::c_void,
9509            zoomfactor: *mut f64,
9510        ) -> windows_core::HRESULT {
9511            unsafe {
9512                let this: &Identity =
9513                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
9514                ICoreWebView2Controller_Impl::ZoomFactor(
9515                    this,
9516                    core::mem::transmute_copy(&zoomfactor),
9517                )
9518                .into()
9519            }
9520        }
9521        unsafe extern "system" fn SetZoomFactor<
9522            Identity: ICoreWebView2Controller_Impl,
9523            const OFFSET: isize,
9524        >(
9525            this: *mut core::ffi::c_void,
9526            zoomfactor: f64,
9527        ) -> windows_core::HRESULT {
9528            unsafe {
9529                let this: &Identity =
9530                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
9531                ICoreWebView2Controller_Impl::SetZoomFactor(
9532                    this,
9533                    core::mem::transmute_copy(&zoomfactor),
9534                )
9535                .into()
9536            }
9537        }
9538        unsafe extern "system" fn add_ZoomFactorChanged<
9539            Identity: ICoreWebView2Controller_Impl,
9540            const OFFSET: isize,
9541        >(
9542            this: *mut core::ffi::c_void,
9543            eventhandler: *mut core::ffi::c_void,
9544            token: *mut i64,
9545        ) -> windows_core::HRESULT {
9546            unsafe {
9547                let this: &Identity =
9548                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
9549                ICoreWebView2Controller_Impl::add_ZoomFactorChanged(
9550                    this,
9551                    core::mem::transmute_copy(&eventhandler),
9552                    core::mem::transmute_copy(&token),
9553                )
9554                .into()
9555            }
9556        }
9557        unsafe extern "system" fn remove_ZoomFactorChanged<
9558            Identity: ICoreWebView2Controller_Impl,
9559            const OFFSET: isize,
9560        >(
9561            this: *mut core::ffi::c_void,
9562            token: i64,
9563        ) -> windows_core::HRESULT {
9564            unsafe {
9565                let this: &Identity =
9566                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
9567                ICoreWebView2Controller_Impl::remove_ZoomFactorChanged(
9568                    this,
9569                    core::mem::transmute_copy(&token),
9570                )
9571                .into()
9572            }
9573        }
9574        unsafe extern "system" fn SetBoundsAndZoomFactor<
9575            Identity: ICoreWebView2Controller_Impl,
9576            const OFFSET: isize,
9577        >(
9578            this: *mut core::ffi::c_void,
9579            bounds: windows::Win32::Foundation::RECT,
9580            zoomfactor: f64,
9581        ) -> windows_core::HRESULT {
9582            unsafe {
9583                let this: &Identity =
9584                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
9585                ICoreWebView2Controller_Impl::SetBoundsAndZoomFactor(
9586                    this,
9587                    core::mem::transmute(&bounds),
9588                    core::mem::transmute_copy(&zoomfactor),
9589                )
9590                .into()
9591            }
9592        }
9593        unsafe extern "system" fn MoveFocus<
9594            Identity: ICoreWebView2Controller_Impl,
9595            const OFFSET: isize,
9596        >(
9597            this: *mut core::ffi::c_void,
9598            reason: COREWEBVIEW2_MOVE_FOCUS_REASON,
9599        ) -> windows_core::HRESULT {
9600            unsafe {
9601                let this: &Identity =
9602                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
9603                ICoreWebView2Controller_Impl::MoveFocus(this, core::mem::transmute_copy(&reason))
9604                    .into()
9605            }
9606        }
9607        unsafe extern "system" fn add_MoveFocusRequested<
9608            Identity: ICoreWebView2Controller_Impl,
9609            const OFFSET: isize,
9610        >(
9611            this: *mut core::ffi::c_void,
9612            eventhandler: *mut core::ffi::c_void,
9613            token: *mut i64,
9614        ) -> windows_core::HRESULT {
9615            unsafe {
9616                let this: &Identity =
9617                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
9618                ICoreWebView2Controller_Impl::add_MoveFocusRequested(
9619                    this,
9620                    core::mem::transmute_copy(&eventhandler),
9621                    core::mem::transmute_copy(&token),
9622                )
9623                .into()
9624            }
9625        }
9626        unsafe extern "system" fn remove_MoveFocusRequested<
9627            Identity: ICoreWebView2Controller_Impl,
9628            const OFFSET: isize,
9629        >(
9630            this: *mut core::ffi::c_void,
9631            token: i64,
9632        ) -> windows_core::HRESULT {
9633            unsafe {
9634                let this: &Identity =
9635                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
9636                ICoreWebView2Controller_Impl::remove_MoveFocusRequested(
9637                    this,
9638                    core::mem::transmute_copy(&token),
9639                )
9640                .into()
9641            }
9642        }
9643        unsafe extern "system" fn add_GotFocus<
9644            Identity: ICoreWebView2Controller_Impl,
9645            const OFFSET: isize,
9646        >(
9647            this: *mut core::ffi::c_void,
9648            eventhandler: *mut core::ffi::c_void,
9649            token: *mut i64,
9650        ) -> windows_core::HRESULT {
9651            unsafe {
9652                let this: &Identity =
9653                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
9654                ICoreWebView2Controller_Impl::add_GotFocus(
9655                    this,
9656                    core::mem::transmute_copy(&eventhandler),
9657                    core::mem::transmute_copy(&token),
9658                )
9659                .into()
9660            }
9661        }
9662        unsafe extern "system" fn remove_GotFocus<
9663            Identity: ICoreWebView2Controller_Impl,
9664            const OFFSET: isize,
9665        >(
9666            this: *mut core::ffi::c_void,
9667            token: i64,
9668        ) -> windows_core::HRESULT {
9669            unsafe {
9670                let this: &Identity =
9671                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
9672                ICoreWebView2Controller_Impl::remove_GotFocus(
9673                    this,
9674                    core::mem::transmute_copy(&token),
9675                )
9676                .into()
9677            }
9678        }
9679        unsafe extern "system" fn add_LostFocus<
9680            Identity: ICoreWebView2Controller_Impl,
9681            const OFFSET: isize,
9682        >(
9683            this: *mut core::ffi::c_void,
9684            eventhandler: *mut core::ffi::c_void,
9685            token: *mut i64,
9686        ) -> windows_core::HRESULT {
9687            unsafe {
9688                let this: &Identity =
9689                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
9690                ICoreWebView2Controller_Impl::add_LostFocus(
9691                    this,
9692                    core::mem::transmute_copy(&eventhandler),
9693                    core::mem::transmute_copy(&token),
9694                )
9695                .into()
9696            }
9697        }
9698        unsafe extern "system" fn remove_LostFocus<
9699            Identity: ICoreWebView2Controller_Impl,
9700            const OFFSET: isize,
9701        >(
9702            this: *mut core::ffi::c_void,
9703            token: i64,
9704        ) -> windows_core::HRESULT {
9705            unsafe {
9706                let this: &Identity =
9707                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
9708                ICoreWebView2Controller_Impl::remove_LostFocus(
9709                    this,
9710                    core::mem::transmute_copy(&token),
9711                )
9712                .into()
9713            }
9714        }
9715        unsafe extern "system" fn add_AcceleratorKeyPressed<
9716            Identity: ICoreWebView2Controller_Impl,
9717            const OFFSET: isize,
9718        >(
9719            this: *mut core::ffi::c_void,
9720            eventhandler: *mut core::ffi::c_void,
9721            token: *mut i64,
9722        ) -> windows_core::HRESULT {
9723            unsafe {
9724                let this: &Identity =
9725                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
9726                ICoreWebView2Controller_Impl::add_AcceleratorKeyPressed(
9727                    this,
9728                    core::mem::transmute_copy(&eventhandler),
9729                    core::mem::transmute_copy(&token),
9730                )
9731                .into()
9732            }
9733        }
9734        unsafe extern "system" fn remove_AcceleratorKeyPressed<
9735            Identity: ICoreWebView2Controller_Impl,
9736            const OFFSET: isize,
9737        >(
9738            this: *mut core::ffi::c_void,
9739            token: i64,
9740        ) -> windows_core::HRESULT {
9741            unsafe {
9742                let this: &Identity =
9743                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
9744                ICoreWebView2Controller_Impl::remove_AcceleratorKeyPressed(
9745                    this,
9746                    core::mem::transmute_copy(&token),
9747                )
9748                .into()
9749            }
9750        }
9751        unsafe extern "system" fn ParentWindow<
9752            Identity: ICoreWebView2Controller_Impl,
9753            const OFFSET: isize,
9754        >(
9755            this: *mut core::ffi::c_void,
9756            parentwindow: *mut windows::Win32::Foundation::HWND,
9757        ) -> windows_core::HRESULT {
9758            unsafe {
9759                let this: &Identity =
9760                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
9761                ICoreWebView2Controller_Impl::ParentWindow(
9762                    this,
9763                    core::mem::transmute_copy(&parentwindow),
9764                )
9765                .into()
9766            }
9767        }
9768        unsafe extern "system" fn SetParentWindow<
9769            Identity: ICoreWebView2Controller_Impl,
9770            const OFFSET: isize,
9771        >(
9772            this: *mut core::ffi::c_void,
9773            parentwindow: windows::Win32::Foundation::HWND,
9774        ) -> windows_core::HRESULT {
9775            unsafe {
9776                let this: &Identity =
9777                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
9778                ICoreWebView2Controller_Impl::SetParentWindow(
9779                    this,
9780                    core::mem::transmute_copy(&parentwindow),
9781                )
9782                .into()
9783            }
9784        }
9785        unsafe extern "system" fn NotifyParentWindowPositionChanged<
9786            Identity: ICoreWebView2Controller_Impl,
9787            const OFFSET: isize,
9788        >(
9789            this: *mut core::ffi::c_void,
9790        ) -> windows_core::HRESULT {
9791            unsafe {
9792                let this: &Identity =
9793                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
9794                ICoreWebView2Controller_Impl::NotifyParentWindowPositionChanged(this).into()
9795            }
9796        }
9797        unsafe extern "system" fn Close<
9798            Identity: ICoreWebView2Controller_Impl,
9799            const OFFSET: isize,
9800        >(
9801            this: *mut core::ffi::c_void,
9802        ) -> windows_core::HRESULT {
9803            unsafe {
9804                let this: &Identity =
9805                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
9806                ICoreWebView2Controller_Impl::Close(this).into()
9807            }
9808        }
9809        unsafe extern "system" fn CoreWebView2<
9810            Identity: ICoreWebView2Controller_Impl,
9811            const OFFSET: isize,
9812        >(
9813            this: *mut core::ffi::c_void,
9814            corewebview2: *mut *mut core::ffi::c_void,
9815        ) -> windows_core::HRESULT {
9816            unsafe {
9817                let this: &Identity =
9818                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
9819                match ICoreWebView2Controller_Impl::CoreWebView2(this) {
9820                    Ok(ok__) => {
9821                        corewebview2.write(core::mem::transmute(ok__));
9822                        windows_core::HRESULT(0)
9823                    }
9824                    Err(err) => err.into(),
9825                }
9826            }
9827        }
9828        Self {
9829            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
9830            IsVisible: IsVisible::<Identity, OFFSET>,
9831            SetIsVisible: SetIsVisible::<Identity, OFFSET>,
9832            Bounds: Bounds::<Identity, OFFSET>,
9833            SetBounds: SetBounds::<Identity, OFFSET>,
9834            ZoomFactor: ZoomFactor::<Identity, OFFSET>,
9835            SetZoomFactor: SetZoomFactor::<Identity, OFFSET>,
9836            add_ZoomFactorChanged: add_ZoomFactorChanged::<Identity, OFFSET>,
9837            remove_ZoomFactorChanged: remove_ZoomFactorChanged::<Identity, OFFSET>,
9838            SetBoundsAndZoomFactor: SetBoundsAndZoomFactor::<Identity, OFFSET>,
9839            MoveFocus: MoveFocus::<Identity, OFFSET>,
9840            add_MoveFocusRequested: add_MoveFocusRequested::<Identity, OFFSET>,
9841            remove_MoveFocusRequested: remove_MoveFocusRequested::<Identity, OFFSET>,
9842            add_GotFocus: add_GotFocus::<Identity, OFFSET>,
9843            remove_GotFocus: remove_GotFocus::<Identity, OFFSET>,
9844            add_LostFocus: add_LostFocus::<Identity, OFFSET>,
9845            remove_LostFocus: remove_LostFocus::<Identity, OFFSET>,
9846            add_AcceleratorKeyPressed: add_AcceleratorKeyPressed::<Identity, OFFSET>,
9847            remove_AcceleratorKeyPressed: remove_AcceleratorKeyPressed::<Identity, OFFSET>,
9848            ParentWindow: ParentWindow::<Identity, OFFSET>,
9849            SetParentWindow: SetParentWindow::<Identity, OFFSET>,
9850            NotifyParentWindowPositionChanged: NotifyParentWindowPositionChanged::<Identity, OFFSET>,
9851            Close: Close::<Identity, OFFSET>,
9852            CoreWebView2: CoreWebView2::<Identity, OFFSET>,
9853        }
9854    }
9855    pub fn matches(iid: &windows_core::GUID) -> bool {
9856        iid == &<ICoreWebView2Controller as windows_core::Interface>::IID
9857    }
9858}
9859impl windows_core::RuntimeName for ICoreWebView2Controller {}
9860windows_core::imp::define_interface!(
9861    ICoreWebView2Controller2,
9862    ICoreWebView2Controller2_Vtbl,
9863    0xc979903e_d4ca_4228_92eb_47ee3fa96eab
9864);
9865impl core::ops::Deref for ICoreWebView2Controller2 {
9866    type Target = ICoreWebView2Controller;
9867    fn deref(&self) -> &Self::Target {
9868        unsafe { core::mem::transmute(self) }
9869    }
9870}
9871windows_core::imp::interface_hierarchy!(
9872    ICoreWebView2Controller2,
9873    windows_core::IUnknown,
9874    ICoreWebView2Controller
9875);
9876impl ICoreWebView2Controller2 {
9877    pub unsafe fn DefaultBackgroundColor(
9878        &self,
9879        value: *mut COREWEBVIEW2_COLOR,
9880    ) -> windows_core::Result<()> {
9881        unsafe {
9882            (windows_core::Interface::vtable(self).DefaultBackgroundColor)(
9883                windows_core::Interface::as_raw(self),
9884                value as _,
9885            )
9886            .ok()
9887        }
9888    }
9889    pub unsafe fn SetDefaultBackgroundColor(
9890        &self,
9891        value: COREWEBVIEW2_COLOR,
9892    ) -> windows_core::Result<()> {
9893        unsafe {
9894            (windows_core::Interface::vtable(self).SetDefaultBackgroundColor)(
9895                windows_core::Interface::as_raw(self),
9896                core::mem::transmute(value),
9897            )
9898            .ok()
9899        }
9900    }
9901}
9902#[repr(C)]
9903#[doc(hidden)]
9904pub struct ICoreWebView2Controller2_Vtbl {
9905    pub base__: ICoreWebView2Controller_Vtbl,
9906    pub DefaultBackgroundColor: unsafe extern "system" fn(
9907        *mut core::ffi::c_void,
9908        *mut COREWEBVIEW2_COLOR,
9909    ) -> windows_core::HRESULT,
9910    pub SetDefaultBackgroundColor: unsafe extern "system" fn(
9911        *mut core::ffi::c_void,
9912        COREWEBVIEW2_COLOR,
9913    ) -> windows_core::HRESULT,
9914}
9915pub trait ICoreWebView2Controller2_Impl: ICoreWebView2Controller_Impl {
9916    fn DefaultBackgroundColor(&self, value: *mut COREWEBVIEW2_COLOR) -> windows_core::Result<()>;
9917    fn SetDefaultBackgroundColor(&self, value: &COREWEBVIEW2_COLOR) -> windows_core::Result<()>;
9918}
9919impl ICoreWebView2Controller2_Vtbl {
9920    pub const fn new<Identity: ICoreWebView2Controller2_Impl, const OFFSET: isize>() -> Self {
9921        unsafe extern "system" fn DefaultBackgroundColor<
9922            Identity: ICoreWebView2Controller2_Impl,
9923            const OFFSET: isize,
9924        >(
9925            this: *mut core::ffi::c_void,
9926            value: *mut COREWEBVIEW2_COLOR,
9927        ) -> windows_core::HRESULT {
9928            unsafe {
9929                let this: &Identity =
9930                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
9931                ICoreWebView2Controller2_Impl::DefaultBackgroundColor(
9932                    this,
9933                    core::mem::transmute_copy(&value),
9934                )
9935                .into()
9936            }
9937        }
9938        unsafe extern "system" fn SetDefaultBackgroundColor<
9939            Identity: ICoreWebView2Controller2_Impl,
9940            const OFFSET: isize,
9941        >(
9942            this: *mut core::ffi::c_void,
9943            value: COREWEBVIEW2_COLOR,
9944        ) -> windows_core::HRESULT {
9945            unsafe {
9946                let this: &Identity =
9947                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
9948                ICoreWebView2Controller2_Impl::SetDefaultBackgroundColor(
9949                    this,
9950                    core::mem::transmute(&value),
9951                )
9952                .into()
9953            }
9954        }
9955        Self {
9956            base__: ICoreWebView2Controller_Vtbl::new::<Identity, OFFSET>(),
9957            DefaultBackgroundColor: DefaultBackgroundColor::<Identity, OFFSET>,
9958            SetDefaultBackgroundColor: SetDefaultBackgroundColor::<Identity, OFFSET>,
9959        }
9960    }
9961    pub fn matches(iid: &windows_core::GUID) -> bool {
9962        iid == &<ICoreWebView2Controller2 as windows_core::Interface>::IID
9963            || iid == &<ICoreWebView2Controller as windows_core::Interface>::IID
9964    }
9965}
9966impl windows_core::RuntimeName for ICoreWebView2Controller2 {}
9967windows_core::imp::define_interface!(
9968    ICoreWebView2Controller3,
9969    ICoreWebView2Controller3_Vtbl,
9970    0xf9614724_5d2b_41dc_aef7_73d62b51543b
9971);
9972impl core::ops::Deref for ICoreWebView2Controller3 {
9973    type Target = ICoreWebView2Controller2;
9974    fn deref(&self) -> &Self::Target {
9975        unsafe { core::mem::transmute(self) }
9976    }
9977}
9978windows_core::imp::interface_hierarchy!(
9979    ICoreWebView2Controller3,
9980    windows_core::IUnknown,
9981    ICoreWebView2Controller,
9982    ICoreWebView2Controller2
9983);
9984impl ICoreWebView2Controller3 {
9985    pub unsafe fn RasterizationScale(&self, scale: *mut f64) -> windows_core::Result<()> {
9986        unsafe {
9987            (windows_core::Interface::vtable(self).RasterizationScale)(
9988                windows_core::Interface::as_raw(self),
9989                scale as _,
9990            )
9991            .ok()
9992        }
9993    }
9994    pub unsafe fn SetRasterizationScale(&self, scale: f64) -> windows_core::Result<()> {
9995        unsafe {
9996            (windows_core::Interface::vtable(self).SetRasterizationScale)(
9997                windows_core::Interface::as_raw(self),
9998                scale,
9999            )
10000            .ok()
10001        }
10002    }
10003    pub unsafe fn ShouldDetectMonitorScaleChanges(
10004        &self,
10005        value: *mut windows_core::BOOL,
10006    ) -> windows_core::Result<()> {
10007        unsafe {
10008            (windows_core::Interface::vtable(self).ShouldDetectMonitorScaleChanges)(
10009                windows_core::Interface::as_raw(self),
10010                value as _,
10011            )
10012            .ok()
10013        }
10014    }
10015    pub unsafe fn SetShouldDetectMonitorScaleChanges(
10016        &self,
10017        value: bool,
10018    ) -> windows_core::Result<()> {
10019        unsafe {
10020            (windows_core::Interface::vtable(self).SetShouldDetectMonitorScaleChanges)(
10021                windows_core::Interface::as_raw(self),
10022                value.into(),
10023            )
10024            .ok()
10025        }
10026    }
10027    pub unsafe fn add_RasterizationScaleChanged<P0>(
10028        &self,
10029        eventhandler: P0,
10030        token: *mut i64,
10031    ) -> windows_core::Result<()>
10032    where
10033        P0: windows_core::Param<ICoreWebView2RasterizationScaleChangedEventHandler>,
10034    {
10035        unsafe {
10036            (windows_core::Interface::vtable(self).add_RasterizationScaleChanged)(
10037                windows_core::Interface::as_raw(self),
10038                eventhandler.param().abi(),
10039                token as _,
10040            )
10041            .ok()
10042        }
10043    }
10044    pub unsafe fn remove_RasterizationScaleChanged(&self, token: i64) -> windows_core::Result<()> {
10045        unsafe {
10046            (windows_core::Interface::vtable(self).remove_RasterizationScaleChanged)(
10047                windows_core::Interface::as_raw(self),
10048                token,
10049            )
10050            .ok()
10051        }
10052    }
10053    pub unsafe fn BoundsMode(
10054        &self,
10055        boundsmode: *mut COREWEBVIEW2_BOUNDS_MODE,
10056    ) -> windows_core::Result<()> {
10057        unsafe {
10058            (windows_core::Interface::vtable(self).BoundsMode)(
10059                windows_core::Interface::as_raw(self),
10060                boundsmode as _,
10061            )
10062            .ok()
10063        }
10064    }
10065    pub unsafe fn SetBoundsMode(
10066        &self,
10067        boundsmode: COREWEBVIEW2_BOUNDS_MODE,
10068    ) -> windows_core::Result<()> {
10069        unsafe {
10070            (windows_core::Interface::vtable(self).SetBoundsMode)(
10071                windows_core::Interface::as_raw(self),
10072                boundsmode,
10073            )
10074            .ok()
10075        }
10076    }
10077}
10078#[repr(C)]
10079#[doc(hidden)]
10080pub struct ICoreWebView2Controller3_Vtbl {
10081    pub base__: ICoreWebView2Controller2_Vtbl,
10082    pub RasterizationScale:
10083        unsafe extern "system" fn(*mut core::ffi::c_void, *mut f64) -> windows_core::HRESULT,
10084    pub SetRasterizationScale:
10085        unsafe extern "system" fn(*mut core::ffi::c_void, f64) -> windows_core::HRESULT,
10086    pub ShouldDetectMonitorScaleChanges: unsafe extern "system" fn(
10087        *mut core::ffi::c_void,
10088        *mut windows_core::BOOL,
10089    ) -> windows_core::HRESULT,
10090    pub SetShouldDetectMonitorScaleChanges: unsafe extern "system" fn(
10091        *mut core::ffi::c_void,
10092        windows_core::BOOL,
10093    ) -> windows_core::HRESULT,
10094    pub add_RasterizationScaleChanged: unsafe extern "system" fn(
10095        *mut core::ffi::c_void,
10096        *mut core::ffi::c_void,
10097        *mut i64,
10098    ) -> windows_core::HRESULT,
10099    pub remove_RasterizationScaleChanged:
10100        unsafe extern "system" fn(*mut core::ffi::c_void, i64) -> windows_core::HRESULT,
10101    pub BoundsMode: unsafe extern "system" fn(
10102        *mut core::ffi::c_void,
10103        *mut COREWEBVIEW2_BOUNDS_MODE,
10104    ) -> windows_core::HRESULT,
10105    pub SetBoundsMode: unsafe extern "system" fn(
10106        *mut core::ffi::c_void,
10107        COREWEBVIEW2_BOUNDS_MODE,
10108    ) -> windows_core::HRESULT,
10109}
10110pub trait ICoreWebView2Controller3_Impl: ICoreWebView2Controller2_Impl {
10111    fn RasterizationScale(&self, scale: *mut f64) -> windows_core::Result<()>;
10112    fn SetRasterizationScale(&self, scale: f64) -> windows_core::Result<()>;
10113    fn ShouldDetectMonitorScaleChanges(
10114        &self,
10115        value: *mut windows_core::BOOL,
10116    ) -> windows_core::Result<()>;
10117    fn SetShouldDetectMonitorScaleChanges(
10118        &self,
10119        value: windows_core::BOOL,
10120    ) -> windows_core::Result<()>;
10121    fn add_RasterizationScaleChanged(
10122        &self,
10123        eventhandler: windows_core::Ref<ICoreWebView2RasterizationScaleChangedEventHandler>,
10124        token: *mut i64,
10125    ) -> windows_core::Result<()>;
10126    fn remove_RasterizationScaleChanged(&self, token: i64) -> windows_core::Result<()>;
10127    fn BoundsMode(&self, boundsmode: *mut COREWEBVIEW2_BOUNDS_MODE) -> windows_core::Result<()>;
10128    fn SetBoundsMode(&self, boundsmode: COREWEBVIEW2_BOUNDS_MODE) -> windows_core::Result<()>;
10129}
10130impl ICoreWebView2Controller3_Vtbl {
10131    pub const fn new<Identity: ICoreWebView2Controller3_Impl, const OFFSET: isize>() -> Self {
10132        unsafe extern "system" fn RasterizationScale<
10133            Identity: ICoreWebView2Controller3_Impl,
10134            const OFFSET: isize,
10135        >(
10136            this: *mut core::ffi::c_void,
10137            scale: *mut f64,
10138        ) -> windows_core::HRESULT {
10139            unsafe {
10140                let this: &Identity =
10141                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
10142                ICoreWebView2Controller3_Impl::RasterizationScale(
10143                    this,
10144                    core::mem::transmute_copy(&scale),
10145                )
10146                .into()
10147            }
10148        }
10149        unsafe extern "system" fn SetRasterizationScale<
10150            Identity: ICoreWebView2Controller3_Impl,
10151            const OFFSET: isize,
10152        >(
10153            this: *mut core::ffi::c_void,
10154            scale: f64,
10155        ) -> windows_core::HRESULT {
10156            unsafe {
10157                let this: &Identity =
10158                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
10159                ICoreWebView2Controller3_Impl::SetRasterizationScale(
10160                    this,
10161                    core::mem::transmute_copy(&scale),
10162                )
10163                .into()
10164            }
10165        }
10166        unsafe extern "system" fn ShouldDetectMonitorScaleChanges<
10167            Identity: ICoreWebView2Controller3_Impl,
10168            const OFFSET: isize,
10169        >(
10170            this: *mut core::ffi::c_void,
10171            value: *mut windows_core::BOOL,
10172        ) -> windows_core::HRESULT {
10173            unsafe {
10174                let this: &Identity =
10175                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
10176                ICoreWebView2Controller3_Impl::ShouldDetectMonitorScaleChanges(
10177                    this,
10178                    core::mem::transmute_copy(&value),
10179                )
10180                .into()
10181            }
10182        }
10183        unsafe extern "system" fn SetShouldDetectMonitorScaleChanges<
10184            Identity: ICoreWebView2Controller3_Impl,
10185            const OFFSET: isize,
10186        >(
10187            this: *mut core::ffi::c_void,
10188            value: windows_core::BOOL,
10189        ) -> windows_core::HRESULT {
10190            unsafe {
10191                let this: &Identity =
10192                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
10193                ICoreWebView2Controller3_Impl::SetShouldDetectMonitorScaleChanges(
10194                    this,
10195                    core::mem::transmute_copy(&value),
10196                )
10197                .into()
10198            }
10199        }
10200        unsafe extern "system" fn add_RasterizationScaleChanged<
10201            Identity: ICoreWebView2Controller3_Impl,
10202            const OFFSET: isize,
10203        >(
10204            this: *mut core::ffi::c_void,
10205            eventhandler: *mut core::ffi::c_void,
10206            token: *mut i64,
10207        ) -> windows_core::HRESULT {
10208            unsafe {
10209                let this: &Identity =
10210                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
10211                ICoreWebView2Controller3_Impl::add_RasterizationScaleChanged(
10212                    this,
10213                    core::mem::transmute_copy(&eventhandler),
10214                    core::mem::transmute_copy(&token),
10215                )
10216                .into()
10217            }
10218        }
10219        unsafe extern "system" fn remove_RasterizationScaleChanged<
10220            Identity: ICoreWebView2Controller3_Impl,
10221            const OFFSET: isize,
10222        >(
10223            this: *mut core::ffi::c_void,
10224            token: i64,
10225        ) -> windows_core::HRESULT {
10226            unsafe {
10227                let this: &Identity =
10228                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
10229                ICoreWebView2Controller3_Impl::remove_RasterizationScaleChanged(
10230                    this,
10231                    core::mem::transmute_copy(&token),
10232                )
10233                .into()
10234            }
10235        }
10236        unsafe extern "system" fn BoundsMode<
10237            Identity: ICoreWebView2Controller3_Impl,
10238            const OFFSET: isize,
10239        >(
10240            this: *mut core::ffi::c_void,
10241            boundsmode: *mut COREWEBVIEW2_BOUNDS_MODE,
10242        ) -> windows_core::HRESULT {
10243            unsafe {
10244                let this: &Identity =
10245                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
10246                ICoreWebView2Controller3_Impl::BoundsMode(
10247                    this,
10248                    core::mem::transmute_copy(&boundsmode),
10249                )
10250                .into()
10251            }
10252        }
10253        unsafe extern "system" fn SetBoundsMode<
10254            Identity: ICoreWebView2Controller3_Impl,
10255            const OFFSET: isize,
10256        >(
10257            this: *mut core::ffi::c_void,
10258            boundsmode: COREWEBVIEW2_BOUNDS_MODE,
10259        ) -> windows_core::HRESULT {
10260            unsafe {
10261                let this: &Identity =
10262                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
10263                ICoreWebView2Controller3_Impl::SetBoundsMode(
10264                    this,
10265                    core::mem::transmute_copy(&boundsmode),
10266                )
10267                .into()
10268            }
10269        }
10270        Self {
10271            base__: ICoreWebView2Controller2_Vtbl::new::<Identity, OFFSET>(),
10272            RasterizationScale: RasterizationScale::<Identity, OFFSET>,
10273            SetRasterizationScale: SetRasterizationScale::<Identity, OFFSET>,
10274            ShouldDetectMonitorScaleChanges: ShouldDetectMonitorScaleChanges::<Identity, OFFSET>,
10275            SetShouldDetectMonitorScaleChanges: SetShouldDetectMonitorScaleChanges::<
10276                Identity,
10277                OFFSET,
10278            >,
10279            add_RasterizationScaleChanged: add_RasterizationScaleChanged::<Identity, OFFSET>,
10280            remove_RasterizationScaleChanged: remove_RasterizationScaleChanged::<Identity, OFFSET>,
10281            BoundsMode: BoundsMode::<Identity, OFFSET>,
10282            SetBoundsMode: SetBoundsMode::<Identity, OFFSET>,
10283        }
10284    }
10285    pub fn matches(iid: &windows_core::GUID) -> bool {
10286        iid == &<ICoreWebView2Controller3 as windows_core::Interface>::IID
10287            || iid == &<ICoreWebView2Controller as windows_core::Interface>::IID
10288            || iid == &<ICoreWebView2Controller2 as windows_core::Interface>::IID
10289    }
10290}
10291impl windows_core::RuntimeName for ICoreWebView2Controller3 {}
10292windows_core::imp::define_interface!(
10293    ICoreWebView2Controller4,
10294    ICoreWebView2Controller4_Vtbl,
10295    0x97d418d5_a426_4e49_a151_e1a10f327d9e
10296);
10297impl core::ops::Deref for ICoreWebView2Controller4 {
10298    type Target = ICoreWebView2Controller3;
10299    fn deref(&self) -> &Self::Target {
10300        unsafe { core::mem::transmute(self) }
10301    }
10302}
10303windows_core::imp::interface_hierarchy!(
10304    ICoreWebView2Controller4,
10305    windows_core::IUnknown,
10306    ICoreWebView2Controller,
10307    ICoreWebView2Controller2,
10308    ICoreWebView2Controller3
10309);
10310impl ICoreWebView2Controller4 {
10311    pub unsafe fn AllowExternalDrop(
10312        &self,
10313        value: *mut windows_core::BOOL,
10314    ) -> windows_core::Result<()> {
10315        unsafe {
10316            (windows_core::Interface::vtable(self).AllowExternalDrop)(
10317                windows_core::Interface::as_raw(self),
10318                value as _,
10319            )
10320            .ok()
10321        }
10322    }
10323    pub unsafe fn SetAllowExternalDrop(&self, value: bool) -> windows_core::Result<()> {
10324        unsafe {
10325            (windows_core::Interface::vtable(self).SetAllowExternalDrop)(
10326                windows_core::Interface::as_raw(self),
10327                value.into(),
10328            )
10329            .ok()
10330        }
10331    }
10332}
10333#[repr(C)]
10334#[doc(hidden)]
10335pub struct ICoreWebView2Controller4_Vtbl {
10336    pub base__: ICoreWebView2Controller3_Vtbl,
10337    pub AllowExternalDrop: unsafe extern "system" fn(
10338        *mut core::ffi::c_void,
10339        *mut windows_core::BOOL,
10340    ) -> windows_core::HRESULT,
10341    pub SetAllowExternalDrop: unsafe extern "system" fn(
10342        *mut core::ffi::c_void,
10343        windows_core::BOOL,
10344    ) -> windows_core::HRESULT,
10345}
10346pub trait ICoreWebView2Controller4_Impl: ICoreWebView2Controller3_Impl {
10347    fn AllowExternalDrop(&self, value: *mut windows_core::BOOL) -> windows_core::Result<()>;
10348    fn SetAllowExternalDrop(&self, value: windows_core::BOOL) -> windows_core::Result<()>;
10349}
10350impl ICoreWebView2Controller4_Vtbl {
10351    pub const fn new<Identity: ICoreWebView2Controller4_Impl, const OFFSET: isize>() -> Self {
10352        unsafe extern "system" fn AllowExternalDrop<
10353            Identity: ICoreWebView2Controller4_Impl,
10354            const OFFSET: isize,
10355        >(
10356            this: *mut core::ffi::c_void,
10357            value: *mut windows_core::BOOL,
10358        ) -> windows_core::HRESULT {
10359            unsafe {
10360                let this: &Identity =
10361                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
10362                ICoreWebView2Controller4_Impl::AllowExternalDrop(
10363                    this,
10364                    core::mem::transmute_copy(&value),
10365                )
10366                .into()
10367            }
10368        }
10369        unsafe extern "system" fn SetAllowExternalDrop<
10370            Identity: ICoreWebView2Controller4_Impl,
10371            const OFFSET: isize,
10372        >(
10373            this: *mut core::ffi::c_void,
10374            value: windows_core::BOOL,
10375        ) -> windows_core::HRESULT {
10376            unsafe {
10377                let this: &Identity =
10378                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
10379                ICoreWebView2Controller4_Impl::SetAllowExternalDrop(
10380                    this,
10381                    core::mem::transmute_copy(&value),
10382                )
10383                .into()
10384            }
10385        }
10386        Self {
10387            base__: ICoreWebView2Controller3_Vtbl::new::<Identity, OFFSET>(),
10388            AllowExternalDrop: AllowExternalDrop::<Identity, OFFSET>,
10389            SetAllowExternalDrop: SetAllowExternalDrop::<Identity, OFFSET>,
10390        }
10391    }
10392    pub fn matches(iid: &windows_core::GUID) -> bool {
10393        iid == &<ICoreWebView2Controller4 as windows_core::Interface>::IID
10394            || iid == &<ICoreWebView2Controller as windows_core::Interface>::IID
10395            || iid == &<ICoreWebView2Controller2 as windows_core::Interface>::IID
10396            || iid == &<ICoreWebView2Controller3 as windows_core::Interface>::IID
10397    }
10398}
10399impl windows_core::RuntimeName for ICoreWebView2Controller4 {}
10400windows_core::imp::define_interface!(
10401    ICoreWebView2ControllerOptions,
10402    ICoreWebView2ControllerOptions_Vtbl,
10403    0x12aae616_8ccb_44ec_bcb3_eb1831881635
10404);
10405windows_core::imp::interface_hierarchy!(ICoreWebView2ControllerOptions, windows_core::IUnknown);
10406impl ICoreWebView2ControllerOptions {
10407    pub unsafe fn ProfileName(&self, value: *mut windows_core::PWSTR) -> windows_core::Result<()> {
10408        unsafe {
10409            (windows_core::Interface::vtable(self).ProfileName)(
10410                windows_core::Interface::as_raw(self),
10411                value as _,
10412            )
10413            .ok()
10414        }
10415    }
10416    pub unsafe fn SetProfileName<P0>(&self, value: P0) -> windows_core::Result<()>
10417    where
10418        P0: windows_core::Param<windows_core::PCWSTR>,
10419    {
10420        unsafe {
10421            (windows_core::Interface::vtable(self).SetProfileName)(
10422                windows_core::Interface::as_raw(self),
10423                value.param().abi(),
10424            )
10425            .ok()
10426        }
10427    }
10428    pub unsafe fn IsInPrivateModeEnabled(
10429        &self,
10430        value: *mut windows_core::BOOL,
10431    ) -> windows_core::Result<()> {
10432        unsafe {
10433            (windows_core::Interface::vtable(self).IsInPrivateModeEnabled)(
10434                windows_core::Interface::as_raw(self),
10435                value as _,
10436            )
10437            .ok()
10438        }
10439    }
10440    pub unsafe fn SetIsInPrivateModeEnabled(&self, value: bool) -> windows_core::Result<()> {
10441        unsafe {
10442            (windows_core::Interface::vtable(self).SetIsInPrivateModeEnabled)(
10443                windows_core::Interface::as_raw(self),
10444                value.into(),
10445            )
10446            .ok()
10447        }
10448    }
10449}
10450#[repr(C)]
10451#[doc(hidden)]
10452pub struct ICoreWebView2ControllerOptions_Vtbl {
10453    pub base__: windows_core::IUnknown_Vtbl,
10454    pub ProfileName: unsafe extern "system" fn(
10455        *mut core::ffi::c_void,
10456        *mut windows_core::PWSTR,
10457    ) -> windows_core::HRESULT,
10458    pub SetProfileName: unsafe extern "system" fn(
10459        *mut core::ffi::c_void,
10460        windows_core::PCWSTR,
10461    ) -> windows_core::HRESULT,
10462    pub IsInPrivateModeEnabled: unsafe extern "system" fn(
10463        *mut core::ffi::c_void,
10464        *mut windows_core::BOOL,
10465    ) -> windows_core::HRESULT,
10466    pub SetIsInPrivateModeEnabled: unsafe extern "system" fn(
10467        *mut core::ffi::c_void,
10468        windows_core::BOOL,
10469    ) -> windows_core::HRESULT,
10470}
10471pub trait ICoreWebView2ControllerOptions_Impl: windows_core::IUnknownImpl {
10472    fn ProfileName(&self, value: *mut windows_core::PWSTR) -> windows_core::Result<()>;
10473    fn SetProfileName(&self, value: &windows_core::PCWSTR) -> windows_core::Result<()>;
10474    fn IsInPrivateModeEnabled(&self, value: *mut windows_core::BOOL) -> windows_core::Result<()>;
10475    fn SetIsInPrivateModeEnabled(&self, value: windows_core::BOOL) -> windows_core::Result<()>;
10476}
10477impl ICoreWebView2ControllerOptions_Vtbl {
10478    pub const fn new<Identity: ICoreWebView2ControllerOptions_Impl, const OFFSET: isize>() -> Self {
10479        unsafe extern "system" fn ProfileName<
10480            Identity: ICoreWebView2ControllerOptions_Impl,
10481            const OFFSET: isize,
10482        >(
10483            this: *mut core::ffi::c_void,
10484            value: *mut windows_core::PWSTR,
10485        ) -> windows_core::HRESULT {
10486            unsafe {
10487                let this: &Identity =
10488                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
10489                ICoreWebView2ControllerOptions_Impl::ProfileName(
10490                    this,
10491                    core::mem::transmute_copy(&value),
10492                )
10493                .into()
10494            }
10495        }
10496        unsafe extern "system" fn SetProfileName<
10497            Identity: ICoreWebView2ControllerOptions_Impl,
10498            const OFFSET: isize,
10499        >(
10500            this: *mut core::ffi::c_void,
10501            value: windows_core::PCWSTR,
10502        ) -> windows_core::HRESULT {
10503            unsafe {
10504                let this: &Identity =
10505                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
10506                ICoreWebView2ControllerOptions_Impl::SetProfileName(
10507                    this,
10508                    core::mem::transmute(&value),
10509                )
10510                .into()
10511            }
10512        }
10513        unsafe extern "system" fn IsInPrivateModeEnabled<
10514            Identity: ICoreWebView2ControllerOptions_Impl,
10515            const OFFSET: isize,
10516        >(
10517            this: *mut core::ffi::c_void,
10518            value: *mut windows_core::BOOL,
10519        ) -> windows_core::HRESULT {
10520            unsafe {
10521                let this: &Identity =
10522                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
10523                ICoreWebView2ControllerOptions_Impl::IsInPrivateModeEnabled(
10524                    this,
10525                    core::mem::transmute_copy(&value),
10526                )
10527                .into()
10528            }
10529        }
10530        unsafe extern "system" fn SetIsInPrivateModeEnabled<
10531            Identity: ICoreWebView2ControllerOptions_Impl,
10532            const OFFSET: isize,
10533        >(
10534            this: *mut core::ffi::c_void,
10535            value: windows_core::BOOL,
10536        ) -> windows_core::HRESULT {
10537            unsafe {
10538                let this: &Identity =
10539                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
10540                ICoreWebView2ControllerOptions_Impl::SetIsInPrivateModeEnabled(
10541                    this,
10542                    core::mem::transmute_copy(&value),
10543                )
10544                .into()
10545            }
10546        }
10547        Self {
10548            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
10549            ProfileName: ProfileName::<Identity, OFFSET>,
10550            SetProfileName: SetProfileName::<Identity, OFFSET>,
10551            IsInPrivateModeEnabled: IsInPrivateModeEnabled::<Identity, OFFSET>,
10552            SetIsInPrivateModeEnabled: SetIsInPrivateModeEnabled::<Identity, OFFSET>,
10553        }
10554    }
10555    pub fn matches(iid: &windows_core::GUID) -> bool {
10556        iid == &<ICoreWebView2ControllerOptions as windows_core::Interface>::IID
10557    }
10558}
10559impl windows_core::RuntimeName for ICoreWebView2ControllerOptions {}
10560windows_core::imp::define_interface!(
10561    ICoreWebView2ControllerOptions2,
10562    ICoreWebView2ControllerOptions2_Vtbl,
10563    0x06c991d8_9e7e_11ed_a8fc_0242ac120002
10564);
10565impl core::ops::Deref for ICoreWebView2ControllerOptions2 {
10566    type Target = ICoreWebView2ControllerOptions;
10567    fn deref(&self) -> &Self::Target {
10568        unsafe { core::mem::transmute(self) }
10569    }
10570}
10571windows_core::imp::interface_hierarchy!(
10572    ICoreWebView2ControllerOptions2,
10573    windows_core::IUnknown,
10574    ICoreWebView2ControllerOptions
10575);
10576impl ICoreWebView2ControllerOptions2 {
10577    pub unsafe fn ScriptLocale(&self, value: *mut windows_core::PWSTR) -> windows_core::Result<()> {
10578        unsafe {
10579            (windows_core::Interface::vtable(self).ScriptLocale)(
10580                windows_core::Interface::as_raw(self),
10581                value as _,
10582            )
10583            .ok()
10584        }
10585    }
10586    pub unsafe fn SetScriptLocale<P0>(&self, value: P0) -> windows_core::Result<()>
10587    where
10588        P0: windows_core::Param<windows_core::PCWSTR>,
10589    {
10590        unsafe {
10591            (windows_core::Interface::vtable(self).SetScriptLocale)(
10592                windows_core::Interface::as_raw(self),
10593                value.param().abi(),
10594            )
10595            .ok()
10596        }
10597    }
10598}
10599#[repr(C)]
10600#[doc(hidden)]
10601pub struct ICoreWebView2ControllerOptions2_Vtbl {
10602    pub base__: ICoreWebView2ControllerOptions_Vtbl,
10603    pub ScriptLocale: unsafe extern "system" fn(
10604        *mut core::ffi::c_void,
10605        *mut windows_core::PWSTR,
10606    ) -> windows_core::HRESULT,
10607    pub SetScriptLocale: unsafe extern "system" fn(
10608        *mut core::ffi::c_void,
10609        windows_core::PCWSTR,
10610    ) -> windows_core::HRESULT,
10611}
10612pub trait ICoreWebView2ControllerOptions2_Impl: ICoreWebView2ControllerOptions_Impl {
10613    fn ScriptLocale(&self, value: *mut windows_core::PWSTR) -> windows_core::Result<()>;
10614    fn SetScriptLocale(&self, value: &windows_core::PCWSTR) -> windows_core::Result<()>;
10615}
10616impl ICoreWebView2ControllerOptions2_Vtbl {
10617    pub const fn new<Identity: ICoreWebView2ControllerOptions2_Impl, const OFFSET: isize>() -> Self
10618    {
10619        unsafe extern "system" fn ScriptLocale<
10620            Identity: ICoreWebView2ControllerOptions2_Impl,
10621            const OFFSET: isize,
10622        >(
10623            this: *mut core::ffi::c_void,
10624            value: *mut windows_core::PWSTR,
10625        ) -> windows_core::HRESULT {
10626            unsafe {
10627                let this: &Identity =
10628                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
10629                ICoreWebView2ControllerOptions2_Impl::ScriptLocale(
10630                    this,
10631                    core::mem::transmute_copy(&value),
10632                )
10633                .into()
10634            }
10635        }
10636        unsafe extern "system" fn SetScriptLocale<
10637            Identity: ICoreWebView2ControllerOptions2_Impl,
10638            const OFFSET: isize,
10639        >(
10640            this: *mut core::ffi::c_void,
10641            value: windows_core::PCWSTR,
10642        ) -> windows_core::HRESULT {
10643            unsafe {
10644                let this: &Identity =
10645                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
10646                ICoreWebView2ControllerOptions2_Impl::SetScriptLocale(
10647                    this,
10648                    core::mem::transmute(&value),
10649                )
10650                .into()
10651            }
10652        }
10653        Self {
10654            base__: ICoreWebView2ControllerOptions_Vtbl::new::<Identity, OFFSET>(),
10655            ScriptLocale: ScriptLocale::<Identity, OFFSET>,
10656            SetScriptLocale: SetScriptLocale::<Identity, OFFSET>,
10657        }
10658    }
10659    pub fn matches(iid: &windows_core::GUID) -> bool {
10660        iid == &<ICoreWebView2ControllerOptions2 as windows_core::Interface>::IID
10661            || iid == &<ICoreWebView2ControllerOptions as windows_core::Interface>::IID
10662    }
10663}
10664impl windows_core::RuntimeName for ICoreWebView2ControllerOptions2 {}
10665windows_core::imp::define_interface!(
10666    ICoreWebView2ControllerOptions3,
10667    ICoreWebView2ControllerOptions3_Vtbl,
10668    0xb32b191a_8998_57ca_b7cb_e04617e4ce4a
10669);
10670impl core::ops::Deref for ICoreWebView2ControllerOptions3 {
10671    type Target = ICoreWebView2ControllerOptions2;
10672    fn deref(&self) -> &Self::Target {
10673        unsafe { core::mem::transmute(self) }
10674    }
10675}
10676windows_core::imp::interface_hierarchy!(
10677    ICoreWebView2ControllerOptions3,
10678    windows_core::IUnknown,
10679    ICoreWebView2ControllerOptions,
10680    ICoreWebView2ControllerOptions2
10681);
10682impl ICoreWebView2ControllerOptions3 {
10683    pub unsafe fn DefaultBackgroundColor(
10684        &self,
10685        value: *mut COREWEBVIEW2_COLOR,
10686    ) -> windows_core::Result<()> {
10687        unsafe {
10688            (windows_core::Interface::vtable(self).DefaultBackgroundColor)(
10689                windows_core::Interface::as_raw(self),
10690                value as _,
10691            )
10692            .ok()
10693        }
10694    }
10695    pub unsafe fn SetDefaultBackgroundColor(
10696        &self,
10697        value: COREWEBVIEW2_COLOR,
10698    ) -> windows_core::Result<()> {
10699        unsafe {
10700            (windows_core::Interface::vtable(self).SetDefaultBackgroundColor)(
10701                windows_core::Interface::as_raw(self),
10702                core::mem::transmute(value),
10703            )
10704            .ok()
10705        }
10706    }
10707}
10708#[repr(C)]
10709#[doc(hidden)]
10710pub struct ICoreWebView2ControllerOptions3_Vtbl {
10711    pub base__: ICoreWebView2ControllerOptions2_Vtbl,
10712    pub DefaultBackgroundColor: unsafe extern "system" fn(
10713        *mut core::ffi::c_void,
10714        *mut COREWEBVIEW2_COLOR,
10715    ) -> windows_core::HRESULT,
10716    pub SetDefaultBackgroundColor: unsafe extern "system" fn(
10717        *mut core::ffi::c_void,
10718        COREWEBVIEW2_COLOR,
10719    ) -> windows_core::HRESULT,
10720}
10721pub trait ICoreWebView2ControllerOptions3_Impl: ICoreWebView2ControllerOptions2_Impl {
10722    fn DefaultBackgroundColor(&self, value: *mut COREWEBVIEW2_COLOR) -> windows_core::Result<()>;
10723    fn SetDefaultBackgroundColor(&self, value: &COREWEBVIEW2_COLOR) -> windows_core::Result<()>;
10724}
10725impl ICoreWebView2ControllerOptions3_Vtbl {
10726    pub const fn new<Identity: ICoreWebView2ControllerOptions3_Impl, const OFFSET: isize>() -> Self
10727    {
10728        unsafe extern "system" fn DefaultBackgroundColor<
10729            Identity: ICoreWebView2ControllerOptions3_Impl,
10730            const OFFSET: isize,
10731        >(
10732            this: *mut core::ffi::c_void,
10733            value: *mut COREWEBVIEW2_COLOR,
10734        ) -> windows_core::HRESULT {
10735            unsafe {
10736                let this: &Identity =
10737                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
10738                ICoreWebView2ControllerOptions3_Impl::DefaultBackgroundColor(
10739                    this,
10740                    core::mem::transmute_copy(&value),
10741                )
10742                .into()
10743            }
10744        }
10745        unsafe extern "system" fn SetDefaultBackgroundColor<
10746            Identity: ICoreWebView2ControllerOptions3_Impl,
10747            const OFFSET: isize,
10748        >(
10749            this: *mut core::ffi::c_void,
10750            value: COREWEBVIEW2_COLOR,
10751        ) -> windows_core::HRESULT {
10752            unsafe {
10753                let this: &Identity =
10754                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
10755                ICoreWebView2ControllerOptions3_Impl::SetDefaultBackgroundColor(
10756                    this,
10757                    core::mem::transmute(&value),
10758                )
10759                .into()
10760            }
10761        }
10762        Self {
10763            base__: ICoreWebView2ControllerOptions2_Vtbl::new::<Identity, OFFSET>(),
10764            DefaultBackgroundColor: DefaultBackgroundColor::<Identity, OFFSET>,
10765            SetDefaultBackgroundColor: SetDefaultBackgroundColor::<Identity, OFFSET>,
10766        }
10767    }
10768    pub fn matches(iid: &windows_core::GUID) -> bool {
10769        iid == &<ICoreWebView2ControllerOptions3 as windows_core::Interface>::IID
10770            || iid == &<ICoreWebView2ControllerOptions as windows_core::Interface>::IID
10771            || iid == &<ICoreWebView2ControllerOptions2 as windows_core::Interface>::IID
10772    }
10773}
10774impl windows_core::RuntimeName for ICoreWebView2ControllerOptions3 {}
10775windows_core::imp::define_interface!(
10776    ICoreWebView2ControllerOptions4,
10777    ICoreWebView2ControllerOptions4_Vtbl,
10778    0x21eb052f_ad39_555e_824a_c87b091d4d36
10779);
10780impl core::ops::Deref for ICoreWebView2ControllerOptions4 {
10781    type Target = ICoreWebView2ControllerOptions3;
10782    fn deref(&self) -> &Self::Target {
10783        unsafe { core::mem::transmute(self) }
10784    }
10785}
10786windows_core::imp::interface_hierarchy!(
10787    ICoreWebView2ControllerOptions4,
10788    windows_core::IUnknown,
10789    ICoreWebView2ControllerOptions,
10790    ICoreWebView2ControllerOptions2,
10791    ICoreWebView2ControllerOptions3
10792);
10793impl ICoreWebView2ControllerOptions4 {
10794    pub unsafe fn AllowHostInputProcessing(
10795        &self,
10796        value: *mut windows_core::BOOL,
10797    ) -> windows_core::Result<()> {
10798        unsafe {
10799            (windows_core::Interface::vtable(self).AllowHostInputProcessing)(
10800                windows_core::Interface::as_raw(self),
10801                value as _,
10802            )
10803            .ok()
10804        }
10805    }
10806    pub unsafe fn SetAllowHostInputProcessing(&self, value: bool) -> windows_core::Result<()> {
10807        unsafe {
10808            (windows_core::Interface::vtable(self).SetAllowHostInputProcessing)(
10809                windows_core::Interface::as_raw(self),
10810                value.into(),
10811            )
10812            .ok()
10813        }
10814    }
10815}
10816#[repr(C)]
10817#[doc(hidden)]
10818pub struct ICoreWebView2ControllerOptions4_Vtbl {
10819    pub base__: ICoreWebView2ControllerOptions3_Vtbl,
10820    pub AllowHostInputProcessing: unsafe extern "system" fn(
10821        *mut core::ffi::c_void,
10822        *mut windows_core::BOOL,
10823    ) -> windows_core::HRESULT,
10824    pub SetAllowHostInputProcessing: unsafe extern "system" fn(
10825        *mut core::ffi::c_void,
10826        windows_core::BOOL,
10827    ) -> windows_core::HRESULT,
10828}
10829pub trait ICoreWebView2ControllerOptions4_Impl: ICoreWebView2ControllerOptions3_Impl {
10830    fn AllowHostInputProcessing(&self, value: *mut windows_core::BOOL) -> windows_core::Result<()>;
10831    fn SetAllowHostInputProcessing(&self, value: windows_core::BOOL) -> windows_core::Result<()>;
10832}
10833impl ICoreWebView2ControllerOptions4_Vtbl {
10834    pub const fn new<Identity: ICoreWebView2ControllerOptions4_Impl, const OFFSET: isize>() -> Self
10835    {
10836        unsafe extern "system" fn AllowHostInputProcessing<
10837            Identity: ICoreWebView2ControllerOptions4_Impl,
10838            const OFFSET: isize,
10839        >(
10840            this: *mut core::ffi::c_void,
10841            value: *mut windows_core::BOOL,
10842        ) -> windows_core::HRESULT {
10843            unsafe {
10844                let this: &Identity =
10845                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
10846                ICoreWebView2ControllerOptions4_Impl::AllowHostInputProcessing(
10847                    this,
10848                    core::mem::transmute_copy(&value),
10849                )
10850                .into()
10851            }
10852        }
10853        unsafe extern "system" fn SetAllowHostInputProcessing<
10854            Identity: ICoreWebView2ControllerOptions4_Impl,
10855            const OFFSET: isize,
10856        >(
10857            this: *mut core::ffi::c_void,
10858            value: windows_core::BOOL,
10859        ) -> windows_core::HRESULT {
10860            unsafe {
10861                let this: &Identity =
10862                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
10863                ICoreWebView2ControllerOptions4_Impl::SetAllowHostInputProcessing(
10864                    this,
10865                    core::mem::transmute_copy(&value),
10866                )
10867                .into()
10868            }
10869        }
10870        Self {
10871            base__: ICoreWebView2ControllerOptions3_Vtbl::new::<Identity, OFFSET>(),
10872            AllowHostInputProcessing: AllowHostInputProcessing::<Identity, OFFSET>,
10873            SetAllowHostInputProcessing: SetAllowHostInputProcessing::<Identity, OFFSET>,
10874        }
10875    }
10876    pub fn matches(iid: &windows_core::GUID) -> bool {
10877        iid == &<ICoreWebView2ControllerOptions4 as windows_core::Interface>::IID
10878            || iid == &<ICoreWebView2ControllerOptions as windows_core::Interface>::IID
10879            || iid == &<ICoreWebView2ControllerOptions2 as windows_core::Interface>::IID
10880            || iid == &<ICoreWebView2ControllerOptions3 as windows_core::Interface>::IID
10881    }
10882}
10883impl windows_core::RuntimeName for ICoreWebView2ControllerOptions4 {}
10884windows_core::imp::define_interface!(
10885    ICoreWebView2Cookie,
10886    ICoreWebView2Cookie_Vtbl,
10887    0xad26d6be_1486_43e6_bf87_a2034006ca21
10888);
10889windows_core::imp::interface_hierarchy!(ICoreWebView2Cookie, windows_core::IUnknown);
10890impl ICoreWebView2Cookie {
10891    pub unsafe fn Name(&self, name: *mut windows_core::PWSTR) -> windows_core::Result<()> {
10892        unsafe {
10893            (windows_core::Interface::vtable(self).Name)(
10894                windows_core::Interface::as_raw(self),
10895                name as _,
10896            )
10897            .ok()
10898        }
10899    }
10900    pub unsafe fn Value(&self, value: *mut windows_core::PWSTR) -> windows_core::Result<()> {
10901        unsafe {
10902            (windows_core::Interface::vtable(self).Value)(
10903                windows_core::Interface::as_raw(self),
10904                value as _,
10905            )
10906            .ok()
10907        }
10908    }
10909    pub unsafe fn SetValue<P0>(&self, value: P0) -> windows_core::Result<()>
10910    where
10911        P0: windows_core::Param<windows_core::PCWSTR>,
10912    {
10913        unsafe {
10914            (windows_core::Interface::vtable(self).SetValue)(
10915                windows_core::Interface::as_raw(self),
10916                value.param().abi(),
10917            )
10918            .ok()
10919        }
10920    }
10921    pub unsafe fn Domain(&self, domain: *mut windows_core::PWSTR) -> windows_core::Result<()> {
10922        unsafe {
10923            (windows_core::Interface::vtable(self).Domain)(
10924                windows_core::Interface::as_raw(self),
10925                domain as _,
10926            )
10927            .ok()
10928        }
10929    }
10930    pub unsafe fn Path(&self, path: *mut windows_core::PWSTR) -> windows_core::Result<()> {
10931        unsafe {
10932            (windows_core::Interface::vtable(self).Path)(
10933                windows_core::Interface::as_raw(self),
10934                path as _,
10935            )
10936            .ok()
10937        }
10938    }
10939    pub unsafe fn Expires(&self, expires: *mut f64) -> windows_core::Result<()> {
10940        unsafe {
10941            (windows_core::Interface::vtable(self).Expires)(
10942                windows_core::Interface::as_raw(self),
10943                expires as _,
10944            )
10945            .ok()
10946        }
10947    }
10948    pub unsafe fn SetExpires(&self, expires: f64) -> windows_core::Result<()> {
10949        unsafe {
10950            (windows_core::Interface::vtable(self).SetExpires)(
10951                windows_core::Interface::as_raw(self),
10952                expires,
10953            )
10954            .ok()
10955        }
10956    }
10957    pub unsafe fn IsHttpOnly(
10958        &self,
10959        ishttponly: *mut windows_core::BOOL,
10960    ) -> windows_core::Result<()> {
10961        unsafe {
10962            (windows_core::Interface::vtable(self).IsHttpOnly)(
10963                windows_core::Interface::as_raw(self),
10964                ishttponly as _,
10965            )
10966            .ok()
10967        }
10968    }
10969    pub unsafe fn SetIsHttpOnly(&self, ishttponly: bool) -> windows_core::Result<()> {
10970        unsafe {
10971            (windows_core::Interface::vtable(self).SetIsHttpOnly)(
10972                windows_core::Interface::as_raw(self),
10973                ishttponly.into(),
10974            )
10975            .ok()
10976        }
10977    }
10978    pub unsafe fn SameSite(
10979        &self,
10980        samesite: *mut COREWEBVIEW2_COOKIE_SAME_SITE_KIND,
10981    ) -> windows_core::Result<()> {
10982        unsafe {
10983            (windows_core::Interface::vtable(self).SameSite)(
10984                windows_core::Interface::as_raw(self),
10985                samesite as _,
10986            )
10987            .ok()
10988        }
10989    }
10990    pub unsafe fn SetSameSite(
10991        &self,
10992        samesite: COREWEBVIEW2_COOKIE_SAME_SITE_KIND,
10993    ) -> windows_core::Result<()> {
10994        unsafe {
10995            (windows_core::Interface::vtable(self).SetSameSite)(
10996                windows_core::Interface::as_raw(self),
10997                samesite,
10998            )
10999            .ok()
11000        }
11001    }
11002    pub unsafe fn IsSecure(&self, issecure: *mut windows_core::BOOL) -> windows_core::Result<()> {
11003        unsafe {
11004            (windows_core::Interface::vtable(self).IsSecure)(
11005                windows_core::Interface::as_raw(self),
11006                issecure as _,
11007            )
11008            .ok()
11009        }
11010    }
11011    pub unsafe fn SetIsSecure(&self, issecure: bool) -> windows_core::Result<()> {
11012        unsafe {
11013            (windows_core::Interface::vtable(self).SetIsSecure)(
11014                windows_core::Interface::as_raw(self),
11015                issecure.into(),
11016            )
11017            .ok()
11018        }
11019    }
11020    pub unsafe fn IsSession(&self, issession: *mut windows_core::BOOL) -> windows_core::Result<()> {
11021        unsafe {
11022            (windows_core::Interface::vtable(self).IsSession)(
11023                windows_core::Interface::as_raw(self),
11024                issession as _,
11025            )
11026            .ok()
11027        }
11028    }
11029}
11030#[repr(C)]
11031#[doc(hidden)]
11032pub struct ICoreWebView2Cookie_Vtbl {
11033    pub base__: windows_core::IUnknown_Vtbl,
11034    pub Name: unsafe extern "system" fn(
11035        *mut core::ffi::c_void,
11036        *mut windows_core::PWSTR,
11037    ) -> windows_core::HRESULT,
11038    pub Value: unsafe extern "system" fn(
11039        *mut core::ffi::c_void,
11040        *mut windows_core::PWSTR,
11041    ) -> windows_core::HRESULT,
11042    pub SetValue: unsafe extern "system" fn(
11043        *mut core::ffi::c_void,
11044        windows_core::PCWSTR,
11045    ) -> windows_core::HRESULT,
11046    pub Domain: unsafe extern "system" fn(
11047        *mut core::ffi::c_void,
11048        *mut windows_core::PWSTR,
11049    ) -> windows_core::HRESULT,
11050    pub Path: unsafe extern "system" fn(
11051        *mut core::ffi::c_void,
11052        *mut windows_core::PWSTR,
11053    ) -> windows_core::HRESULT,
11054    pub Expires:
11055        unsafe extern "system" fn(*mut core::ffi::c_void, *mut f64) -> windows_core::HRESULT,
11056    pub SetExpires: unsafe extern "system" fn(*mut core::ffi::c_void, f64) -> windows_core::HRESULT,
11057    pub IsHttpOnly: unsafe extern "system" fn(
11058        *mut core::ffi::c_void,
11059        *mut windows_core::BOOL,
11060    ) -> windows_core::HRESULT,
11061    pub SetIsHttpOnly: unsafe extern "system" fn(
11062        *mut core::ffi::c_void,
11063        windows_core::BOOL,
11064    ) -> windows_core::HRESULT,
11065    pub SameSite: unsafe extern "system" fn(
11066        *mut core::ffi::c_void,
11067        *mut COREWEBVIEW2_COOKIE_SAME_SITE_KIND,
11068    ) -> windows_core::HRESULT,
11069    pub SetSameSite: unsafe extern "system" fn(
11070        *mut core::ffi::c_void,
11071        COREWEBVIEW2_COOKIE_SAME_SITE_KIND,
11072    ) -> windows_core::HRESULT,
11073    pub IsSecure: unsafe extern "system" fn(
11074        *mut core::ffi::c_void,
11075        *mut windows_core::BOOL,
11076    ) -> windows_core::HRESULT,
11077    pub SetIsSecure: unsafe extern "system" fn(
11078        *mut core::ffi::c_void,
11079        windows_core::BOOL,
11080    ) -> windows_core::HRESULT,
11081    pub IsSession: unsafe extern "system" fn(
11082        *mut core::ffi::c_void,
11083        *mut windows_core::BOOL,
11084    ) -> windows_core::HRESULT,
11085}
11086pub trait ICoreWebView2Cookie_Impl: windows_core::IUnknownImpl {
11087    fn Name(&self, name: *mut windows_core::PWSTR) -> windows_core::Result<()>;
11088    fn Value(&self, value: *mut windows_core::PWSTR) -> windows_core::Result<()>;
11089    fn SetValue(&self, value: &windows_core::PCWSTR) -> windows_core::Result<()>;
11090    fn Domain(&self, domain: *mut windows_core::PWSTR) -> windows_core::Result<()>;
11091    fn Path(&self, path: *mut windows_core::PWSTR) -> windows_core::Result<()>;
11092    fn Expires(&self, expires: *mut f64) -> windows_core::Result<()>;
11093    fn SetExpires(&self, expires: f64) -> windows_core::Result<()>;
11094    fn IsHttpOnly(&self, ishttponly: *mut windows_core::BOOL) -> windows_core::Result<()>;
11095    fn SetIsHttpOnly(&self, ishttponly: windows_core::BOOL) -> windows_core::Result<()>;
11096    fn SameSite(
11097        &self,
11098        samesite: *mut COREWEBVIEW2_COOKIE_SAME_SITE_KIND,
11099    ) -> windows_core::Result<()>;
11100    fn SetSameSite(&self, samesite: COREWEBVIEW2_COOKIE_SAME_SITE_KIND)
11101        -> windows_core::Result<()>;
11102    fn IsSecure(&self, issecure: *mut windows_core::BOOL) -> windows_core::Result<()>;
11103    fn SetIsSecure(&self, issecure: windows_core::BOOL) -> windows_core::Result<()>;
11104    fn IsSession(&self, issession: *mut windows_core::BOOL) -> windows_core::Result<()>;
11105}
11106impl ICoreWebView2Cookie_Vtbl {
11107    pub const fn new<Identity: ICoreWebView2Cookie_Impl, const OFFSET: isize>() -> Self {
11108        unsafe extern "system" fn Name<Identity: ICoreWebView2Cookie_Impl, const OFFSET: isize>(
11109            this: *mut core::ffi::c_void,
11110            name: *mut windows_core::PWSTR,
11111        ) -> windows_core::HRESULT {
11112            unsafe {
11113                let this: &Identity =
11114                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
11115                ICoreWebView2Cookie_Impl::Name(this, core::mem::transmute_copy(&name)).into()
11116            }
11117        }
11118        unsafe extern "system" fn Value<Identity: ICoreWebView2Cookie_Impl, const OFFSET: isize>(
11119            this: *mut core::ffi::c_void,
11120            value: *mut windows_core::PWSTR,
11121        ) -> windows_core::HRESULT {
11122            unsafe {
11123                let this: &Identity =
11124                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
11125                ICoreWebView2Cookie_Impl::Value(this, core::mem::transmute_copy(&value)).into()
11126            }
11127        }
11128        unsafe extern "system" fn SetValue<
11129            Identity: ICoreWebView2Cookie_Impl,
11130            const OFFSET: isize,
11131        >(
11132            this: *mut core::ffi::c_void,
11133            value: windows_core::PCWSTR,
11134        ) -> windows_core::HRESULT {
11135            unsafe {
11136                let this: &Identity =
11137                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
11138                ICoreWebView2Cookie_Impl::SetValue(this, core::mem::transmute(&value)).into()
11139            }
11140        }
11141        unsafe extern "system" fn Domain<
11142            Identity: ICoreWebView2Cookie_Impl,
11143            const OFFSET: isize,
11144        >(
11145            this: *mut core::ffi::c_void,
11146            domain: *mut windows_core::PWSTR,
11147        ) -> windows_core::HRESULT {
11148            unsafe {
11149                let this: &Identity =
11150                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
11151                ICoreWebView2Cookie_Impl::Domain(this, core::mem::transmute_copy(&domain)).into()
11152            }
11153        }
11154        unsafe extern "system" fn Path<Identity: ICoreWebView2Cookie_Impl, const OFFSET: isize>(
11155            this: *mut core::ffi::c_void,
11156            path: *mut windows_core::PWSTR,
11157        ) -> windows_core::HRESULT {
11158            unsafe {
11159                let this: &Identity =
11160                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
11161                ICoreWebView2Cookie_Impl::Path(this, core::mem::transmute_copy(&path)).into()
11162            }
11163        }
11164        unsafe extern "system" fn Expires<
11165            Identity: ICoreWebView2Cookie_Impl,
11166            const OFFSET: isize,
11167        >(
11168            this: *mut core::ffi::c_void,
11169            expires: *mut f64,
11170        ) -> windows_core::HRESULT {
11171            unsafe {
11172                let this: &Identity =
11173                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
11174                ICoreWebView2Cookie_Impl::Expires(this, core::mem::transmute_copy(&expires)).into()
11175            }
11176        }
11177        unsafe extern "system" fn SetExpires<
11178            Identity: ICoreWebView2Cookie_Impl,
11179            const OFFSET: isize,
11180        >(
11181            this: *mut core::ffi::c_void,
11182            expires: f64,
11183        ) -> windows_core::HRESULT {
11184            unsafe {
11185                let this: &Identity =
11186                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
11187                ICoreWebView2Cookie_Impl::SetExpires(this, core::mem::transmute_copy(&expires))
11188                    .into()
11189            }
11190        }
11191        unsafe extern "system" fn IsHttpOnly<
11192            Identity: ICoreWebView2Cookie_Impl,
11193            const OFFSET: isize,
11194        >(
11195            this: *mut core::ffi::c_void,
11196            ishttponly: *mut windows_core::BOOL,
11197        ) -> windows_core::HRESULT {
11198            unsafe {
11199                let this: &Identity =
11200                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
11201                ICoreWebView2Cookie_Impl::IsHttpOnly(this, core::mem::transmute_copy(&ishttponly))
11202                    .into()
11203            }
11204        }
11205        unsafe extern "system" fn SetIsHttpOnly<
11206            Identity: ICoreWebView2Cookie_Impl,
11207            const OFFSET: isize,
11208        >(
11209            this: *mut core::ffi::c_void,
11210            ishttponly: windows_core::BOOL,
11211        ) -> windows_core::HRESULT {
11212            unsafe {
11213                let this: &Identity =
11214                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
11215                ICoreWebView2Cookie_Impl::SetIsHttpOnly(
11216                    this,
11217                    core::mem::transmute_copy(&ishttponly),
11218                )
11219                .into()
11220            }
11221        }
11222        unsafe extern "system" fn SameSite<
11223            Identity: ICoreWebView2Cookie_Impl,
11224            const OFFSET: isize,
11225        >(
11226            this: *mut core::ffi::c_void,
11227            samesite: *mut COREWEBVIEW2_COOKIE_SAME_SITE_KIND,
11228        ) -> windows_core::HRESULT {
11229            unsafe {
11230                let this: &Identity =
11231                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
11232                ICoreWebView2Cookie_Impl::SameSite(this, core::mem::transmute_copy(&samesite))
11233                    .into()
11234            }
11235        }
11236        unsafe extern "system" fn SetSameSite<
11237            Identity: ICoreWebView2Cookie_Impl,
11238            const OFFSET: isize,
11239        >(
11240            this: *mut core::ffi::c_void,
11241            samesite: COREWEBVIEW2_COOKIE_SAME_SITE_KIND,
11242        ) -> windows_core::HRESULT {
11243            unsafe {
11244                let this: &Identity =
11245                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
11246                ICoreWebView2Cookie_Impl::SetSameSite(this, core::mem::transmute_copy(&samesite))
11247                    .into()
11248            }
11249        }
11250        unsafe extern "system" fn IsSecure<
11251            Identity: ICoreWebView2Cookie_Impl,
11252            const OFFSET: isize,
11253        >(
11254            this: *mut core::ffi::c_void,
11255            issecure: *mut windows_core::BOOL,
11256        ) -> windows_core::HRESULT {
11257            unsafe {
11258                let this: &Identity =
11259                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
11260                ICoreWebView2Cookie_Impl::IsSecure(this, core::mem::transmute_copy(&issecure))
11261                    .into()
11262            }
11263        }
11264        unsafe extern "system" fn SetIsSecure<
11265            Identity: ICoreWebView2Cookie_Impl,
11266            const OFFSET: isize,
11267        >(
11268            this: *mut core::ffi::c_void,
11269            issecure: windows_core::BOOL,
11270        ) -> windows_core::HRESULT {
11271            unsafe {
11272                let this: &Identity =
11273                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
11274                ICoreWebView2Cookie_Impl::SetIsSecure(this, core::mem::transmute_copy(&issecure))
11275                    .into()
11276            }
11277        }
11278        unsafe extern "system" fn IsSession<
11279            Identity: ICoreWebView2Cookie_Impl,
11280            const OFFSET: isize,
11281        >(
11282            this: *mut core::ffi::c_void,
11283            issession: *mut windows_core::BOOL,
11284        ) -> windows_core::HRESULT {
11285            unsafe {
11286                let this: &Identity =
11287                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
11288                ICoreWebView2Cookie_Impl::IsSession(this, core::mem::transmute_copy(&issession))
11289                    .into()
11290            }
11291        }
11292        Self {
11293            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
11294            Name: Name::<Identity, OFFSET>,
11295            Value: Value::<Identity, OFFSET>,
11296            SetValue: SetValue::<Identity, OFFSET>,
11297            Domain: Domain::<Identity, OFFSET>,
11298            Path: Path::<Identity, OFFSET>,
11299            Expires: Expires::<Identity, OFFSET>,
11300            SetExpires: SetExpires::<Identity, OFFSET>,
11301            IsHttpOnly: IsHttpOnly::<Identity, OFFSET>,
11302            SetIsHttpOnly: SetIsHttpOnly::<Identity, OFFSET>,
11303            SameSite: SameSite::<Identity, OFFSET>,
11304            SetSameSite: SetSameSite::<Identity, OFFSET>,
11305            IsSecure: IsSecure::<Identity, OFFSET>,
11306            SetIsSecure: SetIsSecure::<Identity, OFFSET>,
11307            IsSession: IsSession::<Identity, OFFSET>,
11308        }
11309    }
11310    pub fn matches(iid: &windows_core::GUID) -> bool {
11311        iid == &<ICoreWebView2Cookie as windows_core::Interface>::IID
11312    }
11313}
11314impl windows_core::RuntimeName for ICoreWebView2Cookie {}
11315windows_core::imp::define_interface!(
11316    ICoreWebView2CookieList,
11317    ICoreWebView2CookieList_Vtbl,
11318    0xf7f6f714_5d2a_43c6_9503_346ece02d186
11319);
11320windows_core::imp::interface_hierarchy!(ICoreWebView2CookieList, windows_core::IUnknown);
11321impl ICoreWebView2CookieList {
11322    pub unsafe fn Count(&self, value: *mut u32) -> windows_core::Result<()> {
11323        unsafe {
11324            (windows_core::Interface::vtable(self).Count)(
11325                windows_core::Interface::as_raw(self),
11326                value as _,
11327            )
11328            .ok()
11329        }
11330    }
11331    pub unsafe fn GetValueAtIndex(&self, index: u32) -> windows_core::Result<ICoreWebView2Cookie> {
11332        unsafe {
11333            let mut result__ = core::mem::zeroed();
11334            (windows_core::Interface::vtable(self).GetValueAtIndex)(
11335                windows_core::Interface::as_raw(self),
11336                index,
11337                &mut result__,
11338            )
11339            .and_then(|| windows_core::Type::from_abi(result__))
11340        }
11341    }
11342}
11343#[repr(C)]
11344#[doc(hidden)]
11345pub struct ICoreWebView2CookieList_Vtbl {
11346    pub base__: windows_core::IUnknown_Vtbl,
11347    pub Count: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
11348    pub GetValueAtIndex: unsafe extern "system" fn(
11349        *mut core::ffi::c_void,
11350        u32,
11351        *mut *mut core::ffi::c_void,
11352    ) -> windows_core::HRESULT,
11353}
11354pub trait ICoreWebView2CookieList_Impl: windows_core::IUnknownImpl {
11355    fn Count(&self, value: *mut u32) -> windows_core::Result<()>;
11356    fn GetValueAtIndex(&self, index: u32) -> windows_core::Result<ICoreWebView2Cookie>;
11357}
11358impl ICoreWebView2CookieList_Vtbl {
11359    pub const fn new<Identity: ICoreWebView2CookieList_Impl, const OFFSET: isize>() -> Self {
11360        unsafe extern "system" fn Count<
11361            Identity: ICoreWebView2CookieList_Impl,
11362            const OFFSET: isize,
11363        >(
11364            this: *mut core::ffi::c_void,
11365            value: *mut u32,
11366        ) -> windows_core::HRESULT {
11367            unsafe {
11368                let this: &Identity =
11369                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
11370                ICoreWebView2CookieList_Impl::Count(this, core::mem::transmute_copy(&value)).into()
11371            }
11372        }
11373        unsafe extern "system" fn GetValueAtIndex<
11374            Identity: ICoreWebView2CookieList_Impl,
11375            const OFFSET: isize,
11376        >(
11377            this: *mut core::ffi::c_void,
11378            index: u32,
11379            value: *mut *mut core::ffi::c_void,
11380        ) -> windows_core::HRESULT {
11381            unsafe {
11382                let this: &Identity =
11383                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
11384                match ICoreWebView2CookieList_Impl::GetValueAtIndex(
11385                    this,
11386                    core::mem::transmute_copy(&index),
11387                ) {
11388                    Ok(ok__) => {
11389                        value.write(core::mem::transmute(ok__));
11390                        windows_core::HRESULT(0)
11391                    }
11392                    Err(err) => err.into(),
11393                }
11394            }
11395        }
11396        Self {
11397            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
11398            Count: Count::<Identity, OFFSET>,
11399            GetValueAtIndex: GetValueAtIndex::<Identity, OFFSET>,
11400        }
11401    }
11402    pub fn matches(iid: &windows_core::GUID) -> bool {
11403        iid == &<ICoreWebView2CookieList as windows_core::Interface>::IID
11404    }
11405}
11406impl windows_core::RuntimeName for ICoreWebView2CookieList {}
11407windows_core::imp::define_interface!(
11408    ICoreWebView2CookieManager,
11409    ICoreWebView2CookieManager_Vtbl,
11410    0x177cd9e7_b6f5_451a_94a0_5d7a3a4c4141
11411);
11412windows_core::imp::interface_hierarchy!(ICoreWebView2CookieManager, windows_core::IUnknown);
11413impl ICoreWebView2CookieManager {
11414    pub unsafe fn CreateCookie<P0, P1, P2, P3>(
11415        &self,
11416        name: P0,
11417        value: P1,
11418        domain: P2,
11419        path: P3,
11420    ) -> windows_core::Result<ICoreWebView2Cookie>
11421    where
11422        P0: windows_core::Param<windows_core::PCWSTR>,
11423        P1: windows_core::Param<windows_core::PCWSTR>,
11424        P2: windows_core::Param<windows_core::PCWSTR>,
11425        P3: windows_core::Param<windows_core::PCWSTR>,
11426    {
11427        unsafe {
11428            let mut result__ = core::mem::zeroed();
11429            (windows_core::Interface::vtable(self).CreateCookie)(
11430                windows_core::Interface::as_raw(self),
11431                name.param().abi(),
11432                value.param().abi(),
11433                domain.param().abi(),
11434                path.param().abi(),
11435                &mut result__,
11436            )
11437            .and_then(|| windows_core::Type::from_abi(result__))
11438        }
11439    }
11440    pub unsafe fn CopyCookie<P0>(
11441        &self,
11442        cookieparam: P0,
11443    ) -> windows_core::Result<ICoreWebView2Cookie>
11444    where
11445        P0: windows_core::Param<ICoreWebView2Cookie>,
11446    {
11447        unsafe {
11448            let mut result__ = core::mem::zeroed();
11449            (windows_core::Interface::vtable(self).CopyCookie)(
11450                windows_core::Interface::as_raw(self),
11451                cookieparam.param().abi(),
11452                &mut result__,
11453            )
11454            .and_then(|| windows_core::Type::from_abi(result__))
11455        }
11456    }
11457    pub unsafe fn GetCookies<P0, P1>(&self, uri: P0, handler: P1) -> windows_core::Result<()>
11458    where
11459        P0: windows_core::Param<windows_core::PCWSTR>,
11460        P1: windows_core::Param<ICoreWebView2GetCookiesCompletedHandler>,
11461    {
11462        unsafe {
11463            (windows_core::Interface::vtable(self).GetCookies)(
11464                windows_core::Interface::as_raw(self),
11465                uri.param().abi(),
11466                handler.param().abi(),
11467            )
11468            .ok()
11469        }
11470    }
11471    pub unsafe fn AddOrUpdateCookie<P0>(&self, cookie: P0) -> windows_core::Result<()>
11472    where
11473        P0: windows_core::Param<ICoreWebView2Cookie>,
11474    {
11475        unsafe {
11476            (windows_core::Interface::vtable(self).AddOrUpdateCookie)(
11477                windows_core::Interface::as_raw(self),
11478                cookie.param().abi(),
11479            )
11480            .ok()
11481        }
11482    }
11483    pub unsafe fn DeleteCookie<P0>(&self, cookie: P0) -> windows_core::Result<()>
11484    where
11485        P0: windows_core::Param<ICoreWebView2Cookie>,
11486    {
11487        unsafe {
11488            (windows_core::Interface::vtable(self).DeleteCookie)(
11489                windows_core::Interface::as_raw(self),
11490                cookie.param().abi(),
11491            )
11492            .ok()
11493        }
11494    }
11495    pub unsafe fn DeleteCookies<P0, P1>(&self, name: P0, uri: P1) -> windows_core::Result<()>
11496    where
11497        P0: windows_core::Param<windows_core::PCWSTR>,
11498        P1: windows_core::Param<windows_core::PCWSTR>,
11499    {
11500        unsafe {
11501            (windows_core::Interface::vtable(self).DeleteCookies)(
11502                windows_core::Interface::as_raw(self),
11503                name.param().abi(),
11504                uri.param().abi(),
11505            )
11506            .ok()
11507        }
11508    }
11509    pub unsafe fn DeleteCookiesWithDomainAndPath<P0, P1, P2>(
11510        &self,
11511        name: P0,
11512        domain: P1,
11513        path: P2,
11514    ) -> windows_core::Result<()>
11515    where
11516        P0: windows_core::Param<windows_core::PCWSTR>,
11517        P1: windows_core::Param<windows_core::PCWSTR>,
11518        P2: windows_core::Param<windows_core::PCWSTR>,
11519    {
11520        unsafe {
11521            (windows_core::Interface::vtable(self).DeleteCookiesWithDomainAndPath)(
11522                windows_core::Interface::as_raw(self),
11523                name.param().abi(),
11524                domain.param().abi(),
11525                path.param().abi(),
11526            )
11527            .ok()
11528        }
11529    }
11530    pub unsafe fn DeleteAllCookies(&self) -> windows_core::Result<()> {
11531        unsafe {
11532            (windows_core::Interface::vtable(self).DeleteAllCookies)(
11533                windows_core::Interface::as_raw(self),
11534            )
11535            .ok()
11536        }
11537    }
11538}
11539#[repr(C)]
11540#[doc(hidden)]
11541pub struct ICoreWebView2CookieManager_Vtbl {
11542    pub base__: windows_core::IUnknown_Vtbl,
11543    pub CreateCookie: unsafe extern "system" fn(
11544        *mut core::ffi::c_void,
11545        windows_core::PCWSTR,
11546        windows_core::PCWSTR,
11547        windows_core::PCWSTR,
11548        windows_core::PCWSTR,
11549        *mut *mut core::ffi::c_void,
11550    ) -> windows_core::HRESULT,
11551    pub CopyCookie: unsafe extern "system" fn(
11552        *mut core::ffi::c_void,
11553        *mut core::ffi::c_void,
11554        *mut *mut core::ffi::c_void,
11555    ) -> windows_core::HRESULT,
11556    pub GetCookies: unsafe extern "system" fn(
11557        *mut core::ffi::c_void,
11558        windows_core::PCWSTR,
11559        *mut core::ffi::c_void,
11560    ) -> windows_core::HRESULT,
11561    pub AddOrUpdateCookie: unsafe extern "system" fn(
11562        *mut core::ffi::c_void,
11563        *mut core::ffi::c_void,
11564    ) -> windows_core::HRESULT,
11565    pub DeleteCookie: unsafe extern "system" fn(
11566        *mut core::ffi::c_void,
11567        *mut core::ffi::c_void,
11568    ) -> windows_core::HRESULT,
11569    pub DeleteCookies: unsafe extern "system" fn(
11570        *mut core::ffi::c_void,
11571        windows_core::PCWSTR,
11572        windows_core::PCWSTR,
11573    ) -> windows_core::HRESULT,
11574    pub DeleteCookiesWithDomainAndPath: unsafe extern "system" fn(
11575        *mut core::ffi::c_void,
11576        windows_core::PCWSTR,
11577        windows_core::PCWSTR,
11578        windows_core::PCWSTR,
11579    ) -> windows_core::HRESULT,
11580    pub DeleteAllCookies:
11581        unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
11582}
11583pub trait ICoreWebView2CookieManager_Impl: windows_core::IUnknownImpl {
11584    fn CreateCookie(
11585        &self,
11586        name: &windows_core::PCWSTR,
11587        value: &windows_core::PCWSTR,
11588        domain: &windows_core::PCWSTR,
11589        path: &windows_core::PCWSTR,
11590    ) -> windows_core::Result<ICoreWebView2Cookie>;
11591    fn CopyCookie(
11592        &self,
11593        cookieparam: windows_core::Ref<ICoreWebView2Cookie>,
11594    ) -> windows_core::Result<ICoreWebView2Cookie>;
11595    fn GetCookies(
11596        &self,
11597        uri: &windows_core::PCWSTR,
11598        handler: windows_core::Ref<ICoreWebView2GetCookiesCompletedHandler>,
11599    ) -> windows_core::Result<()>;
11600    fn AddOrUpdateCookie(
11601        &self,
11602        cookie: windows_core::Ref<ICoreWebView2Cookie>,
11603    ) -> windows_core::Result<()>;
11604    fn DeleteCookie(
11605        &self,
11606        cookie: windows_core::Ref<ICoreWebView2Cookie>,
11607    ) -> windows_core::Result<()>;
11608    fn DeleteCookies(
11609        &self,
11610        name: &windows_core::PCWSTR,
11611        uri: &windows_core::PCWSTR,
11612    ) -> windows_core::Result<()>;
11613    fn DeleteCookiesWithDomainAndPath(
11614        &self,
11615        name: &windows_core::PCWSTR,
11616        domain: &windows_core::PCWSTR,
11617        path: &windows_core::PCWSTR,
11618    ) -> windows_core::Result<()>;
11619    fn DeleteAllCookies(&self) -> windows_core::Result<()>;
11620}
11621impl ICoreWebView2CookieManager_Vtbl {
11622    pub const fn new<Identity: ICoreWebView2CookieManager_Impl, const OFFSET: isize>() -> Self {
11623        unsafe extern "system" fn CreateCookie<
11624            Identity: ICoreWebView2CookieManager_Impl,
11625            const OFFSET: isize,
11626        >(
11627            this: *mut core::ffi::c_void,
11628            name: windows_core::PCWSTR,
11629            value: windows_core::PCWSTR,
11630            domain: windows_core::PCWSTR,
11631            path: windows_core::PCWSTR,
11632            cookie: *mut *mut core::ffi::c_void,
11633        ) -> windows_core::HRESULT {
11634            unsafe {
11635                let this: &Identity =
11636                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
11637                match ICoreWebView2CookieManager_Impl::CreateCookie(
11638                    this,
11639                    core::mem::transmute(&name),
11640                    core::mem::transmute(&value),
11641                    core::mem::transmute(&domain),
11642                    core::mem::transmute(&path),
11643                ) {
11644                    Ok(ok__) => {
11645                        cookie.write(core::mem::transmute(ok__));
11646                        windows_core::HRESULT(0)
11647                    }
11648                    Err(err) => err.into(),
11649                }
11650            }
11651        }
11652        unsafe extern "system" fn CopyCookie<
11653            Identity: ICoreWebView2CookieManager_Impl,
11654            const OFFSET: isize,
11655        >(
11656            this: *mut core::ffi::c_void,
11657            cookieparam: *mut core::ffi::c_void,
11658            cookie: *mut *mut core::ffi::c_void,
11659        ) -> windows_core::HRESULT {
11660            unsafe {
11661                let this: &Identity =
11662                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
11663                match ICoreWebView2CookieManager_Impl::CopyCookie(
11664                    this,
11665                    core::mem::transmute_copy(&cookieparam),
11666                ) {
11667                    Ok(ok__) => {
11668                        cookie.write(core::mem::transmute(ok__));
11669                        windows_core::HRESULT(0)
11670                    }
11671                    Err(err) => err.into(),
11672                }
11673            }
11674        }
11675        unsafe extern "system" fn GetCookies<
11676            Identity: ICoreWebView2CookieManager_Impl,
11677            const OFFSET: isize,
11678        >(
11679            this: *mut core::ffi::c_void,
11680            uri: windows_core::PCWSTR,
11681            handler: *mut core::ffi::c_void,
11682        ) -> windows_core::HRESULT {
11683            unsafe {
11684                let this: &Identity =
11685                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
11686                ICoreWebView2CookieManager_Impl::GetCookies(
11687                    this,
11688                    core::mem::transmute(&uri),
11689                    core::mem::transmute_copy(&handler),
11690                )
11691                .into()
11692            }
11693        }
11694        unsafe extern "system" fn AddOrUpdateCookie<
11695            Identity: ICoreWebView2CookieManager_Impl,
11696            const OFFSET: isize,
11697        >(
11698            this: *mut core::ffi::c_void,
11699            cookie: *mut core::ffi::c_void,
11700        ) -> windows_core::HRESULT {
11701            unsafe {
11702                let this: &Identity =
11703                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
11704                ICoreWebView2CookieManager_Impl::AddOrUpdateCookie(
11705                    this,
11706                    core::mem::transmute_copy(&cookie),
11707                )
11708                .into()
11709            }
11710        }
11711        unsafe extern "system" fn DeleteCookie<
11712            Identity: ICoreWebView2CookieManager_Impl,
11713            const OFFSET: isize,
11714        >(
11715            this: *mut core::ffi::c_void,
11716            cookie: *mut core::ffi::c_void,
11717        ) -> windows_core::HRESULT {
11718            unsafe {
11719                let this: &Identity =
11720                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
11721                ICoreWebView2CookieManager_Impl::DeleteCookie(
11722                    this,
11723                    core::mem::transmute_copy(&cookie),
11724                )
11725                .into()
11726            }
11727        }
11728        unsafe extern "system" fn DeleteCookies<
11729            Identity: ICoreWebView2CookieManager_Impl,
11730            const OFFSET: isize,
11731        >(
11732            this: *mut core::ffi::c_void,
11733            name: windows_core::PCWSTR,
11734            uri: windows_core::PCWSTR,
11735        ) -> windows_core::HRESULT {
11736            unsafe {
11737                let this: &Identity =
11738                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
11739                ICoreWebView2CookieManager_Impl::DeleteCookies(
11740                    this,
11741                    core::mem::transmute(&name),
11742                    core::mem::transmute(&uri),
11743                )
11744                .into()
11745            }
11746        }
11747        unsafe extern "system" fn DeleteCookiesWithDomainAndPath<
11748            Identity: ICoreWebView2CookieManager_Impl,
11749            const OFFSET: isize,
11750        >(
11751            this: *mut core::ffi::c_void,
11752            name: windows_core::PCWSTR,
11753            domain: windows_core::PCWSTR,
11754            path: windows_core::PCWSTR,
11755        ) -> windows_core::HRESULT {
11756            unsafe {
11757                let this: &Identity =
11758                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
11759                ICoreWebView2CookieManager_Impl::DeleteCookiesWithDomainAndPath(
11760                    this,
11761                    core::mem::transmute(&name),
11762                    core::mem::transmute(&domain),
11763                    core::mem::transmute(&path),
11764                )
11765                .into()
11766            }
11767        }
11768        unsafe extern "system" fn DeleteAllCookies<
11769            Identity: ICoreWebView2CookieManager_Impl,
11770            const OFFSET: isize,
11771        >(
11772            this: *mut core::ffi::c_void,
11773        ) -> windows_core::HRESULT {
11774            unsafe {
11775                let this: &Identity =
11776                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
11777                ICoreWebView2CookieManager_Impl::DeleteAllCookies(this).into()
11778            }
11779        }
11780        Self {
11781            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
11782            CreateCookie: CreateCookie::<Identity, OFFSET>,
11783            CopyCookie: CopyCookie::<Identity, OFFSET>,
11784            GetCookies: GetCookies::<Identity, OFFSET>,
11785            AddOrUpdateCookie: AddOrUpdateCookie::<Identity, OFFSET>,
11786            DeleteCookie: DeleteCookie::<Identity, OFFSET>,
11787            DeleteCookies: DeleteCookies::<Identity, OFFSET>,
11788            DeleteCookiesWithDomainAndPath: DeleteCookiesWithDomainAndPath::<Identity, OFFSET>,
11789            DeleteAllCookies: DeleteAllCookies::<Identity, OFFSET>,
11790        }
11791    }
11792    pub fn matches(iid: &windows_core::GUID) -> bool {
11793        iid == &<ICoreWebView2CookieManager as windows_core::Interface>::IID
11794    }
11795}
11796impl windows_core::RuntimeName for ICoreWebView2CookieManager {}
11797windows_core::imp::define_interface!(
11798    ICoreWebView2CreateCoreWebView2CompositionControllerCompletedHandler,
11799    ICoreWebView2CreateCoreWebView2CompositionControllerCompletedHandler_Vtbl,
11800    0x02fab84b_1428_4fb7_ad45_1b2e64736184
11801);
11802windows_core::imp::interface_hierarchy!(
11803    ICoreWebView2CreateCoreWebView2CompositionControllerCompletedHandler,
11804    windows_core::IUnknown
11805);
11806impl ICoreWebView2CreateCoreWebView2CompositionControllerCompletedHandler {
11807    pub unsafe fn Invoke<P1>(
11808        &self,
11809        errorcode: windows_core::HRESULT,
11810        result: P1,
11811    ) -> windows_core::Result<()>
11812    where
11813        P1: windows_core::Param<ICoreWebView2CompositionController>,
11814    {
11815        unsafe {
11816            (windows_core::Interface::vtable(self).Invoke)(
11817                windows_core::Interface::as_raw(self),
11818                errorcode,
11819                result.param().abi(),
11820            )
11821            .ok()
11822        }
11823    }
11824}
11825#[repr(C)]
11826#[doc(hidden)]
11827pub struct ICoreWebView2CreateCoreWebView2CompositionControllerCompletedHandler_Vtbl {
11828    pub base__: windows_core::IUnknown_Vtbl,
11829    pub Invoke: unsafe extern "system" fn(
11830        *mut core::ffi::c_void,
11831        windows_core::HRESULT,
11832        *mut core::ffi::c_void,
11833    ) -> windows_core::HRESULT,
11834}
11835pub trait ICoreWebView2CreateCoreWebView2CompositionControllerCompletedHandler_Impl:
11836    windows_core::IUnknownImpl
11837{
11838    fn Invoke(
11839        &self,
11840        errorcode: windows_core::HRESULT,
11841        result: windows_core::Ref<ICoreWebView2CompositionController>,
11842    ) -> windows_core::Result<()>;
11843}
11844impl ICoreWebView2CreateCoreWebView2CompositionControllerCompletedHandler_Vtbl {
11845    pub const fn new<
11846        Identity: ICoreWebView2CreateCoreWebView2CompositionControllerCompletedHandler_Impl,
11847        const OFFSET: isize,
11848    >() -> Self {
11849        unsafe extern "system" fn Invoke<
11850            Identity: ICoreWebView2CreateCoreWebView2CompositionControllerCompletedHandler_Impl,
11851            const OFFSET: isize,
11852        >(
11853            this: *mut core::ffi::c_void,
11854            errorcode: windows_core::HRESULT,
11855            result: *mut core::ffi::c_void,
11856        ) -> windows_core::HRESULT {
11857            unsafe {
11858                let this: &Identity =
11859                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
11860                ICoreWebView2CreateCoreWebView2CompositionControllerCompletedHandler_Impl::Invoke(
11861                    this,
11862                    core::mem::transmute_copy(&errorcode),
11863                    core::mem::transmute_copy(&result),
11864                )
11865                .into()
11866            }
11867        }
11868        Self {
11869            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
11870            Invoke: Invoke::<Identity, OFFSET>,
11871        }
11872    }
11873    pub fn matches(iid: &windows_core::GUID) -> bool {
11874        iid == & < ICoreWebView2CreateCoreWebView2CompositionControllerCompletedHandler as windows_core::Interface >::IID
11875    }
11876}
11877impl windows_core::RuntimeName
11878    for ICoreWebView2CreateCoreWebView2CompositionControllerCompletedHandler
11879{
11880}
11881windows_core::imp::define_interface!(
11882    ICoreWebView2CreateCoreWebView2ControllerCompletedHandler,
11883    ICoreWebView2CreateCoreWebView2ControllerCompletedHandler_Vtbl,
11884    0x6c4819f3_c9b7_4260_8127_c9f5bde7f68c
11885);
11886windows_core::imp::interface_hierarchy!(
11887    ICoreWebView2CreateCoreWebView2ControllerCompletedHandler,
11888    windows_core::IUnknown
11889);
11890impl ICoreWebView2CreateCoreWebView2ControllerCompletedHandler {
11891    pub unsafe fn Invoke<P1>(
11892        &self,
11893        errorcode: windows_core::HRESULT,
11894        result: P1,
11895    ) -> windows_core::Result<()>
11896    where
11897        P1: windows_core::Param<ICoreWebView2Controller>,
11898    {
11899        unsafe {
11900            (windows_core::Interface::vtable(self).Invoke)(
11901                windows_core::Interface::as_raw(self),
11902                errorcode,
11903                result.param().abi(),
11904            )
11905            .ok()
11906        }
11907    }
11908}
11909#[repr(C)]
11910#[doc(hidden)]
11911pub struct ICoreWebView2CreateCoreWebView2ControllerCompletedHandler_Vtbl {
11912    pub base__: windows_core::IUnknown_Vtbl,
11913    pub Invoke: unsafe extern "system" fn(
11914        *mut core::ffi::c_void,
11915        windows_core::HRESULT,
11916        *mut core::ffi::c_void,
11917    ) -> windows_core::HRESULT,
11918}
11919pub trait ICoreWebView2CreateCoreWebView2ControllerCompletedHandler_Impl:
11920    windows_core::IUnknownImpl
11921{
11922    fn Invoke(
11923        &self,
11924        errorcode: windows_core::HRESULT,
11925        result: windows_core::Ref<ICoreWebView2Controller>,
11926    ) -> windows_core::Result<()>;
11927}
11928impl ICoreWebView2CreateCoreWebView2ControllerCompletedHandler_Vtbl {
11929    pub const fn new<
11930        Identity: ICoreWebView2CreateCoreWebView2ControllerCompletedHandler_Impl,
11931        const OFFSET: isize,
11932    >() -> Self {
11933        unsafe extern "system" fn Invoke<
11934            Identity: ICoreWebView2CreateCoreWebView2ControllerCompletedHandler_Impl,
11935            const OFFSET: isize,
11936        >(
11937            this: *mut core::ffi::c_void,
11938            errorcode: windows_core::HRESULT,
11939            result: *mut core::ffi::c_void,
11940        ) -> windows_core::HRESULT {
11941            unsafe {
11942                let this: &Identity =
11943                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
11944                ICoreWebView2CreateCoreWebView2ControllerCompletedHandler_Impl::Invoke(
11945                    this,
11946                    core::mem::transmute_copy(&errorcode),
11947                    core::mem::transmute_copy(&result),
11948                )
11949                .into()
11950            }
11951        }
11952        Self {
11953            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
11954            Invoke: Invoke::<Identity, OFFSET>,
11955        }
11956    }
11957    pub fn matches(iid: &windows_core::GUID) -> bool {
11958        iid == & < ICoreWebView2CreateCoreWebView2ControllerCompletedHandler as windows_core::Interface >::IID
11959    }
11960}
11961impl windows_core::RuntimeName for ICoreWebView2CreateCoreWebView2ControllerCompletedHandler {}
11962windows_core::imp::define_interface!(
11963    ICoreWebView2CreateCoreWebView2EnvironmentCompletedHandler,
11964    ICoreWebView2CreateCoreWebView2EnvironmentCompletedHandler_Vtbl,
11965    0x4e8a3389_c9d8_4bd2_b6b5_124fee6cc14d
11966);
11967windows_core::imp::interface_hierarchy!(
11968    ICoreWebView2CreateCoreWebView2EnvironmentCompletedHandler,
11969    windows_core::IUnknown
11970);
11971impl ICoreWebView2CreateCoreWebView2EnvironmentCompletedHandler {
11972    pub unsafe fn Invoke<P1>(
11973        &self,
11974        errorcode: windows_core::HRESULT,
11975        result: P1,
11976    ) -> windows_core::Result<()>
11977    where
11978        P1: windows_core::Param<ICoreWebView2Environment>,
11979    {
11980        unsafe {
11981            (windows_core::Interface::vtable(self).Invoke)(
11982                windows_core::Interface::as_raw(self),
11983                errorcode,
11984                result.param().abi(),
11985            )
11986            .ok()
11987        }
11988    }
11989}
11990#[repr(C)]
11991#[doc(hidden)]
11992pub struct ICoreWebView2CreateCoreWebView2EnvironmentCompletedHandler_Vtbl {
11993    pub base__: windows_core::IUnknown_Vtbl,
11994    pub Invoke: unsafe extern "system" fn(
11995        *mut core::ffi::c_void,
11996        windows_core::HRESULT,
11997        *mut core::ffi::c_void,
11998    ) -> windows_core::HRESULT,
11999}
12000pub trait ICoreWebView2CreateCoreWebView2EnvironmentCompletedHandler_Impl:
12001    windows_core::IUnknownImpl
12002{
12003    fn Invoke(
12004        &self,
12005        errorcode: windows_core::HRESULT,
12006        result: windows_core::Ref<ICoreWebView2Environment>,
12007    ) -> windows_core::Result<()>;
12008}
12009impl ICoreWebView2CreateCoreWebView2EnvironmentCompletedHandler_Vtbl {
12010    pub const fn new<
12011        Identity: ICoreWebView2CreateCoreWebView2EnvironmentCompletedHandler_Impl,
12012        const OFFSET: isize,
12013    >() -> Self {
12014        unsafe extern "system" fn Invoke<
12015            Identity: ICoreWebView2CreateCoreWebView2EnvironmentCompletedHandler_Impl,
12016            const OFFSET: isize,
12017        >(
12018            this: *mut core::ffi::c_void,
12019            errorcode: windows_core::HRESULT,
12020            result: *mut core::ffi::c_void,
12021        ) -> windows_core::HRESULT {
12022            unsafe {
12023                let this: &Identity =
12024                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
12025                ICoreWebView2CreateCoreWebView2EnvironmentCompletedHandler_Impl::Invoke(
12026                    this,
12027                    core::mem::transmute_copy(&errorcode),
12028                    core::mem::transmute_copy(&result),
12029                )
12030                .into()
12031            }
12032        }
12033        Self {
12034            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
12035            Invoke: Invoke::<Identity, OFFSET>,
12036        }
12037    }
12038    pub fn matches(iid: &windows_core::GUID) -> bool {
12039        iid == & < ICoreWebView2CreateCoreWebView2EnvironmentCompletedHandler as windows_core::Interface >::IID
12040    }
12041}
12042impl windows_core::RuntimeName for ICoreWebView2CreateCoreWebView2EnvironmentCompletedHandler {}
12043windows_core::imp::define_interface!(
12044    ICoreWebView2CursorChangedEventHandler,
12045    ICoreWebView2CursorChangedEventHandler_Vtbl,
12046    0x9da43ccc_26e1_4dad_b56c_d8961c94c571
12047);
12048windows_core::imp::interface_hierarchy!(
12049    ICoreWebView2CursorChangedEventHandler,
12050    windows_core::IUnknown
12051);
12052impl ICoreWebView2CursorChangedEventHandler {
12053    pub unsafe fn Invoke<P0, P1>(&self, sender: P0, args: P1) -> windows_core::Result<()>
12054    where
12055        P0: windows_core::Param<ICoreWebView2CompositionController>,
12056        P1: windows_core::Param<windows_core::IUnknown>,
12057    {
12058        unsafe {
12059            (windows_core::Interface::vtable(self).Invoke)(
12060                windows_core::Interface::as_raw(self),
12061                sender.param().abi(),
12062                args.param().abi(),
12063            )
12064            .ok()
12065        }
12066    }
12067}
12068#[repr(C)]
12069#[doc(hidden)]
12070pub struct ICoreWebView2CursorChangedEventHandler_Vtbl {
12071    pub base__: windows_core::IUnknown_Vtbl,
12072    pub Invoke: unsafe extern "system" fn(
12073        *mut core::ffi::c_void,
12074        *mut core::ffi::c_void,
12075        *mut core::ffi::c_void,
12076    ) -> windows_core::HRESULT,
12077}
12078pub trait ICoreWebView2CursorChangedEventHandler_Impl: windows_core::IUnknownImpl {
12079    fn Invoke(
12080        &self,
12081        sender: windows_core::Ref<ICoreWebView2CompositionController>,
12082        args: windows_core::Ref<windows_core::IUnknown>,
12083    ) -> windows_core::Result<()>;
12084}
12085impl ICoreWebView2CursorChangedEventHandler_Vtbl {
12086    pub const fn new<Identity: ICoreWebView2CursorChangedEventHandler_Impl, const OFFSET: isize>(
12087    ) -> Self {
12088        unsafe extern "system" fn Invoke<
12089            Identity: ICoreWebView2CursorChangedEventHandler_Impl,
12090            const OFFSET: isize,
12091        >(
12092            this: *mut core::ffi::c_void,
12093            sender: *mut core::ffi::c_void,
12094            args: *mut core::ffi::c_void,
12095        ) -> windows_core::HRESULT {
12096            unsafe {
12097                let this: &Identity =
12098                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
12099                ICoreWebView2CursorChangedEventHandler_Impl::Invoke(
12100                    this,
12101                    core::mem::transmute_copy(&sender),
12102                    core::mem::transmute_copy(&args),
12103                )
12104                .into()
12105            }
12106        }
12107        Self {
12108            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
12109            Invoke: Invoke::<Identity, OFFSET>,
12110        }
12111    }
12112    pub fn matches(iid: &windows_core::GUID) -> bool {
12113        iid == &<ICoreWebView2CursorChangedEventHandler as windows_core::Interface>::IID
12114    }
12115}
12116impl windows_core::RuntimeName for ICoreWebView2CursorChangedEventHandler {}
12117windows_core::imp::define_interface!(
12118    ICoreWebView2CustomItemSelectedEventHandler,
12119    ICoreWebView2CustomItemSelectedEventHandler_Vtbl,
12120    0x49e1d0bc_fe9e_4481_b7c2_32324aa21998
12121);
12122windows_core::imp::interface_hierarchy!(
12123    ICoreWebView2CustomItemSelectedEventHandler,
12124    windows_core::IUnknown
12125);
12126impl ICoreWebView2CustomItemSelectedEventHandler {
12127    pub unsafe fn Invoke<P0, P1>(&self, sender: P0, args: P1) -> windows_core::Result<()>
12128    where
12129        P0: windows_core::Param<ICoreWebView2ContextMenuItem>,
12130        P1: windows_core::Param<windows_core::IUnknown>,
12131    {
12132        unsafe {
12133            (windows_core::Interface::vtable(self).Invoke)(
12134                windows_core::Interface::as_raw(self),
12135                sender.param().abi(),
12136                args.param().abi(),
12137            )
12138            .ok()
12139        }
12140    }
12141}
12142#[repr(C)]
12143#[doc(hidden)]
12144pub struct ICoreWebView2CustomItemSelectedEventHandler_Vtbl {
12145    pub base__: windows_core::IUnknown_Vtbl,
12146    pub Invoke: unsafe extern "system" fn(
12147        *mut core::ffi::c_void,
12148        *mut core::ffi::c_void,
12149        *mut core::ffi::c_void,
12150    ) -> windows_core::HRESULT,
12151}
12152pub trait ICoreWebView2CustomItemSelectedEventHandler_Impl: windows_core::IUnknownImpl {
12153    fn Invoke(
12154        &self,
12155        sender: windows_core::Ref<ICoreWebView2ContextMenuItem>,
12156        args: windows_core::Ref<windows_core::IUnknown>,
12157    ) -> windows_core::Result<()>;
12158}
12159impl ICoreWebView2CustomItemSelectedEventHandler_Vtbl {
12160    pub const fn new<
12161        Identity: ICoreWebView2CustomItemSelectedEventHandler_Impl,
12162        const OFFSET: isize,
12163    >() -> Self {
12164        unsafe extern "system" fn Invoke<
12165            Identity: ICoreWebView2CustomItemSelectedEventHandler_Impl,
12166            const OFFSET: isize,
12167        >(
12168            this: *mut core::ffi::c_void,
12169            sender: *mut core::ffi::c_void,
12170            args: *mut core::ffi::c_void,
12171        ) -> windows_core::HRESULT {
12172            unsafe {
12173                let this: &Identity =
12174                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
12175                ICoreWebView2CustomItemSelectedEventHandler_Impl::Invoke(
12176                    this,
12177                    core::mem::transmute_copy(&sender),
12178                    core::mem::transmute_copy(&args),
12179                )
12180                .into()
12181            }
12182        }
12183        Self {
12184            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
12185            Invoke: Invoke::<Identity, OFFSET>,
12186        }
12187    }
12188    pub fn matches(iid: &windows_core::GUID) -> bool {
12189        iid == &<ICoreWebView2CustomItemSelectedEventHandler as windows_core::Interface>::IID
12190    }
12191}
12192impl windows_core::RuntimeName for ICoreWebView2CustomItemSelectedEventHandler {}
12193windows_core::imp::define_interface!(
12194    ICoreWebView2CustomSchemeRegistration,
12195    ICoreWebView2CustomSchemeRegistration_Vtbl,
12196    0xd60ac92c_37a6_4b26_a39e_95cfe59047bb
12197);
12198windows_core::imp::interface_hierarchy!(
12199    ICoreWebView2CustomSchemeRegistration,
12200    windows_core::IUnknown
12201);
12202impl ICoreWebView2CustomSchemeRegistration {
12203    pub unsafe fn SchemeName(
12204        &self,
12205        schemename: *mut windows_core::PWSTR,
12206    ) -> windows_core::Result<()> {
12207        unsafe {
12208            (windows_core::Interface::vtable(self).SchemeName)(
12209                windows_core::Interface::as_raw(self),
12210                schemename as _,
12211            )
12212            .ok()
12213        }
12214    }
12215    pub unsafe fn TreatAsSecure(
12216        &self,
12217        treatassecure: *mut windows_core::BOOL,
12218    ) -> windows_core::Result<()> {
12219        unsafe {
12220            (windows_core::Interface::vtable(self).TreatAsSecure)(
12221                windows_core::Interface::as_raw(self),
12222                treatassecure as _,
12223            )
12224            .ok()
12225        }
12226    }
12227    pub unsafe fn SetTreatAsSecure(&self, value: bool) -> windows_core::Result<()> {
12228        unsafe {
12229            (windows_core::Interface::vtable(self).SetTreatAsSecure)(
12230                windows_core::Interface::as_raw(self),
12231                value.into(),
12232            )
12233            .ok()
12234        }
12235    }
12236    pub unsafe fn GetAllowedOrigins(
12237        &self,
12238        allowedoriginscount: *mut u32,
12239        allowedorigins: *mut *mut windows_core::PWSTR,
12240    ) -> windows_core::Result<()> {
12241        unsafe {
12242            (windows_core::Interface::vtable(self).GetAllowedOrigins)(
12243                windows_core::Interface::as_raw(self),
12244                allowedoriginscount as _,
12245                allowedorigins as _,
12246            )
12247            .ok()
12248        }
12249    }
12250    pub unsafe fn SetAllowedOrigins(
12251        &self,
12252        allowedoriginscount: u32,
12253        allowedorigins: *const windows_core::PCWSTR,
12254    ) -> windows_core::Result<()> {
12255        unsafe {
12256            (windows_core::Interface::vtable(self).SetAllowedOrigins)(
12257                windows_core::Interface::as_raw(self),
12258                allowedoriginscount,
12259                allowedorigins,
12260            )
12261            .ok()
12262        }
12263    }
12264    pub unsafe fn HasAuthorityComponent(
12265        &self,
12266        hasauthoritycomponent: *mut windows_core::BOOL,
12267    ) -> windows_core::Result<()> {
12268        unsafe {
12269            (windows_core::Interface::vtable(self).HasAuthorityComponent)(
12270                windows_core::Interface::as_raw(self),
12271                hasauthoritycomponent as _,
12272            )
12273            .ok()
12274        }
12275    }
12276    pub unsafe fn SetHasAuthorityComponent(
12277        &self,
12278        hasauthoritycomponent: bool,
12279    ) -> windows_core::Result<()> {
12280        unsafe {
12281            (windows_core::Interface::vtable(self).SetHasAuthorityComponent)(
12282                windows_core::Interface::as_raw(self),
12283                hasauthoritycomponent.into(),
12284            )
12285            .ok()
12286        }
12287    }
12288}
12289#[repr(C)]
12290#[doc(hidden)]
12291pub struct ICoreWebView2CustomSchemeRegistration_Vtbl {
12292    pub base__: windows_core::IUnknown_Vtbl,
12293    pub SchemeName: unsafe extern "system" fn(
12294        *mut core::ffi::c_void,
12295        *mut windows_core::PWSTR,
12296    ) -> windows_core::HRESULT,
12297    pub TreatAsSecure: unsafe extern "system" fn(
12298        *mut core::ffi::c_void,
12299        *mut windows_core::BOOL,
12300    ) -> windows_core::HRESULT,
12301    pub SetTreatAsSecure: unsafe extern "system" fn(
12302        *mut core::ffi::c_void,
12303        windows_core::BOOL,
12304    ) -> windows_core::HRESULT,
12305    pub GetAllowedOrigins: unsafe extern "system" fn(
12306        *mut core::ffi::c_void,
12307        *mut u32,
12308        *mut *mut windows_core::PWSTR,
12309    ) -> windows_core::HRESULT,
12310    pub SetAllowedOrigins: unsafe extern "system" fn(
12311        *mut core::ffi::c_void,
12312        u32,
12313        *const windows_core::PCWSTR,
12314    ) -> windows_core::HRESULT,
12315    pub HasAuthorityComponent: unsafe extern "system" fn(
12316        *mut core::ffi::c_void,
12317        *mut windows_core::BOOL,
12318    ) -> windows_core::HRESULT,
12319    pub SetHasAuthorityComponent: unsafe extern "system" fn(
12320        *mut core::ffi::c_void,
12321        windows_core::BOOL,
12322    ) -> windows_core::HRESULT,
12323}
12324pub trait ICoreWebView2CustomSchemeRegistration_Impl: windows_core::IUnknownImpl {
12325    fn SchemeName(&self, schemename: *mut windows_core::PWSTR) -> windows_core::Result<()>;
12326    fn TreatAsSecure(&self, treatassecure: *mut windows_core::BOOL) -> windows_core::Result<()>;
12327    fn SetTreatAsSecure(&self, value: windows_core::BOOL) -> windows_core::Result<()>;
12328    fn GetAllowedOrigins(
12329        &self,
12330        allowedoriginscount: *mut u32,
12331        allowedorigins: *mut *mut windows_core::PWSTR,
12332    ) -> windows_core::Result<()>;
12333    fn SetAllowedOrigins(
12334        &self,
12335        allowedoriginscount: u32,
12336        allowedorigins: *const windows_core::PCWSTR,
12337    ) -> windows_core::Result<()>;
12338    fn HasAuthorityComponent(
12339        &self,
12340        hasauthoritycomponent: *mut windows_core::BOOL,
12341    ) -> windows_core::Result<()>;
12342    fn SetHasAuthorityComponent(
12343        &self,
12344        hasauthoritycomponent: windows_core::BOOL,
12345    ) -> windows_core::Result<()>;
12346}
12347impl ICoreWebView2CustomSchemeRegistration_Vtbl {
12348    pub const fn new<Identity: ICoreWebView2CustomSchemeRegistration_Impl, const OFFSET: isize>(
12349    ) -> Self {
12350        unsafe extern "system" fn SchemeName<
12351            Identity: ICoreWebView2CustomSchemeRegistration_Impl,
12352            const OFFSET: isize,
12353        >(
12354            this: *mut core::ffi::c_void,
12355            schemename: *mut windows_core::PWSTR,
12356        ) -> windows_core::HRESULT {
12357            unsafe {
12358                let this: &Identity =
12359                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
12360                ICoreWebView2CustomSchemeRegistration_Impl::SchemeName(
12361                    this,
12362                    core::mem::transmute_copy(&schemename),
12363                )
12364                .into()
12365            }
12366        }
12367        unsafe extern "system" fn TreatAsSecure<
12368            Identity: ICoreWebView2CustomSchemeRegistration_Impl,
12369            const OFFSET: isize,
12370        >(
12371            this: *mut core::ffi::c_void,
12372            treatassecure: *mut windows_core::BOOL,
12373        ) -> windows_core::HRESULT {
12374            unsafe {
12375                let this: &Identity =
12376                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
12377                ICoreWebView2CustomSchemeRegistration_Impl::TreatAsSecure(
12378                    this,
12379                    core::mem::transmute_copy(&treatassecure),
12380                )
12381                .into()
12382            }
12383        }
12384        unsafe extern "system" fn SetTreatAsSecure<
12385            Identity: ICoreWebView2CustomSchemeRegistration_Impl,
12386            const OFFSET: isize,
12387        >(
12388            this: *mut core::ffi::c_void,
12389            value: windows_core::BOOL,
12390        ) -> windows_core::HRESULT {
12391            unsafe {
12392                let this: &Identity =
12393                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
12394                ICoreWebView2CustomSchemeRegistration_Impl::SetTreatAsSecure(
12395                    this,
12396                    core::mem::transmute_copy(&value),
12397                )
12398                .into()
12399            }
12400        }
12401        unsafe extern "system" fn GetAllowedOrigins<
12402            Identity: ICoreWebView2CustomSchemeRegistration_Impl,
12403            const OFFSET: isize,
12404        >(
12405            this: *mut core::ffi::c_void,
12406            allowedoriginscount: *mut u32,
12407            allowedorigins: *mut *mut windows_core::PWSTR,
12408        ) -> windows_core::HRESULT {
12409            unsafe {
12410                let this: &Identity =
12411                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
12412                ICoreWebView2CustomSchemeRegistration_Impl::GetAllowedOrigins(
12413                    this,
12414                    core::mem::transmute_copy(&allowedoriginscount),
12415                    core::mem::transmute_copy(&allowedorigins),
12416                )
12417                .into()
12418            }
12419        }
12420        unsafe extern "system" fn SetAllowedOrigins<
12421            Identity: ICoreWebView2CustomSchemeRegistration_Impl,
12422            const OFFSET: isize,
12423        >(
12424            this: *mut core::ffi::c_void,
12425            allowedoriginscount: u32,
12426            allowedorigins: *const windows_core::PCWSTR,
12427        ) -> windows_core::HRESULT {
12428            unsafe {
12429                let this: &Identity =
12430                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
12431                ICoreWebView2CustomSchemeRegistration_Impl::SetAllowedOrigins(
12432                    this,
12433                    core::mem::transmute_copy(&allowedoriginscount),
12434                    core::mem::transmute_copy(&allowedorigins),
12435                )
12436                .into()
12437            }
12438        }
12439        unsafe extern "system" fn HasAuthorityComponent<
12440            Identity: ICoreWebView2CustomSchemeRegistration_Impl,
12441            const OFFSET: isize,
12442        >(
12443            this: *mut core::ffi::c_void,
12444            hasauthoritycomponent: *mut windows_core::BOOL,
12445        ) -> windows_core::HRESULT {
12446            unsafe {
12447                let this: &Identity =
12448                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
12449                ICoreWebView2CustomSchemeRegistration_Impl::HasAuthorityComponent(
12450                    this,
12451                    core::mem::transmute_copy(&hasauthoritycomponent),
12452                )
12453                .into()
12454            }
12455        }
12456        unsafe extern "system" fn SetHasAuthorityComponent<
12457            Identity: ICoreWebView2CustomSchemeRegistration_Impl,
12458            const OFFSET: isize,
12459        >(
12460            this: *mut core::ffi::c_void,
12461            hasauthoritycomponent: windows_core::BOOL,
12462        ) -> windows_core::HRESULT {
12463            unsafe {
12464                let this: &Identity =
12465                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
12466                ICoreWebView2CustomSchemeRegistration_Impl::SetHasAuthorityComponent(
12467                    this,
12468                    core::mem::transmute_copy(&hasauthoritycomponent),
12469                )
12470                .into()
12471            }
12472        }
12473        Self {
12474            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
12475            SchemeName: SchemeName::<Identity, OFFSET>,
12476            TreatAsSecure: TreatAsSecure::<Identity, OFFSET>,
12477            SetTreatAsSecure: SetTreatAsSecure::<Identity, OFFSET>,
12478            GetAllowedOrigins: GetAllowedOrigins::<Identity, OFFSET>,
12479            SetAllowedOrigins: SetAllowedOrigins::<Identity, OFFSET>,
12480            HasAuthorityComponent: HasAuthorityComponent::<Identity, OFFSET>,
12481            SetHasAuthorityComponent: SetHasAuthorityComponent::<Identity, OFFSET>,
12482        }
12483    }
12484    pub fn matches(iid: &windows_core::GUID) -> bool {
12485        iid == &<ICoreWebView2CustomSchemeRegistration as windows_core::Interface>::IID
12486    }
12487}
12488impl windows_core::RuntimeName for ICoreWebView2CustomSchemeRegistration {}
12489windows_core::imp::define_interface!(
12490    ICoreWebView2DOMContentLoadedEventArgs,
12491    ICoreWebView2DOMContentLoadedEventArgs_Vtbl,
12492    0x16b1e21a_c503_44f2_84c9_70aba5031283
12493);
12494windows_core::imp::interface_hierarchy!(
12495    ICoreWebView2DOMContentLoadedEventArgs,
12496    windows_core::IUnknown
12497);
12498impl ICoreWebView2DOMContentLoadedEventArgs {
12499    pub unsafe fn NavigationId(&self, value: *mut u64) -> windows_core::Result<()> {
12500        unsafe {
12501            (windows_core::Interface::vtable(self).NavigationId)(
12502                windows_core::Interface::as_raw(self),
12503                value as _,
12504            )
12505            .ok()
12506        }
12507    }
12508}
12509#[repr(C)]
12510#[doc(hidden)]
12511pub struct ICoreWebView2DOMContentLoadedEventArgs_Vtbl {
12512    pub base__: windows_core::IUnknown_Vtbl,
12513    pub NavigationId:
12514        unsafe extern "system" fn(*mut core::ffi::c_void, *mut u64) -> windows_core::HRESULT,
12515}
12516pub trait ICoreWebView2DOMContentLoadedEventArgs_Impl: windows_core::IUnknownImpl {
12517    fn NavigationId(&self, value: *mut u64) -> windows_core::Result<()>;
12518}
12519impl ICoreWebView2DOMContentLoadedEventArgs_Vtbl {
12520    pub const fn new<Identity: ICoreWebView2DOMContentLoadedEventArgs_Impl, const OFFSET: isize>(
12521    ) -> Self {
12522        unsafe extern "system" fn NavigationId<
12523            Identity: ICoreWebView2DOMContentLoadedEventArgs_Impl,
12524            const OFFSET: isize,
12525        >(
12526            this: *mut core::ffi::c_void,
12527            value: *mut u64,
12528        ) -> windows_core::HRESULT {
12529            unsafe {
12530                let this: &Identity =
12531                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
12532                ICoreWebView2DOMContentLoadedEventArgs_Impl::NavigationId(
12533                    this,
12534                    core::mem::transmute_copy(&value),
12535                )
12536                .into()
12537            }
12538        }
12539        Self {
12540            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
12541            NavigationId: NavigationId::<Identity, OFFSET>,
12542        }
12543    }
12544    pub fn matches(iid: &windows_core::GUID) -> bool {
12545        iid == &<ICoreWebView2DOMContentLoadedEventArgs as windows_core::Interface>::IID
12546    }
12547}
12548impl windows_core::RuntimeName for ICoreWebView2DOMContentLoadedEventArgs {}
12549windows_core::imp::define_interface!(
12550    ICoreWebView2DOMContentLoadedEventHandler,
12551    ICoreWebView2DOMContentLoadedEventHandler_Vtbl,
12552    0x4bac7e9c_199e_49ed_87ed_249303acf019
12553);
12554windows_core::imp::interface_hierarchy!(
12555    ICoreWebView2DOMContentLoadedEventHandler,
12556    windows_core::IUnknown
12557);
12558impl ICoreWebView2DOMContentLoadedEventHandler {
12559    pub unsafe fn Invoke<P0, P1>(&self, sender: P0, args: P1) -> windows_core::Result<()>
12560    where
12561        P0: windows_core::Param<ICoreWebView2>,
12562        P1: windows_core::Param<ICoreWebView2DOMContentLoadedEventArgs>,
12563    {
12564        unsafe {
12565            (windows_core::Interface::vtable(self).Invoke)(
12566                windows_core::Interface::as_raw(self),
12567                sender.param().abi(),
12568                args.param().abi(),
12569            )
12570            .ok()
12571        }
12572    }
12573}
12574#[repr(C)]
12575#[doc(hidden)]
12576pub struct ICoreWebView2DOMContentLoadedEventHandler_Vtbl {
12577    pub base__: windows_core::IUnknown_Vtbl,
12578    pub Invoke: unsafe extern "system" fn(
12579        *mut core::ffi::c_void,
12580        *mut core::ffi::c_void,
12581        *mut core::ffi::c_void,
12582    ) -> windows_core::HRESULT,
12583}
12584pub trait ICoreWebView2DOMContentLoadedEventHandler_Impl: windows_core::IUnknownImpl {
12585    fn Invoke(
12586        &self,
12587        sender: windows_core::Ref<ICoreWebView2>,
12588        args: windows_core::Ref<ICoreWebView2DOMContentLoadedEventArgs>,
12589    ) -> windows_core::Result<()>;
12590}
12591impl ICoreWebView2DOMContentLoadedEventHandler_Vtbl {
12592    pub const fn new<
12593        Identity: ICoreWebView2DOMContentLoadedEventHandler_Impl,
12594        const OFFSET: isize,
12595    >() -> Self {
12596        unsafe extern "system" fn Invoke<
12597            Identity: ICoreWebView2DOMContentLoadedEventHandler_Impl,
12598            const OFFSET: isize,
12599        >(
12600            this: *mut core::ffi::c_void,
12601            sender: *mut core::ffi::c_void,
12602            args: *mut core::ffi::c_void,
12603        ) -> windows_core::HRESULT {
12604            unsafe {
12605                let this: &Identity =
12606                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
12607                ICoreWebView2DOMContentLoadedEventHandler_Impl::Invoke(
12608                    this,
12609                    core::mem::transmute_copy(&sender),
12610                    core::mem::transmute_copy(&args),
12611                )
12612                .into()
12613            }
12614        }
12615        Self {
12616            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
12617            Invoke: Invoke::<Identity, OFFSET>,
12618        }
12619    }
12620    pub fn matches(iid: &windows_core::GUID) -> bool {
12621        iid == &<ICoreWebView2DOMContentLoadedEventHandler as windows_core::Interface>::IID
12622    }
12623}
12624impl windows_core::RuntimeName for ICoreWebView2DOMContentLoadedEventHandler {}
12625windows_core::imp::define_interface!(
12626    ICoreWebView2Deferral,
12627    ICoreWebView2Deferral_Vtbl,
12628    0xc10e7f7b_b585_46f0_a623_8befbf3e4ee0
12629);
12630windows_core::imp::interface_hierarchy!(ICoreWebView2Deferral, windows_core::IUnknown);
12631impl ICoreWebView2Deferral {
12632    pub unsafe fn Complete(&self) -> windows_core::Result<()> {
12633        unsafe {
12634            (windows_core::Interface::vtable(self).Complete)(windows_core::Interface::as_raw(self))
12635                .ok()
12636        }
12637    }
12638}
12639#[repr(C)]
12640#[doc(hidden)]
12641pub struct ICoreWebView2Deferral_Vtbl {
12642    pub base__: windows_core::IUnknown_Vtbl,
12643    pub Complete: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
12644}
12645pub trait ICoreWebView2Deferral_Impl: windows_core::IUnknownImpl {
12646    fn Complete(&self) -> windows_core::Result<()>;
12647}
12648impl ICoreWebView2Deferral_Vtbl {
12649    pub const fn new<Identity: ICoreWebView2Deferral_Impl, const OFFSET: isize>() -> Self {
12650        unsafe extern "system" fn Complete<
12651            Identity: ICoreWebView2Deferral_Impl,
12652            const OFFSET: isize,
12653        >(
12654            this: *mut core::ffi::c_void,
12655        ) -> windows_core::HRESULT {
12656            unsafe {
12657                let this: &Identity =
12658                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
12659                ICoreWebView2Deferral_Impl::Complete(this).into()
12660            }
12661        }
12662        Self {
12663            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
12664            Complete: Complete::<Identity, OFFSET>,
12665        }
12666    }
12667    pub fn matches(iid: &windows_core::GUID) -> bool {
12668        iid == &<ICoreWebView2Deferral as windows_core::Interface>::IID
12669    }
12670}
12671impl windows_core::RuntimeName for ICoreWebView2Deferral {}
12672windows_core::imp::define_interface!(
12673    ICoreWebView2DevToolsProtocolEventReceivedEventArgs,
12674    ICoreWebView2DevToolsProtocolEventReceivedEventArgs_Vtbl,
12675    0x653c2959_bb3a_4377_8632_b58ada4e66c4
12676);
12677windows_core::imp::interface_hierarchy!(
12678    ICoreWebView2DevToolsProtocolEventReceivedEventArgs,
12679    windows_core::IUnknown
12680);
12681impl ICoreWebView2DevToolsProtocolEventReceivedEventArgs {
12682    pub unsafe fn ParameterObjectAsJson(
12683        &self,
12684        value: *mut windows_core::PWSTR,
12685    ) -> windows_core::Result<()> {
12686        unsafe {
12687            (windows_core::Interface::vtable(self).ParameterObjectAsJson)(
12688                windows_core::Interface::as_raw(self),
12689                value as _,
12690            )
12691            .ok()
12692        }
12693    }
12694}
12695#[repr(C)]
12696#[doc(hidden)]
12697pub struct ICoreWebView2DevToolsProtocolEventReceivedEventArgs_Vtbl {
12698    pub base__: windows_core::IUnknown_Vtbl,
12699    pub ParameterObjectAsJson: unsafe extern "system" fn(
12700        *mut core::ffi::c_void,
12701        *mut windows_core::PWSTR,
12702    ) -> windows_core::HRESULT,
12703}
12704pub trait ICoreWebView2DevToolsProtocolEventReceivedEventArgs_Impl:
12705    windows_core::IUnknownImpl
12706{
12707    fn ParameterObjectAsJson(&self, value: *mut windows_core::PWSTR) -> windows_core::Result<()>;
12708}
12709impl ICoreWebView2DevToolsProtocolEventReceivedEventArgs_Vtbl {
12710    pub const fn new<
12711        Identity: ICoreWebView2DevToolsProtocolEventReceivedEventArgs_Impl,
12712        const OFFSET: isize,
12713    >() -> Self {
12714        unsafe extern "system" fn ParameterObjectAsJson<
12715            Identity: ICoreWebView2DevToolsProtocolEventReceivedEventArgs_Impl,
12716            const OFFSET: isize,
12717        >(
12718            this: *mut core::ffi::c_void,
12719            value: *mut windows_core::PWSTR,
12720        ) -> windows_core::HRESULT {
12721            unsafe {
12722                let this: &Identity =
12723                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
12724                ICoreWebView2DevToolsProtocolEventReceivedEventArgs_Impl::ParameterObjectAsJson(
12725                    this,
12726                    core::mem::transmute_copy(&value),
12727                )
12728                .into()
12729            }
12730        }
12731        Self {
12732            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
12733            ParameterObjectAsJson: ParameterObjectAsJson::<Identity, OFFSET>,
12734        }
12735    }
12736    pub fn matches(iid: &windows_core::GUID) -> bool {
12737        iid == & < ICoreWebView2DevToolsProtocolEventReceivedEventArgs as windows_core::Interface >::IID
12738    }
12739}
12740impl windows_core::RuntimeName for ICoreWebView2DevToolsProtocolEventReceivedEventArgs {}
12741windows_core::imp::define_interface!(
12742    ICoreWebView2DevToolsProtocolEventReceivedEventArgs2,
12743    ICoreWebView2DevToolsProtocolEventReceivedEventArgs2_Vtbl,
12744    0x2dc4959d_1494_4393_95ba_bea4cb9ebd1b
12745);
12746impl core::ops::Deref for ICoreWebView2DevToolsProtocolEventReceivedEventArgs2 {
12747    type Target = ICoreWebView2DevToolsProtocolEventReceivedEventArgs;
12748    fn deref(&self) -> &Self::Target {
12749        unsafe { core::mem::transmute(self) }
12750    }
12751}
12752windows_core::imp::interface_hierarchy!(
12753    ICoreWebView2DevToolsProtocolEventReceivedEventArgs2,
12754    windows_core::IUnknown,
12755    ICoreWebView2DevToolsProtocolEventReceivedEventArgs
12756);
12757impl ICoreWebView2DevToolsProtocolEventReceivedEventArgs2 {
12758    pub unsafe fn SessionId(&self, value: *mut windows_core::PWSTR) -> windows_core::Result<()> {
12759        unsafe {
12760            (windows_core::Interface::vtable(self).SessionId)(
12761                windows_core::Interface::as_raw(self),
12762                value as _,
12763            )
12764            .ok()
12765        }
12766    }
12767}
12768#[repr(C)]
12769#[doc(hidden)]
12770pub struct ICoreWebView2DevToolsProtocolEventReceivedEventArgs2_Vtbl {
12771    pub base__: ICoreWebView2DevToolsProtocolEventReceivedEventArgs_Vtbl,
12772    pub SessionId: unsafe extern "system" fn(
12773        *mut core::ffi::c_void,
12774        *mut windows_core::PWSTR,
12775    ) -> windows_core::HRESULT,
12776}
12777pub trait ICoreWebView2DevToolsProtocolEventReceivedEventArgs2_Impl:
12778    ICoreWebView2DevToolsProtocolEventReceivedEventArgs_Impl
12779{
12780    fn SessionId(&self, value: *mut windows_core::PWSTR) -> windows_core::Result<()>;
12781}
12782impl ICoreWebView2DevToolsProtocolEventReceivedEventArgs2_Vtbl {
12783    pub const fn new<
12784        Identity: ICoreWebView2DevToolsProtocolEventReceivedEventArgs2_Impl,
12785        const OFFSET: isize,
12786    >() -> Self {
12787        unsafe extern "system" fn SessionId<
12788            Identity: ICoreWebView2DevToolsProtocolEventReceivedEventArgs2_Impl,
12789            const OFFSET: isize,
12790        >(
12791            this: *mut core::ffi::c_void,
12792            value: *mut windows_core::PWSTR,
12793        ) -> windows_core::HRESULT {
12794            unsafe {
12795                let this: &Identity =
12796                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
12797                ICoreWebView2DevToolsProtocolEventReceivedEventArgs2_Impl::SessionId(
12798                    this,
12799                    core::mem::transmute_copy(&value),
12800                )
12801                .into()
12802            }
12803        }
12804        Self {
12805            base__: ICoreWebView2DevToolsProtocolEventReceivedEventArgs_Vtbl::new::<Identity, OFFSET>(
12806            ),
12807            SessionId: SessionId::<Identity, OFFSET>,
12808        }
12809    }
12810    pub fn matches(iid: &windows_core::GUID) -> bool {
12811        iid == & < ICoreWebView2DevToolsProtocolEventReceivedEventArgs2 as windows_core::Interface >::IID || iid == & < ICoreWebView2DevToolsProtocolEventReceivedEventArgs as windows_core::Interface >::IID
12812    }
12813}
12814impl windows_core::RuntimeName for ICoreWebView2DevToolsProtocolEventReceivedEventArgs2 {}
12815windows_core::imp::define_interface!(
12816    ICoreWebView2DevToolsProtocolEventReceivedEventHandler,
12817    ICoreWebView2DevToolsProtocolEventReceivedEventHandler_Vtbl,
12818    0xe2fda4be_5456_406c_a261_3d452138362c
12819);
12820windows_core::imp::interface_hierarchy!(
12821    ICoreWebView2DevToolsProtocolEventReceivedEventHandler,
12822    windows_core::IUnknown
12823);
12824impl ICoreWebView2DevToolsProtocolEventReceivedEventHandler {
12825    pub unsafe fn Invoke<P0, P1>(&self, sender: P0, args: P1) -> windows_core::Result<()>
12826    where
12827        P0: windows_core::Param<ICoreWebView2>,
12828        P1: windows_core::Param<ICoreWebView2DevToolsProtocolEventReceivedEventArgs>,
12829    {
12830        unsafe {
12831            (windows_core::Interface::vtable(self).Invoke)(
12832                windows_core::Interface::as_raw(self),
12833                sender.param().abi(),
12834                args.param().abi(),
12835            )
12836            .ok()
12837        }
12838    }
12839}
12840#[repr(C)]
12841#[doc(hidden)]
12842pub struct ICoreWebView2DevToolsProtocolEventReceivedEventHandler_Vtbl {
12843    pub base__: windows_core::IUnknown_Vtbl,
12844    pub Invoke: unsafe extern "system" fn(
12845        *mut core::ffi::c_void,
12846        *mut core::ffi::c_void,
12847        *mut core::ffi::c_void,
12848    ) -> windows_core::HRESULT,
12849}
12850pub trait ICoreWebView2DevToolsProtocolEventReceivedEventHandler_Impl:
12851    windows_core::IUnknownImpl
12852{
12853    fn Invoke(
12854        &self,
12855        sender: windows_core::Ref<ICoreWebView2>,
12856        args: windows_core::Ref<ICoreWebView2DevToolsProtocolEventReceivedEventArgs>,
12857    ) -> windows_core::Result<()>;
12858}
12859impl ICoreWebView2DevToolsProtocolEventReceivedEventHandler_Vtbl {
12860    pub const fn new<
12861        Identity: ICoreWebView2DevToolsProtocolEventReceivedEventHandler_Impl,
12862        const OFFSET: isize,
12863    >() -> Self {
12864        unsafe extern "system" fn Invoke<
12865            Identity: ICoreWebView2DevToolsProtocolEventReceivedEventHandler_Impl,
12866            const OFFSET: isize,
12867        >(
12868            this: *mut core::ffi::c_void,
12869            sender: *mut core::ffi::c_void,
12870            args: *mut core::ffi::c_void,
12871        ) -> windows_core::HRESULT {
12872            unsafe {
12873                let this: &Identity =
12874                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
12875                ICoreWebView2DevToolsProtocolEventReceivedEventHandler_Impl::Invoke(
12876                    this,
12877                    core::mem::transmute_copy(&sender),
12878                    core::mem::transmute_copy(&args),
12879                )
12880                .into()
12881            }
12882        }
12883        Self {
12884            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
12885            Invoke: Invoke::<Identity, OFFSET>,
12886        }
12887    }
12888    pub fn matches(iid: &windows_core::GUID) -> bool {
12889        iid == & < ICoreWebView2DevToolsProtocolEventReceivedEventHandler as windows_core::Interface >::IID
12890    }
12891}
12892impl windows_core::RuntimeName for ICoreWebView2DevToolsProtocolEventReceivedEventHandler {}
12893windows_core::imp::define_interface!(
12894    ICoreWebView2DevToolsProtocolEventReceiver,
12895    ICoreWebView2DevToolsProtocolEventReceiver_Vtbl,
12896    0xb32ca51a_8371_45e9_9317_af021d080367
12897);
12898windows_core::imp::interface_hierarchy!(
12899    ICoreWebView2DevToolsProtocolEventReceiver,
12900    windows_core::IUnknown
12901);
12902impl ICoreWebView2DevToolsProtocolEventReceiver {
12903    pub unsafe fn add_DevToolsProtocolEventReceived<P0>(
12904        &self,
12905        eventhandler: P0,
12906        token: *mut i64,
12907    ) -> windows_core::Result<()>
12908    where
12909        P0: windows_core::Param<ICoreWebView2DevToolsProtocolEventReceivedEventHandler>,
12910    {
12911        unsafe {
12912            (windows_core::Interface::vtable(self).add_DevToolsProtocolEventReceived)(
12913                windows_core::Interface::as_raw(self),
12914                eventhandler.param().abi(),
12915                token as _,
12916            )
12917            .ok()
12918        }
12919    }
12920    pub unsafe fn remove_DevToolsProtocolEventReceived(
12921        &self,
12922        token: i64,
12923    ) -> windows_core::Result<()> {
12924        unsafe {
12925            (windows_core::Interface::vtable(self).remove_DevToolsProtocolEventReceived)(
12926                windows_core::Interface::as_raw(self),
12927                token,
12928            )
12929            .ok()
12930        }
12931    }
12932}
12933#[repr(C)]
12934#[doc(hidden)]
12935pub struct ICoreWebView2DevToolsProtocolEventReceiver_Vtbl {
12936    pub base__: windows_core::IUnknown_Vtbl,
12937    pub add_DevToolsProtocolEventReceived: unsafe extern "system" fn(
12938        *mut core::ffi::c_void,
12939        *mut core::ffi::c_void,
12940        *mut i64,
12941    ) -> windows_core::HRESULT,
12942    pub remove_DevToolsProtocolEventReceived:
12943        unsafe extern "system" fn(*mut core::ffi::c_void, i64) -> windows_core::HRESULT,
12944}
12945pub trait ICoreWebView2DevToolsProtocolEventReceiver_Impl: windows_core::IUnknownImpl {
12946    fn add_DevToolsProtocolEventReceived(
12947        &self,
12948        eventhandler: windows_core::Ref<ICoreWebView2DevToolsProtocolEventReceivedEventHandler>,
12949        token: *mut i64,
12950    ) -> windows_core::Result<()>;
12951    fn remove_DevToolsProtocolEventReceived(&self, token: i64) -> windows_core::Result<()>;
12952}
12953impl ICoreWebView2DevToolsProtocolEventReceiver_Vtbl {
12954    pub const fn new<
12955        Identity: ICoreWebView2DevToolsProtocolEventReceiver_Impl,
12956        const OFFSET: isize,
12957    >() -> Self {
12958        unsafe extern "system" fn add_DevToolsProtocolEventReceived<
12959            Identity: ICoreWebView2DevToolsProtocolEventReceiver_Impl,
12960            const OFFSET: isize,
12961        >(
12962            this: *mut core::ffi::c_void,
12963            eventhandler: *mut core::ffi::c_void,
12964            token: *mut i64,
12965        ) -> windows_core::HRESULT {
12966            unsafe {
12967                let this: &Identity =
12968                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
12969                ICoreWebView2DevToolsProtocolEventReceiver_Impl::add_DevToolsProtocolEventReceived(
12970                    this,
12971                    core::mem::transmute_copy(&eventhandler),
12972                    core::mem::transmute_copy(&token),
12973                )
12974                .into()
12975            }
12976        }
12977        unsafe extern "system" fn remove_DevToolsProtocolEventReceived<
12978            Identity: ICoreWebView2DevToolsProtocolEventReceiver_Impl,
12979            const OFFSET: isize,
12980        >(
12981            this: *mut core::ffi::c_void,
12982            token: i64,
12983        ) -> windows_core::HRESULT {
12984            unsafe {
12985                let this: &Identity =
12986                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
12987                ICoreWebView2DevToolsProtocolEventReceiver_Impl:: remove_DevToolsProtocolEventReceived ( this , core::mem::transmute_copy ( & token ) , ) . into ( )
12988            }
12989        }
12990        Self {
12991            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
12992            add_DevToolsProtocolEventReceived: add_DevToolsProtocolEventReceived::<Identity, OFFSET>,
12993            remove_DevToolsProtocolEventReceived: remove_DevToolsProtocolEventReceived::<
12994                Identity,
12995                OFFSET,
12996            >,
12997        }
12998    }
12999    pub fn matches(iid: &windows_core::GUID) -> bool {
13000        iid == &<ICoreWebView2DevToolsProtocolEventReceiver as windows_core::Interface>::IID
13001    }
13002}
13003impl windows_core::RuntimeName for ICoreWebView2DevToolsProtocolEventReceiver {}
13004windows_core::imp::define_interface!(
13005    ICoreWebView2DocumentTitleChangedEventHandler,
13006    ICoreWebView2DocumentTitleChangedEventHandler_Vtbl,
13007    0xf5f2b923_953e_4042_9f95_f3a118e1afd4
13008);
13009windows_core::imp::interface_hierarchy!(
13010    ICoreWebView2DocumentTitleChangedEventHandler,
13011    windows_core::IUnknown
13012);
13013impl ICoreWebView2DocumentTitleChangedEventHandler {
13014    pub unsafe fn Invoke<P0, P1>(&self, sender: P0, args: P1) -> windows_core::Result<()>
13015    where
13016        P0: windows_core::Param<ICoreWebView2>,
13017        P1: windows_core::Param<windows_core::IUnknown>,
13018    {
13019        unsafe {
13020            (windows_core::Interface::vtable(self).Invoke)(
13021                windows_core::Interface::as_raw(self),
13022                sender.param().abi(),
13023                args.param().abi(),
13024            )
13025            .ok()
13026        }
13027    }
13028}
13029#[repr(C)]
13030#[doc(hidden)]
13031pub struct ICoreWebView2DocumentTitleChangedEventHandler_Vtbl {
13032    pub base__: windows_core::IUnknown_Vtbl,
13033    pub Invoke: unsafe extern "system" fn(
13034        *mut core::ffi::c_void,
13035        *mut core::ffi::c_void,
13036        *mut core::ffi::c_void,
13037    ) -> windows_core::HRESULT,
13038}
13039pub trait ICoreWebView2DocumentTitleChangedEventHandler_Impl: windows_core::IUnknownImpl {
13040    fn Invoke(
13041        &self,
13042        sender: windows_core::Ref<ICoreWebView2>,
13043        args: windows_core::Ref<windows_core::IUnknown>,
13044    ) -> windows_core::Result<()>;
13045}
13046impl ICoreWebView2DocumentTitleChangedEventHandler_Vtbl {
13047    pub const fn new<
13048        Identity: ICoreWebView2DocumentTitleChangedEventHandler_Impl,
13049        const OFFSET: isize,
13050    >() -> Self {
13051        unsafe extern "system" fn Invoke<
13052            Identity: ICoreWebView2DocumentTitleChangedEventHandler_Impl,
13053            const OFFSET: isize,
13054        >(
13055            this: *mut core::ffi::c_void,
13056            sender: *mut core::ffi::c_void,
13057            args: *mut core::ffi::c_void,
13058        ) -> windows_core::HRESULT {
13059            unsafe {
13060                let this: &Identity =
13061                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
13062                ICoreWebView2DocumentTitleChangedEventHandler_Impl::Invoke(
13063                    this,
13064                    core::mem::transmute_copy(&sender),
13065                    core::mem::transmute_copy(&args),
13066                )
13067                .into()
13068            }
13069        }
13070        Self {
13071            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
13072            Invoke: Invoke::<Identity, OFFSET>,
13073        }
13074    }
13075    pub fn matches(iid: &windows_core::GUID) -> bool {
13076        iid == &<ICoreWebView2DocumentTitleChangedEventHandler as windows_core::Interface>::IID
13077    }
13078}
13079impl windows_core::RuntimeName for ICoreWebView2DocumentTitleChangedEventHandler {}
13080windows_core::imp::define_interface!(
13081    ICoreWebView2DownloadOperation,
13082    ICoreWebView2DownloadOperation_Vtbl,
13083    0x3d6b6cf2_afe1_44c7_a995_c65117714336
13084);
13085windows_core::imp::interface_hierarchy!(ICoreWebView2DownloadOperation, windows_core::IUnknown);
13086impl ICoreWebView2DownloadOperation {
13087    pub unsafe fn add_BytesReceivedChanged<P0>(
13088        &self,
13089        eventhandler: P0,
13090        token: *mut i64,
13091    ) -> windows_core::Result<()>
13092    where
13093        P0: windows_core::Param<ICoreWebView2BytesReceivedChangedEventHandler>,
13094    {
13095        unsafe {
13096            (windows_core::Interface::vtable(self).add_BytesReceivedChanged)(
13097                windows_core::Interface::as_raw(self),
13098                eventhandler.param().abi(),
13099                token as _,
13100            )
13101            .ok()
13102        }
13103    }
13104    pub unsafe fn remove_BytesReceivedChanged(&self, token: i64) -> windows_core::Result<()> {
13105        unsafe {
13106            (windows_core::Interface::vtable(self).remove_BytesReceivedChanged)(
13107                windows_core::Interface::as_raw(self),
13108                token,
13109            )
13110            .ok()
13111        }
13112    }
13113    pub unsafe fn add_EstimatedEndTimeChanged<P0>(
13114        &self,
13115        eventhandler: P0,
13116        token: *mut i64,
13117    ) -> windows_core::Result<()>
13118    where
13119        P0: windows_core::Param<ICoreWebView2EstimatedEndTimeChangedEventHandler>,
13120    {
13121        unsafe {
13122            (windows_core::Interface::vtable(self).add_EstimatedEndTimeChanged)(
13123                windows_core::Interface::as_raw(self),
13124                eventhandler.param().abi(),
13125                token as _,
13126            )
13127            .ok()
13128        }
13129    }
13130    pub unsafe fn remove_EstimatedEndTimeChanged(&self, token: i64) -> windows_core::Result<()> {
13131        unsafe {
13132            (windows_core::Interface::vtable(self).remove_EstimatedEndTimeChanged)(
13133                windows_core::Interface::as_raw(self),
13134                token,
13135            )
13136            .ok()
13137        }
13138    }
13139    pub unsafe fn add_StateChanged<P0>(
13140        &self,
13141        eventhandler: P0,
13142        token: *mut i64,
13143    ) -> windows_core::Result<()>
13144    where
13145        P0: windows_core::Param<ICoreWebView2StateChangedEventHandler>,
13146    {
13147        unsafe {
13148            (windows_core::Interface::vtable(self).add_StateChanged)(
13149                windows_core::Interface::as_raw(self),
13150                eventhandler.param().abi(),
13151                token as _,
13152            )
13153            .ok()
13154        }
13155    }
13156    pub unsafe fn remove_StateChanged(&self, token: i64) -> windows_core::Result<()> {
13157        unsafe {
13158            (windows_core::Interface::vtable(self).remove_StateChanged)(
13159                windows_core::Interface::as_raw(self),
13160                token,
13161            )
13162            .ok()
13163        }
13164    }
13165    pub unsafe fn Uri(&self, uri: *mut windows_core::PWSTR) -> windows_core::Result<()> {
13166        unsafe {
13167            (windows_core::Interface::vtable(self).Uri)(
13168                windows_core::Interface::as_raw(self),
13169                uri as _,
13170            )
13171            .ok()
13172        }
13173    }
13174    pub unsafe fn ContentDisposition(
13175        &self,
13176        contentdisposition: *mut windows_core::PWSTR,
13177    ) -> windows_core::Result<()> {
13178        unsafe {
13179            (windows_core::Interface::vtable(self).ContentDisposition)(
13180                windows_core::Interface::as_raw(self),
13181                contentdisposition as _,
13182            )
13183            .ok()
13184        }
13185    }
13186    pub unsafe fn MimeType(&self, mimetype: *mut windows_core::PWSTR) -> windows_core::Result<()> {
13187        unsafe {
13188            (windows_core::Interface::vtable(self).MimeType)(
13189                windows_core::Interface::as_raw(self),
13190                mimetype as _,
13191            )
13192            .ok()
13193        }
13194    }
13195    pub unsafe fn TotalBytesToReceive(
13196        &self,
13197        totalbytestoreceive: *mut i64,
13198    ) -> windows_core::Result<()> {
13199        unsafe {
13200            (windows_core::Interface::vtable(self).TotalBytesToReceive)(
13201                windows_core::Interface::as_raw(self),
13202                totalbytestoreceive as _,
13203            )
13204            .ok()
13205        }
13206    }
13207    pub unsafe fn BytesReceived(&self, bytesreceived: *mut i64) -> windows_core::Result<()> {
13208        unsafe {
13209            (windows_core::Interface::vtable(self).BytesReceived)(
13210                windows_core::Interface::as_raw(self),
13211                bytesreceived as _,
13212            )
13213            .ok()
13214        }
13215    }
13216    pub unsafe fn EstimatedEndTime(
13217        &self,
13218        estimatedendtime: *mut windows_core::PWSTR,
13219    ) -> windows_core::Result<()> {
13220        unsafe {
13221            (windows_core::Interface::vtable(self).EstimatedEndTime)(
13222                windows_core::Interface::as_raw(self),
13223                estimatedendtime as _,
13224            )
13225            .ok()
13226        }
13227    }
13228    pub unsafe fn ResultFilePath(
13229        &self,
13230        resultfilepath: *mut windows_core::PWSTR,
13231    ) -> windows_core::Result<()> {
13232        unsafe {
13233            (windows_core::Interface::vtable(self).ResultFilePath)(
13234                windows_core::Interface::as_raw(self),
13235                resultfilepath as _,
13236            )
13237            .ok()
13238        }
13239    }
13240    pub unsafe fn State(
13241        &self,
13242        downloadstate: *mut COREWEBVIEW2_DOWNLOAD_STATE,
13243    ) -> windows_core::Result<()> {
13244        unsafe {
13245            (windows_core::Interface::vtable(self).State)(
13246                windows_core::Interface::as_raw(self),
13247                downloadstate as _,
13248            )
13249            .ok()
13250        }
13251    }
13252    pub unsafe fn InterruptReason(
13253        &self,
13254        interruptreason: *mut COREWEBVIEW2_DOWNLOAD_INTERRUPT_REASON,
13255    ) -> windows_core::Result<()> {
13256        unsafe {
13257            (windows_core::Interface::vtable(self).InterruptReason)(
13258                windows_core::Interface::as_raw(self),
13259                interruptreason as _,
13260            )
13261            .ok()
13262        }
13263    }
13264    pub unsafe fn Cancel(&self) -> windows_core::Result<()> {
13265        unsafe {
13266            (windows_core::Interface::vtable(self).Cancel)(windows_core::Interface::as_raw(self))
13267                .ok()
13268        }
13269    }
13270    pub unsafe fn Pause(&self) -> windows_core::Result<()> {
13271        unsafe {
13272            (windows_core::Interface::vtable(self).Pause)(windows_core::Interface::as_raw(self))
13273                .ok()
13274        }
13275    }
13276    pub unsafe fn Resume(&self) -> windows_core::Result<()> {
13277        unsafe {
13278            (windows_core::Interface::vtable(self).Resume)(windows_core::Interface::as_raw(self))
13279                .ok()
13280        }
13281    }
13282    pub unsafe fn CanResume(&self, canresume: *mut windows_core::BOOL) -> windows_core::Result<()> {
13283        unsafe {
13284            (windows_core::Interface::vtable(self).CanResume)(
13285                windows_core::Interface::as_raw(self),
13286                canresume as _,
13287            )
13288            .ok()
13289        }
13290    }
13291}
13292#[repr(C)]
13293#[doc(hidden)]
13294pub struct ICoreWebView2DownloadOperation_Vtbl {
13295    pub base__: windows_core::IUnknown_Vtbl,
13296    pub add_BytesReceivedChanged: unsafe extern "system" fn(
13297        *mut core::ffi::c_void,
13298        *mut core::ffi::c_void,
13299        *mut i64,
13300    ) -> windows_core::HRESULT,
13301    pub remove_BytesReceivedChanged:
13302        unsafe extern "system" fn(*mut core::ffi::c_void, i64) -> windows_core::HRESULT,
13303    pub add_EstimatedEndTimeChanged: unsafe extern "system" fn(
13304        *mut core::ffi::c_void,
13305        *mut core::ffi::c_void,
13306        *mut i64,
13307    ) -> windows_core::HRESULT,
13308    pub remove_EstimatedEndTimeChanged:
13309        unsafe extern "system" fn(*mut core::ffi::c_void, i64) -> windows_core::HRESULT,
13310    pub add_StateChanged: unsafe extern "system" fn(
13311        *mut core::ffi::c_void,
13312        *mut core::ffi::c_void,
13313        *mut i64,
13314    ) -> windows_core::HRESULT,
13315    pub remove_StateChanged:
13316        unsafe extern "system" fn(*mut core::ffi::c_void, i64) -> windows_core::HRESULT,
13317    pub Uri: unsafe extern "system" fn(
13318        *mut core::ffi::c_void,
13319        *mut windows_core::PWSTR,
13320    ) -> windows_core::HRESULT,
13321    pub ContentDisposition: unsafe extern "system" fn(
13322        *mut core::ffi::c_void,
13323        *mut windows_core::PWSTR,
13324    ) -> windows_core::HRESULT,
13325    pub MimeType: unsafe extern "system" fn(
13326        *mut core::ffi::c_void,
13327        *mut windows_core::PWSTR,
13328    ) -> windows_core::HRESULT,
13329    pub TotalBytesToReceive:
13330        unsafe extern "system" fn(*mut core::ffi::c_void, *mut i64) -> windows_core::HRESULT,
13331    pub BytesReceived:
13332        unsafe extern "system" fn(*mut core::ffi::c_void, *mut i64) -> windows_core::HRESULT,
13333    pub EstimatedEndTime: unsafe extern "system" fn(
13334        *mut core::ffi::c_void,
13335        *mut windows_core::PWSTR,
13336    ) -> windows_core::HRESULT,
13337    pub ResultFilePath: unsafe extern "system" fn(
13338        *mut core::ffi::c_void,
13339        *mut windows_core::PWSTR,
13340    ) -> windows_core::HRESULT,
13341    pub State: unsafe extern "system" fn(
13342        *mut core::ffi::c_void,
13343        *mut COREWEBVIEW2_DOWNLOAD_STATE,
13344    ) -> windows_core::HRESULT,
13345    pub InterruptReason: unsafe extern "system" fn(
13346        *mut core::ffi::c_void,
13347        *mut COREWEBVIEW2_DOWNLOAD_INTERRUPT_REASON,
13348    ) -> windows_core::HRESULT,
13349    pub Cancel: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
13350    pub Pause: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
13351    pub Resume: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
13352    pub CanResume: unsafe extern "system" fn(
13353        *mut core::ffi::c_void,
13354        *mut windows_core::BOOL,
13355    ) -> windows_core::HRESULT,
13356}
13357pub trait ICoreWebView2DownloadOperation_Impl: windows_core::IUnknownImpl {
13358    fn add_BytesReceivedChanged(
13359        &self,
13360        eventhandler: windows_core::Ref<ICoreWebView2BytesReceivedChangedEventHandler>,
13361        token: *mut i64,
13362    ) -> windows_core::Result<()>;
13363    fn remove_BytesReceivedChanged(&self, token: i64) -> windows_core::Result<()>;
13364    fn add_EstimatedEndTimeChanged(
13365        &self,
13366        eventhandler: windows_core::Ref<ICoreWebView2EstimatedEndTimeChangedEventHandler>,
13367        token: *mut i64,
13368    ) -> windows_core::Result<()>;
13369    fn remove_EstimatedEndTimeChanged(&self, token: i64) -> windows_core::Result<()>;
13370    fn add_StateChanged(
13371        &self,
13372        eventhandler: windows_core::Ref<ICoreWebView2StateChangedEventHandler>,
13373        token: *mut i64,
13374    ) -> windows_core::Result<()>;
13375    fn remove_StateChanged(&self, token: i64) -> windows_core::Result<()>;
13376    fn Uri(&self, uri: *mut windows_core::PWSTR) -> windows_core::Result<()>;
13377    fn ContentDisposition(
13378        &self,
13379        contentdisposition: *mut windows_core::PWSTR,
13380    ) -> windows_core::Result<()>;
13381    fn MimeType(&self, mimetype: *mut windows_core::PWSTR) -> windows_core::Result<()>;
13382    fn TotalBytesToReceive(&self, totalbytestoreceive: *mut i64) -> windows_core::Result<()>;
13383    fn BytesReceived(&self, bytesreceived: *mut i64) -> windows_core::Result<()>;
13384    fn EstimatedEndTime(
13385        &self,
13386        estimatedendtime: *mut windows_core::PWSTR,
13387    ) -> windows_core::Result<()>;
13388    fn ResultFilePath(&self, resultfilepath: *mut windows_core::PWSTR) -> windows_core::Result<()>;
13389    fn State(&self, downloadstate: *mut COREWEBVIEW2_DOWNLOAD_STATE) -> windows_core::Result<()>;
13390    fn InterruptReason(
13391        &self,
13392        interruptreason: *mut COREWEBVIEW2_DOWNLOAD_INTERRUPT_REASON,
13393    ) -> windows_core::Result<()>;
13394    fn Cancel(&self) -> windows_core::Result<()>;
13395    fn Pause(&self) -> windows_core::Result<()>;
13396    fn Resume(&self) -> windows_core::Result<()>;
13397    fn CanResume(&self, canresume: *mut windows_core::BOOL) -> windows_core::Result<()>;
13398}
13399impl ICoreWebView2DownloadOperation_Vtbl {
13400    pub const fn new<Identity: ICoreWebView2DownloadOperation_Impl, const OFFSET: isize>() -> Self {
13401        unsafe extern "system" fn add_BytesReceivedChanged<
13402            Identity: ICoreWebView2DownloadOperation_Impl,
13403            const OFFSET: isize,
13404        >(
13405            this: *mut core::ffi::c_void,
13406            eventhandler: *mut core::ffi::c_void,
13407            token: *mut i64,
13408        ) -> windows_core::HRESULT {
13409            unsafe {
13410                let this: &Identity =
13411                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
13412                ICoreWebView2DownloadOperation_Impl::add_BytesReceivedChanged(
13413                    this,
13414                    core::mem::transmute_copy(&eventhandler),
13415                    core::mem::transmute_copy(&token),
13416                )
13417                .into()
13418            }
13419        }
13420        unsafe extern "system" fn remove_BytesReceivedChanged<
13421            Identity: ICoreWebView2DownloadOperation_Impl,
13422            const OFFSET: isize,
13423        >(
13424            this: *mut core::ffi::c_void,
13425            token: i64,
13426        ) -> windows_core::HRESULT {
13427            unsafe {
13428                let this: &Identity =
13429                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
13430                ICoreWebView2DownloadOperation_Impl::remove_BytesReceivedChanged(
13431                    this,
13432                    core::mem::transmute_copy(&token),
13433                )
13434                .into()
13435            }
13436        }
13437        unsafe extern "system" fn add_EstimatedEndTimeChanged<
13438            Identity: ICoreWebView2DownloadOperation_Impl,
13439            const OFFSET: isize,
13440        >(
13441            this: *mut core::ffi::c_void,
13442            eventhandler: *mut core::ffi::c_void,
13443            token: *mut i64,
13444        ) -> windows_core::HRESULT {
13445            unsafe {
13446                let this: &Identity =
13447                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
13448                ICoreWebView2DownloadOperation_Impl::add_EstimatedEndTimeChanged(
13449                    this,
13450                    core::mem::transmute_copy(&eventhandler),
13451                    core::mem::transmute_copy(&token),
13452                )
13453                .into()
13454            }
13455        }
13456        unsafe extern "system" fn remove_EstimatedEndTimeChanged<
13457            Identity: ICoreWebView2DownloadOperation_Impl,
13458            const OFFSET: isize,
13459        >(
13460            this: *mut core::ffi::c_void,
13461            token: i64,
13462        ) -> windows_core::HRESULT {
13463            unsafe {
13464                let this: &Identity =
13465                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
13466                ICoreWebView2DownloadOperation_Impl::remove_EstimatedEndTimeChanged(
13467                    this,
13468                    core::mem::transmute_copy(&token),
13469                )
13470                .into()
13471            }
13472        }
13473        unsafe extern "system" fn add_StateChanged<
13474            Identity: ICoreWebView2DownloadOperation_Impl,
13475            const OFFSET: isize,
13476        >(
13477            this: *mut core::ffi::c_void,
13478            eventhandler: *mut core::ffi::c_void,
13479            token: *mut i64,
13480        ) -> windows_core::HRESULT {
13481            unsafe {
13482                let this: &Identity =
13483                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
13484                ICoreWebView2DownloadOperation_Impl::add_StateChanged(
13485                    this,
13486                    core::mem::transmute_copy(&eventhandler),
13487                    core::mem::transmute_copy(&token),
13488                )
13489                .into()
13490            }
13491        }
13492        unsafe extern "system" fn remove_StateChanged<
13493            Identity: ICoreWebView2DownloadOperation_Impl,
13494            const OFFSET: isize,
13495        >(
13496            this: *mut core::ffi::c_void,
13497            token: i64,
13498        ) -> windows_core::HRESULT {
13499            unsafe {
13500                let this: &Identity =
13501                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
13502                ICoreWebView2DownloadOperation_Impl::remove_StateChanged(
13503                    this,
13504                    core::mem::transmute_copy(&token),
13505                )
13506                .into()
13507            }
13508        }
13509        unsafe extern "system" fn Uri<
13510            Identity: ICoreWebView2DownloadOperation_Impl,
13511            const OFFSET: isize,
13512        >(
13513            this: *mut core::ffi::c_void,
13514            uri: *mut windows_core::PWSTR,
13515        ) -> windows_core::HRESULT {
13516            unsafe {
13517                let this: &Identity =
13518                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
13519                ICoreWebView2DownloadOperation_Impl::Uri(this, core::mem::transmute_copy(&uri))
13520                    .into()
13521            }
13522        }
13523        unsafe extern "system" fn ContentDisposition<
13524            Identity: ICoreWebView2DownloadOperation_Impl,
13525            const OFFSET: isize,
13526        >(
13527            this: *mut core::ffi::c_void,
13528            contentdisposition: *mut windows_core::PWSTR,
13529        ) -> windows_core::HRESULT {
13530            unsafe {
13531                let this: &Identity =
13532                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
13533                ICoreWebView2DownloadOperation_Impl::ContentDisposition(
13534                    this,
13535                    core::mem::transmute_copy(&contentdisposition),
13536                )
13537                .into()
13538            }
13539        }
13540        unsafe extern "system" fn MimeType<
13541            Identity: ICoreWebView2DownloadOperation_Impl,
13542            const OFFSET: isize,
13543        >(
13544            this: *mut core::ffi::c_void,
13545            mimetype: *mut windows_core::PWSTR,
13546        ) -> windows_core::HRESULT {
13547            unsafe {
13548                let this: &Identity =
13549                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
13550                ICoreWebView2DownloadOperation_Impl::MimeType(
13551                    this,
13552                    core::mem::transmute_copy(&mimetype),
13553                )
13554                .into()
13555            }
13556        }
13557        unsafe extern "system" fn TotalBytesToReceive<
13558            Identity: ICoreWebView2DownloadOperation_Impl,
13559            const OFFSET: isize,
13560        >(
13561            this: *mut core::ffi::c_void,
13562            totalbytestoreceive: *mut i64,
13563        ) -> windows_core::HRESULT {
13564            unsafe {
13565                let this: &Identity =
13566                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
13567                ICoreWebView2DownloadOperation_Impl::TotalBytesToReceive(
13568                    this,
13569                    core::mem::transmute_copy(&totalbytestoreceive),
13570                )
13571                .into()
13572            }
13573        }
13574        unsafe extern "system" fn BytesReceived<
13575            Identity: ICoreWebView2DownloadOperation_Impl,
13576            const OFFSET: isize,
13577        >(
13578            this: *mut core::ffi::c_void,
13579            bytesreceived: *mut i64,
13580        ) -> windows_core::HRESULT {
13581            unsafe {
13582                let this: &Identity =
13583                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
13584                ICoreWebView2DownloadOperation_Impl::BytesReceived(
13585                    this,
13586                    core::mem::transmute_copy(&bytesreceived),
13587                )
13588                .into()
13589            }
13590        }
13591        unsafe extern "system" fn EstimatedEndTime<
13592            Identity: ICoreWebView2DownloadOperation_Impl,
13593            const OFFSET: isize,
13594        >(
13595            this: *mut core::ffi::c_void,
13596            estimatedendtime: *mut windows_core::PWSTR,
13597        ) -> windows_core::HRESULT {
13598            unsafe {
13599                let this: &Identity =
13600                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
13601                ICoreWebView2DownloadOperation_Impl::EstimatedEndTime(
13602                    this,
13603                    core::mem::transmute_copy(&estimatedendtime),
13604                )
13605                .into()
13606            }
13607        }
13608        unsafe extern "system" fn ResultFilePath<
13609            Identity: ICoreWebView2DownloadOperation_Impl,
13610            const OFFSET: isize,
13611        >(
13612            this: *mut core::ffi::c_void,
13613            resultfilepath: *mut windows_core::PWSTR,
13614        ) -> windows_core::HRESULT {
13615            unsafe {
13616                let this: &Identity =
13617                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
13618                ICoreWebView2DownloadOperation_Impl::ResultFilePath(
13619                    this,
13620                    core::mem::transmute_copy(&resultfilepath),
13621                )
13622                .into()
13623            }
13624        }
13625        unsafe extern "system" fn State<
13626            Identity: ICoreWebView2DownloadOperation_Impl,
13627            const OFFSET: isize,
13628        >(
13629            this: *mut core::ffi::c_void,
13630            downloadstate: *mut COREWEBVIEW2_DOWNLOAD_STATE,
13631        ) -> windows_core::HRESULT {
13632            unsafe {
13633                let this: &Identity =
13634                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
13635                ICoreWebView2DownloadOperation_Impl::State(
13636                    this,
13637                    core::mem::transmute_copy(&downloadstate),
13638                )
13639                .into()
13640            }
13641        }
13642        unsafe extern "system" fn InterruptReason<
13643            Identity: ICoreWebView2DownloadOperation_Impl,
13644            const OFFSET: isize,
13645        >(
13646            this: *mut core::ffi::c_void,
13647            interruptreason: *mut COREWEBVIEW2_DOWNLOAD_INTERRUPT_REASON,
13648        ) -> windows_core::HRESULT {
13649            unsafe {
13650                let this: &Identity =
13651                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
13652                ICoreWebView2DownloadOperation_Impl::InterruptReason(
13653                    this,
13654                    core::mem::transmute_copy(&interruptreason),
13655                )
13656                .into()
13657            }
13658        }
13659        unsafe extern "system" fn Cancel<
13660            Identity: ICoreWebView2DownloadOperation_Impl,
13661            const OFFSET: isize,
13662        >(
13663            this: *mut core::ffi::c_void,
13664        ) -> windows_core::HRESULT {
13665            unsafe {
13666                let this: &Identity =
13667                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
13668                ICoreWebView2DownloadOperation_Impl::Cancel(this).into()
13669            }
13670        }
13671        unsafe extern "system" fn Pause<
13672            Identity: ICoreWebView2DownloadOperation_Impl,
13673            const OFFSET: isize,
13674        >(
13675            this: *mut core::ffi::c_void,
13676        ) -> windows_core::HRESULT {
13677            unsafe {
13678                let this: &Identity =
13679                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
13680                ICoreWebView2DownloadOperation_Impl::Pause(this).into()
13681            }
13682        }
13683        unsafe extern "system" fn Resume<
13684            Identity: ICoreWebView2DownloadOperation_Impl,
13685            const OFFSET: isize,
13686        >(
13687            this: *mut core::ffi::c_void,
13688        ) -> windows_core::HRESULT {
13689            unsafe {
13690                let this: &Identity =
13691                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
13692                ICoreWebView2DownloadOperation_Impl::Resume(this).into()
13693            }
13694        }
13695        unsafe extern "system" fn CanResume<
13696            Identity: ICoreWebView2DownloadOperation_Impl,
13697            const OFFSET: isize,
13698        >(
13699            this: *mut core::ffi::c_void,
13700            canresume: *mut windows_core::BOOL,
13701        ) -> windows_core::HRESULT {
13702            unsafe {
13703                let this: &Identity =
13704                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
13705                ICoreWebView2DownloadOperation_Impl::CanResume(
13706                    this,
13707                    core::mem::transmute_copy(&canresume),
13708                )
13709                .into()
13710            }
13711        }
13712        Self {
13713            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
13714            add_BytesReceivedChanged: add_BytesReceivedChanged::<Identity, OFFSET>,
13715            remove_BytesReceivedChanged: remove_BytesReceivedChanged::<Identity, OFFSET>,
13716            add_EstimatedEndTimeChanged: add_EstimatedEndTimeChanged::<Identity, OFFSET>,
13717            remove_EstimatedEndTimeChanged: remove_EstimatedEndTimeChanged::<Identity, OFFSET>,
13718            add_StateChanged: add_StateChanged::<Identity, OFFSET>,
13719            remove_StateChanged: remove_StateChanged::<Identity, OFFSET>,
13720            Uri: Uri::<Identity, OFFSET>,
13721            ContentDisposition: ContentDisposition::<Identity, OFFSET>,
13722            MimeType: MimeType::<Identity, OFFSET>,
13723            TotalBytesToReceive: TotalBytesToReceive::<Identity, OFFSET>,
13724            BytesReceived: BytesReceived::<Identity, OFFSET>,
13725            EstimatedEndTime: EstimatedEndTime::<Identity, OFFSET>,
13726            ResultFilePath: ResultFilePath::<Identity, OFFSET>,
13727            State: State::<Identity, OFFSET>,
13728            InterruptReason: InterruptReason::<Identity, OFFSET>,
13729            Cancel: Cancel::<Identity, OFFSET>,
13730            Pause: Pause::<Identity, OFFSET>,
13731            Resume: Resume::<Identity, OFFSET>,
13732            CanResume: CanResume::<Identity, OFFSET>,
13733        }
13734    }
13735    pub fn matches(iid: &windows_core::GUID) -> bool {
13736        iid == &<ICoreWebView2DownloadOperation as windows_core::Interface>::IID
13737    }
13738}
13739impl windows_core::RuntimeName for ICoreWebView2DownloadOperation {}
13740windows_core::imp::define_interface!(
13741    ICoreWebView2DownloadStartingEventArgs,
13742    ICoreWebView2DownloadStartingEventArgs_Vtbl,
13743    0xe99bbe21_43e9_4544_a732_282764eafa60
13744);
13745windows_core::imp::interface_hierarchy!(
13746    ICoreWebView2DownloadStartingEventArgs,
13747    windows_core::IUnknown
13748);
13749impl ICoreWebView2DownloadStartingEventArgs {
13750    pub unsafe fn DownloadOperation(&self) -> windows_core::Result<ICoreWebView2DownloadOperation> {
13751        unsafe {
13752            let mut result__ = core::mem::zeroed();
13753            (windows_core::Interface::vtable(self).DownloadOperation)(
13754                windows_core::Interface::as_raw(self),
13755                &mut result__,
13756            )
13757            .and_then(|| windows_core::Type::from_abi(result__))
13758        }
13759    }
13760    pub unsafe fn Cancel(&self, cancel: *mut windows_core::BOOL) -> windows_core::Result<()> {
13761        unsafe {
13762            (windows_core::Interface::vtable(self).Cancel)(
13763                windows_core::Interface::as_raw(self),
13764                cancel as _,
13765            )
13766            .ok()
13767        }
13768    }
13769    pub unsafe fn SetCancel(&self, cancel: bool) -> windows_core::Result<()> {
13770        unsafe {
13771            (windows_core::Interface::vtable(self).SetCancel)(
13772                windows_core::Interface::as_raw(self),
13773                cancel.into(),
13774            )
13775            .ok()
13776        }
13777    }
13778    pub unsafe fn ResultFilePath(
13779        &self,
13780        resultfilepath: *mut windows_core::PWSTR,
13781    ) -> windows_core::Result<()> {
13782        unsafe {
13783            (windows_core::Interface::vtable(self).ResultFilePath)(
13784                windows_core::Interface::as_raw(self),
13785                resultfilepath as _,
13786            )
13787            .ok()
13788        }
13789    }
13790    pub unsafe fn SetResultFilePath<P0>(&self, resultfilepath: P0) -> windows_core::Result<()>
13791    where
13792        P0: windows_core::Param<windows_core::PCWSTR>,
13793    {
13794        unsafe {
13795            (windows_core::Interface::vtable(self).SetResultFilePath)(
13796                windows_core::Interface::as_raw(self),
13797                resultfilepath.param().abi(),
13798            )
13799            .ok()
13800        }
13801    }
13802    pub unsafe fn Handled(&self, handled: *mut windows_core::BOOL) -> windows_core::Result<()> {
13803        unsafe {
13804            (windows_core::Interface::vtable(self).Handled)(
13805                windows_core::Interface::as_raw(self),
13806                handled as _,
13807            )
13808            .ok()
13809        }
13810    }
13811    pub unsafe fn SetHandled(&self, handled: bool) -> windows_core::Result<()> {
13812        unsafe {
13813            (windows_core::Interface::vtable(self).SetHandled)(
13814                windows_core::Interface::as_raw(self),
13815                handled.into(),
13816            )
13817            .ok()
13818        }
13819    }
13820    pub unsafe fn GetDeferral(&self) -> windows_core::Result<ICoreWebView2Deferral> {
13821        unsafe {
13822            let mut result__ = core::mem::zeroed();
13823            (windows_core::Interface::vtable(self).GetDeferral)(
13824                windows_core::Interface::as_raw(self),
13825                &mut result__,
13826            )
13827            .and_then(|| windows_core::Type::from_abi(result__))
13828        }
13829    }
13830}
13831#[repr(C)]
13832#[doc(hidden)]
13833pub struct ICoreWebView2DownloadStartingEventArgs_Vtbl {
13834    pub base__: windows_core::IUnknown_Vtbl,
13835    pub DownloadOperation: unsafe extern "system" fn(
13836        *mut core::ffi::c_void,
13837        *mut *mut core::ffi::c_void,
13838    ) -> windows_core::HRESULT,
13839    pub Cancel: unsafe extern "system" fn(
13840        *mut core::ffi::c_void,
13841        *mut windows_core::BOOL,
13842    ) -> windows_core::HRESULT,
13843    pub SetCancel: unsafe extern "system" fn(
13844        *mut core::ffi::c_void,
13845        windows_core::BOOL,
13846    ) -> windows_core::HRESULT,
13847    pub ResultFilePath: unsafe extern "system" fn(
13848        *mut core::ffi::c_void,
13849        *mut windows_core::PWSTR,
13850    ) -> windows_core::HRESULT,
13851    pub SetResultFilePath: unsafe extern "system" fn(
13852        *mut core::ffi::c_void,
13853        windows_core::PCWSTR,
13854    ) -> windows_core::HRESULT,
13855    pub Handled: unsafe extern "system" fn(
13856        *mut core::ffi::c_void,
13857        *mut windows_core::BOOL,
13858    ) -> windows_core::HRESULT,
13859    pub SetHandled: unsafe extern "system" fn(
13860        *mut core::ffi::c_void,
13861        windows_core::BOOL,
13862    ) -> windows_core::HRESULT,
13863    pub GetDeferral: unsafe extern "system" fn(
13864        *mut core::ffi::c_void,
13865        *mut *mut core::ffi::c_void,
13866    ) -> windows_core::HRESULT,
13867}
13868pub trait ICoreWebView2DownloadStartingEventArgs_Impl: windows_core::IUnknownImpl {
13869    fn DownloadOperation(&self) -> windows_core::Result<ICoreWebView2DownloadOperation>;
13870    fn Cancel(&self, cancel: *mut windows_core::BOOL) -> windows_core::Result<()>;
13871    fn SetCancel(&self, cancel: windows_core::BOOL) -> windows_core::Result<()>;
13872    fn ResultFilePath(&self, resultfilepath: *mut windows_core::PWSTR) -> windows_core::Result<()>;
13873    fn SetResultFilePath(&self, resultfilepath: &windows_core::PCWSTR) -> windows_core::Result<()>;
13874    fn Handled(&self, handled: *mut windows_core::BOOL) -> windows_core::Result<()>;
13875    fn SetHandled(&self, handled: windows_core::BOOL) -> windows_core::Result<()>;
13876    fn GetDeferral(&self) -> windows_core::Result<ICoreWebView2Deferral>;
13877}
13878impl ICoreWebView2DownloadStartingEventArgs_Vtbl {
13879    pub const fn new<Identity: ICoreWebView2DownloadStartingEventArgs_Impl, const OFFSET: isize>(
13880    ) -> Self {
13881        unsafe extern "system" fn DownloadOperation<
13882            Identity: ICoreWebView2DownloadStartingEventArgs_Impl,
13883            const OFFSET: isize,
13884        >(
13885            this: *mut core::ffi::c_void,
13886            downloadoperation: *mut *mut core::ffi::c_void,
13887        ) -> windows_core::HRESULT {
13888            unsafe {
13889                let this: &Identity =
13890                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
13891                match ICoreWebView2DownloadStartingEventArgs_Impl::DownloadOperation(this) {
13892                    Ok(ok__) => {
13893                        downloadoperation.write(core::mem::transmute(ok__));
13894                        windows_core::HRESULT(0)
13895                    }
13896                    Err(err) => err.into(),
13897                }
13898            }
13899        }
13900        unsafe extern "system" fn Cancel<
13901            Identity: ICoreWebView2DownloadStartingEventArgs_Impl,
13902            const OFFSET: isize,
13903        >(
13904            this: *mut core::ffi::c_void,
13905            cancel: *mut windows_core::BOOL,
13906        ) -> windows_core::HRESULT {
13907            unsafe {
13908                let this: &Identity =
13909                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
13910                ICoreWebView2DownloadStartingEventArgs_Impl::Cancel(
13911                    this,
13912                    core::mem::transmute_copy(&cancel),
13913                )
13914                .into()
13915            }
13916        }
13917        unsafe extern "system" fn SetCancel<
13918            Identity: ICoreWebView2DownloadStartingEventArgs_Impl,
13919            const OFFSET: isize,
13920        >(
13921            this: *mut core::ffi::c_void,
13922            cancel: windows_core::BOOL,
13923        ) -> windows_core::HRESULT {
13924            unsafe {
13925                let this: &Identity =
13926                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
13927                ICoreWebView2DownloadStartingEventArgs_Impl::SetCancel(
13928                    this,
13929                    core::mem::transmute_copy(&cancel),
13930                )
13931                .into()
13932            }
13933        }
13934        unsafe extern "system" fn ResultFilePath<
13935            Identity: ICoreWebView2DownloadStartingEventArgs_Impl,
13936            const OFFSET: isize,
13937        >(
13938            this: *mut core::ffi::c_void,
13939            resultfilepath: *mut windows_core::PWSTR,
13940        ) -> windows_core::HRESULT {
13941            unsafe {
13942                let this: &Identity =
13943                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
13944                ICoreWebView2DownloadStartingEventArgs_Impl::ResultFilePath(
13945                    this,
13946                    core::mem::transmute_copy(&resultfilepath),
13947                )
13948                .into()
13949            }
13950        }
13951        unsafe extern "system" fn SetResultFilePath<
13952            Identity: ICoreWebView2DownloadStartingEventArgs_Impl,
13953            const OFFSET: isize,
13954        >(
13955            this: *mut core::ffi::c_void,
13956            resultfilepath: windows_core::PCWSTR,
13957        ) -> windows_core::HRESULT {
13958            unsafe {
13959                let this: &Identity =
13960                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
13961                ICoreWebView2DownloadStartingEventArgs_Impl::SetResultFilePath(
13962                    this,
13963                    core::mem::transmute(&resultfilepath),
13964                )
13965                .into()
13966            }
13967        }
13968        unsafe extern "system" fn Handled<
13969            Identity: ICoreWebView2DownloadStartingEventArgs_Impl,
13970            const OFFSET: isize,
13971        >(
13972            this: *mut core::ffi::c_void,
13973            handled: *mut windows_core::BOOL,
13974        ) -> windows_core::HRESULT {
13975            unsafe {
13976                let this: &Identity =
13977                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
13978                ICoreWebView2DownloadStartingEventArgs_Impl::Handled(
13979                    this,
13980                    core::mem::transmute_copy(&handled),
13981                )
13982                .into()
13983            }
13984        }
13985        unsafe extern "system" fn SetHandled<
13986            Identity: ICoreWebView2DownloadStartingEventArgs_Impl,
13987            const OFFSET: isize,
13988        >(
13989            this: *mut core::ffi::c_void,
13990            handled: windows_core::BOOL,
13991        ) -> windows_core::HRESULT {
13992            unsafe {
13993                let this: &Identity =
13994                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
13995                ICoreWebView2DownloadStartingEventArgs_Impl::SetHandled(
13996                    this,
13997                    core::mem::transmute_copy(&handled),
13998                )
13999                .into()
14000            }
14001        }
14002        unsafe extern "system" fn GetDeferral<
14003            Identity: ICoreWebView2DownloadStartingEventArgs_Impl,
14004            const OFFSET: isize,
14005        >(
14006            this: *mut core::ffi::c_void,
14007            deferral: *mut *mut core::ffi::c_void,
14008        ) -> windows_core::HRESULT {
14009            unsafe {
14010                let this: &Identity =
14011                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
14012                match ICoreWebView2DownloadStartingEventArgs_Impl::GetDeferral(this) {
14013                    Ok(ok__) => {
14014                        deferral.write(core::mem::transmute(ok__));
14015                        windows_core::HRESULT(0)
14016                    }
14017                    Err(err) => err.into(),
14018                }
14019            }
14020        }
14021        Self {
14022            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
14023            DownloadOperation: DownloadOperation::<Identity, OFFSET>,
14024            Cancel: Cancel::<Identity, OFFSET>,
14025            SetCancel: SetCancel::<Identity, OFFSET>,
14026            ResultFilePath: ResultFilePath::<Identity, OFFSET>,
14027            SetResultFilePath: SetResultFilePath::<Identity, OFFSET>,
14028            Handled: Handled::<Identity, OFFSET>,
14029            SetHandled: SetHandled::<Identity, OFFSET>,
14030            GetDeferral: GetDeferral::<Identity, OFFSET>,
14031        }
14032    }
14033    pub fn matches(iid: &windows_core::GUID) -> bool {
14034        iid == &<ICoreWebView2DownloadStartingEventArgs as windows_core::Interface>::IID
14035    }
14036}
14037impl windows_core::RuntimeName for ICoreWebView2DownloadStartingEventArgs {}
14038windows_core::imp::define_interface!(
14039    ICoreWebView2DownloadStartingEventHandler,
14040    ICoreWebView2DownloadStartingEventHandler_Vtbl,
14041    0xefedc989_c396_41ca_83f7_07f845a55724
14042);
14043windows_core::imp::interface_hierarchy!(
14044    ICoreWebView2DownloadStartingEventHandler,
14045    windows_core::IUnknown
14046);
14047impl ICoreWebView2DownloadStartingEventHandler {
14048    pub unsafe fn Invoke<P0, P1>(&self, sender: P0, args: P1) -> windows_core::Result<()>
14049    where
14050        P0: windows_core::Param<ICoreWebView2>,
14051        P1: windows_core::Param<ICoreWebView2DownloadStartingEventArgs>,
14052    {
14053        unsafe {
14054            (windows_core::Interface::vtable(self).Invoke)(
14055                windows_core::Interface::as_raw(self),
14056                sender.param().abi(),
14057                args.param().abi(),
14058            )
14059            .ok()
14060        }
14061    }
14062}
14063#[repr(C)]
14064#[doc(hidden)]
14065pub struct ICoreWebView2DownloadStartingEventHandler_Vtbl {
14066    pub base__: windows_core::IUnknown_Vtbl,
14067    pub Invoke: unsafe extern "system" fn(
14068        *mut core::ffi::c_void,
14069        *mut core::ffi::c_void,
14070        *mut core::ffi::c_void,
14071    ) -> windows_core::HRESULT,
14072}
14073pub trait ICoreWebView2DownloadStartingEventHandler_Impl: windows_core::IUnknownImpl {
14074    fn Invoke(
14075        &self,
14076        sender: windows_core::Ref<ICoreWebView2>,
14077        args: windows_core::Ref<ICoreWebView2DownloadStartingEventArgs>,
14078    ) -> windows_core::Result<()>;
14079}
14080impl ICoreWebView2DownloadStartingEventHandler_Vtbl {
14081    pub const fn new<
14082        Identity: ICoreWebView2DownloadStartingEventHandler_Impl,
14083        const OFFSET: isize,
14084    >() -> Self {
14085        unsafe extern "system" fn Invoke<
14086            Identity: ICoreWebView2DownloadStartingEventHandler_Impl,
14087            const OFFSET: isize,
14088        >(
14089            this: *mut core::ffi::c_void,
14090            sender: *mut core::ffi::c_void,
14091            args: *mut core::ffi::c_void,
14092        ) -> windows_core::HRESULT {
14093            unsafe {
14094                let this: &Identity =
14095                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
14096                ICoreWebView2DownloadStartingEventHandler_Impl::Invoke(
14097                    this,
14098                    core::mem::transmute_copy(&sender),
14099                    core::mem::transmute_copy(&args),
14100                )
14101                .into()
14102            }
14103        }
14104        Self {
14105            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
14106            Invoke: Invoke::<Identity, OFFSET>,
14107        }
14108    }
14109    pub fn matches(iid: &windows_core::GUID) -> bool {
14110        iid == &<ICoreWebView2DownloadStartingEventHandler as windows_core::Interface>::IID
14111    }
14112}
14113impl windows_core::RuntimeName for ICoreWebView2DownloadStartingEventHandler {}
14114windows_core::imp::define_interface!(
14115    ICoreWebView2DragStartingEventArgs,
14116    ICoreWebView2DragStartingEventArgs_Vtbl,
14117    0x8b8d9c7e_2f1a_4e6b_9d5a_3c8f7b9e1a2d
14118);
14119windows_core::imp::interface_hierarchy!(ICoreWebView2DragStartingEventArgs, windows_core::IUnknown);
14120impl ICoreWebView2DragStartingEventArgs {
14121    pub unsafe fn AllowedDropEffects(&self, value: *mut u32) -> windows_core::Result<()> {
14122        unsafe {
14123            (windows_core::Interface::vtable(self).AllowedDropEffects)(
14124                windows_core::Interface::as_raw(self),
14125                value as _,
14126            )
14127            .ok()
14128        }
14129    }
14130    pub unsafe fn Data(&self) -> windows_core::Result<windows::Win32::System::Com::IDataObject> {
14131        unsafe {
14132            let mut result__ = core::mem::zeroed();
14133            (windows_core::Interface::vtable(self).Data)(
14134                windows_core::Interface::as_raw(self),
14135                &mut result__,
14136            )
14137            .and_then(|| windows_core::Type::from_abi(result__))
14138        }
14139    }
14140    pub unsafe fn Handled(&self, value: *mut windows_core::BOOL) -> windows_core::Result<()> {
14141        unsafe {
14142            (windows_core::Interface::vtable(self).Handled)(
14143                windows_core::Interface::as_raw(self),
14144                value as _,
14145            )
14146            .ok()
14147        }
14148    }
14149    pub unsafe fn SetHandled(&self, value: bool) -> windows_core::Result<()> {
14150        unsafe {
14151            (windows_core::Interface::vtable(self).SetHandled)(
14152                windows_core::Interface::as_raw(self),
14153                value.into(),
14154            )
14155            .ok()
14156        }
14157    }
14158    pub unsafe fn Position(
14159        &self,
14160        value: *mut windows::Win32::Foundation::POINT,
14161    ) -> windows_core::Result<()> {
14162        unsafe {
14163            (windows_core::Interface::vtable(self).Position)(
14164                windows_core::Interface::as_raw(self),
14165                value as _,
14166            )
14167            .ok()
14168        }
14169    }
14170    pub unsafe fn GetDeferral(&self) -> windows_core::Result<ICoreWebView2Deferral> {
14171        unsafe {
14172            let mut result__ = core::mem::zeroed();
14173            (windows_core::Interface::vtable(self).GetDeferral)(
14174                windows_core::Interface::as_raw(self),
14175                &mut result__,
14176            )
14177            .and_then(|| windows_core::Type::from_abi(result__))
14178        }
14179    }
14180}
14181#[repr(C)]
14182#[doc(hidden)]
14183pub struct ICoreWebView2DragStartingEventArgs_Vtbl {
14184    pub base__: windows_core::IUnknown_Vtbl,
14185    pub AllowedDropEffects:
14186        unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
14187    pub Data: unsafe extern "system" fn(
14188        *mut core::ffi::c_void,
14189        *mut *mut core::ffi::c_void,
14190    ) -> windows_core::HRESULT,
14191    pub Handled: unsafe extern "system" fn(
14192        *mut core::ffi::c_void,
14193        *mut windows_core::BOOL,
14194    ) -> windows_core::HRESULT,
14195    pub SetHandled: unsafe extern "system" fn(
14196        *mut core::ffi::c_void,
14197        windows_core::BOOL,
14198    ) -> windows_core::HRESULT,
14199    pub Position: unsafe extern "system" fn(
14200        *mut core::ffi::c_void,
14201        *mut windows::Win32::Foundation::POINT,
14202    ) -> windows_core::HRESULT,
14203    pub GetDeferral: unsafe extern "system" fn(
14204        *mut core::ffi::c_void,
14205        *mut *mut core::ffi::c_void,
14206    ) -> windows_core::HRESULT,
14207}
14208pub trait ICoreWebView2DragStartingEventArgs_Impl: windows_core::IUnknownImpl {
14209    fn AllowedDropEffects(&self, value: *mut u32) -> windows_core::Result<()>;
14210    fn Data(&self) -> windows_core::Result<windows::Win32::System::Com::IDataObject>;
14211    fn Handled(&self, value: *mut windows_core::BOOL) -> windows_core::Result<()>;
14212    fn SetHandled(&self, value: windows_core::BOOL) -> windows_core::Result<()>;
14213    fn Position(&self, value: *mut windows::Win32::Foundation::POINT) -> windows_core::Result<()>;
14214    fn GetDeferral(&self) -> windows_core::Result<ICoreWebView2Deferral>;
14215}
14216impl ICoreWebView2DragStartingEventArgs_Vtbl {
14217    pub const fn new<Identity: ICoreWebView2DragStartingEventArgs_Impl, const OFFSET: isize>(
14218    ) -> Self {
14219        unsafe extern "system" fn AllowedDropEffects<
14220            Identity: ICoreWebView2DragStartingEventArgs_Impl,
14221            const OFFSET: isize,
14222        >(
14223            this: *mut core::ffi::c_void,
14224            value: *mut u32,
14225        ) -> windows_core::HRESULT {
14226            unsafe {
14227                let this: &Identity =
14228                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
14229                ICoreWebView2DragStartingEventArgs_Impl::AllowedDropEffects(
14230                    this,
14231                    core::mem::transmute_copy(&value),
14232                )
14233                .into()
14234            }
14235        }
14236        unsafe extern "system" fn Data<
14237            Identity: ICoreWebView2DragStartingEventArgs_Impl,
14238            const OFFSET: isize,
14239        >(
14240            this: *mut core::ffi::c_void,
14241            value: *mut *mut core::ffi::c_void,
14242        ) -> windows_core::HRESULT {
14243            unsafe {
14244                let this: &Identity =
14245                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
14246                match ICoreWebView2DragStartingEventArgs_Impl::Data(this) {
14247                    Ok(ok__) => {
14248                        value.write(core::mem::transmute(ok__));
14249                        windows_core::HRESULT(0)
14250                    }
14251                    Err(err) => err.into(),
14252                }
14253            }
14254        }
14255        unsafe extern "system" fn Handled<
14256            Identity: ICoreWebView2DragStartingEventArgs_Impl,
14257            const OFFSET: isize,
14258        >(
14259            this: *mut core::ffi::c_void,
14260            value: *mut windows_core::BOOL,
14261        ) -> windows_core::HRESULT {
14262            unsafe {
14263                let this: &Identity =
14264                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
14265                ICoreWebView2DragStartingEventArgs_Impl::Handled(
14266                    this,
14267                    core::mem::transmute_copy(&value),
14268                )
14269                .into()
14270            }
14271        }
14272        unsafe extern "system" fn SetHandled<
14273            Identity: ICoreWebView2DragStartingEventArgs_Impl,
14274            const OFFSET: isize,
14275        >(
14276            this: *mut core::ffi::c_void,
14277            value: windows_core::BOOL,
14278        ) -> windows_core::HRESULT {
14279            unsafe {
14280                let this: &Identity =
14281                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
14282                ICoreWebView2DragStartingEventArgs_Impl::SetHandled(
14283                    this,
14284                    core::mem::transmute_copy(&value),
14285                )
14286                .into()
14287            }
14288        }
14289        unsafe extern "system" fn Position<
14290            Identity: ICoreWebView2DragStartingEventArgs_Impl,
14291            const OFFSET: isize,
14292        >(
14293            this: *mut core::ffi::c_void,
14294            value: *mut windows::Win32::Foundation::POINT,
14295        ) -> windows_core::HRESULT {
14296            unsafe {
14297                let this: &Identity =
14298                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
14299                ICoreWebView2DragStartingEventArgs_Impl::Position(
14300                    this,
14301                    core::mem::transmute_copy(&value),
14302                )
14303                .into()
14304            }
14305        }
14306        unsafe extern "system" fn GetDeferral<
14307            Identity: ICoreWebView2DragStartingEventArgs_Impl,
14308            const OFFSET: isize,
14309        >(
14310            this: *mut core::ffi::c_void,
14311            value: *mut *mut core::ffi::c_void,
14312        ) -> windows_core::HRESULT {
14313            unsafe {
14314                let this: &Identity =
14315                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
14316                match ICoreWebView2DragStartingEventArgs_Impl::GetDeferral(this) {
14317                    Ok(ok__) => {
14318                        value.write(core::mem::transmute(ok__));
14319                        windows_core::HRESULT(0)
14320                    }
14321                    Err(err) => err.into(),
14322                }
14323            }
14324        }
14325        Self {
14326            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
14327            AllowedDropEffects: AllowedDropEffects::<Identity, OFFSET>,
14328            Data: Data::<Identity, OFFSET>,
14329            Handled: Handled::<Identity, OFFSET>,
14330            SetHandled: SetHandled::<Identity, OFFSET>,
14331            Position: Position::<Identity, OFFSET>,
14332            GetDeferral: GetDeferral::<Identity, OFFSET>,
14333        }
14334    }
14335    pub fn matches(iid: &windows_core::GUID) -> bool {
14336        iid == &<ICoreWebView2DragStartingEventArgs as windows_core::Interface>::IID
14337    }
14338}
14339impl windows_core::RuntimeName for ICoreWebView2DragStartingEventArgs {}
14340windows_core::imp::define_interface!(
14341    ICoreWebView2DragStartingEventHandler,
14342    ICoreWebView2DragStartingEventHandler_Vtbl,
14343    0x3b149321_83c3_5d1f_b03f_a42899bc1c15
14344);
14345windows_core::imp::interface_hierarchy!(
14346    ICoreWebView2DragStartingEventHandler,
14347    windows_core::IUnknown
14348);
14349impl ICoreWebView2DragStartingEventHandler {
14350    pub unsafe fn Invoke<P0, P1>(&self, sender: P0, args: P1) -> windows_core::Result<()>
14351    where
14352        P0: windows_core::Param<ICoreWebView2CompositionController>,
14353        P1: windows_core::Param<ICoreWebView2DragStartingEventArgs>,
14354    {
14355        unsafe {
14356            (windows_core::Interface::vtable(self).Invoke)(
14357                windows_core::Interface::as_raw(self),
14358                sender.param().abi(),
14359                args.param().abi(),
14360            )
14361            .ok()
14362        }
14363    }
14364}
14365#[repr(C)]
14366#[doc(hidden)]
14367pub struct ICoreWebView2DragStartingEventHandler_Vtbl {
14368    pub base__: windows_core::IUnknown_Vtbl,
14369    pub Invoke: unsafe extern "system" fn(
14370        *mut core::ffi::c_void,
14371        *mut core::ffi::c_void,
14372        *mut core::ffi::c_void,
14373    ) -> windows_core::HRESULT,
14374}
14375pub trait ICoreWebView2DragStartingEventHandler_Impl: windows_core::IUnknownImpl {
14376    fn Invoke(
14377        &self,
14378        sender: windows_core::Ref<ICoreWebView2CompositionController>,
14379        args: windows_core::Ref<ICoreWebView2DragStartingEventArgs>,
14380    ) -> windows_core::Result<()>;
14381}
14382impl ICoreWebView2DragStartingEventHandler_Vtbl {
14383    pub const fn new<Identity: ICoreWebView2DragStartingEventHandler_Impl, const OFFSET: isize>(
14384    ) -> Self {
14385        unsafe extern "system" fn Invoke<
14386            Identity: ICoreWebView2DragStartingEventHandler_Impl,
14387            const OFFSET: isize,
14388        >(
14389            this: *mut core::ffi::c_void,
14390            sender: *mut core::ffi::c_void,
14391            args: *mut core::ffi::c_void,
14392        ) -> windows_core::HRESULT {
14393            unsafe {
14394                let this: &Identity =
14395                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
14396                ICoreWebView2DragStartingEventHandler_Impl::Invoke(
14397                    this,
14398                    core::mem::transmute_copy(&sender),
14399                    core::mem::transmute_copy(&args),
14400                )
14401                .into()
14402            }
14403        }
14404        Self {
14405            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
14406            Invoke: Invoke::<Identity, OFFSET>,
14407        }
14408    }
14409    pub fn matches(iid: &windows_core::GUID) -> bool {
14410        iid == &<ICoreWebView2DragStartingEventHandler as windows_core::Interface>::IID
14411    }
14412}
14413impl windows_core::RuntimeName for ICoreWebView2DragStartingEventHandler {}
14414windows_core::imp::define_interface!(
14415    ICoreWebView2Environment,
14416    ICoreWebView2Environment_Vtbl,
14417    0xb96d755e_0319_4e92_a296_23436f46a1fc
14418);
14419windows_core::imp::interface_hierarchy!(ICoreWebView2Environment, windows_core::IUnknown);
14420impl ICoreWebView2Environment {
14421    pub unsafe fn CreateCoreWebView2Controller<P1>(
14422        &self,
14423        parentwindow: windows::Win32::Foundation::HWND,
14424        handler: P1,
14425    ) -> windows_core::Result<()>
14426    where
14427        P1: windows_core::Param<ICoreWebView2CreateCoreWebView2ControllerCompletedHandler>,
14428    {
14429        unsafe {
14430            (windows_core::Interface::vtable(self).CreateCoreWebView2Controller)(
14431                windows_core::Interface::as_raw(self),
14432                parentwindow,
14433                handler.param().abi(),
14434            )
14435            .ok()
14436        }
14437    }
14438    pub unsafe fn CreateWebResourceResponse<P0, P2, P3>(
14439        &self,
14440        content: P0,
14441        statuscode: i32,
14442        reasonphrase: P2,
14443        headers: P3,
14444    ) -> windows_core::Result<ICoreWebView2WebResourceResponse>
14445    where
14446        P0: windows_core::Param<windows::Win32::System::Com::IStream>,
14447        P2: windows_core::Param<windows_core::PCWSTR>,
14448        P3: windows_core::Param<windows_core::PCWSTR>,
14449    {
14450        unsafe {
14451            let mut result__ = core::mem::zeroed();
14452            (windows_core::Interface::vtable(self).CreateWebResourceResponse)(
14453                windows_core::Interface::as_raw(self),
14454                content.param().abi(),
14455                statuscode,
14456                reasonphrase.param().abi(),
14457                headers.param().abi(),
14458                &mut result__,
14459            )
14460            .and_then(|| windows_core::Type::from_abi(result__))
14461        }
14462    }
14463    pub unsafe fn BrowserVersionString(
14464        &self,
14465        versioninfo: *mut windows_core::PWSTR,
14466    ) -> windows_core::Result<()> {
14467        unsafe {
14468            (windows_core::Interface::vtable(self).BrowserVersionString)(
14469                windows_core::Interface::as_raw(self),
14470                versioninfo as _,
14471            )
14472            .ok()
14473        }
14474    }
14475    pub unsafe fn add_NewBrowserVersionAvailable<P0>(
14476        &self,
14477        eventhandler: P0,
14478        token: *mut i64,
14479    ) -> windows_core::Result<()>
14480    where
14481        P0: windows_core::Param<ICoreWebView2NewBrowserVersionAvailableEventHandler>,
14482    {
14483        unsafe {
14484            (windows_core::Interface::vtable(self).add_NewBrowserVersionAvailable)(
14485                windows_core::Interface::as_raw(self),
14486                eventhandler.param().abi(),
14487                token as _,
14488            )
14489            .ok()
14490        }
14491    }
14492    pub unsafe fn remove_NewBrowserVersionAvailable(&self, token: i64) -> windows_core::Result<()> {
14493        unsafe {
14494            (windows_core::Interface::vtable(self).remove_NewBrowserVersionAvailable)(
14495                windows_core::Interface::as_raw(self),
14496                token,
14497            )
14498            .ok()
14499        }
14500    }
14501}
14502#[repr(C)]
14503#[doc(hidden)]
14504pub struct ICoreWebView2Environment_Vtbl {
14505    pub base__: windows_core::IUnknown_Vtbl,
14506    pub CreateCoreWebView2Controller: unsafe extern "system" fn(
14507        *mut core::ffi::c_void,
14508        windows::Win32::Foundation::HWND,
14509        *mut core::ffi::c_void,
14510    ) -> windows_core::HRESULT,
14511    pub CreateWebResourceResponse: unsafe extern "system" fn(
14512        *mut core::ffi::c_void,
14513        *mut core::ffi::c_void,
14514        i32,
14515        windows_core::PCWSTR,
14516        windows_core::PCWSTR,
14517        *mut *mut core::ffi::c_void,
14518    ) -> windows_core::HRESULT,
14519    pub BrowserVersionString: unsafe extern "system" fn(
14520        *mut core::ffi::c_void,
14521        *mut windows_core::PWSTR,
14522    ) -> windows_core::HRESULT,
14523    pub add_NewBrowserVersionAvailable: unsafe extern "system" fn(
14524        *mut core::ffi::c_void,
14525        *mut core::ffi::c_void,
14526        *mut i64,
14527    ) -> windows_core::HRESULT,
14528    pub remove_NewBrowserVersionAvailable:
14529        unsafe extern "system" fn(*mut core::ffi::c_void, i64) -> windows_core::HRESULT,
14530}
14531pub trait ICoreWebView2Environment_Impl: windows_core::IUnknownImpl {
14532    fn CreateCoreWebView2Controller(
14533        &self,
14534        parentwindow: windows::Win32::Foundation::HWND,
14535        handler: windows_core::Ref<ICoreWebView2CreateCoreWebView2ControllerCompletedHandler>,
14536    ) -> windows_core::Result<()>;
14537    fn CreateWebResourceResponse(
14538        &self,
14539        content: windows_core::Ref<windows::Win32::System::Com::IStream>,
14540        statuscode: i32,
14541        reasonphrase: &windows_core::PCWSTR,
14542        headers: &windows_core::PCWSTR,
14543    ) -> windows_core::Result<ICoreWebView2WebResourceResponse>;
14544    fn BrowserVersionString(
14545        &self,
14546        versioninfo: *mut windows_core::PWSTR,
14547    ) -> windows_core::Result<()>;
14548    fn add_NewBrowserVersionAvailable(
14549        &self,
14550        eventhandler: windows_core::Ref<ICoreWebView2NewBrowserVersionAvailableEventHandler>,
14551        token: *mut i64,
14552    ) -> windows_core::Result<()>;
14553    fn remove_NewBrowserVersionAvailable(&self, token: i64) -> windows_core::Result<()>;
14554}
14555impl ICoreWebView2Environment_Vtbl {
14556    pub const fn new<Identity: ICoreWebView2Environment_Impl, const OFFSET: isize>() -> Self {
14557        unsafe extern "system" fn CreateCoreWebView2Controller<
14558            Identity: ICoreWebView2Environment_Impl,
14559            const OFFSET: isize,
14560        >(
14561            this: *mut core::ffi::c_void,
14562            parentwindow: windows::Win32::Foundation::HWND,
14563            handler: *mut core::ffi::c_void,
14564        ) -> windows_core::HRESULT {
14565            unsafe {
14566                let this: &Identity =
14567                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
14568                ICoreWebView2Environment_Impl::CreateCoreWebView2Controller(
14569                    this,
14570                    core::mem::transmute_copy(&parentwindow),
14571                    core::mem::transmute_copy(&handler),
14572                )
14573                .into()
14574            }
14575        }
14576        unsafe extern "system" fn CreateWebResourceResponse<
14577            Identity: ICoreWebView2Environment_Impl,
14578            const OFFSET: isize,
14579        >(
14580            this: *mut core::ffi::c_void,
14581            content: *mut core::ffi::c_void,
14582            statuscode: i32,
14583            reasonphrase: windows_core::PCWSTR,
14584            headers: windows_core::PCWSTR,
14585            response: *mut *mut core::ffi::c_void,
14586        ) -> windows_core::HRESULT {
14587            unsafe {
14588                let this: &Identity =
14589                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
14590                match ICoreWebView2Environment_Impl::CreateWebResourceResponse(
14591                    this,
14592                    core::mem::transmute_copy(&content),
14593                    core::mem::transmute_copy(&statuscode),
14594                    core::mem::transmute(&reasonphrase),
14595                    core::mem::transmute(&headers),
14596                ) {
14597                    Ok(ok__) => {
14598                        response.write(core::mem::transmute(ok__));
14599                        windows_core::HRESULT(0)
14600                    }
14601                    Err(err) => err.into(),
14602                }
14603            }
14604        }
14605        unsafe extern "system" fn BrowserVersionString<
14606            Identity: ICoreWebView2Environment_Impl,
14607            const OFFSET: isize,
14608        >(
14609            this: *mut core::ffi::c_void,
14610            versioninfo: *mut windows_core::PWSTR,
14611        ) -> windows_core::HRESULT {
14612            unsafe {
14613                let this: &Identity =
14614                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
14615                ICoreWebView2Environment_Impl::BrowserVersionString(
14616                    this,
14617                    core::mem::transmute_copy(&versioninfo),
14618                )
14619                .into()
14620            }
14621        }
14622        unsafe extern "system" fn add_NewBrowserVersionAvailable<
14623            Identity: ICoreWebView2Environment_Impl,
14624            const OFFSET: isize,
14625        >(
14626            this: *mut core::ffi::c_void,
14627            eventhandler: *mut core::ffi::c_void,
14628            token: *mut i64,
14629        ) -> windows_core::HRESULT {
14630            unsafe {
14631                let this: &Identity =
14632                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
14633                ICoreWebView2Environment_Impl::add_NewBrowserVersionAvailable(
14634                    this,
14635                    core::mem::transmute_copy(&eventhandler),
14636                    core::mem::transmute_copy(&token),
14637                )
14638                .into()
14639            }
14640        }
14641        unsafe extern "system" fn remove_NewBrowserVersionAvailable<
14642            Identity: ICoreWebView2Environment_Impl,
14643            const OFFSET: isize,
14644        >(
14645            this: *mut core::ffi::c_void,
14646            token: i64,
14647        ) -> windows_core::HRESULT {
14648            unsafe {
14649                let this: &Identity =
14650                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
14651                ICoreWebView2Environment_Impl::remove_NewBrowserVersionAvailable(
14652                    this,
14653                    core::mem::transmute_copy(&token),
14654                )
14655                .into()
14656            }
14657        }
14658        Self {
14659            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
14660            CreateCoreWebView2Controller: CreateCoreWebView2Controller::<Identity, OFFSET>,
14661            CreateWebResourceResponse: CreateWebResourceResponse::<Identity, OFFSET>,
14662            BrowserVersionString: BrowserVersionString::<Identity, OFFSET>,
14663            add_NewBrowserVersionAvailable: add_NewBrowserVersionAvailable::<Identity, OFFSET>,
14664            remove_NewBrowserVersionAvailable: remove_NewBrowserVersionAvailable::<Identity, OFFSET>,
14665        }
14666    }
14667    pub fn matches(iid: &windows_core::GUID) -> bool {
14668        iid == &<ICoreWebView2Environment as windows_core::Interface>::IID
14669    }
14670}
14671impl windows_core::RuntimeName for ICoreWebView2Environment {}
14672windows_core::imp::define_interface!(
14673    ICoreWebView2Environment10,
14674    ICoreWebView2Environment10_Vtbl,
14675    0xee0eb9df_6f12_46ce_b53f_3f47b9c928e0
14676);
14677impl core::ops::Deref for ICoreWebView2Environment10 {
14678    type Target = ICoreWebView2Environment9;
14679    fn deref(&self) -> &Self::Target {
14680        unsafe { core::mem::transmute(self) }
14681    }
14682}
14683windows_core::imp::interface_hierarchy!(
14684    ICoreWebView2Environment10,
14685    windows_core::IUnknown,
14686    ICoreWebView2Environment,
14687    ICoreWebView2Environment2,
14688    ICoreWebView2Environment3,
14689    ICoreWebView2Environment4,
14690    ICoreWebView2Environment5,
14691    ICoreWebView2Environment6,
14692    ICoreWebView2Environment7,
14693    ICoreWebView2Environment8,
14694    ICoreWebView2Environment9
14695);
14696impl ICoreWebView2Environment10 {
14697    pub unsafe fn CreateCoreWebView2ControllerOptions(
14698        &self,
14699    ) -> windows_core::Result<ICoreWebView2ControllerOptions> {
14700        unsafe {
14701            let mut result__ = core::mem::zeroed();
14702            (windows_core::Interface::vtable(self).CreateCoreWebView2ControllerOptions)(
14703                windows_core::Interface::as_raw(self),
14704                &mut result__,
14705            )
14706            .and_then(|| windows_core::Type::from_abi(result__))
14707        }
14708    }
14709    pub unsafe fn CreateCoreWebView2ControllerWithOptions<P1, P2>(
14710        &self,
14711        parentwindow: windows::Win32::Foundation::HWND,
14712        options: P1,
14713        handler: P2,
14714    ) -> windows_core::Result<()>
14715    where
14716        P1: windows_core::Param<ICoreWebView2ControllerOptions>,
14717        P2: windows_core::Param<ICoreWebView2CreateCoreWebView2ControllerCompletedHandler>,
14718    {
14719        unsafe {
14720            (windows_core::Interface::vtable(self).CreateCoreWebView2ControllerWithOptions)(
14721                windows_core::Interface::as_raw(self),
14722                parentwindow,
14723                options.param().abi(),
14724                handler.param().abi(),
14725            )
14726            .ok()
14727        }
14728    }
14729    pub unsafe fn CreateCoreWebView2CompositionControllerWithOptions<P1, P2>(
14730        &self,
14731        parentwindow: windows::Win32::Foundation::HWND,
14732        options: P1,
14733        handler: P2,
14734    ) -> windows_core::Result<()>
14735    where
14736        P1: windows_core::Param<ICoreWebView2ControllerOptions>,
14737        P2: windows_core::Param<
14738            ICoreWebView2CreateCoreWebView2CompositionControllerCompletedHandler,
14739        >,
14740    {
14741        unsafe {
14742            (windows_core::Interface::vtable(self)
14743                .CreateCoreWebView2CompositionControllerWithOptions)(
14744                windows_core::Interface::as_raw(self),
14745                parentwindow,
14746                options.param().abi(),
14747                handler.param().abi(),
14748            )
14749            .ok()
14750        }
14751    }
14752}
14753#[repr(C)]
14754#[doc(hidden)]
14755pub struct ICoreWebView2Environment10_Vtbl {
14756    pub base__: ICoreWebView2Environment9_Vtbl,
14757    pub CreateCoreWebView2ControllerOptions: unsafe extern "system" fn(
14758        *mut core::ffi::c_void,
14759        *mut *mut core::ffi::c_void,
14760    )
14761        -> windows_core::HRESULT,
14762    pub CreateCoreWebView2ControllerWithOptions: unsafe extern "system" fn(
14763        *mut core::ffi::c_void,
14764        windows::Win32::Foundation::HWND,
14765        *mut core::ffi::c_void,
14766        *mut core::ffi::c_void,
14767    )
14768        -> windows_core::HRESULT,
14769    pub CreateCoreWebView2CompositionControllerWithOptions:
14770        unsafe extern "system" fn(
14771            *mut core::ffi::c_void,
14772            windows::Win32::Foundation::HWND,
14773            *mut core::ffi::c_void,
14774            *mut core::ffi::c_void,
14775        ) -> windows_core::HRESULT,
14776}
14777pub trait ICoreWebView2Environment10_Impl: ICoreWebView2Environment9_Impl {
14778    fn CreateCoreWebView2ControllerOptions(
14779        &self,
14780    ) -> windows_core::Result<ICoreWebView2ControllerOptions>;
14781    fn CreateCoreWebView2ControllerWithOptions(
14782        &self,
14783        parentwindow: windows::Win32::Foundation::HWND,
14784        options: windows_core::Ref<ICoreWebView2ControllerOptions>,
14785        handler: windows_core::Ref<ICoreWebView2CreateCoreWebView2ControllerCompletedHandler>,
14786    ) -> windows_core::Result<()>;
14787    fn CreateCoreWebView2CompositionControllerWithOptions(
14788        &self,
14789        parentwindow: windows::Win32::Foundation::HWND,
14790        options: windows_core::Ref<ICoreWebView2ControllerOptions>,
14791        handler: windows_core::Ref<
14792            ICoreWebView2CreateCoreWebView2CompositionControllerCompletedHandler,
14793        >,
14794    ) -> windows_core::Result<()>;
14795}
14796impl ICoreWebView2Environment10_Vtbl {
14797    pub const fn new<Identity: ICoreWebView2Environment10_Impl, const OFFSET: isize>() -> Self {
14798        unsafe extern "system" fn CreateCoreWebView2ControllerOptions<
14799            Identity: ICoreWebView2Environment10_Impl,
14800            const OFFSET: isize,
14801        >(
14802            this: *mut core::ffi::c_void,
14803            value: *mut *mut core::ffi::c_void,
14804        ) -> windows_core::HRESULT {
14805            unsafe {
14806                let this: &Identity =
14807                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
14808                match ICoreWebView2Environment10_Impl::CreateCoreWebView2ControllerOptions(this) {
14809                    Ok(ok__) => {
14810                        value.write(core::mem::transmute(ok__));
14811                        windows_core::HRESULT(0)
14812                    }
14813                    Err(err) => err.into(),
14814                }
14815            }
14816        }
14817        unsafe extern "system" fn CreateCoreWebView2ControllerWithOptions<
14818            Identity: ICoreWebView2Environment10_Impl,
14819            const OFFSET: isize,
14820        >(
14821            this: *mut core::ffi::c_void,
14822            parentwindow: windows::Win32::Foundation::HWND,
14823            options: *mut core::ffi::c_void,
14824            handler: *mut core::ffi::c_void,
14825        ) -> windows_core::HRESULT {
14826            unsafe {
14827                let this: &Identity =
14828                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
14829                ICoreWebView2Environment10_Impl::CreateCoreWebView2ControllerWithOptions(
14830                    this,
14831                    core::mem::transmute_copy(&parentwindow),
14832                    core::mem::transmute_copy(&options),
14833                    core::mem::transmute_copy(&handler),
14834                )
14835                .into()
14836            }
14837        }
14838        unsafe extern "system" fn CreateCoreWebView2CompositionControllerWithOptions<
14839            Identity: ICoreWebView2Environment10_Impl,
14840            const OFFSET: isize,
14841        >(
14842            this: *mut core::ffi::c_void,
14843            parentwindow: windows::Win32::Foundation::HWND,
14844            options: *mut core::ffi::c_void,
14845            handler: *mut core::ffi::c_void,
14846        ) -> windows_core::HRESULT {
14847            unsafe {
14848                let this: &Identity =
14849                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
14850                ICoreWebView2Environment10_Impl::CreateCoreWebView2CompositionControllerWithOptions(
14851                    this,
14852                    core::mem::transmute_copy(&parentwindow),
14853                    core::mem::transmute_copy(&options),
14854                    core::mem::transmute_copy(&handler),
14855                )
14856                .into()
14857            }
14858        }
14859        Self {
14860            base__: ICoreWebView2Environment9_Vtbl::new::<Identity, OFFSET>(),
14861            CreateCoreWebView2ControllerOptions: CreateCoreWebView2ControllerOptions::<
14862                Identity,
14863                OFFSET,
14864            >,
14865            CreateCoreWebView2ControllerWithOptions: CreateCoreWebView2ControllerWithOptions::<
14866                Identity,
14867                OFFSET,
14868            >,
14869            CreateCoreWebView2CompositionControllerWithOptions:
14870                CreateCoreWebView2CompositionControllerWithOptions::<Identity, OFFSET>,
14871        }
14872    }
14873    pub fn matches(iid: &windows_core::GUID) -> bool {
14874        iid == &<ICoreWebView2Environment10 as windows_core::Interface>::IID
14875            || iid == &<ICoreWebView2Environment as windows_core::Interface>::IID
14876            || iid == &<ICoreWebView2Environment2 as windows_core::Interface>::IID
14877            || iid == &<ICoreWebView2Environment3 as windows_core::Interface>::IID
14878            || iid == &<ICoreWebView2Environment4 as windows_core::Interface>::IID
14879            || iid == &<ICoreWebView2Environment5 as windows_core::Interface>::IID
14880            || iid == &<ICoreWebView2Environment6 as windows_core::Interface>::IID
14881            || iid == &<ICoreWebView2Environment7 as windows_core::Interface>::IID
14882            || iid == &<ICoreWebView2Environment8 as windows_core::Interface>::IID
14883            || iid == &<ICoreWebView2Environment9 as windows_core::Interface>::IID
14884    }
14885}
14886impl windows_core::RuntimeName for ICoreWebView2Environment10 {}
14887windows_core::imp::define_interface!(
14888    ICoreWebView2Environment11,
14889    ICoreWebView2Environment11_Vtbl,
14890    0xf0913dc6_a0ec_42ef_9805_91dff3a2966a
14891);
14892impl core::ops::Deref for ICoreWebView2Environment11 {
14893    type Target = ICoreWebView2Environment10;
14894    fn deref(&self) -> &Self::Target {
14895        unsafe { core::mem::transmute(self) }
14896    }
14897}
14898windows_core::imp::interface_hierarchy!(
14899    ICoreWebView2Environment11,
14900    windows_core::IUnknown,
14901    ICoreWebView2Environment,
14902    ICoreWebView2Environment2,
14903    ICoreWebView2Environment3,
14904    ICoreWebView2Environment4,
14905    ICoreWebView2Environment5,
14906    ICoreWebView2Environment6,
14907    ICoreWebView2Environment7,
14908    ICoreWebView2Environment8,
14909    ICoreWebView2Environment9,
14910    ICoreWebView2Environment10
14911);
14912impl ICoreWebView2Environment11 {
14913    pub unsafe fn FailureReportFolderPath(
14914        &self,
14915        value: *mut windows_core::PWSTR,
14916    ) -> windows_core::Result<()> {
14917        unsafe {
14918            (windows_core::Interface::vtable(self).FailureReportFolderPath)(
14919                windows_core::Interface::as_raw(self),
14920                value as _,
14921            )
14922            .ok()
14923        }
14924    }
14925}
14926#[repr(C)]
14927#[doc(hidden)]
14928pub struct ICoreWebView2Environment11_Vtbl {
14929    pub base__: ICoreWebView2Environment10_Vtbl,
14930    pub FailureReportFolderPath: unsafe extern "system" fn(
14931        *mut core::ffi::c_void,
14932        *mut windows_core::PWSTR,
14933    ) -> windows_core::HRESULT,
14934}
14935pub trait ICoreWebView2Environment11_Impl: ICoreWebView2Environment10_Impl {
14936    fn FailureReportFolderPath(&self, value: *mut windows_core::PWSTR) -> windows_core::Result<()>;
14937}
14938impl ICoreWebView2Environment11_Vtbl {
14939    pub const fn new<Identity: ICoreWebView2Environment11_Impl, const OFFSET: isize>() -> Self {
14940        unsafe extern "system" fn FailureReportFolderPath<
14941            Identity: ICoreWebView2Environment11_Impl,
14942            const OFFSET: isize,
14943        >(
14944            this: *mut core::ffi::c_void,
14945            value: *mut windows_core::PWSTR,
14946        ) -> windows_core::HRESULT {
14947            unsafe {
14948                let this: &Identity =
14949                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
14950                ICoreWebView2Environment11_Impl::FailureReportFolderPath(
14951                    this,
14952                    core::mem::transmute_copy(&value),
14953                )
14954                .into()
14955            }
14956        }
14957        Self {
14958            base__: ICoreWebView2Environment10_Vtbl::new::<Identity, OFFSET>(),
14959            FailureReportFolderPath: FailureReportFolderPath::<Identity, OFFSET>,
14960        }
14961    }
14962    pub fn matches(iid: &windows_core::GUID) -> bool {
14963        iid == &<ICoreWebView2Environment11 as windows_core::Interface>::IID
14964            || iid == &<ICoreWebView2Environment as windows_core::Interface>::IID
14965            || iid == &<ICoreWebView2Environment2 as windows_core::Interface>::IID
14966            || iid == &<ICoreWebView2Environment3 as windows_core::Interface>::IID
14967            || iid == &<ICoreWebView2Environment4 as windows_core::Interface>::IID
14968            || iid == &<ICoreWebView2Environment5 as windows_core::Interface>::IID
14969            || iid == &<ICoreWebView2Environment6 as windows_core::Interface>::IID
14970            || iid == &<ICoreWebView2Environment7 as windows_core::Interface>::IID
14971            || iid == &<ICoreWebView2Environment8 as windows_core::Interface>::IID
14972            || iid == &<ICoreWebView2Environment9 as windows_core::Interface>::IID
14973            || iid == &<ICoreWebView2Environment10 as windows_core::Interface>::IID
14974    }
14975}
14976impl windows_core::RuntimeName for ICoreWebView2Environment11 {}
14977windows_core::imp::define_interface!(
14978    ICoreWebView2Environment12,
14979    ICoreWebView2Environment12_Vtbl,
14980    0xf503db9b_739f_48dd_b151_fdfcf253f54e
14981);
14982impl core::ops::Deref for ICoreWebView2Environment12 {
14983    type Target = ICoreWebView2Environment11;
14984    fn deref(&self) -> &Self::Target {
14985        unsafe { core::mem::transmute(self) }
14986    }
14987}
14988windows_core::imp::interface_hierarchy!(
14989    ICoreWebView2Environment12,
14990    windows_core::IUnknown,
14991    ICoreWebView2Environment,
14992    ICoreWebView2Environment2,
14993    ICoreWebView2Environment3,
14994    ICoreWebView2Environment4,
14995    ICoreWebView2Environment5,
14996    ICoreWebView2Environment6,
14997    ICoreWebView2Environment7,
14998    ICoreWebView2Environment8,
14999    ICoreWebView2Environment9,
15000    ICoreWebView2Environment10,
15001    ICoreWebView2Environment11
15002);
15003impl ICoreWebView2Environment12 {
15004    pub unsafe fn CreateSharedBuffer(
15005        &self,
15006        size: u64,
15007    ) -> windows_core::Result<ICoreWebView2SharedBuffer> {
15008        unsafe {
15009            let mut result__ = core::mem::zeroed();
15010            (windows_core::Interface::vtable(self).CreateSharedBuffer)(
15011                windows_core::Interface::as_raw(self),
15012                size,
15013                &mut result__,
15014            )
15015            .and_then(|| windows_core::Type::from_abi(result__))
15016        }
15017    }
15018}
15019#[repr(C)]
15020#[doc(hidden)]
15021pub struct ICoreWebView2Environment12_Vtbl {
15022    pub base__: ICoreWebView2Environment11_Vtbl,
15023    pub CreateSharedBuffer: unsafe extern "system" fn(
15024        *mut core::ffi::c_void,
15025        u64,
15026        *mut *mut core::ffi::c_void,
15027    ) -> windows_core::HRESULT,
15028}
15029pub trait ICoreWebView2Environment12_Impl: ICoreWebView2Environment11_Impl {
15030    fn CreateSharedBuffer(&self, size: u64) -> windows_core::Result<ICoreWebView2SharedBuffer>;
15031}
15032impl ICoreWebView2Environment12_Vtbl {
15033    pub const fn new<Identity: ICoreWebView2Environment12_Impl, const OFFSET: isize>() -> Self {
15034        unsafe extern "system" fn CreateSharedBuffer<
15035            Identity: ICoreWebView2Environment12_Impl,
15036            const OFFSET: isize,
15037        >(
15038            this: *mut core::ffi::c_void,
15039            size: u64,
15040            value: *mut *mut core::ffi::c_void,
15041        ) -> windows_core::HRESULT {
15042            unsafe {
15043                let this: &Identity =
15044                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
15045                match ICoreWebView2Environment12_Impl::CreateSharedBuffer(
15046                    this,
15047                    core::mem::transmute_copy(&size),
15048                ) {
15049                    Ok(ok__) => {
15050                        value.write(core::mem::transmute(ok__));
15051                        windows_core::HRESULT(0)
15052                    }
15053                    Err(err) => err.into(),
15054                }
15055            }
15056        }
15057        Self {
15058            base__: ICoreWebView2Environment11_Vtbl::new::<Identity, OFFSET>(),
15059            CreateSharedBuffer: CreateSharedBuffer::<Identity, OFFSET>,
15060        }
15061    }
15062    pub fn matches(iid: &windows_core::GUID) -> bool {
15063        iid == &<ICoreWebView2Environment12 as windows_core::Interface>::IID
15064            || iid == &<ICoreWebView2Environment as windows_core::Interface>::IID
15065            || iid == &<ICoreWebView2Environment2 as windows_core::Interface>::IID
15066            || iid == &<ICoreWebView2Environment3 as windows_core::Interface>::IID
15067            || iid == &<ICoreWebView2Environment4 as windows_core::Interface>::IID
15068            || iid == &<ICoreWebView2Environment5 as windows_core::Interface>::IID
15069            || iid == &<ICoreWebView2Environment6 as windows_core::Interface>::IID
15070            || iid == &<ICoreWebView2Environment7 as windows_core::Interface>::IID
15071            || iid == &<ICoreWebView2Environment8 as windows_core::Interface>::IID
15072            || iid == &<ICoreWebView2Environment9 as windows_core::Interface>::IID
15073            || iid == &<ICoreWebView2Environment10 as windows_core::Interface>::IID
15074            || iid == &<ICoreWebView2Environment11 as windows_core::Interface>::IID
15075    }
15076}
15077impl windows_core::RuntimeName for ICoreWebView2Environment12 {}
15078windows_core::imp::define_interface!(
15079    ICoreWebView2Environment13,
15080    ICoreWebView2Environment13_Vtbl,
15081    0xaf641f58_72b2_11ee_b962_0242ac120002
15082);
15083impl core::ops::Deref for ICoreWebView2Environment13 {
15084    type Target = ICoreWebView2Environment12;
15085    fn deref(&self) -> &Self::Target {
15086        unsafe { core::mem::transmute(self) }
15087    }
15088}
15089windows_core::imp::interface_hierarchy!(
15090    ICoreWebView2Environment13,
15091    windows_core::IUnknown,
15092    ICoreWebView2Environment,
15093    ICoreWebView2Environment2,
15094    ICoreWebView2Environment3,
15095    ICoreWebView2Environment4,
15096    ICoreWebView2Environment5,
15097    ICoreWebView2Environment6,
15098    ICoreWebView2Environment7,
15099    ICoreWebView2Environment8,
15100    ICoreWebView2Environment9,
15101    ICoreWebView2Environment10,
15102    ICoreWebView2Environment11,
15103    ICoreWebView2Environment12
15104);
15105impl ICoreWebView2Environment13 {
15106    pub unsafe fn GetProcessExtendedInfos<P0>(&self, handler: P0) -> windows_core::Result<()>
15107    where
15108        P0: windows_core::Param<ICoreWebView2GetProcessExtendedInfosCompletedHandler>,
15109    {
15110        unsafe {
15111            (windows_core::Interface::vtable(self).GetProcessExtendedInfos)(
15112                windows_core::Interface::as_raw(self),
15113                handler.param().abi(),
15114            )
15115            .ok()
15116        }
15117    }
15118}
15119#[repr(C)]
15120#[doc(hidden)]
15121pub struct ICoreWebView2Environment13_Vtbl {
15122    pub base__: ICoreWebView2Environment12_Vtbl,
15123    pub GetProcessExtendedInfos: unsafe extern "system" fn(
15124        *mut core::ffi::c_void,
15125        *mut core::ffi::c_void,
15126    ) -> windows_core::HRESULT,
15127}
15128pub trait ICoreWebView2Environment13_Impl: ICoreWebView2Environment12_Impl {
15129    fn GetProcessExtendedInfos(
15130        &self,
15131        handler: windows_core::Ref<ICoreWebView2GetProcessExtendedInfosCompletedHandler>,
15132    ) -> windows_core::Result<()>;
15133}
15134impl ICoreWebView2Environment13_Vtbl {
15135    pub const fn new<Identity: ICoreWebView2Environment13_Impl, const OFFSET: isize>() -> Self {
15136        unsafe extern "system" fn GetProcessExtendedInfos<
15137            Identity: ICoreWebView2Environment13_Impl,
15138            const OFFSET: isize,
15139        >(
15140            this: *mut core::ffi::c_void,
15141            handler: *mut core::ffi::c_void,
15142        ) -> windows_core::HRESULT {
15143            unsafe {
15144                let this: &Identity =
15145                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
15146                ICoreWebView2Environment13_Impl::GetProcessExtendedInfos(
15147                    this,
15148                    core::mem::transmute_copy(&handler),
15149                )
15150                .into()
15151            }
15152        }
15153        Self {
15154            base__: ICoreWebView2Environment12_Vtbl::new::<Identity, OFFSET>(),
15155            GetProcessExtendedInfos: GetProcessExtendedInfos::<Identity, OFFSET>,
15156        }
15157    }
15158    pub fn matches(iid: &windows_core::GUID) -> bool {
15159        iid == &<ICoreWebView2Environment13 as windows_core::Interface>::IID
15160            || iid == &<ICoreWebView2Environment as windows_core::Interface>::IID
15161            || iid == &<ICoreWebView2Environment2 as windows_core::Interface>::IID
15162            || iid == &<ICoreWebView2Environment3 as windows_core::Interface>::IID
15163            || iid == &<ICoreWebView2Environment4 as windows_core::Interface>::IID
15164            || iid == &<ICoreWebView2Environment5 as windows_core::Interface>::IID
15165            || iid == &<ICoreWebView2Environment6 as windows_core::Interface>::IID
15166            || iid == &<ICoreWebView2Environment7 as windows_core::Interface>::IID
15167            || iid == &<ICoreWebView2Environment8 as windows_core::Interface>::IID
15168            || iid == &<ICoreWebView2Environment9 as windows_core::Interface>::IID
15169            || iid == &<ICoreWebView2Environment10 as windows_core::Interface>::IID
15170            || iid == &<ICoreWebView2Environment11 as windows_core::Interface>::IID
15171            || iid == &<ICoreWebView2Environment12 as windows_core::Interface>::IID
15172    }
15173}
15174impl windows_core::RuntimeName for ICoreWebView2Environment13 {}
15175windows_core::imp::define_interface!(
15176    ICoreWebView2Environment14,
15177    ICoreWebView2Environment14_Vtbl,
15178    0xa5e9fad9_c875_59da_9bd7_473aa5ca1cef
15179);
15180impl core::ops::Deref for ICoreWebView2Environment14 {
15181    type Target = ICoreWebView2Environment13;
15182    fn deref(&self) -> &Self::Target {
15183        unsafe { core::mem::transmute(self) }
15184    }
15185}
15186windows_core::imp::interface_hierarchy!(
15187    ICoreWebView2Environment14,
15188    windows_core::IUnknown,
15189    ICoreWebView2Environment,
15190    ICoreWebView2Environment2,
15191    ICoreWebView2Environment3,
15192    ICoreWebView2Environment4,
15193    ICoreWebView2Environment5,
15194    ICoreWebView2Environment6,
15195    ICoreWebView2Environment7,
15196    ICoreWebView2Environment8,
15197    ICoreWebView2Environment9,
15198    ICoreWebView2Environment10,
15199    ICoreWebView2Environment11,
15200    ICoreWebView2Environment12,
15201    ICoreWebView2Environment13
15202);
15203impl ICoreWebView2Environment14 {
15204    pub unsafe fn CreateWebFileSystemFileHandle<P0>(
15205        &self,
15206        path: P0,
15207        permission: COREWEBVIEW2_FILE_SYSTEM_HANDLE_PERMISSION,
15208    ) -> windows_core::Result<ICoreWebView2FileSystemHandle>
15209    where
15210        P0: windows_core::Param<windows_core::PCWSTR>,
15211    {
15212        unsafe {
15213            let mut result__ = core::mem::zeroed();
15214            (windows_core::Interface::vtable(self).CreateWebFileSystemFileHandle)(
15215                windows_core::Interface::as_raw(self),
15216                path.param().abi(),
15217                permission,
15218                &mut result__,
15219            )
15220            .and_then(|| windows_core::Type::from_abi(result__))
15221        }
15222    }
15223    pub unsafe fn CreateWebFileSystemDirectoryHandle<P0>(
15224        &self,
15225        path: P0,
15226        permission: COREWEBVIEW2_FILE_SYSTEM_HANDLE_PERMISSION,
15227    ) -> windows_core::Result<ICoreWebView2FileSystemHandle>
15228    where
15229        P0: windows_core::Param<windows_core::PCWSTR>,
15230    {
15231        unsafe {
15232            let mut result__ = core::mem::zeroed();
15233            (windows_core::Interface::vtable(self).CreateWebFileSystemDirectoryHandle)(
15234                windows_core::Interface::as_raw(self),
15235                path.param().abi(),
15236                permission,
15237                &mut result__,
15238            )
15239            .and_then(|| windows_core::Type::from_abi(result__))
15240        }
15241    }
15242    pub unsafe fn CreateObjectCollection(
15243        &self,
15244        length: u32,
15245        items: *mut Option<windows_core::IUnknown>,
15246        objectcollection: *mut Option<ICoreWebView2ObjectCollection>,
15247    ) -> windows_core::Result<()> {
15248        unsafe {
15249            (windows_core::Interface::vtable(self).CreateObjectCollection)(
15250                windows_core::Interface::as_raw(self),
15251                length,
15252                core::mem::transmute(items),
15253                core::mem::transmute(objectcollection),
15254            )
15255            .ok()
15256        }
15257    }
15258}
15259#[repr(C)]
15260#[doc(hidden)]
15261pub struct ICoreWebView2Environment14_Vtbl {
15262    pub base__: ICoreWebView2Environment13_Vtbl,
15263    pub CreateWebFileSystemFileHandle: unsafe extern "system" fn(
15264        *mut core::ffi::c_void,
15265        windows_core::PCWSTR,
15266        COREWEBVIEW2_FILE_SYSTEM_HANDLE_PERMISSION,
15267        *mut *mut core::ffi::c_void,
15268    ) -> windows_core::HRESULT,
15269    pub CreateWebFileSystemDirectoryHandle: unsafe extern "system" fn(
15270        *mut core::ffi::c_void,
15271        windows_core::PCWSTR,
15272        COREWEBVIEW2_FILE_SYSTEM_HANDLE_PERMISSION,
15273        *mut *mut core::ffi::c_void,
15274    ) -> windows_core::HRESULT,
15275    pub CreateObjectCollection: unsafe extern "system" fn(
15276        *mut core::ffi::c_void,
15277        u32,
15278        *mut *mut core::ffi::c_void,
15279        *mut *mut core::ffi::c_void,
15280    ) -> windows_core::HRESULT,
15281}
15282pub trait ICoreWebView2Environment14_Impl: ICoreWebView2Environment13_Impl {
15283    fn CreateWebFileSystemFileHandle(
15284        &self,
15285        path: &windows_core::PCWSTR,
15286        permission: COREWEBVIEW2_FILE_SYSTEM_HANDLE_PERMISSION,
15287    ) -> windows_core::Result<ICoreWebView2FileSystemHandle>;
15288    fn CreateWebFileSystemDirectoryHandle(
15289        &self,
15290        path: &windows_core::PCWSTR,
15291        permission: COREWEBVIEW2_FILE_SYSTEM_HANDLE_PERMISSION,
15292    ) -> windows_core::Result<ICoreWebView2FileSystemHandle>;
15293    fn CreateObjectCollection(
15294        &self,
15295        length: u32,
15296        items: windows_core::OutRef<windows_core::IUnknown>,
15297        objectcollection: windows_core::OutRef<ICoreWebView2ObjectCollection>,
15298    ) -> windows_core::Result<()>;
15299}
15300impl ICoreWebView2Environment14_Vtbl {
15301    pub const fn new<Identity: ICoreWebView2Environment14_Impl, const OFFSET: isize>() -> Self {
15302        unsafe extern "system" fn CreateWebFileSystemFileHandle<
15303            Identity: ICoreWebView2Environment14_Impl,
15304            const OFFSET: isize,
15305        >(
15306            this: *mut core::ffi::c_void,
15307            path: windows_core::PCWSTR,
15308            permission: COREWEBVIEW2_FILE_SYSTEM_HANDLE_PERMISSION,
15309            value: *mut *mut core::ffi::c_void,
15310        ) -> windows_core::HRESULT {
15311            unsafe {
15312                let this: &Identity =
15313                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
15314                match ICoreWebView2Environment14_Impl::CreateWebFileSystemFileHandle(
15315                    this,
15316                    core::mem::transmute(&path),
15317                    core::mem::transmute_copy(&permission),
15318                ) {
15319                    Ok(ok__) => {
15320                        value.write(core::mem::transmute(ok__));
15321                        windows_core::HRESULT(0)
15322                    }
15323                    Err(err) => err.into(),
15324                }
15325            }
15326        }
15327        unsafe extern "system" fn CreateWebFileSystemDirectoryHandle<
15328            Identity: ICoreWebView2Environment14_Impl,
15329            const OFFSET: isize,
15330        >(
15331            this: *mut core::ffi::c_void,
15332            path: windows_core::PCWSTR,
15333            permission: COREWEBVIEW2_FILE_SYSTEM_HANDLE_PERMISSION,
15334            value: *mut *mut core::ffi::c_void,
15335        ) -> windows_core::HRESULT {
15336            unsafe {
15337                let this: &Identity =
15338                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
15339                match ICoreWebView2Environment14_Impl::CreateWebFileSystemDirectoryHandle(
15340                    this,
15341                    core::mem::transmute(&path),
15342                    core::mem::transmute_copy(&permission),
15343                ) {
15344                    Ok(ok__) => {
15345                        value.write(core::mem::transmute(ok__));
15346                        windows_core::HRESULT(0)
15347                    }
15348                    Err(err) => err.into(),
15349                }
15350            }
15351        }
15352        unsafe extern "system" fn CreateObjectCollection<
15353            Identity: ICoreWebView2Environment14_Impl,
15354            const OFFSET: isize,
15355        >(
15356            this: *mut core::ffi::c_void,
15357            length: u32,
15358            items: *mut *mut core::ffi::c_void,
15359            objectcollection: *mut *mut core::ffi::c_void,
15360        ) -> windows_core::HRESULT {
15361            unsafe {
15362                let this: &Identity =
15363                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
15364                ICoreWebView2Environment14_Impl::CreateObjectCollection(
15365                    this,
15366                    core::mem::transmute_copy(&length),
15367                    core::mem::transmute_copy(&items),
15368                    core::mem::transmute_copy(&objectcollection),
15369                )
15370                .into()
15371            }
15372        }
15373        Self {
15374            base__: ICoreWebView2Environment13_Vtbl::new::<Identity, OFFSET>(),
15375            CreateWebFileSystemFileHandle: CreateWebFileSystemFileHandle::<Identity, OFFSET>,
15376            CreateWebFileSystemDirectoryHandle: CreateWebFileSystemDirectoryHandle::<
15377                Identity,
15378                OFFSET,
15379            >,
15380            CreateObjectCollection: CreateObjectCollection::<Identity, OFFSET>,
15381        }
15382    }
15383    pub fn matches(iid: &windows_core::GUID) -> bool {
15384        iid == &<ICoreWebView2Environment14 as windows_core::Interface>::IID
15385            || iid == &<ICoreWebView2Environment as windows_core::Interface>::IID
15386            || iid == &<ICoreWebView2Environment2 as windows_core::Interface>::IID
15387            || iid == &<ICoreWebView2Environment3 as windows_core::Interface>::IID
15388            || iid == &<ICoreWebView2Environment4 as windows_core::Interface>::IID
15389            || iid == &<ICoreWebView2Environment5 as windows_core::Interface>::IID
15390            || iid == &<ICoreWebView2Environment6 as windows_core::Interface>::IID
15391            || iid == &<ICoreWebView2Environment7 as windows_core::Interface>::IID
15392            || iid == &<ICoreWebView2Environment8 as windows_core::Interface>::IID
15393            || iid == &<ICoreWebView2Environment9 as windows_core::Interface>::IID
15394            || iid == &<ICoreWebView2Environment10 as windows_core::Interface>::IID
15395            || iid == &<ICoreWebView2Environment11 as windows_core::Interface>::IID
15396            || iid == &<ICoreWebView2Environment12 as windows_core::Interface>::IID
15397            || iid == &<ICoreWebView2Environment13 as windows_core::Interface>::IID
15398    }
15399}
15400impl windows_core::RuntimeName for ICoreWebView2Environment14 {}
15401windows_core::imp::define_interface!(
15402    ICoreWebView2Environment15,
15403    ICoreWebView2Environment15_Vtbl,
15404    0x2ac5ebfb_e654_5961_a667_7971885c7b27
15405);
15406impl core::ops::Deref for ICoreWebView2Environment15 {
15407    type Target = ICoreWebView2Environment14;
15408    fn deref(&self) -> &Self::Target {
15409        unsafe { core::mem::transmute(self) }
15410    }
15411}
15412windows_core::imp::interface_hierarchy!(
15413    ICoreWebView2Environment15,
15414    windows_core::IUnknown,
15415    ICoreWebView2Environment,
15416    ICoreWebView2Environment2,
15417    ICoreWebView2Environment3,
15418    ICoreWebView2Environment4,
15419    ICoreWebView2Environment5,
15420    ICoreWebView2Environment6,
15421    ICoreWebView2Environment7,
15422    ICoreWebView2Environment8,
15423    ICoreWebView2Environment9,
15424    ICoreWebView2Environment10,
15425    ICoreWebView2Environment11,
15426    ICoreWebView2Environment12,
15427    ICoreWebView2Environment13,
15428    ICoreWebView2Environment14
15429);
15430impl ICoreWebView2Environment15 {
15431    pub unsafe fn CreateFindOptions(&self) -> windows_core::Result<ICoreWebView2FindOptions> {
15432        unsafe {
15433            let mut result__ = core::mem::zeroed();
15434            (windows_core::Interface::vtable(self).CreateFindOptions)(
15435                windows_core::Interface::as_raw(self),
15436                &mut result__,
15437            )
15438            .and_then(|| windows_core::Type::from_abi(result__))
15439        }
15440    }
15441}
15442#[repr(C)]
15443#[doc(hidden)]
15444pub struct ICoreWebView2Environment15_Vtbl {
15445    pub base__: ICoreWebView2Environment14_Vtbl,
15446    pub CreateFindOptions: unsafe extern "system" fn(
15447        *mut core::ffi::c_void,
15448        *mut *mut core::ffi::c_void,
15449    ) -> windows_core::HRESULT,
15450}
15451pub trait ICoreWebView2Environment15_Impl: ICoreWebView2Environment14_Impl {
15452    fn CreateFindOptions(&self) -> windows_core::Result<ICoreWebView2FindOptions>;
15453}
15454impl ICoreWebView2Environment15_Vtbl {
15455    pub const fn new<Identity: ICoreWebView2Environment15_Impl, const OFFSET: isize>() -> Self {
15456        unsafe extern "system" fn CreateFindOptions<
15457            Identity: ICoreWebView2Environment15_Impl,
15458            const OFFSET: isize,
15459        >(
15460            this: *mut core::ffi::c_void,
15461            value: *mut *mut core::ffi::c_void,
15462        ) -> windows_core::HRESULT {
15463            unsafe {
15464                let this: &Identity =
15465                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
15466                match ICoreWebView2Environment15_Impl::CreateFindOptions(this) {
15467                    Ok(ok__) => {
15468                        value.write(core::mem::transmute(ok__));
15469                        windows_core::HRESULT(0)
15470                    }
15471                    Err(err) => err.into(),
15472                }
15473            }
15474        }
15475        Self {
15476            base__: ICoreWebView2Environment14_Vtbl::new::<Identity, OFFSET>(),
15477            CreateFindOptions: CreateFindOptions::<Identity, OFFSET>,
15478        }
15479    }
15480    pub fn matches(iid: &windows_core::GUID) -> bool {
15481        iid == &<ICoreWebView2Environment15 as windows_core::Interface>::IID
15482            || iid == &<ICoreWebView2Environment as windows_core::Interface>::IID
15483            || iid == &<ICoreWebView2Environment2 as windows_core::Interface>::IID
15484            || iid == &<ICoreWebView2Environment3 as windows_core::Interface>::IID
15485            || iid == &<ICoreWebView2Environment4 as windows_core::Interface>::IID
15486            || iid == &<ICoreWebView2Environment5 as windows_core::Interface>::IID
15487            || iid == &<ICoreWebView2Environment6 as windows_core::Interface>::IID
15488            || iid == &<ICoreWebView2Environment7 as windows_core::Interface>::IID
15489            || iid == &<ICoreWebView2Environment8 as windows_core::Interface>::IID
15490            || iid == &<ICoreWebView2Environment9 as windows_core::Interface>::IID
15491            || iid == &<ICoreWebView2Environment10 as windows_core::Interface>::IID
15492            || iid == &<ICoreWebView2Environment11 as windows_core::Interface>::IID
15493            || iid == &<ICoreWebView2Environment12 as windows_core::Interface>::IID
15494            || iid == &<ICoreWebView2Environment13 as windows_core::Interface>::IID
15495            || iid == &<ICoreWebView2Environment14 as windows_core::Interface>::IID
15496    }
15497}
15498impl windows_core::RuntimeName for ICoreWebView2Environment15 {}
15499windows_core::imp::define_interface!(
15500    ICoreWebView2Environment2,
15501    ICoreWebView2Environment2_Vtbl,
15502    0x41f3632b_5ef4_404f_ad82_2d606c5a9a21
15503);
15504impl core::ops::Deref for ICoreWebView2Environment2 {
15505    type Target = ICoreWebView2Environment;
15506    fn deref(&self) -> &Self::Target {
15507        unsafe { core::mem::transmute(self) }
15508    }
15509}
15510windows_core::imp::interface_hierarchy!(
15511    ICoreWebView2Environment2,
15512    windows_core::IUnknown,
15513    ICoreWebView2Environment
15514);
15515impl ICoreWebView2Environment2 {
15516    pub unsafe fn CreateWebResourceRequest<P0, P1, P2, P3>(
15517        &self,
15518        uri: P0,
15519        method: P1,
15520        postdata: P2,
15521        headers: P3,
15522    ) -> windows_core::Result<ICoreWebView2WebResourceRequest>
15523    where
15524        P0: windows_core::Param<windows_core::PCWSTR>,
15525        P1: windows_core::Param<windows_core::PCWSTR>,
15526        P2: windows_core::Param<windows::Win32::System::Com::IStream>,
15527        P3: windows_core::Param<windows_core::PCWSTR>,
15528    {
15529        unsafe {
15530            let mut result__ = core::mem::zeroed();
15531            (windows_core::Interface::vtable(self).CreateWebResourceRequest)(
15532                windows_core::Interface::as_raw(self),
15533                uri.param().abi(),
15534                method.param().abi(),
15535                postdata.param().abi(),
15536                headers.param().abi(),
15537                &mut result__,
15538            )
15539            .and_then(|| windows_core::Type::from_abi(result__))
15540        }
15541    }
15542}
15543#[repr(C)]
15544#[doc(hidden)]
15545pub struct ICoreWebView2Environment2_Vtbl {
15546    pub base__: ICoreWebView2Environment_Vtbl,
15547    pub CreateWebResourceRequest: unsafe extern "system" fn(
15548        *mut core::ffi::c_void,
15549        windows_core::PCWSTR,
15550        windows_core::PCWSTR,
15551        *mut core::ffi::c_void,
15552        windows_core::PCWSTR,
15553        *mut *mut core::ffi::c_void,
15554    ) -> windows_core::HRESULT,
15555}
15556pub trait ICoreWebView2Environment2_Impl: ICoreWebView2Environment_Impl {
15557    fn CreateWebResourceRequest(
15558        &self,
15559        uri: &windows_core::PCWSTR,
15560        method: &windows_core::PCWSTR,
15561        postdata: windows_core::Ref<windows::Win32::System::Com::IStream>,
15562        headers: &windows_core::PCWSTR,
15563    ) -> windows_core::Result<ICoreWebView2WebResourceRequest>;
15564}
15565impl ICoreWebView2Environment2_Vtbl {
15566    pub const fn new<Identity: ICoreWebView2Environment2_Impl, const OFFSET: isize>() -> Self {
15567        unsafe extern "system" fn CreateWebResourceRequest<
15568            Identity: ICoreWebView2Environment2_Impl,
15569            const OFFSET: isize,
15570        >(
15571            this: *mut core::ffi::c_void,
15572            uri: windows_core::PCWSTR,
15573            method: windows_core::PCWSTR,
15574            postdata: *mut core::ffi::c_void,
15575            headers: windows_core::PCWSTR,
15576            value: *mut *mut core::ffi::c_void,
15577        ) -> windows_core::HRESULT {
15578            unsafe {
15579                let this: &Identity =
15580                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
15581                match ICoreWebView2Environment2_Impl::CreateWebResourceRequest(
15582                    this,
15583                    core::mem::transmute(&uri),
15584                    core::mem::transmute(&method),
15585                    core::mem::transmute_copy(&postdata),
15586                    core::mem::transmute(&headers),
15587                ) {
15588                    Ok(ok__) => {
15589                        value.write(core::mem::transmute(ok__));
15590                        windows_core::HRESULT(0)
15591                    }
15592                    Err(err) => err.into(),
15593                }
15594            }
15595        }
15596        Self {
15597            base__: ICoreWebView2Environment_Vtbl::new::<Identity, OFFSET>(),
15598            CreateWebResourceRequest: CreateWebResourceRequest::<Identity, OFFSET>,
15599        }
15600    }
15601    pub fn matches(iid: &windows_core::GUID) -> bool {
15602        iid == &<ICoreWebView2Environment2 as windows_core::Interface>::IID
15603            || iid == &<ICoreWebView2Environment as windows_core::Interface>::IID
15604    }
15605}
15606impl windows_core::RuntimeName for ICoreWebView2Environment2 {}
15607windows_core::imp::define_interface!(
15608    ICoreWebView2Environment3,
15609    ICoreWebView2Environment3_Vtbl,
15610    0x80a22ae3_be7c_4ce2_afe1_5a50056cdeeb
15611);
15612impl core::ops::Deref for ICoreWebView2Environment3 {
15613    type Target = ICoreWebView2Environment2;
15614    fn deref(&self) -> &Self::Target {
15615        unsafe { core::mem::transmute(self) }
15616    }
15617}
15618windows_core::imp::interface_hierarchy!(
15619    ICoreWebView2Environment3,
15620    windows_core::IUnknown,
15621    ICoreWebView2Environment,
15622    ICoreWebView2Environment2
15623);
15624impl ICoreWebView2Environment3 {
15625    pub unsafe fn CreateCoreWebView2CompositionController<P1>(
15626        &self,
15627        parentwindow: windows::Win32::Foundation::HWND,
15628        handler: P1,
15629    ) -> windows_core::Result<()>
15630    where
15631        P1: windows_core::Param<
15632            ICoreWebView2CreateCoreWebView2CompositionControllerCompletedHandler,
15633        >,
15634    {
15635        unsafe {
15636            (windows_core::Interface::vtable(self).CreateCoreWebView2CompositionController)(
15637                windows_core::Interface::as_raw(self),
15638                parentwindow,
15639                handler.param().abi(),
15640            )
15641            .ok()
15642        }
15643    }
15644    pub unsafe fn CreateCoreWebView2PointerInfo(
15645        &self,
15646    ) -> windows_core::Result<ICoreWebView2PointerInfo> {
15647        unsafe {
15648            let mut result__ = core::mem::zeroed();
15649            (windows_core::Interface::vtable(self).CreateCoreWebView2PointerInfo)(
15650                windows_core::Interface::as_raw(self),
15651                &mut result__,
15652            )
15653            .and_then(|| windows_core::Type::from_abi(result__))
15654        }
15655    }
15656}
15657#[repr(C)]
15658#[doc(hidden)]
15659pub struct ICoreWebView2Environment3_Vtbl {
15660    pub base__: ICoreWebView2Environment2_Vtbl,
15661    pub CreateCoreWebView2CompositionController: unsafe extern "system" fn(
15662        *mut core::ffi::c_void,
15663        windows::Win32::Foundation::HWND,
15664        *mut core::ffi::c_void,
15665    )
15666        -> windows_core::HRESULT,
15667    pub CreateCoreWebView2PointerInfo: unsafe extern "system" fn(
15668        *mut core::ffi::c_void,
15669        *mut *mut core::ffi::c_void,
15670    ) -> windows_core::HRESULT,
15671}
15672pub trait ICoreWebView2Environment3_Impl: ICoreWebView2Environment2_Impl {
15673    fn CreateCoreWebView2CompositionController(
15674        &self,
15675        parentwindow: windows::Win32::Foundation::HWND,
15676        handler: windows_core::Ref<
15677            ICoreWebView2CreateCoreWebView2CompositionControllerCompletedHandler,
15678        >,
15679    ) -> windows_core::Result<()>;
15680    fn CreateCoreWebView2PointerInfo(&self) -> windows_core::Result<ICoreWebView2PointerInfo>;
15681}
15682impl ICoreWebView2Environment3_Vtbl {
15683    pub const fn new<Identity: ICoreWebView2Environment3_Impl, const OFFSET: isize>() -> Self {
15684        unsafe extern "system" fn CreateCoreWebView2CompositionController<
15685            Identity: ICoreWebView2Environment3_Impl,
15686            const OFFSET: isize,
15687        >(
15688            this: *mut core::ffi::c_void,
15689            parentwindow: windows::Win32::Foundation::HWND,
15690            handler: *mut core::ffi::c_void,
15691        ) -> windows_core::HRESULT {
15692            unsafe {
15693                let this: &Identity =
15694                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
15695                ICoreWebView2Environment3_Impl::CreateCoreWebView2CompositionController(
15696                    this,
15697                    core::mem::transmute_copy(&parentwindow),
15698                    core::mem::transmute_copy(&handler),
15699                )
15700                .into()
15701            }
15702        }
15703        unsafe extern "system" fn CreateCoreWebView2PointerInfo<
15704            Identity: ICoreWebView2Environment3_Impl,
15705            const OFFSET: isize,
15706        >(
15707            this: *mut core::ffi::c_void,
15708            value: *mut *mut core::ffi::c_void,
15709        ) -> windows_core::HRESULT {
15710            unsafe {
15711                let this: &Identity =
15712                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
15713                match ICoreWebView2Environment3_Impl::CreateCoreWebView2PointerInfo(this) {
15714                    Ok(ok__) => {
15715                        value.write(core::mem::transmute(ok__));
15716                        windows_core::HRESULT(0)
15717                    }
15718                    Err(err) => err.into(),
15719                }
15720            }
15721        }
15722        Self {
15723            base__: ICoreWebView2Environment2_Vtbl::new::<Identity, OFFSET>(),
15724            CreateCoreWebView2CompositionController: CreateCoreWebView2CompositionController::<
15725                Identity,
15726                OFFSET,
15727            >,
15728            CreateCoreWebView2PointerInfo: CreateCoreWebView2PointerInfo::<Identity, OFFSET>,
15729        }
15730    }
15731    pub fn matches(iid: &windows_core::GUID) -> bool {
15732        iid == &<ICoreWebView2Environment3 as windows_core::Interface>::IID
15733            || iid == &<ICoreWebView2Environment as windows_core::Interface>::IID
15734            || iid == &<ICoreWebView2Environment2 as windows_core::Interface>::IID
15735    }
15736}
15737impl windows_core::RuntimeName for ICoreWebView2Environment3 {}
15738windows_core::imp::define_interface!(
15739    ICoreWebView2Environment4,
15740    ICoreWebView2Environment4_Vtbl,
15741    0x20944379_6dcf_41d6_a0a0_abc0fc50de0d
15742);
15743impl core::ops::Deref for ICoreWebView2Environment4 {
15744    type Target = ICoreWebView2Environment3;
15745    fn deref(&self) -> &Self::Target {
15746        unsafe { core::mem::transmute(self) }
15747    }
15748}
15749windows_core::imp::interface_hierarchy!(
15750    ICoreWebView2Environment4,
15751    windows_core::IUnknown,
15752    ICoreWebView2Environment,
15753    ICoreWebView2Environment2,
15754    ICoreWebView2Environment3
15755);
15756impl ICoreWebView2Environment4 {
15757    pub unsafe fn GetAutomationProviderForWindow(
15758        &self,
15759        hwnd: windows::Win32::Foundation::HWND,
15760    ) -> windows_core::Result<windows_core::IUnknown> {
15761        unsafe {
15762            let mut result__ = core::mem::zeroed();
15763            (windows_core::Interface::vtable(self).GetAutomationProviderForWindow)(
15764                windows_core::Interface::as_raw(self),
15765                hwnd,
15766                &mut result__,
15767            )
15768            .and_then(|| windows_core::Type::from_abi(result__))
15769        }
15770    }
15771}
15772#[repr(C)]
15773#[doc(hidden)]
15774pub struct ICoreWebView2Environment4_Vtbl {
15775    pub base__: ICoreWebView2Environment3_Vtbl,
15776    pub GetAutomationProviderForWindow: unsafe extern "system" fn(
15777        *mut core::ffi::c_void,
15778        windows::Win32::Foundation::HWND,
15779        *mut *mut core::ffi::c_void,
15780    ) -> windows_core::HRESULT,
15781}
15782pub trait ICoreWebView2Environment4_Impl: ICoreWebView2Environment3_Impl {
15783    fn GetAutomationProviderForWindow(
15784        &self,
15785        hwnd: windows::Win32::Foundation::HWND,
15786    ) -> windows_core::Result<windows_core::IUnknown>;
15787}
15788impl ICoreWebView2Environment4_Vtbl {
15789    pub const fn new<Identity: ICoreWebView2Environment4_Impl, const OFFSET: isize>() -> Self {
15790        unsafe extern "system" fn GetAutomationProviderForWindow<
15791            Identity: ICoreWebView2Environment4_Impl,
15792            const OFFSET: isize,
15793        >(
15794            this: *mut core::ffi::c_void,
15795            hwnd: windows::Win32::Foundation::HWND,
15796            value: *mut *mut core::ffi::c_void,
15797        ) -> windows_core::HRESULT {
15798            unsafe {
15799                let this: &Identity =
15800                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
15801                match ICoreWebView2Environment4_Impl::GetAutomationProviderForWindow(
15802                    this,
15803                    core::mem::transmute_copy(&hwnd),
15804                ) {
15805                    Ok(ok__) => {
15806                        value.write(core::mem::transmute(ok__));
15807                        windows_core::HRESULT(0)
15808                    }
15809                    Err(err) => err.into(),
15810                }
15811            }
15812        }
15813        Self {
15814            base__: ICoreWebView2Environment3_Vtbl::new::<Identity, OFFSET>(),
15815            GetAutomationProviderForWindow: GetAutomationProviderForWindow::<Identity, OFFSET>,
15816        }
15817    }
15818    pub fn matches(iid: &windows_core::GUID) -> bool {
15819        iid == &<ICoreWebView2Environment4 as windows_core::Interface>::IID
15820            || iid == &<ICoreWebView2Environment as windows_core::Interface>::IID
15821            || iid == &<ICoreWebView2Environment2 as windows_core::Interface>::IID
15822            || iid == &<ICoreWebView2Environment3 as windows_core::Interface>::IID
15823    }
15824}
15825impl windows_core::RuntimeName for ICoreWebView2Environment4 {}
15826windows_core::imp::define_interface!(
15827    ICoreWebView2Environment5,
15828    ICoreWebView2Environment5_Vtbl,
15829    0x319e423d_e0d7_4b8d_9254_ae9475de9b17
15830);
15831impl core::ops::Deref for ICoreWebView2Environment5 {
15832    type Target = ICoreWebView2Environment4;
15833    fn deref(&self) -> &Self::Target {
15834        unsafe { core::mem::transmute(self) }
15835    }
15836}
15837windows_core::imp::interface_hierarchy!(
15838    ICoreWebView2Environment5,
15839    windows_core::IUnknown,
15840    ICoreWebView2Environment,
15841    ICoreWebView2Environment2,
15842    ICoreWebView2Environment3,
15843    ICoreWebView2Environment4
15844);
15845impl ICoreWebView2Environment5 {
15846    pub unsafe fn add_BrowserProcessExited<P0>(
15847        &self,
15848        eventhandler: P0,
15849        token: *mut i64,
15850    ) -> windows_core::Result<()>
15851    where
15852        P0: windows_core::Param<ICoreWebView2BrowserProcessExitedEventHandler>,
15853    {
15854        unsafe {
15855            (windows_core::Interface::vtable(self).add_BrowserProcessExited)(
15856                windows_core::Interface::as_raw(self),
15857                eventhandler.param().abi(),
15858                token as _,
15859            )
15860            .ok()
15861        }
15862    }
15863    pub unsafe fn remove_BrowserProcessExited(&self, token: i64) -> windows_core::Result<()> {
15864        unsafe {
15865            (windows_core::Interface::vtable(self).remove_BrowserProcessExited)(
15866                windows_core::Interface::as_raw(self),
15867                token,
15868            )
15869            .ok()
15870        }
15871    }
15872}
15873#[repr(C)]
15874#[doc(hidden)]
15875pub struct ICoreWebView2Environment5_Vtbl {
15876    pub base__: ICoreWebView2Environment4_Vtbl,
15877    pub add_BrowserProcessExited: unsafe extern "system" fn(
15878        *mut core::ffi::c_void,
15879        *mut core::ffi::c_void,
15880        *mut i64,
15881    ) -> windows_core::HRESULT,
15882    pub remove_BrowserProcessExited:
15883        unsafe extern "system" fn(*mut core::ffi::c_void, i64) -> windows_core::HRESULT,
15884}
15885pub trait ICoreWebView2Environment5_Impl: ICoreWebView2Environment4_Impl {
15886    fn add_BrowserProcessExited(
15887        &self,
15888        eventhandler: windows_core::Ref<ICoreWebView2BrowserProcessExitedEventHandler>,
15889        token: *mut i64,
15890    ) -> windows_core::Result<()>;
15891    fn remove_BrowserProcessExited(&self, token: i64) -> windows_core::Result<()>;
15892}
15893impl ICoreWebView2Environment5_Vtbl {
15894    pub const fn new<Identity: ICoreWebView2Environment5_Impl, const OFFSET: isize>() -> Self {
15895        unsafe extern "system" fn add_BrowserProcessExited<
15896            Identity: ICoreWebView2Environment5_Impl,
15897            const OFFSET: isize,
15898        >(
15899            this: *mut core::ffi::c_void,
15900            eventhandler: *mut core::ffi::c_void,
15901            token: *mut i64,
15902        ) -> windows_core::HRESULT {
15903            unsafe {
15904                let this: &Identity =
15905                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
15906                ICoreWebView2Environment5_Impl::add_BrowserProcessExited(
15907                    this,
15908                    core::mem::transmute_copy(&eventhandler),
15909                    core::mem::transmute_copy(&token),
15910                )
15911                .into()
15912            }
15913        }
15914        unsafe extern "system" fn remove_BrowserProcessExited<
15915            Identity: ICoreWebView2Environment5_Impl,
15916            const OFFSET: isize,
15917        >(
15918            this: *mut core::ffi::c_void,
15919            token: i64,
15920        ) -> windows_core::HRESULT {
15921            unsafe {
15922                let this: &Identity =
15923                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
15924                ICoreWebView2Environment5_Impl::remove_BrowserProcessExited(
15925                    this,
15926                    core::mem::transmute_copy(&token),
15927                )
15928                .into()
15929            }
15930        }
15931        Self {
15932            base__: ICoreWebView2Environment4_Vtbl::new::<Identity, OFFSET>(),
15933            add_BrowserProcessExited: add_BrowserProcessExited::<Identity, OFFSET>,
15934            remove_BrowserProcessExited: remove_BrowserProcessExited::<Identity, OFFSET>,
15935        }
15936    }
15937    pub fn matches(iid: &windows_core::GUID) -> bool {
15938        iid == &<ICoreWebView2Environment5 as windows_core::Interface>::IID
15939            || iid == &<ICoreWebView2Environment as windows_core::Interface>::IID
15940            || iid == &<ICoreWebView2Environment2 as windows_core::Interface>::IID
15941            || iid == &<ICoreWebView2Environment3 as windows_core::Interface>::IID
15942            || iid == &<ICoreWebView2Environment4 as windows_core::Interface>::IID
15943    }
15944}
15945impl windows_core::RuntimeName for ICoreWebView2Environment5 {}
15946windows_core::imp::define_interface!(
15947    ICoreWebView2Environment6,
15948    ICoreWebView2Environment6_Vtbl,
15949    0xe59ee362_acbd_4857_9a8e_d3644d9459a9
15950);
15951impl core::ops::Deref for ICoreWebView2Environment6 {
15952    type Target = ICoreWebView2Environment5;
15953    fn deref(&self) -> &Self::Target {
15954        unsafe { core::mem::transmute(self) }
15955    }
15956}
15957windows_core::imp::interface_hierarchy!(
15958    ICoreWebView2Environment6,
15959    windows_core::IUnknown,
15960    ICoreWebView2Environment,
15961    ICoreWebView2Environment2,
15962    ICoreWebView2Environment3,
15963    ICoreWebView2Environment4,
15964    ICoreWebView2Environment5
15965);
15966impl ICoreWebView2Environment6 {
15967    pub unsafe fn CreatePrintSettings(&self) -> windows_core::Result<ICoreWebView2PrintSettings> {
15968        unsafe {
15969            let mut result__ = core::mem::zeroed();
15970            (windows_core::Interface::vtable(self).CreatePrintSettings)(
15971                windows_core::Interface::as_raw(self),
15972                &mut result__,
15973            )
15974            .and_then(|| windows_core::Type::from_abi(result__))
15975        }
15976    }
15977}
15978#[repr(C)]
15979#[doc(hidden)]
15980pub struct ICoreWebView2Environment6_Vtbl {
15981    pub base__: ICoreWebView2Environment5_Vtbl,
15982    pub CreatePrintSettings: unsafe extern "system" fn(
15983        *mut core::ffi::c_void,
15984        *mut *mut core::ffi::c_void,
15985    ) -> windows_core::HRESULT,
15986}
15987pub trait ICoreWebView2Environment6_Impl: ICoreWebView2Environment5_Impl {
15988    fn CreatePrintSettings(&self) -> windows_core::Result<ICoreWebView2PrintSettings>;
15989}
15990impl ICoreWebView2Environment6_Vtbl {
15991    pub const fn new<Identity: ICoreWebView2Environment6_Impl, const OFFSET: isize>() -> Self {
15992        unsafe extern "system" fn CreatePrintSettings<
15993            Identity: ICoreWebView2Environment6_Impl,
15994            const OFFSET: isize,
15995        >(
15996            this: *mut core::ffi::c_void,
15997            value: *mut *mut core::ffi::c_void,
15998        ) -> windows_core::HRESULT {
15999            unsafe {
16000                let this: &Identity =
16001                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
16002                match ICoreWebView2Environment6_Impl::CreatePrintSettings(this) {
16003                    Ok(ok__) => {
16004                        value.write(core::mem::transmute(ok__));
16005                        windows_core::HRESULT(0)
16006                    }
16007                    Err(err) => err.into(),
16008                }
16009            }
16010        }
16011        Self {
16012            base__: ICoreWebView2Environment5_Vtbl::new::<Identity, OFFSET>(),
16013            CreatePrintSettings: CreatePrintSettings::<Identity, OFFSET>,
16014        }
16015    }
16016    pub fn matches(iid: &windows_core::GUID) -> bool {
16017        iid == &<ICoreWebView2Environment6 as windows_core::Interface>::IID
16018            || iid == &<ICoreWebView2Environment as windows_core::Interface>::IID
16019            || iid == &<ICoreWebView2Environment2 as windows_core::Interface>::IID
16020            || iid == &<ICoreWebView2Environment3 as windows_core::Interface>::IID
16021            || iid == &<ICoreWebView2Environment4 as windows_core::Interface>::IID
16022            || iid == &<ICoreWebView2Environment5 as windows_core::Interface>::IID
16023    }
16024}
16025impl windows_core::RuntimeName for ICoreWebView2Environment6 {}
16026windows_core::imp::define_interface!(
16027    ICoreWebView2Environment7,
16028    ICoreWebView2Environment7_Vtbl,
16029    0x43c22296_3bbd_43a4_9c00_5c0df6dd29a2
16030);
16031impl core::ops::Deref for ICoreWebView2Environment7 {
16032    type Target = ICoreWebView2Environment6;
16033    fn deref(&self) -> &Self::Target {
16034        unsafe { core::mem::transmute(self) }
16035    }
16036}
16037windows_core::imp::interface_hierarchy!(
16038    ICoreWebView2Environment7,
16039    windows_core::IUnknown,
16040    ICoreWebView2Environment,
16041    ICoreWebView2Environment2,
16042    ICoreWebView2Environment3,
16043    ICoreWebView2Environment4,
16044    ICoreWebView2Environment5,
16045    ICoreWebView2Environment6
16046);
16047impl ICoreWebView2Environment7 {
16048    pub unsafe fn UserDataFolder(
16049        &self,
16050        value: *mut windows_core::PWSTR,
16051    ) -> windows_core::Result<()> {
16052        unsafe {
16053            (windows_core::Interface::vtable(self).UserDataFolder)(
16054                windows_core::Interface::as_raw(self),
16055                value as _,
16056            )
16057            .ok()
16058        }
16059    }
16060}
16061#[repr(C)]
16062#[doc(hidden)]
16063pub struct ICoreWebView2Environment7_Vtbl {
16064    pub base__: ICoreWebView2Environment6_Vtbl,
16065    pub UserDataFolder: unsafe extern "system" fn(
16066        *mut core::ffi::c_void,
16067        *mut windows_core::PWSTR,
16068    ) -> windows_core::HRESULT,
16069}
16070pub trait ICoreWebView2Environment7_Impl: ICoreWebView2Environment6_Impl {
16071    fn UserDataFolder(&self, value: *mut windows_core::PWSTR) -> windows_core::Result<()>;
16072}
16073impl ICoreWebView2Environment7_Vtbl {
16074    pub const fn new<Identity: ICoreWebView2Environment7_Impl, const OFFSET: isize>() -> Self {
16075        unsafe extern "system" fn UserDataFolder<
16076            Identity: ICoreWebView2Environment7_Impl,
16077            const OFFSET: isize,
16078        >(
16079            this: *mut core::ffi::c_void,
16080            value: *mut windows_core::PWSTR,
16081        ) -> windows_core::HRESULT {
16082            unsafe {
16083                let this: &Identity =
16084                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
16085                ICoreWebView2Environment7_Impl::UserDataFolder(
16086                    this,
16087                    core::mem::transmute_copy(&value),
16088                )
16089                .into()
16090            }
16091        }
16092        Self {
16093            base__: ICoreWebView2Environment6_Vtbl::new::<Identity, OFFSET>(),
16094            UserDataFolder: UserDataFolder::<Identity, OFFSET>,
16095        }
16096    }
16097    pub fn matches(iid: &windows_core::GUID) -> bool {
16098        iid == &<ICoreWebView2Environment7 as windows_core::Interface>::IID
16099            || iid == &<ICoreWebView2Environment as windows_core::Interface>::IID
16100            || iid == &<ICoreWebView2Environment2 as windows_core::Interface>::IID
16101            || iid == &<ICoreWebView2Environment3 as windows_core::Interface>::IID
16102            || iid == &<ICoreWebView2Environment4 as windows_core::Interface>::IID
16103            || iid == &<ICoreWebView2Environment5 as windows_core::Interface>::IID
16104            || iid == &<ICoreWebView2Environment6 as windows_core::Interface>::IID
16105    }
16106}
16107impl windows_core::RuntimeName for ICoreWebView2Environment7 {}
16108windows_core::imp::define_interface!(
16109    ICoreWebView2Environment8,
16110    ICoreWebView2Environment8_Vtbl,
16111    0xd6eb91dd_c3d2_45e5_bd29_6dc2bc4de9cf
16112);
16113impl core::ops::Deref for ICoreWebView2Environment8 {
16114    type Target = ICoreWebView2Environment7;
16115    fn deref(&self) -> &Self::Target {
16116        unsafe { core::mem::transmute(self) }
16117    }
16118}
16119windows_core::imp::interface_hierarchy!(
16120    ICoreWebView2Environment8,
16121    windows_core::IUnknown,
16122    ICoreWebView2Environment,
16123    ICoreWebView2Environment2,
16124    ICoreWebView2Environment3,
16125    ICoreWebView2Environment4,
16126    ICoreWebView2Environment5,
16127    ICoreWebView2Environment6,
16128    ICoreWebView2Environment7
16129);
16130impl ICoreWebView2Environment8 {
16131    pub unsafe fn add_ProcessInfosChanged<P0>(
16132        &self,
16133        eventhandler: P0,
16134        token: *mut i64,
16135    ) -> windows_core::Result<()>
16136    where
16137        P0: windows_core::Param<ICoreWebView2ProcessInfosChangedEventHandler>,
16138    {
16139        unsafe {
16140            (windows_core::Interface::vtable(self).add_ProcessInfosChanged)(
16141                windows_core::Interface::as_raw(self),
16142                eventhandler.param().abi(),
16143                token as _,
16144            )
16145            .ok()
16146        }
16147    }
16148    pub unsafe fn remove_ProcessInfosChanged(&self, token: i64) -> windows_core::Result<()> {
16149        unsafe {
16150            (windows_core::Interface::vtable(self).remove_ProcessInfosChanged)(
16151                windows_core::Interface::as_raw(self),
16152                token,
16153            )
16154            .ok()
16155        }
16156    }
16157    pub unsafe fn GetProcessInfos(
16158        &self,
16159    ) -> windows_core::Result<ICoreWebView2ProcessInfoCollection> {
16160        unsafe {
16161            let mut result__ = core::mem::zeroed();
16162            (windows_core::Interface::vtable(self).GetProcessInfos)(
16163                windows_core::Interface::as_raw(self),
16164                &mut result__,
16165            )
16166            .and_then(|| windows_core::Type::from_abi(result__))
16167        }
16168    }
16169}
16170#[repr(C)]
16171#[doc(hidden)]
16172pub struct ICoreWebView2Environment8_Vtbl {
16173    pub base__: ICoreWebView2Environment7_Vtbl,
16174    pub add_ProcessInfosChanged: unsafe extern "system" fn(
16175        *mut core::ffi::c_void,
16176        *mut core::ffi::c_void,
16177        *mut i64,
16178    ) -> windows_core::HRESULT,
16179    pub remove_ProcessInfosChanged:
16180        unsafe extern "system" fn(*mut core::ffi::c_void, i64) -> windows_core::HRESULT,
16181    pub GetProcessInfos: unsafe extern "system" fn(
16182        *mut core::ffi::c_void,
16183        *mut *mut core::ffi::c_void,
16184    ) -> windows_core::HRESULT,
16185}
16186pub trait ICoreWebView2Environment8_Impl: ICoreWebView2Environment7_Impl {
16187    fn add_ProcessInfosChanged(
16188        &self,
16189        eventhandler: windows_core::Ref<ICoreWebView2ProcessInfosChangedEventHandler>,
16190        token: *mut i64,
16191    ) -> windows_core::Result<()>;
16192    fn remove_ProcessInfosChanged(&self, token: i64) -> windows_core::Result<()>;
16193    fn GetProcessInfos(&self) -> windows_core::Result<ICoreWebView2ProcessInfoCollection>;
16194}
16195impl ICoreWebView2Environment8_Vtbl {
16196    pub const fn new<Identity: ICoreWebView2Environment8_Impl, const OFFSET: isize>() -> Self {
16197        unsafe extern "system" fn add_ProcessInfosChanged<
16198            Identity: ICoreWebView2Environment8_Impl,
16199            const OFFSET: isize,
16200        >(
16201            this: *mut core::ffi::c_void,
16202            eventhandler: *mut core::ffi::c_void,
16203            token: *mut i64,
16204        ) -> windows_core::HRESULT {
16205            unsafe {
16206                let this: &Identity =
16207                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
16208                ICoreWebView2Environment8_Impl::add_ProcessInfosChanged(
16209                    this,
16210                    core::mem::transmute_copy(&eventhandler),
16211                    core::mem::transmute_copy(&token),
16212                )
16213                .into()
16214            }
16215        }
16216        unsafe extern "system" fn remove_ProcessInfosChanged<
16217            Identity: ICoreWebView2Environment8_Impl,
16218            const OFFSET: isize,
16219        >(
16220            this: *mut core::ffi::c_void,
16221            token: i64,
16222        ) -> windows_core::HRESULT {
16223            unsafe {
16224                let this: &Identity =
16225                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
16226                ICoreWebView2Environment8_Impl::remove_ProcessInfosChanged(
16227                    this,
16228                    core::mem::transmute_copy(&token),
16229                )
16230                .into()
16231            }
16232        }
16233        unsafe extern "system" fn GetProcessInfos<
16234            Identity: ICoreWebView2Environment8_Impl,
16235            const OFFSET: isize,
16236        >(
16237            this: *mut core::ffi::c_void,
16238            value: *mut *mut core::ffi::c_void,
16239        ) -> windows_core::HRESULT {
16240            unsafe {
16241                let this: &Identity =
16242                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
16243                match ICoreWebView2Environment8_Impl::GetProcessInfos(this) {
16244                    Ok(ok__) => {
16245                        value.write(core::mem::transmute(ok__));
16246                        windows_core::HRESULT(0)
16247                    }
16248                    Err(err) => err.into(),
16249                }
16250            }
16251        }
16252        Self {
16253            base__: ICoreWebView2Environment7_Vtbl::new::<Identity, OFFSET>(),
16254            add_ProcessInfosChanged: add_ProcessInfosChanged::<Identity, OFFSET>,
16255            remove_ProcessInfosChanged: remove_ProcessInfosChanged::<Identity, OFFSET>,
16256            GetProcessInfos: GetProcessInfos::<Identity, OFFSET>,
16257        }
16258    }
16259    pub fn matches(iid: &windows_core::GUID) -> bool {
16260        iid == &<ICoreWebView2Environment8 as windows_core::Interface>::IID
16261            || iid == &<ICoreWebView2Environment as windows_core::Interface>::IID
16262            || iid == &<ICoreWebView2Environment2 as windows_core::Interface>::IID
16263            || iid == &<ICoreWebView2Environment3 as windows_core::Interface>::IID
16264            || iid == &<ICoreWebView2Environment4 as windows_core::Interface>::IID
16265            || iid == &<ICoreWebView2Environment5 as windows_core::Interface>::IID
16266            || iid == &<ICoreWebView2Environment6 as windows_core::Interface>::IID
16267            || iid == &<ICoreWebView2Environment7 as windows_core::Interface>::IID
16268    }
16269}
16270impl windows_core::RuntimeName for ICoreWebView2Environment8 {}
16271windows_core::imp::define_interface!(
16272    ICoreWebView2Environment9,
16273    ICoreWebView2Environment9_Vtbl,
16274    0xf06f41bf_4b5a_49d8_b9f6_fa16cd29f274
16275);
16276impl core::ops::Deref for ICoreWebView2Environment9 {
16277    type Target = ICoreWebView2Environment8;
16278    fn deref(&self) -> &Self::Target {
16279        unsafe { core::mem::transmute(self) }
16280    }
16281}
16282windows_core::imp::interface_hierarchy!(
16283    ICoreWebView2Environment9,
16284    windows_core::IUnknown,
16285    ICoreWebView2Environment,
16286    ICoreWebView2Environment2,
16287    ICoreWebView2Environment3,
16288    ICoreWebView2Environment4,
16289    ICoreWebView2Environment5,
16290    ICoreWebView2Environment6,
16291    ICoreWebView2Environment7,
16292    ICoreWebView2Environment8
16293);
16294impl ICoreWebView2Environment9 {
16295    pub unsafe fn CreateContextMenuItem<P0, P1>(
16296        &self,
16297        label: P0,
16298        iconstream: P1,
16299        kind: COREWEBVIEW2_CONTEXT_MENU_ITEM_KIND,
16300    ) -> windows_core::Result<ICoreWebView2ContextMenuItem>
16301    where
16302        P0: windows_core::Param<windows_core::PCWSTR>,
16303        P1: windows_core::Param<windows::Win32::System::Com::IStream>,
16304    {
16305        unsafe {
16306            let mut result__ = core::mem::zeroed();
16307            (windows_core::Interface::vtable(self).CreateContextMenuItem)(
16308                windows_core::Interface::as_raw(self),
16309                label.param().abi(),
16310                iconstream.param().abi(),
16311                kind,
16312                &mut result__,
16313            )
16314            .and_then(|| windows_core::Type::from_abi(result__))
16315        }
16316    }
16317}
16318#[repr(C)]
16319#[doc(hidden)]
16320pub struct ICoreWebView2Environment9_Vtbl {
16321    pub base__: ICoreWebView2Environment8_Vtbl,
16322    pub CreateContextMenuItem: unsafe extern "system" fn(
16323        *mut core::ffi::c_void,
16324        windows_core::PCWSTR,
16325        *mut core::ffi::c_void,
16326        COREWEBVIEW2_CONTEXT_MENU_ITEM_KIND,
16327        *mut *mut core::ffi::c_void,
16328    ) -> windows_core::HRESULT,
16329}
16330pub trait ICoreWebView2Environment9_Impl: ICoreWebView2Environment8_Impl {
16331    fn CreateContextMenuItem(
16332        &self,
16333        label: &windows_core::PCWSTR,
16334        iconstream: windows_core::Ref<windows::Win32::System::Com::IStream>,
16335        kind: COREWEBVIEW2_CONTEXT_MENU_ITEM_KIND,
16336    ) -> windows_core::Result<ICoreWebView2ContextMenuItem>;
16337}
16338impl ICoreWebView2Environment9_Vtbl {
16339    pub const fn new<Identity: ICoreWebView2Environment9_Impl, const OFFSET: isize>() -> Self {
16340        unsafe extern "system" fn CreateContextMenuItem<
16341            Identity: ICoreWebView2Environment9_Impl,
16342            const OFFSET: isize,
16343        >(
16344            this: *mut core::ffi::c_void,
16345            label: windows_core::PCWSTR,
16346            iconstream: *mut core::ffi::c_void,
16347            kind: COREWEBVIEW2_CONTEXT_MENU_ITEM_KIND,
16348            value: *mut *mut core::ffi::c_void,
16349        ) -> windows_core::HRESULT {
16350            unsafe {
16351                let this: &Identity =
16352                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
16353                match ICoreWebView2Environment9_Impl::CreateContextMenuItem(
16354                    this,
16355                    core::mem::transmute(&label),
16356                    core::mem::transmute_copy(&iconstream),
16357                    core::mem::transmute_copy(&kind),
16358                ) {
16359                    Ok(ok__) => {
16360                        value.write(core::mem::transmute(ok__));
16361                        windows_core::HRESULT(0)
16362                    }
16363                    Err(err) => err.into(),
16364                }
16365            }
16366        }
16367        Self {
16368            base__: ICoreWebView2Environment8_Vtbl::new::<Identity, OFFSET>(),
16369            CreateContextMenuItem: CreateContextMenuItem::<Identity, OFFSET>,
16370        }
16371    }
16372    pub fn matches(iid: &windows_core::GUID) -> bool {
16373        iid == &<ICoreWebView2Environment9 as windows_core::Interface>::IID
16374            || iid == &<ICoreWebView2Environment as windows_core::Interface>::IID
16375            || iid == &<ICoreWebView2Environment2 as windows_core::Interface>::IID
16376            || iid == &<ICoreWebView2Environment3 as windows_core::Interface>::IID
16377            || iid == &<ICoreWebView2Environment4 as windows_core::Interface>::IID
16378            || iid == &<ICoreWebView2Environment5 as windows_core::Interface>::IID
16379            || iid == &<ICoreWebView2Environment6 as windows_core::Interface>::IID
16380            || iid == &<ICoreWebView2Environment7 as windows_core::Interface>::IID
16381            || iid == &<ICoreWebView2Environment8 as windows_core::Interface>::IID
16382    }
16383}
16384impl windows_core::RuntimeName for ICoreWebView2Environment9 {}
16385windows_core::imp::define_interface!(
16386    ICoreWebView2EnvironmentOptions,
16387    ICoreWebView2EnvironmentOptions_Vtbl,
16388    0x2fde08a8_1e9a_4766_8c05_95a9ceb9d1c5
16389);
16390windows_core::imp::interface_hierarchy!(ICoreWebView2EnvironmentOptions, windows_core::IUnknown);
16391impl ICoreWebView2EnvironmentOptions {
16392    pub unsafe fn AdditionalBrowserArguments(
16393        &self,
16394        value: *mut windows_core::PWSTR,
16395    ) -> windows_core::Result<()> {
16396        unsafe {
16397            (windows_core::Interface::vtable(self).AdditionalBrowserArguments)(
16398                windows_core::Interface::as_raw(self),
16399                value as _,
16400            )
16401            .ok()
16402        }
16403    }
16404    pub unsafe fn SetAdditionalBrowserArguments<P0>(&self, value: P0) -> windows_core::Result<()>
16405    where
16406        P0: windows_core::Param<windows_core::PCWSTR>,
16407    {
16408        unsafe {
16409            (windows_core::Interface::vtable(self).SetAdditionalBrowserArguments)(
16410                windows_core::Interface::as_raw(self),
16411                value.param().abi(),
16412            )
16413            .ok()
16414        }
16415    }
16416    pub unsafe fn Language(&self, value: *mut windows_core::PWSTR) -> windows_core::Result<()> {
16417        unsafe {
16418            (windows_core::Interface::vtable(self).Language)(
16419                windows_core::Interface::as_raw(self),
16420                value as _,
16421            )
16422            .ok()
16423        }
16424    }
16425    pub unsafe fn SetLanguage<P0>(&self, value: P0) -> windows_core::Result<()>
16426    where
16427        P0: windows_core::Param<windows_core::PCWSTR>,
16428    {
16429        unsafe {
16430            (windows_core::Interface::vtable(self).SetLanguage)(
16431                windows_core::Interface::as_raw(self),
16432                value.param().abi(),
16433            )
16434            .ok()
16435        }
16436    }
16437    pub unsafe fn TargetCompatibleBrowserVersion(
16438        &self,
16439        value: *mut windows_core::PWSTR,
16440    ) -> windows_core::Result<()> {
16441        unsafe {
16442            (windows_core::Interface::vtable(self).TargetCompatibleBrowserVersion)(
16443                windows_core::Interface::as_raw(self),
16444                value as _,
16445            )
16446            .ok()
16447        }
16448    }
16449    pub unsafe fn SetTargetCompatibleBrowserVersion<P0>(
16450        &self,
16451        value: P0,
16452    ) -> windows_core::Result<()>
16453    where
16454        P0: windows_core::Param<windows_core::PCWSTR>,
16455    {
16456        unsafe {
16457            (windows_core::Interface::vtable(self).SetTargetCompatibleBrowserVersion)(
16458                windows_core::Interface::as_raw(self),
16459                value.param().abi(),
16460            )
16461            .ok()
16462        }
16463    }
16464    pub unsafe fn AllowSingleSignOnUsingOSPrimaryAccount(
16465        &self,
16466        allow: *mut windows_core::BOOL,
16467    ) -> windows_core::Result<()> {
16468        unsafe {
16469            (windows_core::Interface::vtable(self).AllowSingleSignOnUsingOSPrimaryAccount)(
16470                windows_core::Interface::as_raw(self),
16471                allow as _,
16472            )
16473            .ok()
16474        }
16475    }
16476    pub unsafe fn SetAllowSingleSignOnUsingOSPrimaryAccount(
16477        &self,
16478        allow: bool,
16479    ) -> windows_core::Result<()> {
16480        unsafe {
16481            (windows_core::Interface::vtable(self).SetAllowSingleSignOnUsingOSPrimaryAccount)(
16482                windows_core::Interface::as_raw(self),
16483                allow.into(),
16484            )
16485            .ok()
16486        }
16487    }
16488}
16489#[repr(C)]
16490#[doc(hidden)]
16491pub struct ICoreWebView2EnvironmentOptions_Vtbl {
16492    pub base__: windows_core::IUnknown_Vtbl,
16493    pub AdditionalBrowserArguments: unsafe extern "system" fn(
16494        *mut core::ffi::c_void,
16495        *mut windows_core::PWSTR,
16496    ) -> windows_core::HRESULT,
16497    pub SetAdditionalBrowserArguments: unsafe extern "system" fn(
16498        *mut core::ffi::c_void,
16499        windows_core::PCWSTR,
16500    ) -> windows_core::HRESULT,
16501    pub Language: unsafe extern "system" fn(
16502        *mut core::ffi::c_void,
16503        *mut windows_core::PWSTR,
16504    ) -> windows_core::HRESULT,
16505    pub SetLanguage: unsafe extern "system" fn(
16506        *mut core::ffi::c_void,
16507        windows_core::PCWSTR,
16508    ) -> windows_core::HRESULT,
16509    pub TargetCompatibleBrowserVersion: unsafe extern "system" fn(
16510        *mut core::ffi::c_void,
16511        *mut windows_core::PWSTR,
16512    ) -> windows_core::HRESULT,
16513    pub SetTargetCompatibleBrowserVersion: unsafe extern "system" fn(
16514        *mut core::ffi::c_void,
16515        windows_core::PCWSTR,
16516    ) -> windows_core::HRESULT,
16517    pub AllowSingleSignOnUsingOSPrimaryAccount: unsafe extern "system" fn(
16518        *mut core::ffi::c_void,
16519        *mut windows_core::BOOL,
16520    )
16521        -> windows_core::HRESULT,
16522    pub SetAllowSingleSignOnUsingOSPrimaryAccount:
16523        unsafe extern "system" fn(
16524            *mut core::ffi::c_void,
16525            windows_core::BOOL,
16526        ) -> windows_core::HRESULT,
16527}
16528pub trait ICoreWebView2EnvironmentOptions_Impl: windows_core::IUnknownImpl {
16529    fn AdditionalBrowserArguments(
16530        &self,
16531        value: *mut windows_core::PWSTR,
16532    ) -> windows_core::Result<()>;
16533    fn SetAdditionalBrowserArguments(
16534        &self,
16535        value: &windows_core::PCWSTR,
16536    ) -> windows_core::Result<()>;
16537    fn Language(&self, value: *mut windows_core::PWSTR) -> windows_core::Result<()>;
16538    fn SetLanguage(&self, value: &windows_core::PCWSTR) -> windows_core::Result<()>;
16539    fn TargetCompatibleBrowserVersion(
16540        &self,
16541        value: *mut windows_core::PWSTR,
16542    ) -> windows_core::Result<()>;
16543    fn SetTargetCompatibleBrowserVersion(
16544        &self,
16545        value: &windows_core::PCWSTR,
16546    ) -> windows_core::Result<()>;
16547    fn AllowSingleSignOnUsingOSPrimaryAccount(
16548        &self,
16549        allow: *mut windows_core::BOOL,
16550    ) -> windows_core::Result<()>;
16551    fn SetAllowSingleSignOnUsingOSPrimaryAccount(
16552        &self,
16553        allow: windows_core::BOOL,
16554    ) -> windows_core::Result<()>;
16555}
16556impl ICoreWebView2EnvironmentOptions_Vtbl {
16557    pub const fn new<Identity: ICoreWebView2EnvironmentOptions_Impl, const OFFSET: isize>() -> Self
16558    {
16559        unsafe extern "system" fn AdditionalBrowserArguments<
16560            Identity: ICoreWebView2EnvironmentOptions_Impl,
16561            const OFFSET: isize,
16562        >(
16563            this: *mut core::ffi::c_void,
16564            value: *mut windows_core::PWSTR,
16565        ) -> windows_core::HRESULT {
16566            unsafe {
16567                let this: &Identity =
16568                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
16569                ICoreWebView2EnvironmentOptions_Impl::AdditionalBrowserArguments(
16570                    this,
16571                    core::mem::transmute_copy(&value),
16572                )
16573                .into()
16574            }
16575        }
16576        unsafe extern "system" fn SetAdditionalBrowserArguments<
16577            Identity: ICoreWebView2EnvironmentOptions_Impl,
16578            const OFFSET: isize,
16579        >(
16580            this: *mut core::ffi::c_void,
16581            value: windows_core::PCWSTR,
16582        ) -> windows_core::HRESULT {
16583            unsafe {
16584                let this: &Identity =
16585                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
16586                ICoreWebView2EnvironmentOptions_Impl::SetAdditionalBrowserArguments(
16587                    this,
16588                    core::mem::transmute(&value),
16589                )
16590                .into()
16591            }
16592        }
16593        unsafe extern "system" fn Language<
16594            Identity: ICoreWebView2EnvironmentOptions_Impl,
16595            const OFFSET: isize,
16596        >(
16597            this: *mut core::ffi::c_void,
16598            value: *mut windows_core::PWSTR,
16599        ) -> windows_core::HRESULT {
16600            unsafe {
16601                let this: &Identity =
16602                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
16603                ICoreWebView2EnvironmentOptions_Impl::Language(
16604                    this,
16605                    core::mem::transmute_copy(&value),
16606                )
16607                .into()
16608            }
16609        }
16610        unsafe extern "system" fn SetLanguage<
16611            Identity: ICoreWebView2EnvironmentOptions_Impl,
16612            const OFFSET: isize,
16613        >(
16614            this: *mut core::ffi::c_void,
16615            value: windows_core::PCWSTR,
16616        ) -> windows_core::HRESULT {
16617            unsafe {
16618                let this: &Identity =
16619                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
16620                ICoreWebView2EnvironmentOptions_Impl::SetLanguage(
16621                    this,
16622                    core::mem::transmute(&value),
16623                )
16624                .into()
16625            }
16626        }
16627        unsafe extern "system" fn TargetCompatibleBrowserVersion<
16628            Identity: ICoreWebView2EnvironmentOptions_Impl,
16629            const OFFSET: isize,
16630        >(
16631            this: *mut core::ffi::c_void,
16632            value: *mut windows_core::PWSTR,
16633        ) -> windows_core::HRESULT {
16634            unsafe {
16635                let this: &Identity =
16636                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
16637                ICoreWebView2EnvironmentOptions_Impl::TargetCompatibleBrowserVersion(
16638                    this,
16639                    core::mem::transmute_copy(&value),
16640                )
16641                .into()
16642            }
16643        }
16644        unsafe extern "system" fn SetTargetCompatibleBrowserVersion<
16645            Identity: ICoreWebView2EnvironmentOptions_Impl,
16646            const OFFSET: isize,
16647        >(
16648            this: *mut core::ffi::c_void,
16649            value: windows_core::PCWSTR,
16650        ) -> windows_core::HRESULT {
16651            unsafe {
16652                let this: &Identity =
16653                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
16654                ICoreWebView2EnvironmentOptions_Impl::SetTargetCompatibleBrowserVersion(
16655                    this,
16656                    core::mem::transmute(&value),
16657                )
16658                .into()
16659            }
16660        }
16661        unsafe extern "system" fn AllowSingleSignOnUsingOSPrimaryAccount<
16662            Identity: ICoreWebView2EnvironmentOptions_Impl,
16663            const OFFSET: isize,
16664        >(
16665            this: *mut core::ffi::c_void,
16666            allow: *mut windows_core::BOOL,
16667        ) -> windows_core::HRESULT {
16668            unsafe {
16669                let this: &Identity =
16670                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
16671                ICoreWebView2EnvironmentOptions_Impl::AllowSingleSignOnUsingOSPrimaryAccount(
16672                    this,
16673                    core::mem::transmute_copy(&allow),
16674                )
16675                .into()
16676            }
16677        }
16678        unsafe extern "system" fn SetAllowSingleSignOnUsingOSPrimaryAccount<
16679            Identity: ICoreWebView2EnvironmentOptions_Impl,
16680            const OFFSET: isize,
16681        >(
16682            this: *mut core::ffi::c_void,
16683            allow: windows_core::BOOL,
16684        ) -> windows_core::HRESULT {
16685            unsafe {
16686                let this: &Identity =
16687                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
16688                ICoreWebView2EnvironmentOptions_Impl::SetAllowSingleSignOnUsingOSPrimaryAccount(
16689                    this,
16690                    core::mem::transmute_copy(&allow),
16691                )
16692                .into()
16693            }
16694        }
16695        Self {
16696            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
16697            AdditionalBrowserArguments: AdditionalBrowserArguments::<Identity, OFFSET>,
16698            SetAdditionalBrowserArguments: SetAdditionalBrowserArguments::<Identity, OFFSET>,
16699            Language: Language::<Identity, OFFSET>,
16700            SetLanguage: SetLanguage::<Identity, OFFSET>,
16701            TargetCompatibleBrowserVersion: TargetCompatibleBrowserVersion::<Identity, OFFSET>,
16702            SetTargetCompatibleBrowserVersion: SetTargetCompatibleBrowserVersion::<Identity, OFFSET>,
16703            AllowSingleSignOnUsingOSPrimaryAccount: AllowSingleSignOnUsingOSPrimaryAccount::<
16704                Identity,
16705                OFFSET,
16706            >,
16707            SetAllowSingleSignOnUsingOSPrimaryAccount: SetAllowSingleSignOnUsingOSPrimaryAccount::<
16708                Identity,
16709                OFFSET,
16710            >,
16711        }
16712    }
16713    pub fn matches(iid: &windows_core::GUID) -> bool {
16714        iid == &<ICoreWebView2EnvironmentOptions as windows_core::Interface>::IID
16715    }
16716}
16717impl windows_core::RuntimeName for ICoreWebView2EnvironmentOptions {}
16718windows_core::imp::define_interface!(
16719    ICoreWebView2EnvironmentOptions2,
16720    ICoreWebView2EnvironmentOptions2_Vtbl,
16721    0xff85c98a_1ba7_4a6b_90c8_2b752c89e9e2
16722);
16723windows_core::imp::interface_hierarchy!(ICoreWebView2EnvironmentOptions2, windows_core::IUnknown);
16724impl ICoreWebView2EnvironmentOptions2 {
16725    pub unsafe fn ExclusiveUserDataFolderAccess(
16726        &self,
16727        value: *mut windows_core::BOOL,
16728    ) -> windows_core::Result<()> {
16729        unsafe {
16730            (windows_core::Interface::vtable(self).ExclusiveUserDataFolderAccess)(
16731                windows_core::Interface::as_raw(self),
16732                value as _,
16733            )
16734            .ok()
16735        }
16736    }
16737    pub unsafe fn SetExclusiveUserDataFolderAccess(&self, value: bool) -> windows_core::Result<()> {
16738        unsafe {
16739            (windows_core::Interface::vtable(self).SetExclusiveUserDataFolderAccess)(
16740                windows_core::Interface::as_raw(self),
16741                value.into(),
16742            )
16743            .ok()
16744        }
16745    }
16746}
16747#[repr(C)]
16748#[doc(hidden)]
16749pub struct ICoreWebView2EnvironmentOptions2_Vtbl {
16750    pub base__: windows_core::IUnknown_Vtbl,
16751    pub ExclusiveUserDataFolderAccess: unsafe extern "system" fn(
16752        *mut core::ffi::c_void,
16753        *mut windows_core::BOOL,
16754    ) -> windows_core::HRESULT,
16755    pub SetExclusiveUserDataFolderAccess: unsafe extern "system" fn(
16756        *mut core::ffi::c_void,
16757        windows_core::BOOL,
16758    ) -> windows_core::HRESULT,
16759}
16760pub trait ICoreWebView2EnvironmentOptions2_Impl: windows_core::IUnknownImpl {
16761    fn ExclusiveUserDataFolderAccess(
16762        &self,
16763        value: *mut windows_core::BOOL,
16764    ) -> windows_core::Result<()>;
16765    fn SetExclusiveUserDataFolderAccess(
16766        &self,
16767        value: windows_core::BOOL,
16768    ) -> windows_core::Result<()>;
16769}
16770impl ICoreWebView2EnvironmentOptions2_Vtbl {
16771    pub const fn new<Identity: ICoreWebView2EnvironmentOptions2_Impl, const OFFSET: isize>() -> Self
16772    {
16773        unsafe extern "system" fn ExclusiveUserDataFolderAccess<
16774            Identity: ICoreWebView2EnvironmentOptions2_Impl,
16775            const OFFSET: isize,
16776        >(
16777            this: *mut core::ffi::c_void,
16778            value: *mut windows_core::BOOL,
16779        ) -> windows_core::HRESULT {
16780            unsafe {
16781                let this: &Identity =
16782                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
16783                ICoreWebView2EnvironmentOptions2_Impl::ExclusiveUserDataFolderAccess(
16784                    this,
16785                    core::mem::transmute_copy(&value),
16786                )
16787                .into()
16788            }
16789        }
16790        unsafe extern "system" fn SetExclusiveUserDataFolderAccess<
16791            Identity: ICoreWebView2EnvironmentOptions2_Impl,
16792            const OFFSET: isize,
16793        >(
16794            this: *mut core::ffi::c_void,
16795            value: windows_core::BOOL,
16796        ) -> windows_core::HRESULT {
16797            unsafe {
16798                let this: &Identity =
16799                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
16800                ICoreWebView2EnvironmentOptions2_Impl::SetExclusiveUserDataFolderAccess(
16801                    this,
16802                    core::mem::transmute_copy(&value),
16803                )
16804                .into()
16805            }
16806        }
16807        Self {
16808            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
16809            ExclusiveUserDataFolderAccess: ExclusiveUserDataFolderAccess::<Identity, OFFSET>,
16810            SetExclusiveUserDataFolderAccess: SetExclusiveUserDataFolderAccess::<Identity, OFFSET>,
16811        }
16812    }
16813    pub fn matches(iid: &windows_core::GUID) -> bool {
16814        iid == &<ICoreWebView2EnvironmentOptions2 as windows_core::Interface>::IID
16815    }
16816}
16817impl windows_core::RuntimeName for ICoreWebView2EnvironmentOptions2 {}
16818windows_core::imp::define_interface!(
16819    ICoreWebView2EnvironmentOptions3,
16820    ICoreWebView2EnvironmentOptions3_Vtbl,
16821    0x4a5c436e_a9e3_4a2e_89c3_910d3513f5cc
16822);
16823windows_core::imp::interface_hierarchy!(ICoreWebView2EnvironmentOptions3, windows_core::IUnknown);
16824impl ICoreWebView2EnvironmentOptions3 {
16825    pub unsafe fn IsCustomCrashReportingEnabled(
16826        &self,
16827        value: *mut windows_core::BOOL,
16828    ) -> windows_core::Result<()> {
16829        unsafe {
16830            (windows_core::Interface::vtable(self).IsCustomCrashReportingEnabled)(
16831                windows_core::Interface::as_raw(self),
16832                value as _,
16833            )
16834            .ok()
16835        }
16836    }
16837    pub unsafe fn SetIsCustomCrashReportingEnabled(&self, value: bool) -> windows_core::Result<()> {
16838        unsafe {
16839            (windows_core::Interface::vtable(self).SetIsCustomCrashReportingEnabled)(
16840                windows_core::Interface::as_raw(self),
16841                value.into(),
16842            )
16843            .ok()
16844        }
16845    }
16846}
16847#[repr(C)]
16848#[doc(hidden)]
16849pub struct ICoreWebView2EnvironmentOptions3_Vtbl {
16850    pub base__: windows_core::IUnknown_Vtbl,
16851    pub IsCustomCrashReportingEnabled: unsafe extern "system" fn(
16852        *mut core::ffi::c_void,
16853        *mut windows_core::BOOL,
16854    ) -> windows_core::HRESULT,
16855    pub SetIsCustomCrashReportingEnabled: unsafe extern "system" fn(
16856        *mut core::ffi::c_void,
16857        windows_core::BOOL,
16858    ) -> windows_core::HRESULT,
16859}
16860pub trait ICoreWebView2EnvironmentOptions3_Impl: windows_core::IUnknownImpl {
16861    fn IsCustomCrashReportingEnabled(
16862        &self,
16863        value: *mut windows_core::BOOL,
16864    ) -> windows_core::Result<()>;
16865    fn SetIsCustomCrashReportingEnabled(
16866        &self,
16867        value: windows_core::BOOL,
16868    ) -> windows_core::Result<()>;
16869}
16870impl ICoreWebView2EnvironmentOptions3_Vtbl {
16871    pub const fn new<Identity: ICoreWebView2EnvironmentOptions3_Impl, const OFFSET: isize>() -> Self
16872    {
16873        unsafe extern "system" fn IsCustomCrashReportingEnabled<
16874            Identity: ICoreWebView2EnvironmentOptions3_Impl,
16875            const OFFSET: isize,
16876        >(
16877            this: *mut core::ffi::c_void,
16878            value: *mut windows_core::BOOL,
16879        ) -> windows_core::HRESULT {
16880            unsafe {
16881                let this: &Identity =
16882                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
16883                ICoreWebView2EnvironmentOptions3_Impl::IsCustomCrashReportingEnabled(
16884                    this,
16885                    core::mem::transmute_copy(&value),
16886                )
16887                .into()
16888            }
16889        }
16890        unsafe extern "system" fn SetIsCustomCrashReportingEnabled<
16891            Identity: ICoreWebView2EnvironmentOptions3_Impl,
16892            const OFFSET: isize,
16893        >(
16894            this: *mut core::ffi::c_void,
16895            value: windows_core::BOOL,
16896        ) -> windows_core::HRESULT {
16897            unsafe {
16898                let this: &Identity =
16899                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
16900                ICoreWebView2EnvironmentOptions3_Impl::SetIsCustomCrashReportingEnabled(
16901                    this,
16902                    core::mem::transmute_copy(&value),
16903                )
16904                .into()
16905            }
16906        }
16907        Self {
16908            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
16909            IsCustomCrashReportingEnabled: IsCustomCrashReportingEnabled::<Identity, OFFSET>,
16910            SetIsCustomCrashReportingEnabled: SetIsCustomCrashReportingEnabled::<Identity, OFFSET>,
16911        }
16912    }
16913    pub fn matches(iid: &windows_core::GUID) -> bool {
16914        iid == &<ICoreWebView2EnvironmentOptions3 as windows_core::Interface>::IID
16915    }
16916}
16917impl windows_core::RuntimeName for ICoreWebView2EnvironmentOptions3 {}
16918windows_core::imp::define_interface!(
16919    ICoreWebView2EnvironmentOptions4,
16920    ICoreWebView2EnvironmentOptions4_Vtbl,
16921    0xac52d13f_0d38_475a_9dca_876580d6793e
16922);
16923windows_core::imp::interface_hierarchy!(ICoreWebView2EnvironmentOptions4, windows_core::IUnknown);
16924impl ICoreWebView2EnvironmentOptions4 {
16925    pub unsafe fn GetCustomSchemeRegistrations(
16926        &self,
16927        count: *mut u32,
16928        schemeregistrations: *mut *mut Option<ICoreWebView2CustomSchemeRegistration>,
16929    ) -> windows_core::Result<()> {
16930        unsafe {
16931            (windows_core::Interface::vtable(self).GetCustomSchemeRegistrations)(
16932                windows_core::Interface::as_raw(self),
16933                count as _,
16934                schemeregistrations as _,
16935            )
16936            .ok()
16937        }
16938    }
16939    pub unsafe fn SetCustomSchemeRegistrations(
16940        &self,
16941        count: u32,
16942    ) -> windows_core::Result<ICoreWebView2CustomSchemeRegistration> {
16943        unsafe {
16944            let mut result__ = core::mem::zeroed();
16945            (windows_core::Interface::vtable(self).SetCustomSchemeRegistrations)(
16946                windows_core::Interface::as_raw(self),
16947                count,
16948                &mut result__,
16949            )
16950            .and_then(|| windows_core::Type::from_abi(result__))
16951        }
16952    }
16953}
16954#[repr(C)]
16955#[doc(hidden)]
16956pub struct ICoreWebView2EnvironmentOptions4_Vtbl {
16957    pub base__: windows_core::IUnknown_Vtbl,
16958    pub GetCustomSchemeRegistrations: unsafe extern "system" fn(
16959        *mut core::ffi::c_void,
16960        *mut u32,
16961        *mut *mut *mut core::ffi::c_void,
16962    ) -> windows_core::HRESULT,
16963    pub SetCustomSchemeRegistrations: unsafe extern "system" fn(
16964        *mut core::ffi::c_void,
16965        u32,
16966        *mut *mut core::ffi::c_void,
16967    ) -> windows_core::HRESULT,
16968}
16969pub trait ICoreWebView2EnvironmentOptions4_Impl: windows_core::IUnknownImpl {
16970    fn GetCustomSchemeRegistrations(
16971        &self,
16972        count: *mut u32,
16973        schemeregistrations: *mut *mut Option<ICoreWebView2CustomSchemeRegistration>,
16974    ) -> windows_core::Result<()>;
16975    fn SetCustomSchemeRegistrations(
16976        &self,
16977        count: u32,
16978    ) -> windows_core::Result<ICoreWebView2CustomSchemeRegistration>;
16979}
16980impl ICoreWebView2EnvironmentOptions4_Vtbl {
16981    pub const fn new<Identity: ICoreWebView2EnvironmentOptions4_Impl, const OFFSET: isize>() -> Self
16982    {
16983        unsafe extern "system" fn GetCustomSchemeRegistrations<
16984            Identity: ICoreWebView2EnvironmentOptions4_Impl,
16985            const OFFSET: isize,
16986        >(
16987            this: *mut core::ffi::c_void,
16988            count: *mut u32,
16989            schemeregistrations: *mut *mut *mut core::ffi::c_void,
16990        ) -> windows_core::HRESULT {
16991            unsafe {
16992                let this: &Identity =
16993                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
16994                ICoreWebView2EnvironmentOptions4_Impl::GetCustomSchemeRegistrations(
16995                    this,
16996                    core::mem::transmute_copy(&count),
16997                    core::mem::transmute_copy(&schemeregistrations),
16998                )
16999                .into()
17000            }
17001        }
17002        unsafe extern "system" fn SetCustomSchemeRegistrations<
17003            Identity: ICoreWebView2EnvironmentOptions4_Impl,
17004            const OFFSET: isize,
17005        >(
17006            this: *mut core::ffi::c_void,
17007            count: u32,
17008            schemeregistrations: *mut *mut core::ffi::c_void,
17009        ) -> windows_core::HRESULT {
17010            unsafe {
17011                let this: &Identity =
17012                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
17013                match ICoreWebView2EnvironmentOptions4_Impl::SetCustomSchemeRegistrations(
17014                    this,
17015                    core::mem::transmute_copy(&count),
17016                ) {
17017                    Ok(ok__) => {
17018                        schemeregistrations.write(core::mem::transmute(ok__));
17019                        windows_core::HRESULT(0)
17020                    }
17021                    Err(err) => err.into(),
17022                }
17023            }
17024        }
17025        Self {
17026            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
17027            GetCustomSchemeRegistrations: GetCustomSchemeRegistrations::<Identity, OFFSET>,
17028            SetCustomSchemeRegistrations: SetCustomSchemeRegistrations::<Identity, OFFSET>,
17029        }
17030    }
17031    pub fn matches(iid: &windows_core::GUID) -> bool {
17032        iid == &<ICoreWebView2EnvironmentOptions4 as windows_core::Interface>::IID
17033    }
17034}
17035impl windows_core::RuntimeName for ICoreWebView2EnvironmentOptions4 {}
17036windows_core::imp::define_interface!(
17037    ICoreWebView2EnvironmentOptions5,
17038    ICoreWebView2EnvironmentOptions5_Vtbl,
17039    0x0ae35d64_c47f_4464_814e_259c345d1501
17040);
17041windows_core::imp::interface_hierarchy!(ICoreWebView2EnvironmentOptions5, windows_core::IUnknown);
17042impl ICoreWebView2EnvironmentOptions5 {
17043    pub unsafe fn EnableTrackingPrevention(
17044        &self,
17045        value: *mut windows_core::BOOL,
17046    ) -> windows_core::Result<()> {
17047        unsafe {
17048            (windows_core::Interface::vtable(self).EnableTrackingPrevention)(
17049                windows_core::Interface::as_raw(self),
17050                value as _,
17051            )
17052            .ok()
17053        }
17054    }
17055    pub unsafe fn SetEnableTrackingPrevention(&self, value: bool) -> windows_core::Result<()> {
17056        unsafe {
17057            (windows_core::Interface::vtable(self).SetEnableTrackingPrevention)(
17058                windows_core::Interface::as_raw(self),
17059                value.into(),
17060            )
17061            .ok()
17062        }
17063    }
17064}
17065#[repr(C)]
17066#[doc(hidden)]
17067pub struct ICoreWebView2EnvironmentOptions5_Vtbl {
17068    pub base__: windows_core::IUnknown_Vtbl,
17069    pub EnableTrackingPrevention: unsafe extern "system" fn(
17070        *mut core::ffi::c_void,
17071        *mut windows_core::BOOL,
17072    ) -> windows_core::HRESULT,
17073    pub SetEnableTrackingPrevention: unsafe extern "system" fn(
17074        *mut core::ffi::c_void,
17075        windows_core::BOOL,
17076    ) -> windows_core::HRESULT,
17077}
17078pub trait ICoreWebView2EnvironmentOptions5_Impl: windows_core::IUnknownImpl {
17079    fn EnableTrackingPrevention(&self, value: *mut windows_core::BOOL) -> windows_core::Result<()>;
17080    fn SetEnableTrackingPrevention(&self, value: windows_core::BOOL) -> windows_core::Result<()>;
17081}
17082impl ICoreWebView2EnvironmentOptions5_Vtbl {
17083    pub const fn new<Identity: ICoreWebView2EnvironmentOptions5_Impl, const OFFSET: isize>() -> Self
17084    {
17085        unsafe extern "system" fn EnableTrackingPrevention<
17086            Identity: ICoreWebView2EnvironmentOptions5_Impl,
17087            const OFFSET: isize,
17088        >(
17089            this: *mut core::ffi::c_void,
17090            value: *mut windows_core::BOOL,
17091        ) -> windows_core::HRESULT {
17092            unsafe {
17093                let this: &Identity =
17094                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
17095                ICoreWebView2EnvironmentOptions5_Impl::EnableTrackingPrevention(
17096                    this,
17097                    core::mem::transmute_copy(&value),
17098                )
17099                .into()
17100            }
17101        }
17102        unsafe extern "system" fn SetEnableTrackingPrevention<
17103            Identity: ICoreWebView2EnvironmentOptions5_Impl,
17104            const OFFSET: isize,
17105        >(
17106            this: *mut core::ffi::c_void,
17107            value: windows_core::BOOL,
17108        ) -> windows_core::HRESULT {
17109            unsafe {
17110                let this: &Identity =
17111                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
17112                ICoreWebView2EnvironmentOptions5_Impl::SetEnableTrackingPrevention(
17113                    this,
17114                    core::mem::transmute_copy(&value),
17115                )
17116                .into()
17117            }
17118        }
17119        Self {
17120            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
17121            EnableTrackingPrevention: EnableTrackingPrevention::<Identity, OFFSET>,
17122            SetEnableTrackingPrevention: SetEnableTrackingPrevention::<Identity, OFFSET>,
17123        }
17124    }
17125    pub fn matches(iid: &windows_core::GUID) -> bool {
17126        iid == &<ICoreWebView2EnvironmentOptions5 as windows_core::Interface>::IID
17127    }
17128}
17129impl windows_core::RuntimeName for ICoreWebView2EnvironmentOptions5 {}
17130windows_core::imp::define_interface!(
17131    ICoreWebView2EnvironmentOptions6,
17132    ICoreWebView2EnvironmentOptions6_Vtbl,
17133    0x57d29cc3_c84f_42a0_b0e2_effbd5e179de
17134);
17135windows_core::imp::interface_hierarchy!(ICoreWebView2EnvironmentOptions6, windows_core::IUnknown);
17136impl ICoreWebView2EnvironmentOptions6 {
17137    pub unsafe fn AreBrowserExtensionsEnabled(
17138        &self,
17139        value: *mut windows_core::BOOL,
17140    ) -> windows_core::Result<()> {
17141        unsafe {
17142            (windows_core::Interface::vtable(self).AreBrowserExtensionsEnabled)(
17143                windows_core::Interface::as_raw(self),
17144                value as _,
17145            )
17146            .ok()
17147        }
17148    }
17149    pub unsafe fn SetAreBrowserExtensionsEnabled(&self, value: bool) -> windows_core::Result<()> {
17150        unsafe {
17151            (windows_core::Interface::vtable(self).SetAreBrowserExtensionsEnabled)(
17152                windows_core::Interface::as_raw(self),
17153                value.into(),
17154            )
17155            .ok()
17156        }
17157    }
17158}
17159#[repr(C)]
17160#[doc(hidden)]
17161pub struct ICoreWebView2EnvironmentOptions6_Vtbl {
17162    pub base__: windows_core::IUnknown_Vtbl,
17163    pub AreBrowserExtensionsEnabled: unsafe extern "system" fn(
17164        *mut core::ffi::c_void,
17165        *mut windows_core::BOOL,
17166    ) -> windows_core::HRESULT,
17167    pub SetAreBrowserExtensionsEnabled: unsafe extern "system" fn(
17168        *mut core::ffi::c_void,
17169        windows_core::BOOL,
17170    ) -> windows_core::HRESULT,
17171}
17172pub trait ICoreWebView2EnvironmentOptions6_Impl: windows_core::IUnknownImpl {
17173    fn AreBrowserExtensionsEnabled(
17174        &self,
17175        value: *mut windows_core::BOOL,
17176    ) -> windows_core::Result<()>;
17177    fn SetAreBrowserExtensionsEnabled(&self, value: windows_core::BOOL)
17178        -> windows_core::Result<()>;
17179}
17180impl ICoreWebView2EnvironmentOptions6_Vtbl {
17181    pub const fn new<Identity: ICoreWebView2EnvironmentOptions6_Impl, const OFFSET: isize>() -> Self
17182    {
17183        unsafe extern "system" fn AreBrowserExtensionsEnabled<
17184            Identity: ICoreWebView2EnvironmentOptions6_Impl,
17185            const OFFSET: isize,
17186        >(
17187            this: *mut core::ffi::c_void,
17188            value: *mut windows_core::BOOL,
17189        ) -> windows_core::HRESULT {
17190            unsafe {
17191                let this: &Identity =
17192                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
17193                ICoreWebView2EnvironmentOptions6_Impl::AreBrowserExtensionsEnabled(
17194                    this,
17195                    core::mem::transmute_copy(&value),
17196                )
17197                .into()
17198            }
17199        }
17200        unsafe extern "system" fn SetAreBrowserExtensionsEnabled<
17201            Identity: ICoreWebView2EnvironmentOptions6_Impl,
17202            const OFFSET: isize,
17203        >(
17204            this: *mut core::ffi::c_void,
17205            value: windows_core::BOOL,
17206        ) -> windows_core::HRESULT {
17207            unsafe {
17208                let this: &Identity =
17209                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
17210                ICoreWebView2EnvironmentOptions6_Impl::SetAreBrowserExtensionsEnabled(
17211                    this,
17212                    core::mem::transmute_copy(&value),
17213                )
17214                .into()
17215            }
17216        }
17217        Self {
17218            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
17219            AreBrowserExtensionsEnabled: AreBrowserExtensionsEnabled::<Identity, OFFSET>,
17220            SetAreBrowserExtensionsEnabled: SetAreBrowserExtensionsEnabled::<Identity, OFFSET>,
17221        }
17222    }
17223    pub fn matches(iid: &windows_core::GUID) -> bool {
17224        iid == &<ICoreWebView2EnvironmentOptions6 as windows_core::Interface>::IID
17225    }
17226}
17227impl windows_core::RuntimeName for ICoreWebView2EnvironmentOptions6 {}
17228windows_core::imp::define_interface!(
17229    ICoreWebView2EnvironmentOptions7,
17230    ICoreWebView2EnvironmentOptions7_Vtbl,
17231    0xc48d539f_e39f_441c_ae68_1f66e570bdc5
17232);
17233windows_core::imp::interface_hierarchy!(ICoreWebView2EnvironmentOptions7, windows_core::IUnknown);
17234impl ICoreWebView2EnvironmentOptions7 {
17235    pub unsafe fn ChannelSearchKind(
17236        &self,
17237        value: *mut COREWEBVIEW2_CHANNEL_SEARCH_KIND,
17238    ) -> windows_core::Result<()> {
17239        unsafe {
17240            (windows_core::Interface::vtable(self).ChannelSearchKind)(
17241                windows_core::Interface::as_raw(self),
17242                value as _,
17243            )
17244            .ok()
17245        }
17246    }
17247    pub unsafe fn SetChannelSearchKind(
17248        &self,
17249        value: COREWEBVIEW2_CHANNEL_SEARCH_KIND,
17250    ) -> windows_core::Result<()> {
17251        unsafe {
17252            (windows_core::Interface::vtable(self).SetChannelSearchKind)(
17253                windows_core::Interface::as_raw(self),
17254                value,
17255            )
17256            .ok()
17257        }
17258    }
17259    pub unsafe fn ReleaseChannels(
17260        &self,
17261        value: *mut COREWEBVIEW2_RELEASE_CHANNELS,
17262    ) -> windows_core::Result<()> {
17263        unsafe {
17264            (windows_core::Interface::vtable(self).ReleaseChannels)(
17265                windows_core::Interface::as_raw(self),
17266                value as _,
17267            )
17268            .ok()
17269        }
17270    }
17271    pub unsafe fn SetReleaseChannels(
17272        &self,
17273        value: COREWEBVIEW2_RELEASE_CHANNELS,
17274    ) -> windows_core::Result<()> {
17275        unsafe {
17276            (windows_core::Interface::vtable(self).SetReleaseChannels)(
17277                windows_core::Interface::as_raw(self),
17278                value,
17279            )
17280            .ok()
17281        }
17282    }
17283}
17284#[repr(C)]
17285#[doc(hidden)]
17286pub struct ICoreWebView2EnvironmentOptions7_Vtbl {
17287    pub base__: windows_core::IUnknown_Vtbl,
17288    pub ChannelSearchKind: unsafe extern "system" fn(
17289        *mut core::ffi::c_void,
17290        *mut COREWEBVIEW2_CHANNEL_SEARCH_KIND,
17291    ) -> windows_core::HRESULT,
17292    pub SetChannelSearchKind: unsafe extern "system" fn(
17293        *mut core::ffi::c_void,
17294        COREWEBVIEW2_CHANNEL_SEARCH_KIND,
17295    ) -> windows_core::HRESULT,
17296    pub ReleaseChannels: unsafe extern "system" fn(
17297        *mut core::ffi::c_void,
17298        *mut COREWEBVIEW2_RELEASE_CHANNELS,
17299    ) -> windows_core::HRESULT,
17300    pub SetReleaseChannels: unsafe extern "system" fn(
17301        *mut core::ffi::c_void,
17302        COREWEBVIEW2_RELEASE_CHANNELS,
17303    ) -> windows_core::HRESULT,
17304}
17305pub trait ICoreWebView2EnvironmentOptions7_Impl: windows_core::IUnknownImpl {
17306    fn ChannelSearchKind(
17307        &self,
17308        value: *mut COREWEBVIEW2_CHANNEL_SEARCH_KIND,
17309    ) -> windows_core::Result<()>;
17310    fn SetChannelSearchKind(
17311        &self,
17312        value: COREWEBVIEW2_CHANNEL_SEARCH_KIND,
17313    ) -> windows_core::Result<()>;
17314    fn ReleaseChannels(
17315        &self,
17316        value: *mut COREWEBVIEW2_RELEASE_CHANNELS,
17317    ) -> windows_core::Result<()>;
17318    fn SetReleaseChannels(&self, value: COREWEBVIEW2_RELEASE_CHANNELS) -> windows_core::Result<()>;
17319}
17320impl ICoreWebView2EnvironmentOptions7_Vtbl {
17321    pub const fn new<Identity: ICoreWebView2EnvironmentOptions7_Impl, const OFFSET: isize>() -> Self
17322    {
17323        unsafe extern "system" fn ChannelSearchKind<
17324            Identity: ICoreWebView2EnvironmentOptions7_Impl,
17325            const OFFSET: isize,
17326        >(
17327            this: *mut core::ffi::c_void,
17328            value: *mut COREWEBVIEW2_CHANNEL_SEARCH_KIND,
17329        ) -> windows_core::HRESULT {
17330            unsafe {
17331                let this: &Identity =
17332                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
17333                ICoreWebView2EnvironmentOptions7_Impl::ChannelSearchKind(
17334                    this,
17335                    core::mem::transmute_copy(&value),
17336                )
17337                .into()
17338            }
17339        }
17340        unsafe extern "system" fn SetChannelSearchKind<
17341            Identity: ICoreWebView2EnvironmentOptions7_Impl,
17342            const OFFSET: isize,
17343        >(
17344            this: *mut core::ffi::c_void,
17345            value: COREWEBVIEW2_CHANNEL_SEARCH_KIND,
17346        ) -> windows_core::HRESULT {
17347            unsafe {
17348                let this: &Identity =
17349                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
17350                ICoreWebView2EnvironmentOptions7_Impl::SetChannelSearchKind(
17351                    this,
17352                    core::mem::transmute_copy(&value),
17353                )
17354                .into()
17355            }
17356        }
17357        unsafe extern "system" fn ReleaseChannels<
17358            Identity: ICoreWebView2EnvironmentOptions7_Impl,
17359            const OFFSET: isize,
17360        >(
17361            this: *mut core::ffi::c_void,
17362            value: *mut COREWEBVIEW2_RELEASE_CHANNELS,
17363        ) -> windows_core::HRESULT {
17364            unsafe {
17365                let this: &Identity =
17366                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
17367                ICoreWebView2EnvironmentOptions7_Impl::ReleaseChannels(
17368                    this,
17369                    core::mem::transmute_copy(&value),
17370                )
17371                .into()
17372            }
17373        }
17374        unsafe extern "system" fn SetReleaseChannels<
17375            Identity: ICoreWebView2EnvironmentOptions7_Impl,
17376            const OFFSET: isize,
17377        >(
17378            this: *mut core::ffi::c_void,
17379            value: COREWEBVIEW2_RELEASE_CHANNELS,
17380        ) -> windows_core::HRESULT {
17381            unsafe {
17382                let this: &Identity =
17383                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
17384                ICoreWebView2EnvironmentOptions7_Impl::SetReleaseChannels(
17385                    this,
17386                    core::mem::transmute_copy(&value),
17387                )
17388                .into()
17389            }
17390        }
17391        Self {
17392            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
17393            ChannelSearchKind: ChannelSearchKind::<Identity, OFFSET>,
17394            SetChannelSearchKind: SetChannelSearchKind::<Identity, OFFSET>,
17395            ReleaseChannels: ReleaseChannels::<Identity, OFFSET>,
17396            SetReleaseChannels: SetReleaseChannels::<Identity, OFFSET>,
17397        }
17398    }
17399    pub fn matches(iid: &windows_core::GUID) -> bool {
17400        iid == &<ICoreWebView2EnvironmentOptions7 as windows_core::Interface>::IID
17401    }
17402}
17403impl windows_core::RuntimeName for ICoreWebView2EnvironmentOptions7 {}
17404windows_core::imp::define_interface!(
17405    ICoreWebView2EnvironmentOptions8,
17406    ICoreWebView2EnvironmentOptions8_Vtbl,
17407    0x7c7ecf51_e918_5caf_853c_e9a2bcc27775
17408);
17409windows_core::imp::interface_hierarchy!(ICoreWebView2EnvironmentOptions8, windows_core::IUnknown);
17410impl ICoreWebView2EnvironmentOptions8 {
17411    pub unsafe fn ScrollBarStyle(
17412        &self,
17413        value: *mut COREWEBVIEW2_SCROLLBAR_STYLE,
17414    ) -> windows_core::Result<()> {
17415        unsafe {
17416            (windows_core::Interface::vtable(self).ScrollBarStyle)(
17417                windows_core::Interface::as_raw(self),
17418                value as _,
17419            )
17420            .ok()
17421        }
17422    }
17423    pub unsafe fn SetScrollBarStyle(
17424        &self,
17425        value: COREWEBVIEW2_SCROLLBAR_STYLE,
17426    ) -> windows_core::Result<()> {
17427        unsafe {
17428            (windows_core::Interface::vtable(self).SetScrollBarStyle)(
17429                windows_core::Interface::as_raw(self),
17430                value,
17431            )
17432            .ok()
17433        }
17434    }
17435}
17436#[repr(C)]
17437#[doc(hidden)]
17438pub struct ICoreWebView2EnvironmentOptions8_Vtbl {
17439    pub base__: windows_core::IUnknown_Vtbl,
17440    pub ScrollBarStyle: unsafe extern "system" fn(
17441        *mut core::ffi::c_void,
17442        *mut COREWEBVIEW2_SCROLLBAR_STYLE,
17443    ) -> windows_core::HRESULT,
17444    pub SetScrollBarStyle: unsafe extern "system" fn(
17445        *mut core::ffi::c_void,
17446        COREWEBVIEW2_SCROLLBAR_STYLE,
17447    ) -> windows_core::HRESULT,
17448}
17449pub trait ICoreWebView2EnvironmentOptions8_Impl: windows_core::IUnknownImpl {
17450    fn ScrollBarStyle(&self, value: *mut COREWEBVIEW2_SCROLLBAR_STYLE) -> windows_core::Result<()>;
17451    fn SetScrollBarStyle(&self, value: COREWEBVIEW2_SCROLLBAR_STYLE) -> windows_core::Result<()>;
17452}
17453impl ICoreWebView2EnvironmentOptions8_Vtbl {
17454    pub const fn new<Identity: ICoreWebView2EnvironmentOptions8_Impl, const OFFSET: isize>() -> Self
17455    {
17456        unsafe extern "system" fn ScrollBarStyle<
17457            Identity: ICoreWebView2EnvironmentOptions8_Impl,
17458            const OFFSET: isize,
17459        >(
17460            this: *mut core::ffi::c_void,
17461            value: *mut COREWEBVIEW2_SCROLLBAR_STYLE,
17462        ) -> windows_core::HRESULT {
17463            unsafe {
17464                let this: &Identity =
17465                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
17466                ICoreWebView2EnvironmentOptions8_Impl::ScrollBarStyle(
17467                    this,
17468                    core::mem::transmute_copy(&value),
17469                )
17470                .into()
17471            }
17472        }
17473        unsafe extern "system" fn SetScrollBarStyle<
17474            Identity: ICoreWebView2EnvironmentOptions8_Impl,
17475            const OFFSET: isize,
17476        >(
17477            this: *mut core::ffi::c_void,
17478            value: COREWEBVIEW2_SCROLLBAR_STYLE,
17479        ) -> windows_core::HRESULT {
17480            unsafe {
17481                let this: &Identity =
17482                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
17483                ICoreWebView2EnvironmentOptions8_Impl::SetScrollBarStyle(
17484                    this,
17485                    core::mem::transmute_copy(&value),
17486                )
17487                .into()
17488            }
17489        }
17490        Self {
17491            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
17492            ScrollBarStyle: ScrollBarStyle::<Identity, OFFSET>,
17493            SetScrollBarStyle: SetScrollBarStyle::<Identity, OFFSET>,
17494        }
17495    }
17496    pub fn matches(iid: &windows_core::GUID) -> bool {
17497        iid == &<ICoreWebView2EnvironmentOptions8 as windows_core::Interface>::IID
17498    }
17499}
17500impl windows_core::RuntimeName for ICoreWebView2EnvironmentOptions8 {}
17501windows_core::imp::define_interface!(
17502    ICoreWebView2EstimatedEndTimeChangedEventHandler,
17503    ICoreWebView2EstimatedEndTimeChangedEventHandler_Vtbl,
17504    0x28f0d425_93fe_4e63_9f8d_2aeec6d3ba1e
17505);
17506windows_core::imp::interface_hierarchy!(
17507    ICoreWebView2EstimatedEndTimeChangedEventHandler,
17508    windows_core::IUnknown
17509);
17510impl ICoreWebView2EstimatedEndTimeChangedEventHandler {
17511    pub unsafe fn Invoke<P0, P1>(&self, sender: P0, args: P1) -> windows_core::Result<()>
17512    where
17513        P0: windows_core::Param<ICoreWebView2DownloadOperation>,
17514        P1: windows_core::Param<windows_core::IUnknown>,
17515    {
17516        unsafe {
17517            (windows_core::Interface::vtable(self).Invoke)(
17518                windows_core::Interface::as_raw(self),
17519                sender.param().abi(),
17520                args.param().abi(),
17521            )
17522            .ok()
17523        }
17524    }
17525}
17526#[repr(C)]
17527#[doc(hidden)]
17528pub struct ICoreWebView2EstimatedEndTimeChangedEventHandler_Vtbl {
17529    pub base__: windows_core::IUnknown_Vtbl,
17530    pub Invoke: unsafe extern "system" fn(
17531        *mut core::ffi::c_void,
17532        *mut core::ffi::c_void,
17533        *mut core::ffi::c_void,
17534    ) -> windows_core::HRESULT,
17535}
17536pub trait ICoreWebView2EstimatedEndTimeChangedEventHandler_Impl:
17537    windows_core::IUnknownImpl
17538{
17539    fn Invoke(
17540        &self,
17541        sender: windows_core::Ref<ICoreWebView2DownloadOperation>,
17542        args: windows_core::Ref<windows_core::IUnknown>,
17543    ) -> windows_core::Result<()>;
17544}
17545impl ICoreWebView2EstimatedEndTimeChangedEventHandler_Vtbl {
17546    pub const fn new<
17547        Identity: ICoreWebView2EstimatedEndTimeChangedEventHandler_Impl,
17548        const OFFSET: isize,
17549    >() -> Self {
17550        unsafe extern "system" fn Invoke<
17551            Identity: ICoreWebView2EstimatedEndTimeChangedEventHandler_Impl,
17552            const OFFSET: isize,
17553        >(
17554            this: *mut core::ffi::c_void,
17555            sender: *mut core::ffi::c_void,
17556            args: *mut core::ffi::c_void,
17557        ) -> windows_core::HRESULT {
17558            unsafe {
17559                let this: &Identity =
17560                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
17561                ICoreWebView2EstimatedEndTimeChangedEventHandler_Impl::Invoke(
17562                    this,
17563                    core::mem::transmute_copy(&sender),
17564                    core::mem::transmute_copy(&args),
17565                )
17566                .into()
17567            }
17568        }
17569        Self {
17570            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
17571            Invoke: Invoke::<Identity, OFFSET>,
17572        }
17573    }
17574    pub fn matches(iid: &windows_core::GUID) -> bool {
17575        iid == &<ICoreWebView2EstimatedEndTimeChangedEventHandler as windows_core::Interface>::IID
17576    }
17577}
17578impl windows_core::RuntimeName for ICoreWebView2EstimatedEndTimeChangedEventHandler {}
17579windows_core::imp::define_interface!(
17580    ICoreWebView2ExecuteScriptCompletedHandler,
17581    ICoreWebView2ExecuteScriptCompletedHandler_Vtbl,
17582    0x49511172_cc67_4bca_9923_137112f4c4cc
17583);
17584windows_core::imp::interface_hierarchy!(
17585    ICoreWebView2ExecuteScriptCompletedHandler,
17586    windows_core::IUnknown
17587);
17588impl ICoreWebView2ExecuteScriptCompletedHandler {
17589    pub unsafe fn Invoke<P1>(
17590        &self,
17591        errorcode: windows_core::HRESULT,
17592        result: P1,
17593    ) -> windows_core::Result<()>
17594    where
17595        P1: windows_core::Param<windows_core::PCWSTR>,
17596    {
17597        unsafe {
17598            (windows_core::Interface::vtable(self).Invoke)(
17599                windows_core::Interface::as_raw(self),
17600                errorcode,
17601                result.param().abi(),
17602            )
17603            .ok()
17604        }
17605    }
17606}
17607#[repr(C)]
17608#[doc(hidden)]
17609pub struct ICoreWebView2ExecuteScriptCompletedHandler_Vtbl {
17610    pub base__: windows_core::IUnknown_Vtbl,
17611    pub Invoke: unsafe extern "system" fn(
17612        *mut core::ffi::c_void,
17613        windows_core::HRESULT,
17614        windows_core::PCWSTR,
17615    ) -> windows_core::HRESULT,
17616}
17617pub trait ICoreWebView2ExecuteScriptCompletedHandler_Impl: windows_core::IUnknownImpl {
17618    fn Invoke(
17619        &self,
17620        errorcode: windows_core::HRESULT,
17621        result: &windows_core::PCWSTR,
17622    ) -> windows_core::Result<()>;
17623}
17624impl ICoreWebView2ExecuteScriptCompletedHandler_Vtbl {
17625    pub const fn new<
17626        Identity: ICoreWebView2ExecuteScriptCompletedHandler_Impl,
17627        const OFFSET: isize,
17628    >() -> Self {
17629        unsafe extern "system" fn Invoke<
17630            Identity: ICoreWebView2ExecuteScriptCompletedHandler_Impl,
17631            const OFFSET: isize,
17632        >(
17633            this: *mut core::ffi::c_void,
17634            errorcode: windows_core::HRESULT,
17635            result: windows_core::PCWSTR,
17636        ) -> windows_core::HRESULT {
17637            unsafe {
17638                let this: &Identity =
17639                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
17640                ICoreWebView2ExecuteScriptCompletedHandler_Impl::Invoke(
17641                    this,
17642                    core::mem::transmute_copy(&errorcode),
17643                    core::mem::transmute(&result),
17644                )
17645                .into()
17646            }
17647        }
17648        Self {
17649            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
17650            Invoke: Invoke::<Identity, OFFSET>,
17651        }
17652    }
17653    pub fn matches(iid: &windows_core::GUID) -> bool {
17654        iid == &<ICoreWebView2ExecuteScriptCompletedHandler as windows_core::Interface>::IID
17655    }
17656}
17657impl windows_core::RuntimeName for ICoreWebView2ExecuteScriptCompletedHandler {}
17658windows_core::imp::define_interface!(
17659    ICoreWebView2ExecuteScriptResult,
17660    ICoreWebView2ExecuteScriptResult_Vtbl,
17661    0x0ce15963_3698_4df7_9399_71ed6cdd8c9f
17662);
17663windows_core::imp::interface_hierarchy!(ICoreWebView2ExecuteScriptResult, windows_core::IUnknown);
17664impl ICoreWebView2ExecuteScriptResult {
17665    pub unsafe fn Succeeded(&self, value: *mut windows_core::BOOL) -> windows_core::Result<()> {
17666        unsafe {
17667            (windows_core::Interface::vtable(self).Succeeded)(
17668                windows_core::Interface::as_raw(self),
17669                value as _,
17670            )
17671            .ok()
17672        }
17673    }
17674    pub unsafe fn ResultAsJson(
17675        &self,
17676        jsonresult: *mut windows_core::PWSTR,
17677    ) -> windows_core::Result<()> {
17678        unsafe {
17679            (windows_core::Interface::vtable(self).ResultAsJson)(
17680                windows_core::Interface::as_raw(self),
17681                jsonresult as _,
17682            )
17683            .ok()
17684        }
17685    }
17686    pub unsafe fn TryGetResultAsString(
17687        &self,
17688        stringresult: *mut windows_core::PWSTR,
17689        value: *mut windows_core::BOOL,
17690    ) -> windows_core::Result<()> {
17691        unsafe {
17692            (windows_core::Interface::vtable(self).TryGetResultAsString)(
17693                windows_core::Interface::as_raw(self),
17694                stringresult as _,
17695                value as _,
17696            )
17697            .ok()
17698        }
17699    }
17700    pub unsafe fn Exception(&self) -> windows_core::Result<ICoreWebView2ScriptException> {
17701        unsafe {
17702            let mut result__ = core::mem::zeroed();
17703            (windows_core::Interface::vtable(self).Exception)(
17704                windows_core::Interface::as_raw(self),
17705                &mut result__,
17706            )
17707            .and_then(|| windows_core::Type::from_abi(result__))
17708        }
17709    }
17710}
17711#[repr(C)]
17712#[doc(hidden)]
17713pub struct ICoreWebView2ExecuteScriptResult_Vtbl {
17714    pub base__: windows_core::IUnknown_Vtbl,
17715    pub Succeeded: unsafe extern "system" fn(
17716        *mut core::ffi::c_void,
17717        *mut windows_core::BOOL,
17718    ) -> windows_core::HRESULT,
17719    pub ResultAsJson: unsafe extern "system" fn(
17720        *mut core::ffi::c_void,
17721        *mut windows_core::PWSTR,
17722    ) -> windows_core::HRESULT,
17723    pub TryGetResultAsString: unsafe extern "system" fn(
17724        *mut core::ffi::c_void,
17725        *mut windows_core::PWSTR,
17726        *mut windows_core::BOOL,
17727    ) -> windows_core::HRESULT,
17728    pub Exception: unsafe extern "system" fn(
17729        *mut core::ffi::c_void,
17730        *mut *mut core::ffi::c_void,
17731    ) -> windows_core::HRESULT,
17732}
17733pub trait ICoreWebView2ExecuteScriptResult_Impl: windows_core::IUnknownImpl {
17734    fn Succeeded(&self, value: *mut windows_core::BOOL) -> windows_core::Result<()>;
17735    fn ResultAsJson(&self, jsonresult: *mut windows_core::PWSTR) -> windows_core::Result<()>;
17736    fn TryGetResultAsString(
17737        &self,
17738        stringresult: *mut windows_core::PWSTR,
17739        value: *mut windows_core::BOOL,
17740    ) -> windows_core::Result<()>;
17741    fn Exception(&self) -> windows_core::Result<ICoreWebView2ScriptException>;
17742}
17743impl ICoreWebView2ExecuteScriptResult_Vtbl {
17744    pub const fn new<Identity: ICoreWebView2ExecuteScriptResult_Impl, const OFFSET: isize>() -> Self
17745    {
17746        unsafe extern "system" fn Succeeded<
17747            Identity: ICoreWebView2ExecuteScriptResult_Impl,
17748            const OFFSET: isize,
17749        >(
17750            this: *mut core::ffi::c_void,
17751            value: *mut windows_core::BOOL,
17752        ) -> windows_core::HRESULT {
17753            unsafe {
17754                let this: &Identity =
17755                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
17756                ICoreWebView2ExecuteScriptResult_Impl::Succeeded(
17757                    this,
17758                    core::mem::transmute_copy(&value),
17759                )
17760                .into()
17761            }
17762        }
17763        unsafe extern "system" fn ResultAsJson<
17764            Identity: ICoreWebView2ExecuteScriptResult_Impl,
17765            const OFFSET: isize,
17766        >(
17767            this: *mut core::ffi::c_void,
17768            jsonresult: *mut windows_core::PWSTR,
17769        ) -> windows_core::HRESULT {
17770            unsafe {
17771                let this: &Identity =
17772                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
17773                ICoreWebView2ExecuteScriptResult_Impl::ResultAsJson(
17774                    this,
17775                    core::mem::transmute_copy(&jsonresult),
17776                )
17777                .into()
17778            }
17779        }
17780        unsafe extern "system" fn TryGetResultAsString<
17781            Identity: ICoreWebView2ExecuteScriptResult_Impl,
17782            const OFFSET: isize,
17783        >(
17784            this: *mut core::ffi::c_void,
17785            stringresult: *mut windows_core::PWSTR,
17786            value: *mut windows_core::BOOL,
17787        ) -> windows_core::HRESULT {
17788            unsafe {
17789                let this: &Identity =
17790                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
17791                ICoreWebView2ExecuteScriptResult_Impl::TryGetResultAsString(
17792                    this,
17793                    core::mem::transmute_copy(&stringresult),
17794                    core::mem::transmute_copy(&value),
17795                )
17796                .into()
17797            }
17798        }
17799        unsafe extern "system" fn Exception<
17800            Identity: ICoreWebView2ExecuteScriptResult_Impl,
17801            const OFFSET: isize,
17802        >(
17803            this: *mut core::ffi::c_void,
17804            exception: *mut *mut core::ffi::c_void,
17805        ) -> windows_core::HRESULT {
17806            unsafe {
17807                let this: &Identity =
17808                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
17809                match ICoreWebView2ExecuteScriptResult_Impl::Exception(this) {
17810                    Ok(ok__) => {
17811                        exception.write(core::mem::transmute(ok__));
17812                        windows_core::HRESULT(0)
17813                    }
17814                    Err(err) => err.into(),
17815                }
17816            }
17817        }
17818        Self {
17819            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
17820            Succeeded: Succeeded::<Identity, OFFSET>,
17821            ResultAsJson: ResultAsJson::<Identity, OFFSET>,
17822            TryGetResultAsString: TryGetResultAsString::<Identity, OFFSET>,
17823            Exception: Exception::<Identity, OFFSET>,
17824        }
17825    }
17826    pub fn matches(iid: &windows_core::GUID) -> bool {
17827        iid == &<ICoreWebView2ExecuteScriptResult as windows_core::Interface>::IID
17828    }
17829}
17830impl windows_core::RuntimeName for ICoreWebView2ExecuteScriptResult {}
17831windows_core::imp::define_interface!(
17832    ICoreWebView2ExecuteScriptWithResultCompletedHandler,
17833    ICoreWebView2ExecuteScriptWithResultCompletedHandler_Vtbl,
17834    0x1bb5317b_8238_4c67_a7ff_baf6558f289d
17835);
17836windows_core::imp::interface_hierarchy!(
17837    ICoreWebView2ExecuteScriptWithResultCompletedHandler,
17838    windows_core::IUnknown
17839);
17840impl ICoreWebView2ExecuteScriptWithResultCompletedHandler {
17841    pub unsafe fn Invoke<P1>(
17842        &self,
17843        errorcode: windows_core::HRESULT,
17844        result: P1,
17845    ) -> windows_core::Result<()>
17846    where
17847        P1: windows_core::Param<ICoreWebView2ExecuteScriptResult>,
17848    {
17849        unsafe {
17850            (windows_core::Interface::vtable(self).Invoke)(
17851                windows_core::Interface::as_raw(self),
17852                errorcode,
17853                result.param().abi(),
17854            )
17855            .ok()
17856        }
17857    }
17858}
17859#[repr(C)]
17860#[doc(hidden)]
17861pub struct ICoreWebView2ExecuteScriptWithResultCompletedHandler_Vtbl {
17862    pub base__: windows_core::IUnknown_Vtbl,
17863    pub Invoke: unsafe extern "system" fn(
17864        *mut core::ffi::c_void,
17865        windows_core::HRESULT,
17866        *mut core::ffi::c_void,
17867    ) -> windows_core::HRESULT,
17868}
17869pub trait ICoreWebView2ExecuteScriptWithResultCompletedHandler_Impl:
17870    windows_core::IUnknownImpl
17871{
17872    fn Invoke(
17873        &self,
17874        errorcode: windows_core::HRESULT,
17875        result: windows_core::Ref<ICoreWebView2ExecuteScriptResult>,
17876    ) -> windows_core::Result<()>;
17877}
17878impl ICoreWebView2ExecuteScriptWithResultCompletedHandler_Vtbl {
17879    pub const fn new<
17880        Identity: ICoreWebView2ExecuteScriptWithResultCompletedHandler_Impl,
17881        const OFFSET: isize,
17882    >() -> Self {
17883        unsafe extern "system" fn Invoke<
17884            Identity: ICoreWebView2ExecuteScriptWithResultCompletedHandler_Impl,
17885            const OFFSET: isize,
17886        >(
17887            this: *mut core::ffi::c_void,
17888            errorcode: windows_core::HRESULT,
17889            result: *mut core::ffi::c_void,
17890        ) -> windows_core::HRESULT {
17891            unsafe {
17892                let this: &Identity =
17893                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
17894                ICoreWebView2ExecuteScriptWithResultCompletedHandler_Impl::Invoke(
17895                    this,
17896                    core::mem::transmute_copy(&errorcode),
17897                    core::mem::transmute_copy(&result),
17898                )
17899                .into()
17900            }
17901        }
17902        Self {
17903            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
17904            Invoke: Invoke::<Identity, OFFSET>,
17905        }
17906    }
17907    pub fn matches(iid: &windows_core::GUID) -> bool {
17908        iid == & < ICoreWebView2ExecuteScriptWithResultCompletedHandler as windows_core::Interface >::IID
17909    }
17910}
17911impl windows_core::RuntimeName for ICoreWebView2ExecuteScriptWithResultCompletedHandler {}
17912windows_core::imp::define_interface!(
17913    ICoreWebView2FaviconChangedEventHandler,
17914    ICoreWebView2FaviconChangedEventHandler_Vtbl,
17915    0x2913da94_833d_4de0_8dca_900fc524a1a4
17916);
17917windows_core::imp::interface_hierarchy!(
17918    ICoreWebView2FaviconChangedEventHandler,
17919    windows_core::IUnknown
17920);
17921impl ICoreWebView2FaviconChangedEventHandler {
17922    pub unsafe fn Invoke<P0, P1>(&self, sender: P0, args: P1) -> windows_core::Result<()>
17923    where
17924        P0: windows_core::Param<ICoreWebView2>,
17925        P1: windows_core::Param<windows_core::IUnknown>,
17926    {
17927        unsafe {
17928            (windows_core::Interface::vtable(self).Invoke)(
17929                windows_core::Interface::as_raw(self),
17930                sender.param().abi(),
17931                args.param().abi(),
17932            )
17933            .ok()
17934        }
17935    }
17936}
17937#[repr(C)]
17938#[doc(hidden)]
17939pub struct ICoreWebView2FaviconChangedEventHandler_Vtbl {
17940    pub base__: windows_core::IUnknown_Vtbl,
17941    pub Invoke: unsafe extern "system" fn(
17942        *mut core::ffi::c_void,
17943        *mut core::ffi::c_void,
17944        *mut core::ffi::c_void,
17945    ) -> windows_core::HRESULT,
17946}
17947pub trait ICoreWebView2FaviconChangedEventHandler_Impl: windows_core::IUnknownImpl {
17948    fn Invoke(
17949        &self,
17950        sender: windows_core::Ref<ICoreWebView2>,
17951        args: windows_core::Ref<windows_core::IUnknown>,
17952    ) -> windows_core::Result<()>;
17953}
17954impl ICoreWebView2FaviconChangedEventHandler_Vtbl {
17955    pub const fn new<
17956        Identity: ICoreWebView2FaviconChangedEventHandler_Impl,
17957        const OFFSET: isize,
17958    >() -> Self {
17959        unsafe extern "system" fn Invoke<
17960            Identity: ICoreWebView2FaviconChangedEventHandler_Impl,
17961            const OFFSET: isize,
17962        >(
17963            this: *mut core::ffi::c_void,
17964            sender: *mut core::ffi::c_void,
17965            args: *mut core::ffi::c_void,
17966        ) -> windows_core::HRESULT {
17967            unsafe {
17968                let this: &Identity =
17969                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
17970                ICoreWebView2FaviconChangedEventHandler_Impl::Invoke(
17971                    this,
17972                    core::mem::transmute_copy(&sender),
17973                    core::mem::transmute_copy(&args),
17974                )
17975                .into()
17976            }
17977        }
17978        Self {
17979            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
17980            Invoke: Invoke::<Identity, OFFSET>,
17981        }
17982    }
17983    pub fn matches(iid: &windows_core::GUID) -> bool {
17984        iid == &<ICoreWebView2FaviconChangedEventHandler as windows_core::Interface>::IID
17985    }
17986}
17987impl windows_core::RuntimeName for ICoreWebView2FaviconChangedEventHandler {}
17988windows_core::imp::define_interface!(
17989    ICoreWebView2File,
17990    ICoreWebView2File_Vtbl,
17991    0xf2c19559_6bc1_4583_a757_90021be9afec
17992);
17993windows_core::imp::interface_hierarchy!(ICoreWebView2File, windows_core::IUnknown);
17994impl ICoreWebView2File {
17995    pub unsafe fn Path(&self, value: *mut windows_core::PWSTR) -> windows_core::Result<()> {
17996        unsafe {
17997            (windows_core::Interface::vtable(self).Path)(
17998                windows_core::Interface::as_raw(self),
17999                value as _,
18000            )
18001            .ok()
18002        }
18003    }
18004}
18005#[repr(C)]
18006#[doc(hidden)]
18007pub struct ICoreWebView2File_Vtbl {
18008    pub base__: windows_core::IUnknown_Vtbl,
18009    pub Path: unsafe extern "system" fn(
18010        *mut core::ffi::c_void,
18011        *mut windows_core::PWSTR,
18012    ) -> windows_core::HRESULT,
18013}
18014pub trait ICoreWebView2File_Impl: windows_core::IUnknownImpl {
18015    fn Path(&self, value: *mut windows_core::PWSTR) -> windows_core::Result<()>;
18016}
18017impl ICoreWebView2File_Vtbl {
18018    pub const fn new<Identity: ICoreWebView2File_Impl, const OFFSET: isize>() -> Self {
18019        unsafe extern "system" fn Path<Identity: ICoreWebView2File_Impl, const OFFSET: isize>(
18020            this: *mut core::ffi::c_void,
18021            value: *mut windows_core::PWSTR,
18022        ) -> windows_core::HRESULT {
18023            unsafe {
18024                let this: &Identity =
18025                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
18026                ICoreWebView2File_Impl::Path(this, core::mem::transmute_copy(&value)).into()
18027            }
18028        }
18029        Self {
18030            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
18031            Path: Path::<Identity, OFFSET>,
18032        }
18033    }
18034    pub fn matches(iid: &windows_core::GUID) -> bool {
18035        iid == &<ICoreWebView2File as windows_core::Interface>::IID
18036    }
18037}
18038impl windows_core::RuntimeName for ICoreWebView2File {}
18039windows_core::imp::define_interface!(
18040    ICoreWebView2FileSystemHandle,
18041    ICoreWebView2FileSystemHandle_Vtbl,
18042    0xc65100ac_0de2_5551_a362_23d9bd1d0e1f
18043);
18044windows_core::imp::interface_hierarchy!(ICoreWebView2FileSystemHandle, windows_core::IUnknown);
18045impl ICoreWebView2FileSystemHandle {
18046    pub unsafe fn Kind(
18047        &self,
18048        value: *mut COREWEBVIEW2_FILE_SYSTEM_HANDLE_KIND,
18049    ) -> windows_core::Result<()> {
18050        unsafe {
18051            (windows_core::Interface::vtable(self).Kind)(
18052                windows_core::Interface::as_raw(self),
18053                value as _,
18054            )
18055            .ok()
18056        }
18057    }
18058    pub unsafe fn Path(&self, value: *mut windows_core::PWSTR) -> windows_core::Result<()> {
18059        unsafe {
18060            (windows_core::Interface::vtable(self).Path)(
18061                windows_core::Interface::as_raw(self),
18062                value as _,
18063            )
18064            .ok()
18065        }
18066    }
18067    pub unsafe fn Permission(
18068        &self,
18069        value: *mut COREWEBVIEW2_FILE_SYSTEM_HANDLE_PERMISSION,
18070    ) -> windows_core::Result<()> {
18071        unsafe {
18072            (windows_core::Interface::vtable(self).Permission)(
18073                windows_core::Interface::as_raw(self),
18074                value as _,
18075            )
18076            .ok()
18077        }
18078    }
18079}
18080#[repr(C)]
18081#[doc(hidden)]
18082pub struct ICoreWebView2FileSystemHandle_Vtbl {
18083    pub base__: windows_core::IUnknown_Vtbl,
18084    pub Kind: unsafe extern "system" fn(
18085        *mut core::ffi::c_void,
18086        *mut COREWEBVIEW2_FILE_SYSTEM_HANDLE_KIND,
18087    ) -> windows_core::HRESULT,
18088    pub Path: unsafe extern "system" fn(
18089        *mut core::ffi::c_void,
18090        *mut windows_core::PWSTR,
18091    ) -> windows_core::HRESULT,
18092    pub Permission: unsafe extern "system" fn(
18093        *mut core::ffi::c_void,
18094        *mut COREWEBVIEW2_FILE_SYSTEM_HANDLE_PERMISSION,
18095    ) -> windows_core::HRESULT,
18096}
18097pub trait ICoreWebView2FileSystemHandle_Impl: windows_core::IUnknownImpl {
18098    fn Kind(&self, value: *mut COREWEBVIEW2_FILE_SYSTEM_HANDLE_KIND) -> windows_core::Result<()>;
18099    fn Path(&self, value: *mut windows_core::PWSTR) -> windows_core::Result<()>;
18100    fn Permission(
18101        &self,
18102        value: *mut COREWEBVIEW2_FILE_SYSTEM_HANDLE_PERMISSION,
18103    ) -> windows_core::Result<()>;
18104}
18105impl ICoreWebView2FileSystemHandle_Vtbl {
18106    pub const fn new<Identity: ICoreWebView2FileSystemHandle_Impl, const OFFSET: isize>() -> Self {
18107        unsafe extern "system" fn Kind<
18108            Identity: ICoreWebView2FileSystemHandle_Impl,
18109            const OFFSET: isize,
18110        >(
18111            this: *mut core::ffi::c_void,
18112            value: *mut COREWEBVIEW2_FILE_SYSTEM_HANDLE_KIND,
18113        ) -> windows_core::HRESULT {
18114            unsafe {
18115                let this: &Identity =
18116                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
18117                ICoreWebView2FileSystemHandle_Impl::Kind(this, core::mem::transmute_copy(&value))
18118                    .into()
18119            }
18120        }
18121        unsafe extern "system" fn Path<
18122            Identity: ICoreWebView2FileSystemHandle_Impl,
18123            const OFFSET: isize,
18124        >(
18125            this: *mut core::ffi::c_void,
18126            value: *mut windows_core::PWSTR,
18127        ) -> windows_core::HRESULT {
18128            unsafe {
18129                let this: &Identity =
18130                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
18131                ICoreWebView2FileSystemHandle_Impl::Path(this, core::mem::transmute_copy(&value))
18132                    .into()
18133            }
18134        }
18135        unsafe extern "system" fn Permission<
18136            Identity: ICoreWebView2FileSystemHandle_Impl,
18137            const OFFSET: isize,
18138        >(
18139            this: *mut core::ffi::c_void,
18140            value: *mut COREWEBVIEW2_FILE_SYSTEM_HANDLE_PERMISSION,
18141        ) -> windows_core::HRESULT {
18142            unsafe {
18143                let this: &Identity =
18144                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
18145                ICoreWebView2FileSystemHandle_Impl::Permission(
18146                    this,
18147                    core::mem::transmute_copy(&value),
18148                )
18149                .into()
18150            }
18151        }
18152        Self {
18153            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
18154            Kind: Kind::<Identity, OFFSET>,
18155            Path: Path::<Identity, OFFSET>,
18156            Permission: Permission::<Identity, OFFSET>,
18157        }
18158    }
18159    pub fn matches(iid: &windows_core::GUID) -> bool {
18160        iid == &<ICoreWebView2FileSystemHandle as windows_core::Interface>::IID
18161    }
18162}
18163impl windows_core::RuntimeName for ICoreWebView2FileSystemHandle {}
18164windows_core::imp::define_interface!(
18165    ICoreWebView2Find,
18166    ICoreWebView2Find_Vtbl,
18167    0xa3ec0f5f_ddbc_54ed_8546_af75a785b9a6
18168);
18169windows_core::imp::interface_hierarchy!(ICoreWebView2Find, windows_core::IUnknown);
18170impl ICoreWebView2Find {
18171    pub unsafe fn ActiveMatchIndex(&self, value: *mut i32) -> windows_core::Result<()> {
18172        unsafe {
18173            (windows_core::Interface::vtable(self).ActiveMatchIndex)(
18174                windows_core::Interface::as_raw(self),
18175                value as _,
18176            )
18177            .ok()
18178        }
18179    }
18180    pub unsafe fn MatchCount(&self, value: *mut i32) -> windows_core::Result<()> {
18181        unsafe {
18182            (windows_core::Interface::vtable(self).MatchCount)(
18183                windows_core::Interface::as_raw(self),
18184                value as _,
18185            )
18186            .ok()
18187        }
18188    }
18189    pub unsafe fn add_ActiveMatchIndexChanged<P0>(
18190        &self,
18191        eventhandler: P0,
18192        token: *mut i64,
18193    ) -> windows_core::Result<()>
18194    where
18195        P0: windows_core::Param<ICoreWebView2FindActiveMatchIndexChangedEventHandler>,
18196    {
18197        unsafe {
18198            (windows_core::Interface::vtable(self).add_ActiveMatchIndexChanged)(
18199                windows_core::Interface::as_raw(self),
18200                eventhandler.param().abi(),
18201                token as _,
18202            )
18203            .ok()
18204        }
18205    }
18206    pub unsafe fn remove_ActiveMatchIndexChanged(&self, token: i64) -> windows_core::Result<()> {
18207        unsafe {
18208            (windows_core::Interface::vtable(self).remove_ActiveMatchIndexChanged)(
18209                windows_core::Interface::as_raw(self),
18210                token,
18211            )
18212            .ok()
18213        }
18214    }
18215    pub unsafe fn add_MatchCountChanged<P0>(
18216        &self,
18217        eventhandler: P0,
18218        token: *mut i64,
18219    ) -> windows_core::Result<()>
18220    where
18221        P0: windows_core::Param<ICoreWebView2FindMatchCountChangedEventHandler>,
18222    {
18223        unsafe {
18224            (windows_core::Interface::vtable(self).add_MatchCountChanged)(
18225                windows_core::Interface::as_raw(self),
18226                eventhandler.param().abi(),
18227                token as _,
18228            )
18229            .ok()
18230        }
18231    }
18232    pub unsafe fn remove_MatchCountChanged(&self, token: i64) -> windows_core::Result<()> {
18233        unsafe {
18234            (windows_core::Interface::vtable(self).remove_MatchCountChanged)(
18235                windows_core::Interface::as_raw(self),
18236                token,
18237            )
18238            .ok()
18239        }
18240    }
18241    pub unsafe fn Start<P0, P1>(&self, options: P0, handler: P1) -> windows_core::Result<()>
18242    where
18243        P0: windows_core::Param<ICoreWebView2FindOptions>,
18244        P1: windows_core::Param<ICoreWebView2FindStartCompletedHandler>,
18245    {
18246        unsafe {
18247            (windows_core::Interface::vtable(self).Start)(
18248                windows_core::Interface::as_raw(self),
18249                options.param().abi(),
18250                handler.param().abi(),
18251            )
18252            .ok()
18253        }
18254    }
18255    pub unsafe fn FindNext(&self) -> windows_core::Result<()> {
18256        unsafe {
18257            (windows_core::Interface::vtable(self).FindNext)(windows_core::Interface::as_raw(self))
18258                .ok()
18259        }
18260    }
18261    pub unsafe fn FindPrevious(&self) -> windows_core::Result<()> {
18262        unsafe {
18263            (windows_core::Interface::vtable(self).FindPrevious)(windows_core::Interface::as_raw(
18264                self,
18265            ))
18266            .ok()
18267        }
18268    }
18269    pub unsafe fn Stop(&self) -> windows_core::Result<()> {
18270        unsafe {
18271            (windows_core::Interface::vtable(self).Stop)(windows_core::Interface::as_raw(self)).ok()
18272        }
18273    }
18274}
18275#[repr(C)]
18276#[doc(hidden)]
18277pub struct ICoreWebView2Find_Vtbl {
18278    pub base__: windows_core::IUnknown_Vtbl,
18279    pub ActiveMatchIndex:
18280        unsafe extern "system" fn(*mut core::ffi::c_void, *mut i32) -> windows_core::HRESULT,
18281    pub MatchCount:
18282        unsafe extern "system" fn(*mut core::ffi::c_void, *mut i32) -> windows_core::HRESULT,
18283    pub add_ActiveMatchIndexChanged: unsafe extern "system" fn(
18284        *mut core::ffi::c_void,
18285        *mut core::ffi::c_void,
18286        *mut i64,
18287    ) -> windows_core::HRESULT,
18288    pub remove_ActiveMatchIndexChanged:
18289        unsafe extern "system" fn(*mut core::ffi::c_void, i64) -> windows_core::HRESULT,
18290    pub add_MatchCountChanged: unsafe extern "system" fn(
18291        *mut core::ffi::c_void,
18292        *mut core::ffi::c_void,
18293        *mut i64,
18294    ) -> windows_core::HRESULT,
18295    pub remove_MatchCountChanged:
18296        unsafe extern "system" fn(*mut core::ffi::c_void, i64) -> windows_core::HRESULT,
18297    pub Start: unsafe extern "system" fn(
18298        *mut core::ffi::c_void,
18299        *mut core::ffi::c_void,
18300        *mut core::ffi::c_void,
18301    ) -> windows_core::HRESULT,
18302    pub FindNext: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
18303    pub FindPrevious: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
18304    pub Stop: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
18305}
18306pub trait ICoreWebView2Find_Impl: windows_core::IUnknownImpl {
18307    fn ActiveMatchIndex(&self, value: *mut i32) -> windows_core::Result<()>;
18308    fn MatchCount(&self, value: *mut i32) -> windows_core::Result<()>;
18309    fn add_ActiveMatchIndexChanged(
18310        &self,
18311        eventhandler: windows_core::Ref<ICoreWebView2FindActiveMatchIndexChangedEventHandler>,
18312        token: *mut i64,
18313    ) -> windows_core::Result<()>;
18314    fn remove_ActiveMatchIndexChanged(&self, token: i64) -> windows_core::Result<()>;
18315    fn add_MatchCountChanged(
18316        &self,
18317        eventhandler: windows_core::Ref<ICoreWebView2FindMatchCountChangedEventHandler>,
18318        token: *mut i64,
18319    ) -> windows_core::Result<()>;
18320    fn remove_MatchCountChanged(&self, token: i64) -> windows_core::Result<()>;
18321    fn Start(
18322        &self,
18323        options: windows_core::Ref<ICoreWebView2FindOptions>,
18324        handler: windows_core::Ref<ICoreWebView2FindStartCompletedHandler>,
18325    ) -> windows_core::Result<()>;
18326    fn FindNext(&self) -> windows_core::Result<()>;
18327    fn FindPrevious(&self) -> windows_core::Result<()>;
18328    fn Stop(&self) -> windows_core::Result<()>;
18329}
18330impl ICoreWebView2Find_Vtbl {
18331    pub const fn new<Identity: ICoreWebView2Find_Impl, const OFFSET: isize>() -> Self {
18332        unsafe extern "system" fn ActiveMatchIndex<
18333            Identity: ICoreWebView2Find_Impl,
18334            const OFFSET: isize,
18335        >(
18336            this: *mut core::ffi::c_void,
18337            value: *mut i32,
18338        ) -> windows_core::HRESULT {
18339            unsafe {
18340                let this: &Identity =
18341                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
18342                ICoreWebView2Find_Impl::ActiveMatchIndex(this, core::mem::transmute_copy(&value))
18343                    .into()
18344            }
18345        }
18346        unsafe extern "system" fn MatchCount<
18347            Identity: ICoreWebView2Find_Impl,
18348            const OFFSET: isize,
18349        >(
18350            this: *mut core::ffi::c_void,
18351            value: *mut i32,
18352        ) -> windows_core::HRESULT {
18353            unsafe {
18354                let this: &Identity =
18355                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
18356                ICoreWebView2Find_Impl::MatchCount(this, core::mem::transmute_copy(&value)).into()
18357            }
18358        }
18359        unsafe extern "system" fn add_ActiveMatchIndexChanged<
18360            Identity: ICoreWebView2Find_Impl,
18361            const OFFSET: isize,
18362        >(
18363            this: *mut core::ffi::c_void,
18364            eventhandler: *mut core::ffi::c_void,
18365            token: *mut i64,
18366        ) -> windows_core::HRESULT {
18367            unsafe {
18368                let this: &Identity =
18369                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
18370                ICoreWebView2Find_Impl::add_ActiveMatchIndexChanged(
18371                    this,
18372                    core::mem::transmute_copy(&eventhandler),
18373                    core::mem::transmute_copy(&token),
18374                )
18375                .into()
18376            }
18377        }
18378        unsafe extern "system" fn remove_ActiveMatchIndexChanged<
18379            Identity: ICoreWebView2Find_Impl,
18380            const OFFSET: isize,
18381        >(
18382            this: *mut core::ffi::c_void,
18383            token: i64,
18384        ) -> windows_core::HRESULT {
18385            unsafe {
18386                let this: &Identity =
18387                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
18388                ICoreWebView2Find_Impl::remove_ActiveMatchIndexChanged(
18389                    this,
18390                    core::mem::transmute_copy(&token),
18391                )
18392                .into()
18393            }
18394        }
18395        unsafe extern "system" fn add_MatchCountChanged<
18396            Identity: ICoreWebView2Find_Impl,
18397            const OFFSET: isize,
18398        >(
18399            this: *mut core::ffi::c_void,
18400            eventhandler: *mut core::ffi::c_void,
18401            token: *mut i64,
18402        ) -> windows_core::HRESULT {
18403            unsafe {
18404                let this: &Identity =
18405                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
18406                ICoreWebView2Find_Impl::add_MatchCountChanged(
18407                    this,
18408                    core::mem::transmute_copy(&eventhandler),
18409                    core::mem::transmute_copy(&token),
18410                )
18411                .into()
18412            }
18413        }
18414        unsafe extern "system" fn remove_MatchCountChanged<
18415            Identity: ICoreWebView2Find_Impl,
18416            const OFFSET: isize,
18417        >(
18418            this: *mut core::ffi::c_void,
18419            token: i64,
18420        ) -> windows_core::HRESULT {
18421            unsafe {
18422                let this: &Identity =
18423                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
18424                ICoreWebView2Find_Impl::remove_MatchCountChanged(
18425                    this,
18426                    core::mem::transmute_copy(&token),
18427                )
18428                .into()
18429            }
18430        }
18431        unsafe extern "system" fn Start<Identity: ICoreWebView2Find_Impl, const OFFSET: isize>(
18432            this: *mut core::ffi::c_void,
18433            options: *mut core::ffi::c_void,
18434            handler: *mut core::ffi::c_void,
18435        ) -> windows_core::HRESULT {
18436            unsafe {
18437                let this: &Identity =
18438                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
18439                ICoreWebView2Find_Impl::Start(
18440                    this,
18441                    core::mem::transmute_copy(&options),
18442                    core::mem::transmute_copy(&handler),
18443                )
18444                .into()
18445            }
18446        }
18447        unsafe extern "system" fn FindNext<
18448            Identity: ICoreWebView2Find_Impl,
18449            const OFFSET: isize,
18450        >(
18451            this: *mut core::ffi::c_void,
18452        ) -> windows_core::HRESULT {
18453            unsafe {
18454                let this: &Identity =
18455                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
18456                ICoreWebView2Find_Impl::FindNext(this).into()
18457            }
18458        }
18459        unsafe extern "system" fn FindPrevious<
18460            Identity: ICoreWebView2Find_Impl,
18461            const OFFSET: isize,
18462        >(
18463            this: *mut core::ffi::c_void,
18464        ) -> windows_core::HRESULT {
18465            unsafe {
18466                let this: &Identity =
18467                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
18468                ICoreWebView2Find_Impl::FindPrevious(this).into()
18469            }
18470        }
18471        unsafe extern "system" fn Stop<Identity: ICoreWebView2Find_Impl, const OFFSET: isize>(
18472            this: *mut core::ffi::c_void,
18473        ) -> windows_core::HRESULT {
18474            unsafe {
18475                let this: &Identity =
18476                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
18477                ICoreWebView2Find_Impl::Stop(this).into()
18478            }
18479        }
18480        Self {
18481            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
18482            ActiveMatchIndex: ActiveMatchIndex::<Identity, OFFSET>,
18483            MatchCount: MatchCount::<Identity, OFFSET>,
18484            add_ActiveMatchIndexChanged: add_ActiveMatchIndexChanged::<Identity, OFFSET>,
18485            remove_ActiveMatchIndexChanged: remove_ActiveMatchIndexChanged::<Identity, OFFSET>,
18486            add_MatchCountChanged: add_MatchCountChanged::<Identity, OFFSET>,
18487            remove_MatchCountChanged: remove_MatchCountChanged::<Identity, OFFSET>,
18488            Start: Start::<Identity, OFFSET>,
18489            FindNext: FindNext::<Identity, OFFSET>,
18490            FindPrevious: FindPrevious::<Identity, OFFSET>,
18491            Stop: Stop::<Identity, OFFSET>,
18492        }
18493    }
18494    pub fn matches(iid: &windows_core::GUID) -> bool {
18495        iid == &<ICoreWebView2Find as windows_core::Interface>::IID
18496    }
18497}
18498impl windows_core::RuntimeName for ICoreWebView2Find {}
18499windows_core::imp::define_interface!(
18500    ICoreWebView2FindActiveMatchIndexChangedEventHandler,
18501    ICoreWebView2FindActiveMatchIndexChangedEventHandler_Vtbl,
18502    0x0054f514_9a8e_5876_aed5_30b37f8c86a5
18503);
18504windows_core::imp::interface_hierarchy!(
18505    ICoreWebView2FindActiveMatchIndexChangedEventHandler,
18506    windows_core::IUnknown
18507);
18508impl ICoreWebView2FindActiveMatchIndexChangedEventHandler {
18509    pub unsafe fn Invoke<P0, P1>(&self, sender: P0, args: P1) -> windows_core::Result<()>
18510    where
18511        P0: windows_core::Param<ICoreWebView2Find>,
18512        P1: windows_core::Param<windows_core::IUnknown>,
18513    {
18514        unsafe {
18515            (windows_core::Interface::vtable(self).Invoke)(
18516                windows_core::Interface::as_raw(self),
18517                sender.param().abi(),
18518                args.param().abi(),
18519            )
18520            .ok()
18521        }
18522    }
18523}
18524#[repr(C)]
18525#[doc(hidden)]
18526pub struct ICoreWebView2FindActiveMatchIndexChangedEventHandler_Vtbl {
18527    pub base__: windows_core::IUnknown_Vtbl,
18528    pub Invoke: unsafe extern "system" fn(
18529        *mut core::ffi::c_void,
18530        *mut core::ffi::c_void,
18531        *mut core::ffi::c_void,
18532    ) -> windows_core::HRESULT,
18533}
18534pub trait ICoreWebView2FindActiveMatchIndexChangedEventHandler_Impl:
18535    windows_core::IUnknownImpl
18536{
18537    fn Invoke(
18538        &self,
18539        sender: windows_core::Ref<ICoreWebView2Find>,
18540        args: windows_core::Ref<windows_core::IUnknown>,
18541    ) -> windows_core::Result<()>;
18542}
18543impl ICoreWebView2FindActiveMatchIndexChangedEventHandler_Vtbl {
18544    pub const fn new<
18545        Identity: ICoreWebView2FindActiveMatchIndexChangedEventHandler_Impl,
18546        const OFFSET: isize,
18547    >() -> Self {
18548        unsafe extern "system" fn Invoke<
18549            Identity: ICoreWebView2FindActiveMatchIndexChangedEventHandler_Impl,
18550            const OFFSET: isize,
18551        >(
18552            this: *mut core::ffi::c_void,
18553            sender: *mut core::ffi::c_void,
18554            args: *mut core::ffi::c_void,
18555        ) -> windows_core::HRESULT {
18556            unsafe {
18557                let this: &Identity =
18558                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
18559                ICoreWebView2FindActiveMatchIndexChangedEventHandler_Impl::Invoke(
18560                    this,
18561                    core::mem::transmute_copy(&sender),
18562                    core::mem::transmute_copy(&args),
18563                )
18564                .into()
18565            }
18566        }
18567        Self {
18568            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
18569            Invoke: Invoke::<Identity, OFFSET>,
18570        }
18571    }
18572    pub fn matches(iid: &windows_core::GUID) -> bool {
18573        iid == & < ICoreWebView2FindActiveMatchIndexChangedEventHandler as windows_core::Interface >::IID
18574    }
18575}
18576impl windows_core::RuntimeName for ICoreWebView2FindActiveMatchIndexChangedEventHandler {}
18577windows_core::imp::define_interface!(
18578    ICoreWebView2FindMatchCountChangedEventHandler,
18579    ICoreWebView2FindMatchCountChangedEventHandler_Vtbl,
18580    0xda0d6827_4254_5b10_a6d9_412076afc9f3
18581);
18582windows_core::imp::interface_hierarchy!(
18583    ICoreWebView2FindMatchCountChangedEventHandler,
18584    windows_core::IUnknown
18585);
18586impl ICoreWebView2FindMatchCountChangedEventHandler {
18587    pub unsafe fn Invoke<P0, P1>(&self, sender: P0, args: P1) -> windows_core::Result<()>
18588    where
18589        P0: windows_core::Param<ICoreWebView2Find>,
18590        P1: windows_core::Param<windows_core::IUnknown>,
18591    {
18592        unsafe {
18593            (windows_core::Interface::vtable(self).Invoke)(
18594                windows_core::Interface::as_raw(self),
18595                sender.param().abi(),
18596                args.param().abi(),
18597            )
18598            .ok()
18599        }
18600    }
18601}
18602#[repr(C)]
18603#[doc(hidden)]
18604pub struct ICoreWebView2FindMatchCountChangedEventHandler_Vtbl {
18605    pub base__: windows_core::IUnknown_Vtbl,
18606    pub Invoke: unsafe extern "system" fn(
18607        *mut core::ffi::c_void,
18608        *mut core::ffi::c_void,
18609        *mut core::ffi::c_void,
18610    ) -> windows_core::HRESULT,
18611}
18612pub trait ICoreWebView2FindMatchCountChangedEventHandler_Impl: windows_core::IUnknownImpl {
18613    fn Invoke(
18614        &self,
18615        sender: windows_core::Ref<ICoreWebView2Find>,
18616        args: windows_core::Ref<windows_core::IUnknown>,
18617    ) -> windows_core::Result<()>;
18618}
18619impl ICoreWebView2FindMatchCountChangedEventHandler_Vtbl {
18620    pub const fn new<
18621        Identity: ICoreWebView2FindMatchCountChangedEventHandler_Impl,
18622        const OFFSET: isize,
18623    >() -> Self {
18624        unsafe extern "system" fn Invoke<
18625            Identity: ICoreWebView2FindMatchCountChangedEventHandler_Impl,
18626            const OFFSET: isize,
18627        >(
18628            this: *mut core::ffi::c_void,
18629            sender: *mut core::ffi::c_void,
18630            args: *mut core::ffi::c_void,
18631        ) -> windows_core::HRESULT {
18632            unsafe {
18633                let this: &Identity =
18634                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
18635                ICoreWebView2FindMatchCountChangedEventHandler_Impl::Invoke(
18636                    this,
18637                    core::mem::transmute_copy(&sender),
18638                    core::mem::transmute_copy(&args),
18639                )
18640                .into()
18641            }
18642        }
18643        Self {
18644            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
18645            Invoke: Invoke::<Identity, OFFSET>,
18646        }
18647    }
18648    pub fn matches(iid: &windows_core::GUID) -> bool {
18649        iid == &<ICoreWebView2FindMatchCountChangedEventHandler as windows_core::Interface>::IID
18650    }
18651}
18652impl windows_core::RuntimeName for ICoreWebView2FindMatchCountChangedEventHandler {}
18653windows_core::imp::define_interface!(
18654    ICoreWebView2FindOptions,
18655    ICoreWebView2FindOptions_Vtbl,
18656    0xe82e3b2b_a4af_5bc6_94c6_18b44157a16c
18657);
18658windows_core::imp::interface_hierarchy!(ICoreWebView2FindOptions, windows_core::IUnknown);
18659impl ICoreWebView2FindOptions {
18660    pub unsafe fn FindTerm(&self, value: *mut windows_core::PWSTR) -> windows_core::Result<()> {
18661        unsafe {
18662            (windows_core::Interface::vtable(self).FindTerm)(
18663                windows_core::Interface::as_raw(self),
18664                value as _,
18665            )
18666            .ok()
18667        }
18668    }
18669    pub unsafe fn SetFindTerm<P0>(&self, value: P0) -> windows_core::Result<()>
18670    where
18671        P0: windows_core::Param<windows_core::PCWSTR>,
18672    {
18673        unsafe {
18674            (windows_core::Interface::vtable(self).SetFindTerm)(
18675                windows_core::Interface::as_raw(self),
18676                value.param().abi(),
18677            )
18678            .ok()
18679        }
18680    }
18681    pub unsafe fn IsCaseSensitive(
18682        &self,
18683        value: *mut windows_core::BOOL,
18684    ) -> windows_core::Result<()> {
18685        unsafe {
18686            (windows_core::Interface::vtable(self).IsCaseSensitive)(
18687                windows_core::Interface::as_raw(self),
18688                value as _,
18689            )
18690            .ok()
18691        }
18692    }
18693    pub unsafe fn SetIsCaseSensitive(&self, value: bool) -> windows_core::Result<()> {
18694        unsafe {
18695            (windows_core::Interface::vtable(self).SetIsCaseSensitive)(
18696                windows_core::Interface::as_raw(self),
18697                value.into(),
18698            )
18699            .ok()
18700        }
18701    }
18702    pub unsafe fn ShouldHighlightAllMatches(
18703        &self,
18704        value: *mut windows_core::BOOL,
18705    ) -> windows_core::Result<()> {
18706        unsafe {
18707            (windows_core::Interface::vtable(self).ShouldHighlightAllMatches)(
18708                windows_core::Interface::as_raw(self),
18709                value as _,
18710            )
18711            .ok()
18712        }
18713    }
18714    pub unsafe fn SetShouldHighlightAllMatches(&self, value: bool) -> windows_core::Result<()> {
18715        unsafe {
18716            (windows_core::Interface::vtable(self).SetShouldHighlightAllMatches)(
18717                windows_core::Interface::as_raw(self),
18718                value.into(),
18719            )
18720            .ok()
18721        }
18722    }
18723    pub unsafe fn ShouldMatchWord(
18724        &self,
18725        value: *mut windows_core::BOOL,
18726    ) -> windows_core::Result<()> {
18727        unsafe {
18728            (windows_core::Interface::vtable(self).ShouldMatchWord)(
18729                windows_core::Interface::as_raw(self),
18730                value as _,
18731            )
18732            .ok()
18733        }
18734    }
18735    pub unsafe fn SetShouldMatchWord(&self, value: bool) -> windows_core::Result<()> {
18736        unsafe {
18737            (windows_core::Interface::vtable(self).SetShouldMatchWord)(
18738                windows_core::Interface::as_raw(self),
18739                value.into(),
18740            )
18741            .ok()
18742        }
18743    }
18744    pub unsafe fn SuppressDefaultFindDialog(
18745        &self,
18746        value: *mut windows_core::BOOL,
18747    ) -> windows_core::Result<()> {
18748        unsafe {
18749            (windows_core::Interface::vtable(self).SuppressDefaultFindDialog)(
18750                windows_core::Interface::as_raw(self),
18751                value as _,
18752            )
18753            .ok()
18754        }
18755    }
18756    pub unsafe fn SetSuppressDefaultFindDialog(&self, value: bool) -> windows_core::Result<()> {
18757        unsafe {
18758            (windows_core::Interface::vtable(self).SetSuppressDefaultFindDialog)(
18759                windows_core::Interface::as_raw(self),
18760                value.into(),
18761            )
18762            .ok()
18763        }
18764    }
18765}
18766#[repr(C)]
18767#[doc(hidden)]
18768pub struct ICoreWebView2FindOptions_Vtbl {
18769    pub base__: windows_core::IUnknown_Vtbl,
18770    pub FindTerm: unsafe extern "system" fn(
18771        *mut core::ffi::c_void,
18772        *mut windows_core::PWSTR,
18773    ) -> windows_core::HRESULT,
18774    pub SetFindTerm: unsafe extern "system" fn(
18775        *mut core::ffi::c_void,
18776        windows_core::PCWSTR,
18777    ) -> windows_core::HRESULT,
18778    pub IsCaseSensitive: unsafe extern "system" fn(
18779        *mut core::ffi::c_void,
18780        *mut windows_core::BOOL,
18781    ) -> windows_core::HRESULT,
18782    pub SetIsCaseSensitive: unsafe extern "system" fn(
18783        *mut core::ffi::c_void,
18784        windows_core::BOOL,
18785    ) -> windows_core::HRESULT,
18786    pub ShouldHighlightAllMatches: unsafe extern "system" fn(
18787        *mut core::ffi::c_void,
18788        *mut windows_core::BOOL,
18789    ) -> windows_core::HRESULT,
18790    pub SetShouldHighlightAllMatches: unsafe extern "system" fn(
18791        *mut core::ffi::c_void,
18792        windows_core::BOOL,
18793    ) -> windows_core::HRESULT,
18794    pub ShouldMatchWord: unsafe extern "system" fn(
18795        *mut core::ffi::c_void,
18796        *mut windows_core::BOOL,
18797    ) -> windows_core::HRESULT,
18798    pub SetShouldMatchWord: unsafe extern "system" fn(
18799        *mut core::ffi::c_void,
18800        windows_core::BOOL,
18801    ) -> windows_core::HRESULT,
18802    pub SuppressDefaultFindDialog: unsafe extern "system" fn(
18803        *mut core::ffi::c_void,
18804        *mut windows_core::BOOL,
18805    ) -> windows_core::HRESULT,
18806    pub SetSuppressDefaultFindDialog: unsafe extern "system" fn(
18807        *mut core::ffi::c_void,
18808        windows_core::BOOL,
18809    ) -> windows_core::HRESULT,
18810}
18811pub trait ICoreWebView2FindOptions_Impl: windows_core::IUnknownImpl {
18812    fn FindTerm(&self, value: *mut windows_core::PWSTR) -> windows_core::Result<()>;
18813    fn SetFindTerm(&self, value: &windows_core::PCWSTR) -> windows_core::Result<()>;
18814    fn IsCaseSensitive(&self, value: *mut windows_core::BOOL) -> windows_core::Result<()>;
18815    fn SetIsCaseSensitive(&self, value: windows_core::BOOL) -> windows_core::Result<()>;
18816    fn ShouldHighlightAllMatches(&self, value: *mut windows_core::BOOL)
18817        -> windows_core::Result<()>;
18818    fn SetShouldHighlightAllMatches(&self, value: windows_core::BOOL) -> windows_core::Result<()>;
18819    fn ShouldMatchWord(&self, value: *mut windows_core::BOOL) -> windows_core::Result<()>;
18820    fn SetShouldMatchWord(&self, value: windows_core::BOOL) -> windows_core::Result<()>;
18821    fn SuppressDefaultFindDialog(&self, value: *mut windows_core::BOOL)
18822        -> windows_core::Result<()>;
18823    fn SetSuppressDefaultFindDialog(&self, value: windows_core::BOOL) -> windows_core::Result<()>;
18824}
18825impl ICoreWebView2FindOptions_Vtbl {
18826    pub const fn new<Identity: ICoreWebView2FindOptions_Impl, const OFFSET: isize>() -> Self {
18827        unsafe extern "system" fn FindTerm<
18828            Identity: ICoreWebView2FindOptions_Impl,
18829            const OFFSET: isize,
18830        >(
18831            this: *mut core::ffi::c_void,
18832            value: *mut windows_core::PWSTR,
18833        ) -> windows_core::HRESULT {
18834            unsafe {
18835                let this: &Identity =
18836                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
18837                ICoreWebView2FindOptions_Impl::FindTerm(this, core::mem::transmute_copy(&value))
18838                    .into()
18839            }
18840        }
18841        unsafe extern "system" fn SetFindTerm<
18842            Identity: ICoreWebView2FindOptions_Impl,
18843            const OFFSET: isize,
18844        >(
18845            this: *mut core::ffi::c_void,
18846            value: windows_core::PCWSTR,
18847        ) -> windows_core::HRESULT {
18848            unsafe {
18849                let this: &Identity =
18850                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
18851                ICoreWebView2FindOptions_Impl::SetFindTerm(this, core::mem::transmute(&value))
18852                    .into()
18853            }
18854        }
18855        unsafe extern "system" fn IsCaseSensitive<
18856            Identity: ICoreWebView2FindOptions_Impl,
18857            const OFFSET: isize,
18858        >(
18859            this: *mut core::ffi::c_void,
18860            value: *mut windows_core::BOOL,
18861        ) -> windows_core::HRESULT {
18862            unsafe {
18863                let this: &Identity =
18864                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
18865                ICoreWebView2FindOptions_Impl::IsCaseSensitive(
18866                    this,
18867                    core::mem::transmute_copy(&value),
18868                )
18869                .into()
18870            }
18871        }
18872        unsafe extern "system" fn SetIsCaseSensitive<
18873            Identity: ICoreWebView2FindOptions_Impl,
18874            const OFFSET: isize,
18875        >(
18876            this: *mut core::ffi::c_void,
18877            value: windows_core::BOOL,
18878        ) -> windows_core::HRESULT {
18879            unsafe {
18880                let this: &Identity =
18881                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
18882                ICoreWebView2FindOptions_Impl::SetIsCaseSensitive(
18883                    this,
18884                    core::mem::transmute_copy(&value),
18885                )
18886                .into()
18887            }
18888        }
18889        unsafe extern "system" fn ShouldHighlightAllMatches<
18890            Identity: ICoreWebView2FindOptions_Impl,
18891            const OFFSET: isize,
18892        >(
18893            this: *mut core::ffi::c_void,
18894            value: *mut windows_core::BOOL,
18895        ) -> windows_core::HRESULT {
18896            unsafe {
18897                let this: &Identity =
18898                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
18899                ICoreWebView2FindOptions_Impl::ShouldHighlightAllMatches(
18900                    this,
18901                    core::mem::transmute_copy(&value),
18902                )
18903                .into()
18904            }
18905        }
18906        unsafe extern "system" fn SetShouldHighlightAllMatches<
18907            Identity: ICoreWebView2FindOptions_Impl,
18908            const OFFSET: isize,
18909        >(
18910            this: *mut core::ffi::c_void,
18911            value: windows_core::BOOL,
18912        ) -> windows_core::HRESULT {
18913            unsafe {
18914                let this: &Identity =
18915                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
18916                ICoreWebView2FindOptions_Impl::SetShouldHighlightAllMatches(
18917                    this,
18918                    core::mem::transmute_copy(&value),
18919                )
18920                .into()
18921            }
18922        }
18923        unsafe extern "system" fn ShouldMatchWord<
18924            Identity: ICoreWebView2FindOptions_Impl,
18925            const OFFSET: isize,
18926        >(
18927            this: *mut core::ffi::c_void,
18928            value: *mut windows_core::BOOL,
18929        ) -> windows_core::HRESULT {
18930            unsafe {
18931                let this: &Identity =
18932                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
18933                ICoreWebView2FindOptions_Impl::ShouldMatchWord(
18934                    this,
18935                    core::mem::transmute_copy(&value),
18936                )
18937                .into()
18938            }
18939        }
18940        unsafe extern "system" fn SetShouldMatchWord<
18941            Identity: ICoreWebView2FindOptions_Impl,
18942            const OFFSET: isize,
18943        >(
18944            this: *mut core::ffi::c_void,
18945            value: windows_core::BOOL,
18946        ) -> windows_core::HRESULT {
18947            unsafe {
18948                let this: &Identity =
18949                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
18950                ICoreWebView2FindOptions_Impl::SetShouldMatchWord(
18951                    this,
18952                    core::mem::transmute_copy(&value),
18953                )
18954                .into()
18955            }
18956        }
18957        unsafe extern "system" fn SuppressDefaultFindDialog<
18958            Identity: ICoreWebView2FindOptions_Impl,
18959            const OFFSET: isize,
18960        >(
18961            this: *mut core::ffi::c_void,
18962            value: *mut windows_core::BOOL,
18963        ) -> windows_core::HRESULT {
18964            unsafe {
18965                let this: &Identity =
18966                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
18967                ICoreWebView2FindOptions_Impl::SuppressDefaultFindDialog(
18968                    this,
18969                    core::mem::transmute_copy(&value),
18970                )
18971                .into()
18972            }
18973        }
18974        unsafe extern "system" fn SetSuppressDefaultFindDialog<
18975            Identity: ICoreWebView2FindOptions_Impl,
18976            const OFFSET: isize,
18977        >(
18978            this: *mut core::ffi::c_void,
18979            value: windows_core::BOOL,
18980        ) -> windows_core::HRESULT {
18981            unsafe {
18982                let this: &Identity =
18983                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
18984                ICoreWebView2FindOptions_Impl::SetSuppressDefaultFindDialog(
18985                    this,
18986                    core::mem::transmute_copy(&value),
18987                )
18988                .into()
18989            }
18990        }
18991        Self {
18992            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
18993            FindTerm: FindTerm::<Identity, OFFSET>,
18994            SetFindTerm: SetFindTerm::<Identity, OFFSET>,
18995            IsCaseSensitive: IsCaseSensitive::<Identity, OFFSET>,
18996            SetIsCaseSensitive: SetIsCaseSensitive::<Identity, OFFSET>,
18997            ShouldHighlightAllMatches: ShouldHighlightAllMatches::<Identity, OFFSET>,
18998            SetShouldHighlightAllMatches: SetShouldHighlightAllMatches::<Identity, OFFSET>,
18999            ShouldMatchWord: ShouldMatchWord::<Identity, OFFSET>,
19000            SetShouldMatchWord: SetShouldMatchWord::<Identity, OFFSET>,
19001            SuppressDefaultFindDialog: SuppressDefaultFindDialog::<Identity, OFFSET>,
19002            SetSuppressDefaultFindDialog: SetSuppressDefaultFindDialog::<Identity, OFFSET>,
19003        }
19004    }
19005    pub fn matches(iid: &windows_core::GUID) -> bool {
19006        iid == &<ICoreWebView2FindOptions as windows_core::Interface>::IID
19007    }
19008}
19009impl windows_core::RuntimeName for ICoreWebView2FindOptions {}
19010windows_core::imp::define_interface!(
19011    ICoreWebView2FindStartCompletedHandler,
19012    ICoreWebView2FindStartCompletedHandler_Vtbl,
19013    0x6a90ecaf_44b0_5bd9_8f07_1967e17be9fb
19014);
19015windows_core::imp::interface_hierarchy!(
19016    ICoreWebView2FindStartCompletedHandler,
19017    windows_core::IUnknown
19018);
19019impl ICoreWebView2FindStartCompletedHandler {
19020    pub unsafe fn Invoke(&self, errorcode: windows_core::HRESULT) -> windows_core::Result<()> {
19021        unsafe {
19022            (windows_core::Interface::vtable(self).Invoke)(
19023                windows_core::Interface::as_raw(self),
19024                errorcode,
19025            )
19026            .ok()
19027        }
19028    }
19029}
19030#[repr(C)]
19031#[doc(hidden)]
19032pub struct ICoreWebView2FindStartCompletedHandler_Vtbl {
19033    pub base__: windows_core::IUnknown_Vtbl,
19034    pub Invoke: unsafe extern "system" fn(
19035        *mut core::ffi::c_void,
19036        windows_core::HRESULT,
19037    ) -> windows_core::HRESULT,
19038}
19039pub trait ICoreWebView2FindStartCompletedHandler_Impl: windows_core::IUnknownImpl {
19040    fn Invoke(&self, errorcode: windows_core::HRESULT) -> windows_core::Result<()>;
19041}
19042impl ICoreWebView2FindStartCompletedHandler_Vtbl {
19043    pub const fn new<Identity: ICoreWebView2FindStartCompletedHandler_Impl, const OFFSET: isize>(
19044    ) -> Self {
19045        unsafe extern "system" fn Invoke<
19046            Identity: ICoreWebView2FindStartCompletedHandler_Impl,
19047            const OFFSET: isize,
19048        >(
19049            this: *mut core::ffi::c_void,
19050            errorcode: windows_core::HRESULT,
19051        ) -> windows_core::HRESULT {
19052            unsafe {
19053                let this: &Identity =
19054                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
19055                ICoreWebView2FindStartCompletedHandler_Impl::Invoke(
19056                    this,
19057                    core::mem::transmute_copy(&errorcode),
19058                )
19059                .into()
19060            }
19061        }
19062        Self {
19063            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
19064            Invoke: Invoke::<Identity, OFFSET>,
19065        }
19066    }
19067    pub fn matches(iid: &windows_core::GUID) -> bool {
19068        iid == &<ICoreWebView2FindStartCompletedHandler as windows_core::Interface>::IID
19069    }
19070}
19071impl windows_core::RuntimeName for ICoreWebView2FindStartCompletedHandler {}
19072windows_core::imp::define_interface!(
19073    ICoreWebView2FocusChangedEventHandler,
19074    ICoreWebView2FocusChangedEventHandler_Vtbl,
19075    0x05ea24bd_6452_4926_9014_4b82b498135d
19076);
19077windows_core::imp::interface_hierarchy!(
19078    ICoreWebView2FocusChangedEventHandler,
19079    windows_core::IUnknown
19080);
19081impl ICoreWebView2FocusChangedEventHandler {
19082    pub unsafe fn Invoke<P0, P1>(&self, sender: P0, args: P1) -> windows_core::Result<()>
19083    where
19084        P0: windows_core::Param<ICoreWebView2Controller>,
19085        P1: windows_core::Param<windows_core::IUnknown>,
19086    {
19087        unsafe {
19088            (windows_core::Interface::vtable(self).Invoke)(
19089                windows_core::Interface::as_raw(self),
19090                sender.param().abi(),
19091                args.param().abi(),
19092            )
19093            .ok()
19094        }
19095    }
19096}
19097#[repr(C)]
19098#[doc(hidden)]
19099pub struct ICoreWebView2FocusChangedEventHandler_Vtbl {
19100    pub base__: windows_core::IUnknown_Vtbl,
19101    pub Invoke: unsafe extern "system" fn(
19102        *mut core::ffi::c_void,
19103        *mut core::ffi::c_void,
19104        *mut core::ffi::c_void,
19105    ) -> windows_core::HRESULT,
19106}
19107pub trait ICoreWebView2FocusChangedEventHandler_Impl: windows_core::IUnknownImpl {
19108    fn Invoke(
19109        &self,
19110        sender: windows_core::Ref<ICoreWebView2Controller>,
19111        args: windows_core::Ref<windows_core::IUnknown>,
19112    ) -> windows_core::Result<()>;
19113}
19114impl ICoreWebView2FocusChangedEventHandler_Vtbl {
19115    pub const fn new<Identity: ICoreWebView2FocusChangedEventHandler_Impl, const OFFSET: isize>(
19116    ) -> Self {
19117        unsafe extern "system" fn Invoke<
19118            Identity: ICoreWebView2FocusChangedEventHandler_Impl,
19119            const OFFSET: isize,
19120        >(
19121            this: *mut core::ffi::c_void,
19122            sender: *mut core::ffi::c_void,
19123            args: *mut core::ffi::c_void,
19124        ) -> windows_core::HRESULT {
19125            unsafe {
19126                let this: &Identity =
19127                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
19128                ICoreWebView2FocusChangedEventHandler_Impl::Invoke(
19129                    this,
19130                    core::mem::transmute_copy(&sender),
19131                    core::mem::transmute_copy(&args),
19132                )
19133                .into()
19134            }
19135        }
19136        Self {
19137            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
19138            Invoke: Invoke::<Identity, OFFSET>,
19139        }
19140    }
19141    pub fn matches(iid: &windows_core::GUID) -> bool {
19142        iid == &<ICoreWebView2FocusChangedEventHandler as windows_core::Interface>::IID
19143    }
19144}
19145impl windows_core::RuntimeName for ICoreWebView2FocusChangedEventHandler {}
19146windows_core::imp::define_interface!(
19147    ICoreWebView2Frame,
19148    ICoreWebView2Frame_Vtbl,
19149    0xf1131a5e_9ba9_11eb_a8b3_0242ac130003
19150);
19151windows_core::imp::interface_hierarchy!(ICoreWebView2Frame, windows_core::IUnknown);
19152impl ICoreWebView2Frame {
19153    pub unsafe fn Name(&self, name: *mut windows_core::PWSTR) -> windows_core::Result<()> {
19154        unsafe {
19155            (windows_core::Interface::vtable(self).Name)(
19156                windows_core::Interface::as_raw(self),
19157                name as _,
19158            )
19159            .ok()
19160        }
19161    }
19162    pub unsafe fn add_NameChanged<P0>(
19163        &self,
19164        eventhandler: P0,
19165        token: *mut i64,
19166    ) -> windows_core::Result<()>
19167    where
19168        P0: windows_core::Param<ICoreWebView2FrameNameChangedEventHandler>,
19169    {
19170        unsafe {
19171            (windows_core::Interface::vtable(self).add_NameChanged)(
19172                windows_core::Interface::as_raw(self),
19173                eventhandler.param().abi(),
19174                token as _,
19175            )
19176            .ok()
19177        }
19178    }
19179    pub unsafe fn remove_NameChanged(&self, token: i64) -> windows_core::Result<()> {
19180        unsafe {
19181            (windows_core::Interface::vtable(self).remove_NameChanged)(
19182                windows_core::Interface::as_raw(self),
19183                token,
19184            )
19185            .ok()
19186        }
19187    }
19188    pub unsafe fn AddHostObjectToScriptWithOrigins<P0>(
19189        &self,
19190        name: P0,
19191        object: *mut windows::Win32::System::Variant::VARIANT,
19192        originscount: u32,
19193        origins: *const windows_core::PCWSTR,
19194    ) -> windows_core::Result<()>
19195    where
19196        P0: windows_core::Param<windows_core::PCWSTR>,
19197    {
19198        unsafe {
19199            (windows_core::Interface::vtable(self).AddHostObjectToScriptWithOrigins)(
19200                windows_core::Interface::as_raw(self),
19201                name.param().abi(),
19202                core::mem::transmute(object),
19203                originscount,
19204                origins,
19205            )
19206            .ok()
19207        }
19208    }
19209    pub unsafe fn RemoveHostObjectFromScript<P0>(&self, name: P0) -> windows_core::Result<()>
19210    where
19211        P0: windows_core::Param<windows_core::PCWSTR>,
19212    {
19213        unsafe {
19214            (windows_core::Interface::vtable(self).RemoveHostObjectFromScript)(
19215                windows_core::Interface::as_raw(self),
19216                name.param().abi(),
19217            )
19218            .ok()
19219        }
19220    }
19221    pub unsafe fn add_Destroyed<P0>(
19222        &self,
19223        eventhandler: P0,
19224        token: *mut i64,
19225    ) -> windows_core::Result<()>
19226    where
19227        P0: windows_core::Param<ICoreWebView2FrameDestroyedEventHandler>,
19228    {
19229        unsafe {
19230            (windows_core::Interface::vtable(self).add_Destroyed)(
19231                windows_core::Interface::as_raw(self),
19232                eventhandler.param().abi(),
19233                token as _,
19234            )
19235            .ok()
19236        }
19237    }
19238    pub unsafe fn remove_Destroyed(&self, token: i64) -> windows_core::Result<()> {
19239        unsafe {
19240            (windows_core::Interface::vtable(self).remove_Destroyed)(
19241                windows_core::Interface::as_raw(self),
19242                token,
19243            )
19244            .ok()
19245        }
19246    }
19247    pub unsafe fn IsDestroyed(
19248        &self,
19249        destroyed: *mut windows_core::BOOL,
19250    ) -> windows_core::Result<()> {
19251        unsafe {
19252            (windows_core::Interface::vtable(self).IsDestroyed)(
19253                windows_core::Interface::as_raw(self),
19254                destroyed as _,
19255            )
19256            .ok()
19257        }
19258    }
19259}
19260#[repr(C)]
19261#[doc(hidden)]
19262pub struct ICoreWebView2Frame_Vtbl {
19263    pub base__: windows_core::IUnknown_Vtbl,
19264    pub Name: unsafe extern "system" fn(
19265        *mut core::ffi::c_void,
19266        *mut windows_core::PWSTR,
19267    ) -> windows_core::HRESULT,
19268    pub add_NameChanged: unsafe extern "system" fn(
19269        *mut core::ffi::c_void,
19270        *mut core::ffi::c_void,
19271        *mut i64,
19272    ) -> windows_core::HRESULT,
19273    pub remove_NameChanged:
19274        unsafe extern "system" fn(*mut core::ffi::c_void, i64) -> windows_core::HRESULT,
19275    pub AddHostObjectToScriptWithOrigins: unsafe extern "system" fn(
19276        *mut core::ffi::c_void,
19277        windows_core::PCWSTR,
19278        *mut windows::Win32::System::Variant::VARIANT,
19279        u32,
19280        *const windows_core::PCWSTR,
19281    ) -> windows_core::HRESULT,
19282    pub RemoveHostObjectFromScript: unsafe extern "system" fn(
19283        *mut core::ffi::c_void,
19284        windows_core::PCWSTR,
19285    ) -> windows_core::HRESULT,
19286    pub add_Destroyed: unsafe extern "system" fn(
19287        *mut core::ffi::c_void,
19288        *mut core::ffi::c_void,
19289        *mut i64,
19290    ) -> windows_core::HRESULT,
19291    pub remove_Destroyed:
19292        unsafe extern "system" fn(*mut core::ffi::c_void, i64) -> windows_core::HRESULT,
19293    pub IsDestroyed: unsafe extern "system" fn(
19294        *mut core::ffi::c_void,
19295        *mut windows_core::BOOL,
19296    ) -> windows_core::HRESULT,
19297}
19298pub trait ICoreWebView2Frame_Impl: windows_core::IUnknownImpl {
19299    fn Name(&self, name: *mut windows_core::PWSTR) -> windows_core::Result<()>;
19300    fn add_NameChanged(
19301        &self,
19302        eventhandler: windows_core::Ref<ICoreWebView2FrameNameChangedEventHandler>,
19303        token: *mut i64,
19304    ) -> windows_core::Result<()>;
19305    fn remove_NameChanged(&self, token: i64) -> windows_core::Result<()>;
19306    fn AddHostObjectToScriptWithOrigins(
19307        &self,
19308        name: &windows_core::PCWSTR,
19309        object: *mut windows::Win32::System::Variant::VARIANT,
19310        originscount: u32,
19311        origins: *const windows_core::PCWSTR,
19312    ) -> windows_core::Result<()>;
19313    fn RemoveHostObjectFromScript(&self, name: &windows_core::PCWSTR) -> windows_core::Result<()>;
19314    fn add_Destroyed(
19315        &self,
19316        eventhandler: windows_core::Ref<ICoreWebView2FrameDestroyedEventHandler>,
19317        token: *mut i64,
19318    ) -> windows_core::Result<()>;
19319    fn remove_Destroyed(&self, token: i64) -> windows_core::Result<()>;
19320    fn IsDestroyed(&self, destroyed: *mut windows_core::BOOL) -> windows_core::Result<()>;
19321}
19322impl ICoreWebView2Frame_Vtbl {
19323    pub const fn new<Identity: ICoreWebView2Frame_Impl, const OFFSET: isize>() -> Self {
19324        unsafe extern "system" fn Name<Identity: ICoreWebView2Frame_Impl, const OFFSET: isize>(
19325            this: *mut core::ffi::c_void,
19326            name: *mut windows_core::PWSTR,
19327        ) -> windows_core::HRESULT {
19328            unsafe {
19329                let this: &Identity =
19330                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
19331                ICoreWebView2Frame_Impl::Name(this, core::mem::transmute_copy(&name)).into()
19332            }
19333        }
19334        unsafe extern "system" fn add_NameChanged<
19335            Identity: ICoreWebView2Frame_Impl,
19336            const OFFSET: isize,
19337        >(
19338            this: *mut core::ffi::c_void,
19339            eventhandler: *mut core::ffi::c_void,
19340            token: *mut i64,
19341        ) -> windows_core::HRESULT {
19342            unsafe {
19343                let this: &Identity =
19344                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
19345                ICoreWebView2Frame_Impl::add_NameChanged(
19346                    this,
19347                    core::mem::transmute_copy(&eventhandler),
19348                    core::mem::transmute_copy(&token),
19349                )
19350                .into()
19351            }
19352        }
19353        unsafe extern "system" fn remove_NameChanged<
19354            Identity: ICoreWebView2Frame_Impl,
19355            const OFFSET: isize,
19356        >(
19357            this: *mut core::ffi::c_void,
19358            token: i64,
19359        ) -> windows_core::HRESULT {
19360            unsafe {
19361                let this: &Identity =
19362                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
19363                ICoreWebView2Frame_Impl::remove_NameChanged(this, core::mem::transmute_copy(&token))
19364                    .into()
19365            }
19366        }
19367        unsafe extern "system" fn AddHostObjectToScriptWithOrigins<
19368            Identity: ICoreWebView2Frame_Impl,
19369            const OFFSET: isize,
19370        >(
19371            this: *mut core::ffi::c_void,
19372            name: windows_core::PCWSTR,
19373            object: *mut windows::Win32::System::Variant::VARIANT,
19374            originscount: u32,
19375            origins: *const windows_core::PCWSTR,
19376        ) -> windows_core::HRESULT {
19377            unsafe {
19378                let this: &Identity =
19379                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
19380                ICoreWebView2Frame_Impl::AddHostObjectToScriptWithOrigins(
19381                    this,
19382                    core::mem::transmute(&name),
19383                    core::mem::transmute_copy(&object),
19384                    core::mem::transmute_copy(&originscount),
19385                    core::mem::transmute_copy(&origins),
19386                )
19387                .into()
19388            }
19389        }
19390        unsafe extern "system" fn RemoveHostObjectFromScript<
19391            Identity: ICoreWebView2Frame_Impl,
19392            const OFFSET: isize,
19393        >(
19394            this: *mut core::ffi::c_void,
19395            name: windows_core::PCWSTR,
19396        ) -> windows_core::HRESULT {
19397            unsafe {
19398                let this: &Identity =
19399                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
19400                ICoreWebView2Frame_Impl::RemoveHostObjectFromScript(
19401                    this,
19402                    core::mem::transmute(&name),
19403                )
19404                .into()
19405            }
19406        }
19407        unsafe extern "system" fn add_Destroyed<
19408            Identity: ICoreWebView2Frame_Impl,
19409            const OFFSET: isize,
19410        >(
19411            this: *mut core::ffi::c_void,
19412            eventhandler: *mut core::ffi::c_void,
19413            token: *mut i64,
19414        ) -> windows_core::HRESULT {
19415            unsafe {
19416                let this: &Identity =
19417                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
19418                ICoreWebView2Frame_Impl::add_Destroyed(
19419                    this,
19420                    core::mem::transmute_copy(&eventhandler),
19421                    core::mem::transmute_copy(&token),
19422                )
19423                .into()
19424            }
19425        }
19426        unsafe extern "system" fn remove_Destroyed<
19427            Identity: ICoreWebView2Frame_Impl,
19428            const OFFSET: isize,
19429        >(
19430            this: *mut core::ffi::c_void,
19431            token: i64,
19432        ) -> windows_core::HRESULT {
19433            unsafe {
19434                let this: &Identity =
19435                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
19436                ICoreWebView2Frame_Impl::remove_Destroyed(this, core::mem::transmute_copy(&token))
19437                    .into()
19438            }
19439        }
19440        unsafe extern "system" fn IsDestroyed<
19441            Identity: ICoreWebView2Frame_Impl,
19442            const OFFSET: isize,
19443        >(
19444            this: *mut core::ffi::c_void,
19445            destroyed: *mut windows_core::BOOL,
19446        ) -> windows_core::HRESULT {
19447            unsafe {
19448                let this: &Identity =
19449                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
19450                ICoreWebView2Frame_Impl::IsDestroyed(this, core::mem::transmute_copy(&destroyed))
19451                    .into()
19452            }
19453        }
19454        Self {
19455            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
19456            Name: Name::<Identity, OFFSET>,
19457            add_NameChanged: add_NameChanged::<Identity, OFFSET>,
19458            remove_NameChanged: remove_NameChanged::<Identity, OFFSET>,
19459            AddHostObjectToScriptWithOrigins: AddHostObjectToScriptWithOrigins::<Identity, OFFSET>,
19460            RemoveHostObjectFromScript: RemoveHostObjectFromScript::<Identity, OFFSET>,
19461            add_Destroyed: add_Destroyed::<Identity, OFFSET>,
19462            remove_Destroyed: remove_Destroyed::<Identity, OFFSET>,
19463            IsDestroyed: IsDestroyed::<Identity, OFFSET>,
19464        }
19465    }
19466    pub fn matches(iid: &windows_core::GUID) -> bool {
19467        iid == &<ICoreWebView2Frame as windows_core::Interface>::IID
19468    }
19469}
19470impl windows_core::RuntimeName for ICoreWebView2Frame {}
19471windows_core::imp::define_interface!(
19472    ICoreWebView2Frame2,
19473    ICoreWebView2Frame2_Vtbl,
19474    0x7a6a5834_d185_4dbf_b63f_4a9bc43107d4
19475);
19476impl core::ops::Deref for ICoreWebView2Frame2 {
19477    type Target = ICoreWebView2Frame;
19478    fn deref(&self) -> &Self::Target {
19479        unsafe { core::mem::transmute(self) }
19480    }
19481}
19482windows_core::imp::interface_hierarchy!(
19483    ICoreWebView2Frame2,
19484    windows_core::IUnknown,
19485    ICoreWebView2Frame
19486);
19487impl ICoreWebView2Frame2 {
19488    pub unsafe fn add_NavigationStarting<P0>(
19489        &self,
19490        eventhandler: P0,
19491        token: *mut i64,
19492    ) -> windows_core::Result<()>
19493    where
19494        P0: windows_core::Param<ICoreWebView2FrameNavigationStartingEventHandler>,
19495    {
19496        unsafe {
19497            (windows_core::Interface::vtable(self).add_NavigationStarting)(
19498                windows_core::Interface::as_raw(self),
19499                eventhandler.param().abi(),
19500                token as _,
19501            )
19502            .ok()
19503        }
19504    }
19505    pub unsafe fn remove_NavigationStarting(&self, token: i64) -> windows_core::Result<()> {
19506        unsafe {
19507            (windows_core::Interface::vtable(self).remove_NavigationStarting)(
19508                windows_core::Interface::as_raw(self),
19509                token,
19510            )
19511            .ok()
19512        }
19513    }
19514    pub unsafe fn add_ContentLoading<P0>(
19515        &self,
19516        eventhandler: P0,
19517        token: *mut i64,
19518    ) -> windows_core::Result<()>
19519    where
19520        P0: windows_core::Param<ICoreWebView2FrameContentLoadingEventHandler>,
19521    {
19522        unsafe {
19523            (windows_core::Interface::vtable(self).add_ContentLoading)(
19524                windows_core::Interface::as_raw(self),
19525                eventhandler.param().abi(),
19526                token as _,
19527            )
19528            .ok()
19529        }
19530    }
19531    pub unsafe fn remove_ContentLoading(&self, token: i64) -> windows_core::Result<()> {
19532        unsafe {
19533            (windows_core::Interface::vtable(self).remove_ContentLoading)(
19534                windows_core::Interface::as_raw(self),
19535                token,
19536            )
19537            .ok()
19538        }
19539    }
19540    pub unsafe fn add_NavigationCompleted<P0>(
19541        &self,
19542        eventhandler: P0,
19543        token: *mut i64,
19544    ) -> windows_core::Result<()>
19545    where
19546        P0: windows_core::Param<ICoreWebView2FrameNavigationCompletedEventHandler>,
19547    {
19548        unsafe {
19549            (windows_core::Interface::vtable(self).add_NavigationCompleted)(
19550                windows_core::Interface::as_raw(self),
19551                eventhandler.param().abi(),
19552                token as _,
19553            )
19554            .ok()
19555        }
19556    }
19557    pub unsafe fn remove_NavigationCompleted(&self, token: i64) -> windows_core::Result<()> {
19558        unsafe {
19559            (windows_core::Interface::vtable(self).remove_NavigationCompleted)(
19560                windows_core::Interface::as_raw(self),
19561                token,
19562            )
19563            .ok()
19564        }
19565    }
19566    pub unsafe fn add_DOMContentLoaded<P0>(
19567        &self,
19568        eventhandler: P0,
19569        token: *mut i64,
19570    ) -> windows_core::Result<()>
19571    where
19572        P0: windows_core::Param<ICoreWebView2FrameDOMContentLoadedEventHandler>,
19573    {
19574        unsafe {
19575            (windows_core::Interface::vtable(self).add_DOMContentLoaded)(
19576                windows_core::Interface::as_raw(self),
19577                eventhandler.param().abi(),
19578                token as _,
19579            )
19580            .ok()
19581        }
19582    }
19583    pub unsafe fn remove_DOMContentLoaded(&self, token: i64) -> windows_core::Result<()> {
19584        unsafe {
19585            (windows_core::Interface::vtable(self).remove_DOMContentLoaded)(
19586                windows_core::Interface::as_raw(self),
19587                token,
19588            )
19589            .ok()
19590        }
19591    }
19592    pub unsafe fn ExecuteScript<P0, P1>(
19593        &self,
19594        javascript: P0,
19595        handler: P1,
19596    ) -> windows_core::Result<()>
19597    where
19598        P0: windows_core::Param<windows_core::PCWSTR>,
19599        P1: windows_core::Param<ICoreWebView2ExecuteScriptCompletedHandler>,
19600    {
19601        unsafe {
19602            (windows_core::Interface::vtable(self).ExecuteScript)(
19603                windows_core::Interface::as_raw(self),
19604                javascript.param().abi(),
19605                handler.param().abi(),
19606            )
19607            .ok()
19608        }
19609    }
19610    pub unsafe fn PostWebMessageAsJson<P0>(&self, webmessageasjson: P0) -> windows_core::Result<()>
19611    where
19612        P0: windows_core::Param<windows_core::PCWSTR>,
19613    {
19614        unsafe {
19615            (windows_core::Interface::vtable(self).PostWebMessageAsJson)(
19616                windows_core::Interface::as_raw(self),
19617                webmessageasjson.param().abi(),
19618            )
19619            .ok()
19620        }
19621    }
19622    pub unsafe fn PostWebMessageAsString<P0>(
19623        &self,
19624        webmessageasstring: P0,
19625    ) -> windows_core::Result<()>
19626    where
19627        P0: windows_core::Param<windows_core::PCWSTR>,
19628    {
19629        unsafe {
19630            (windows_core::Interface::vtable(self).PostWebMessageAsString)(
19631                windows_core::Interface::as_raw(self),
19632                webmessageasstring.param().abi(),
19633            )
19634            .ok()
19635        }
19636    }
19637    pub unsafe fn add_WebMessageReceived<P0>(
19638        &self,
19639        handler: P0,
19640        token: *mut i64,
19641    ) -> windows_core::Result<()>
19642    where
19643        P0: windows_core::Param<ICoreWebView2FrameWebMessageReceivedEventHandler>,
19644    {
19645        unsafe {
19646            (windows_core::Interface::vtable(self).add_WebMessageReceived)(
19647                windows_core::Interface::as_raw(self),
19648                handler.param().abi(),
19649                token as _,
19650            )
19651            .ok()
19652        }
19653    }
19654    pub unsafe fn remove_WebMessageReceived(&self, token: i64) -> windows_core::Result<()> {
19655        unsafe {
19656            (windows_core::Interface::vtable(self).remove_WebMessageReceived)(
19657                windows_core::Interface::as_raw(self),
19658                token,
19659            )
19660            .ok()
19661        }
19662    }
19663}
19664#[repr(C)]
19665#[doc(hidden)]
19666pub struct ICoreWebView2Frame2_Vtbl {
19667    pub base__: ICoreWebView2Frame_Vtbl,
19668    pub add_NavigationStarting: unsafe extern "system" fn(
19669        *mut core::ffi::c_void,
19670        *mut core::ffi::c_void,
19671        *mut i64,
19672    ) -> windows_core::HRESULT,
19673    pub remove_NavigationStarting:
19674        unsafe extern "system" fn(*mut core::ffi::c_void, i64) -> windows_core::HRESULT,
19675    pub add_ContentLoading: unsafe extern "system" fn(
19676        *mut core::ffi::c_void,
19677        *mut core::ffi::c_void,
19678        *mut i64,
19679    ) -> windows_core::HRESULT,
19680    pub remove_ContentLoading:
19681        unsafe extern "system" fn(*mut core::ffi::c_void, i64) -> windows_core::HRESULT,
19682    pub add_NavigationCompleted: unsafe extern "system" fn(
19683        *mut core::ffi::c_void,
19684        *mut core::ffi::c_void,
19685        *mut i64,
19686    ) -> windows_core::HRESULT,
19687    pub remove_NavigationCompleted:
19688        unsafe extern "system" fn(*mut core::ffi::c_void, i64) -> windows_core::HRESULT,
19689    pub add_DOMContentLoaded: unsafe extern "system" fn(
19690        *mut core::ffi::c_void,
19691        *mut core::ffi::c_void,
19692        *mut i64,
19693    ) -> windows_core::HRESULT,
19694    pub remove_DOMContentLoaded:
19695        unsafe extern "system" fn(*mut core::ffi::c_void, i64) -> windows_core::HRESULT,
19696    pub ExecuteScript: unsafe extern "system" fn(
19697        *mut core::ffi::c_void,
19698        windows_core::PCWSTR,
19699        *mut core::ffi::c_void,
19700    ) -> windows_core::HRESULT,
19701    pub PostWebMessageAsJson: unsafe extern "system" fn(
19702        *mut core::ffi::c_void,
19703        windows_core::PCWSTR,
19704    ) -> windows_core::HRESULT,
19705    pub PostWebMessageAsString: unsafe extern "system" fn(
19706        *mut core::ffi::c_void,
19707        windows_core::PCWSTR,
19708    ) -> windows_core::HRESULT,
19709    pub add_WebMessageReceived: unsafe extern "system" fn(
19710        *mut core::ffi::c_void,
19711        *mut core::ffi::c_void,
19712        *mut i64,
19713    ) -> windows_core::HRESULT,
19714    pub remove_WebMessageReceived:
19715        unsafe extern "system" fn(*mut core::ffi::c_void, i64) -> windows_core::HRESULT,
19716}
19717pub trait ICoreWebView2Frame2_Impl: ICoreWebView2Frame_Impl {
19718    fn add_NavigationStarting(
19719        &self,
19720        eventhandler: windows_core::Ref<ICoreWebView2FrameNavigationStartingEventHandler>,
19721        token: *mut i64,
19722    ) -> windows_core::Result<()>;
19723    fn remove_NavigationStarting(&self, token: i64) -> windows_core::Result<()>;
19724    fn add_ContentLoading(
19725        &self,
19726        eventhandler: windows_core::Ref<ICoreWebView2FrameContentLoadingEventHandler>,
19727        token: *mut i64,
19728    ) -> windows_core::Result<()>;
19729    fn remove_ContentLoading(&self, token: i64) -> windows_core::Result<()>;
19730    fn add_NavigationCompleted(
19731        &self,
19732        eventhandler: windows_core::Ref<ICoreWebView2FrameNavigationCompletedEventHandler>,
19733        token: *mut i64,
19734    ) -> windows_core::Result<()>;
19735    fn remove_NavigationCompleted(&self, token: i64) -> windows_core::Result<()>;
19736    fn add_DOMContentLoaded(
19737        &self,
19738        eventhandler: windows_core::Ref<ICoreWebView2FrameDOMContentLoadedEventHandler>,
19739        token: *mut i64,
19740    ) -> windows_core::Result<()>;
19741    fn remove_DOMContentLoaded(&self, token: i64) -> windows_core::Result<()>;
19742    fn ExecuteScript(
19743        &self,
19744        javascript: &windows_core::PCWSTR,
19745        handler: windows_core::Ref<ICoreWebView2ExecuteScriptCompletedHandler>,
19746    ) -> windows_core::Result<()>;
19747    fn PostWebMessageAsJson(
19748        &self,
19749        webmessageasjson: &windows_core::PCWSTR,
19750    ) -> windows_core::Result<()>;
19751    fn PostWebMessageAsString(
19752        &self,
19753        webmessageasstring: &windows_core::PCWSTR,
19754    ) -> windows_core::Result<()>;
19755    fn add_WebMessageReceived(
19756        &self,
19757        handler: windows_core::Ref<ICoreWebView2FrameWebMessageReceivedEventHandler>,
19758        token: *mut i64,
19759    ) -> windows_core::Result<()>;
19760    fn remove_WebMessageReceived(&self, token: i64) -> windows_core::Result<()>;
19761}
19762impl ICoreWebView2Frame2_Vtbl {
19763    pub const fn new<Identity: ICoreWebView2Frame2_Impl, const OFFSET: isize>() -> Self {
19764        unsafe extern "system" fn add_NavigationStarting<
19765            Identity: ICoreWebView2Frame2_Impl,
19766            const OFFSET: isize,
19767        >(
19768            this: *mut core::ffi::c_void,
19769            eventhandler: *mut core::ffi::c_void,
19770            token: *mut i64,
19771        ) -> windows_core::HRESULT {
19772            unsafe {
19773                let this: &Identity =
19774                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
19775                ICoreWebView2Frame2_Impl::add_NavigationStarting(
19776                    this,
19777                    core::mem::transmute_copy(&eventhandler),
19778                    core::mem::transmute_copy(&token),
19779                )
19780                .into()
19781            }
19782        }
19783        unsafe extern "system" fn remove_NavigationStarting<
19784            Identity: ICoreWebView2Frame2_Impl,
19785            const OFFSET: isize,
19786        >(
19787            this: *mut core::ffi::c_void,
19788            token: i64,
19789        ) -> windows_core::HRESULT {
19790            unsafe {
19791                let this: &Identity =
19792                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
19793                ICoreWebView2Frame2_Impl::remove_NavigationStarting(
19794                    this,
19795                    core::mem::transmute_copy(&token),
19796                )
19797                .into()
19798            }
19799        }
19800        unsafe extern "system" fn add_ContentLoading<
19801            Identity: ICoreWebView2Frame2_Impl,
19802            const OFFSET: isize,
19803        >(
19804            this: *mut core::ffi::c_void,
19805            eventhandler: *mut core::ffi::c_void,
19806            token: *mut i64,
19807        ) -> windows_core::HRESULT {
19808            unsafe {
19809                let this: &Identity =
19810                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
19811                ICoreWebView2Frame2_Impl::add_ContentLoading(
19812                    this,
19813                    core::mem::transmute_copy(&eventhandler),
19814                    core::mem::transmute_copy(&token),
19815                )
19816                .into()
19817            }
19818        }
19819        unsafe extern "system" fn remove_ContentLoading<
19820            Identity: ICoreWebView2Frame2_Impl,
19821            const OFFSET: isize,
19822        >(
19823            this: *mut core::ffi::c_void,
19824            token: i64,
19825        ) -> windows_core::HRESULT {
19826            unsafe {
19827                let this: &Identity =
19828                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
19829                ICoreWebView2Frame2_Impl::remove_ContentLoading(
19830                    this,
19831                    core::mem::transmute_copy(&token),
19832                )
19833                .into()
19834            }
19835        }
19836        unsafe extern "system" fn add_NavigationCompleted<
19837            Identity: ICoreWebView2Frame2_Impl,
19838            const OFFSET: isize,
19839        >(
19840            this: *mut core::ffi::c_void,
19841            eventhandler: *mut core::ffi::c_void,
19842            token: *mut i64,
19843        ) -> windows_core::HRESULT {
19844            unsafe {
19845                let this: &Identity =
19846                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
19847                ICoreWebView2Frame2_Impl::add_NavigationCompleted(
19848                    this,
19849                    core::mem::transmute_copy(&eventhandler),
19850                    core::mem::transmute_copy(&token),
19851                )
19852                .into()
19853            }
19854        }
19855        unsafe extern "system" fn remove_NavigationCompleted<
19856            Identity: ICoreWebView2Frame2_Impl,
19857            const OFFSET: isize,
19858        >(
19859            this: *mut core::ffi::c_void,
19860            token: i64,
19861        ) -> windows_core::HRESULT {
19862            unsafe {
19863                let this: &Identity =
19864                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
19865                ICoreWebView2Frame2_Impl::remove_NavigationCompleted(
19866                    this,
19867                    core::mem::transmute_copy(&token),
19868                )
19869                .into()
19870            }
19871        }
19872        unsafe extern "system" fn add_DOMContentLoaded<
19873            Identity: ICoreWebView2Frame2_Impl,
19874            const OFFSET: isize,
19875        >(
19876            this: *mut core::ffi::c_void,
19877            eventhandler: *mut core::ffi::c_void,
19878            token: *mut i64,
19879        ) -> windows_core::HRESULT {
19880            unsafe {
19881                let this: &Identity =
19882                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
19883                ICoreWebView2Frame2_Impl::add_DOMContentLoaded(
19884                    this,
19885                    core::mem::transmute_copy(&eventhandler),
19886                    core::mem::transmute_copy(&token),
19887                )
19888                .into()
19889            }
19890        }
19891        unsafe extern "system" fn remove_DOMContentLoaded<
19892            Identity: ICoreWebView2Frame2_Impl,
19893            const OFFSET: isize,
19894        >(
19895            this: *mut core::ffi::c_void,
19896            token: i64,
19897        ) -> windows_core::HRESULT {
19898            unsafe {
19899                let this: &Identity =
19900                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
19901                ICoreWebView2Frame2_Impl::remove_DOMContentLoaded(
19902                    this,
19903                    core::mem::transmute_copy(&token),
19904                )
19905                .into()
19906            }
19907        }
19908        unsafe extern "system" fn ExecuteScript<
19909            Identity: ICoreWebView2Frame2_Impl,
19910            const OFFSET: isize,
19911        >(
19912            this: *mut core::ffi::c_void,
19913            javascript: windows_core::PCWSTR,
19914            handler: *mut core::ffi::c_void,
19915        ) -> windows_core::HRESULT {
19916            unsafe {
19917                let this: &Identity =
19918                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
19919                ICoreWebView2Frame2_Impl::ExecuteScript(
19920                    this,
19921                    core::mem::transmute(&javascript),
19922                    core::mem::transmute_copy(&handler),
19923                )
19924                .into()
19925            }
19926        }
19927        unsafe extern "system" fn PostWebMessageAsJson<
19928            Identity: ICoreWebView2Frame2_Impl,
19929            const OFFSET: isize,
19930        >(
19931            this: *mut core::ffi::c_void,
19932            webmessageasjson: windows_core::PCWSTR,
19933        ) -> windows_core::HRESULT {
19934            unsafe {
19935                let this: &Identity =
19936                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
19937                ICoreWebView2Frame2_Impl::PostWebMessageAsJson(
19938                    this,
19939                    core::mem::transmute(&webmessageasjson),
19940                )
19941                .into()
19942            }
19943        }
19944        unsafe extern "system" fn PostWebMessageAsString<
19945            Identity: ICoreWebView2Frame2_Impl,
19946            const OFFSET: isize,
19947        >(
19948            this: *mut core::ffi::c_void,
19949            webmessageasstring: windows_core::PCWSTR,
19950        ) -> windows_core::HRESULT {
19951            unsafe {
19952                let this: &Identity =
19953                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
19954                ICoreWebView2Frame2_Impl::PostWebMessageAsString(
19955                    this,
19956                    core::mem::transmute(&webmessageasstring),
19957                )
19958                .into()
19959            }
19960        }
19961        unsafe extern "system" fn add_WebMessageReceived<
19962            Identity: ICoreWebView2Frame2_Impl,
19963            const OFFSET: isize,
19964        >(
19965            this: *mut core::ffi::c_void,
19966            handler: *mut core::ffi::c_void,
19967            token: *mut i64,
19968        ) -> windows_core::HRESULT {
19969            unsafe {
19970                let this: &Identity =
19971                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
19972                ICoreWebView2Frame2_Impl::add_WebMessageReceived(
19973                    this,
19974                    core::mem::transmute_copy(&handler),
19975                    core::mem::transmute_copy(&token),
19976                )
19977                .into()
19978            }
19979        }
19980        unsafe extern "system" fn remove_WebMessageReceived<
19981            Identity: ICoreWebView2Frame2_Impl,
19982            const OFFSET: isize,
19983        >(
19984            this: *mut core::ffi::c_void,
19985            token: i64,
19986        ) -> windows_core::HRESULT {
19987            unsafe {
19988                let this: &Identity =
19989                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
19990                ICoreWebView2Frame2_Impl::remove_WebMessageReceived(
19991                    this,
19992                    core::mem::transmute_copy(&token),
19993                )
19994                .into()
19995            }
19996        }
19997        Self {
19998            base__: ICoreWebView2Frame_Vtbl::new::<Identity, OFFSET>(),
19999            add_NavigationStarting: add_NavigationStarting::<Identity, OFFSET>,
20000            remove_NavigationStarting: remove_NavigationStarting::<Identity, OFFSET>,
20001            add_ContentLoading: add_ContentLoading::<Identity, OFFSET>,
20002            remove_ContentLoading: remove_ContentLoading::<Identity, OFFSET>,
20003            add_NavigationCompleted: add_NavigationCompleted::<Identity, OFFSET>,
20004            remove_NavigationCompleted: remove_NavigationCompleted::<Identity, OFFSET>,
20005            add_DOMContentLoaded: add_DOMContentLoaded::<Identity, OFFSET>,
20006            remove_DOMContentLoaded: remove_DOMContentLoaded::<Identity, OFFSET>,
20007            ExecuteScript: ExecuteScript::<Identity, OFFSET>,
20008            PostWebMessageAsJson: PostWebMessageAsJson::<Identity, OFFSET>,
20009            PostWebMessageAsString: PostWebMessageAsString::<Identity, OFFSET>,
20010            add_WebMessageReceived: add_WebMessageReceived::<Identity, OFFSET>,
20011            remove_WebMessageReceived: remove_WebMessageReceived::<Identity, OFFSET>,
20012        }
20013    }
20014    pub fn matches(iid: &windows_core::GUID) -> bool {
20015        iid == &<ICoreWebView2Frame2 as windows_core::Interface>::IID
20016            || iid == &<ICoreWebView2Frame as windows_core::Interface>::IID
20017    }
20018}
20019impl windows_core::RuntimeName for ICoreWebView2Frame2 {}
20020windows_core::imp::define_interface!(
20021    ICoreWebView2Frame3,
20022    ICoreWebView2Frame3_Vtbl,
20023    0xb50d82cc_cc28_481d_9614_cb048895e6a0
20024);
20025impl core::ops::Deref for ICoreWebView2Frame3 {
20026    type Target = ICoreWebView2Frame2;
20027    fn deref(&self) -> &Self::Target {
20028        unsafe { core::mem::transmute(self) }
20029    }
20030}
20031windows_core::imp::interface_hierarchy!(
20032    ICoreWebView2Frame3,
20033    windows_core::IUnknown,
20034    ICoreWebView2Frame,
20035    ICoreWebView2Frame2
20036);
20037impl ICoreWebView2Frame3 {
20038    pub unsafe fn add_PermissionRequested<P0>(
20039        &self,
20040        eventhandler: P0,
20041        token: *mut i64,
20042    ) -> windows_core::Result<()>
20043    where
20044        P0: windows_core::Param<ICoreWebView2FramePermissionRequestedEventHandler>,
20045    {
20046        unsafe {
20047            (windows_core::Interface::vtable(self).add_PermissionRequested)(
20048                windows_core::Interface::as_raw(self),
20049                eventhandler.param().abi(),
20050                token as _,
20051            )
20052            .ok()
20053        }
20054    }
20055    pub unsafe fn remove_PermissionRequested(&self, token: i64) -> windows_core::Result<()> {
20056        unsafe {
20057            (windows_core::Interface::vtable(self).remove_PermissionRequested)(
20058                windows_core::Interface::as_raw(self),
20059                token,
20060            )
20061            .ok()
20062        }
20063    }
20064}
20065#[repr(C)]
20066#[doc(hidden)]
20067pub struct ICoreWebView2Frame3_Vtbl {
20068    pub base__: ICoreWebView2Frame2_Vtbl,
20069    pub add_PermissionRequested: unsafe extern "system" fn(
20070        *mut core::ffi::c_void,
20071        *mut core::ffi::c_void,
20072        *mut i64,
20073    ) -> windows_core::HRESULT,
20074    pub remove_PermissionRequested:
20075        unsafe extern "system" fn(*mut core::ffi::c_void, i64) -> windows_core::HRESULT,
20076}
20077pub trait ICoreWebView2Frame3_Impl: ICoreWebView2Frame2_Impl {
20078    fn add_PermissionRequested(
20079        &self,
20080        eventhandler: windows_core::Ref<ICoreWebView2FramePermissionRequestedEventHandler>,
20081        token: *mut i64,
20082    ) -> windows_core::Result<()>;
20083    fn remove_PermissionRequested(&self, token: i64) -> windows_core::Result<()>;
20084}
20085impl ICoreWebView2Frame3_Vtbl {
20086    pub const fn new<Identity: ICoreWebView2Frame3_Impl, const OFFSET: isize>() -> Self {
20087        unsafe extern "system" fn add_PermissionRequested<
20088            Identity: ICoreWebView2Frame3_Impl,
20089            const OFFSET: isize,
20090        >(
20091            this: *mut core::ffi::c_void,
20092            eventhandler: *mut core::ffi::c_void,
20093            token: *mut i64,
20094        ) -> windows_core::HRESULT {
20095            unsafe {
20096                let this: &Identity =
20097                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
20098                ICoreWebView2Frame3_Impl::add_PermissionRequested(
20099                    this,
20100                    core::mem::transmute_copy(&eventhandler),
20101                    core::mem::transmute_copy(&token),
20102                )
20103                .into()
20104            }
20105        }
20106        unsafe extern "system" fn remove_PermissionRequested<
20107            Identity: ICoreWebView2Frame3_Impl,
20108            const OFFSET: isize,
20109        >(
20110            this: *mut core::ffi::c_void,
20111            token: i64,
20112        ) -> windows_core::HRESULT {
20113            unsafe {
20114                let this: &Identity =
20115                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
20116                ICoreWebView2Frame3_Impl::remove_PermissionRequested(
20117                    this,
20118                    core::mem::transmute_copy(&token),
20119                )
20120                .into()
20121            }
20122        }
20123        Self {
20124            base__: ICoreWebView2Frame2_Vtbl::new::<Identity, OFFSET>(),
20125            add_PermissionRequested: add_PermissionRequested::<Identity, OFFSET>,
20126            remove_PermissionRequested: remove_PermissionRequested::<Identity, OFFSET>,
20127        }
20128    }
20129    pub fn matches(iid: &windows_core::GUID) -> bool {
20130        iid == &<ICoreWebView2Frame3 as windows_core::Interface>::IID
20131            || iid == &<ICoreWebView2Frame as windows_core::Interface>::IID
20132            || iid == &<ICoreWebView2Frame2 as windows_core::Interface>::IID
20133    }
20134}
20135impl windows_core::RuntimeName for ICoreWebView2Frame3 {}
20136windows_core::imp::define_interface!(
20137    ICoreWebView2Frame4,
20138    ICoreWebView2Frame4_Vtbl,
20139    0x188782dc_92aa_4732_ab3c_fcc59f6f68b9
20140);
20141impl core::ops::Deref for ICoreWebView2Frame4 {
20142    type Target = ICoreWebView2Frame3;
20143    fn deref(&self) -> &Self::Target {
20144        unsafe { core::mem::transmute(self) }
20145    }
20146}
20147windows_core::imp::interface_hierarchy!(
20148    ICoreWebView2Frame4,
20149    windows_core::IUnknown,
20150    ICoreWebView2Frame,
20151    ICoreWebView2Frame2,
20152    ICoreWebView2Frame3
20153);
20154impl ICoreWebView2Frame4 {
20155    pub unsafe fn PostSharedBufferToScript<P0, P2>(
20156        &self,
20157        sharedbuffer: P0,
20158        access: COREWEBVIEW2_SHARED_BUFFER_ACCESS,
20159        additionaldataasjson: P2,
20160    ) -> windows_core::Result<()>
20161    where
20162        P0: windows_core::Param<ICoreWebView2SharedBuffer>,
20163        P2: windows_core::Param<windows_core::PCWSTR>,
20164    {
20165        unsafe {
20166            (windows_core::Interface::vtable(self).PostSharedBufferToScript)(
20167                windows_core::Interface::as_raw(self),
20168                sharedbuffer.param().abi(),
20169                access,
20170                additionaldataasjson.param().abi(),
20171            )
20172            .ok()
20173        }
20174    }
20175}
20176#[repr(C)]
20177#[doc(hidden)]
20178pub struct ICoreWebView2Frame4_Vtbl {
20179    pub base__: ICoreWebView2Frame3_Vtbl,
20180    pub PostSharedBufferToScript: unsafe extern "system" fn(
20181        *mut core::ffi::c_void,
20182        *mut core::ffi::c_void,
20183        COREWEBVIEW2_SHARED_BUFFER_ACCESS,
20184        windows_core::PCWSTR,
20185    ) -> windows_core::HRESULT,
20186}
20187pub trait ICoreWebView2Frame4_Impl: ICoreWebView2Frame3_Impl {
20188    fn PostSharedBufferToScript(
20189        &self,
20190        sharedbuffer: windows_core::Ref<ICoreWebView2SharedBuffer>,
20191        access: COREWEBVIEW2_SHARED_BUFFER_ACCESS,
20192        additionaldataasjson: &windows_core::PCWSTR,
20193    ) -> windows_core::Result<()>;
20194}
20195impl ICoreWebView2Frame4_Vtbl {
20196    pub const fn new<Identity: ICoreWebView2Frame4_Impl, const OFFSET: isize>() -> Self {
20197        unsafe extern "system" fn PostSharedBufferToScript<
20198            Identity: ICoreWebView2Frame4_Impl,
20199            const OFFSET: isize,
20200        >(
20201            this: *mut core::ffi::c_void,
20202            sharedbuffer: *mut core::ffi::c_void,
20203            access: COREWEBVIEW2_SHARED_BUFFER_ACCESS,
20204            additionaldataasjson: windows_core::PCWSTR,
20205        ) -> windows_core::HRESULT {
20206            unsafe {
20207                let this: &Identity =
20208                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
20209                ICoreWebView2Frame4_Impl::PostSharedBufferToScript(
20210                    this,
20211                    core::mem::transmute_copy(&sharedbuffer),
20212                    core::mem::transmute_copy(&access),
20213                    core::mem::transmute(&additionaldataasjson),
20214                )
20215                .into()
20216            }
20217        }
20218        Self {
20219            base__: ICoreWebView2Frame3_Vtbl::new::<Identity, OFFSET>(),
20220            PostSharedBufferToScript: PostSharedBufferToScript::<Identity, OFFSET>,
20221        }
20222    }
20223    pub fn matches(iid: &windows_core::GUID) -> bool {
20224        iid == &<ICoreWebView2Frame4 as windows_core::Interface>::IID
20225            || iid == &<ICoreWebView2Frame as windows_core::Interface>::IID
20226            || iid == &<ICoreWebView2Frame2 as windows_core::Interface>::IID
20227            || iid == &<ICoreWebView2Frame3 as windows_core::Interface>::IID
20228    }
20229}
20230impl windows_core::RuntimeName for ICoreWebView2Frame4 {}
20231windows_core::imp::define_interface!(
20232    ICoreWebView2Frame5,
20233    ICoreWebView2Frame5_Vtbl,
20234    0x99d199c4_7305_11ee_b962_0242ac120002
20235);
20236impl core::ops::Deref for ICoreWebView2Frame5 {
20237    type Target = ICoreWebView2Frame4;
20238    fn deref(&self) -> &Self::Target {
20239        unsafe { core::mem::transmute(self) }
20240    }
20241}
20242windows_core::imp::interface_hierarchy!(
20243    ICoreWebView2Frame5,
20244    windows_core::IUnknown,
20245    ICoreWebView2Frame,
20246    ICoreWebView2Frame2,
20247    ICoreWebView2Frame3,
20248    ICoreWebView2Frame4
20249);
20250impl ICoreWebView2Frame5 {
20251    pub unsafe fn FrameId(&self, value: *mut u32) -> windows_core::Result<()> {
20252        unsafe {
20253            (windows_core::Interface::vtable(self).FrameId)(
20254                windows_core::Interface::as_raw(self),
20255                value as _,
20256            )
20257            .ok()
20258        }
20259    }
20260}
20261#[repr(C)]
20262#[doc(hidden)]
20263pub struct ICoreWebView2Frame5_Vtbl {
20264    pub base__: ICoreWebView2Frame4_Vtbl,
20265    pub FrameId:
20266        unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
20267}
20268pub trait ICoreWebView2Frame5_Impl: ICoreWebView2Frame4_Impl {
20269    fn FrameId(&self, value: *mut u32) -> windows_core::Result<()>;
20270}
20271impl ICoreWebView2Frame5_Vtbl {
20272    pub const fn new<Identity: ICoreWebView2Frame5_Impl, const OFFSET: isize>() -> Self {
20273        unsafe extern "system" fn FrameId<
20274            Identity: ICoreWebView2Frame5_Impl,
20275            const OFFSET: isize,
20276        >(
20277            this: *mut core::ffi::c_void,
20278            value: *mut u32,
20279        ) -> windows_core::HRESULT {
20280            unsafe {
20281                let this: &Identity =
20282                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
20283                ICoreWebView2Frame5_Impl::FrameId(this, core::mem::transmute_copy(&value)).into()
20284            }
20285        }
20286        Self {
20287            base__: ICoreWebView2Frame4_Vtbl::new::<Identity, OFFSET>(),
20288            FrameId: FrameId::<Identity, OFFSET>,
20289        }
20290    }
20291    pub fn matches(iid: &windows_core::GUID) -> bool {
20292        iid == &<ICoreWebView2Frame5 as windows_core::Interface>::IID
20293            || iid == &<ICoreWebView2Frame as windows_core::Interface>::IID
20294            || iid == &<ICoreWebView2Frame2 as windows_core::Interface>::IID
20295            || iid == &<ICoreWebView2Frame3 as windows_core::Interface>::IID
20296            || iid == &<ICoreWebView2Frame4 as windows_core::Interface>::IID
20297    }
20298}
20299impl windows_core::RuntimeName for ICoreWebView2Frame5 {}
20300windows_core::imp::define_interface!(
20301    ICoreWebView2Frame6,
20302    ICoreWebView2Frame6_Vtbl,
20303    0x0de611fd_31e9_5ddc_9d71_95eda26eff32
20304);
20305impl core::ops::Deref for ICoreWebView2Frame6 {
20306    type Target = ICoreWebView2Frame5;
20307    fn deref(&self) -> &Self::Target {
20308        unsafe { core::mem::transmute(self) }
20309    }
20310}
20311windows_core::imp::interface_hierarchy!(
20312    ICoreWebView2Frame6,
20313    windows_core::IUnknown,
20314    ICoreWebView2Frame,
20315    ICoreWebView2Frame2,
20316    ICoreWebView2Frame3,
20317    ICoreWebView2Frame4,
20318    ICoreWebView2Frame5
20319);
20320impl ICoreWebView2Frame6 {
20321    pub unsafe fn add_ScreenCaptureStarting<P0>(
20322        &self,
20323        eventhandler: P0,
20324        token: *mut i64,
20325    ) -> windows_core::Result<()>
20326    where
20327        P0: windows_core::Param<ICoreWebView2FrameScreenCaptureStartingEventHandler>,
20328    {
20329        unsafe {
20330            (windows_core::Interface::vtable(self).add_ScreenCaptureStarting)(
20331                windows_core::Interface::as_raw(self),
20332                eventhandler.param().abi(),
20333                token as _,
20334            )
20335            .ok()
20336        }
20337    }
20338    pub unsafe fn remove_ScreenCaptureStarting(&self, token: i64) -> windows_core::Result<()> {
20339        unsafe {
20340            (windows_core::Interface::vtable(self).remove_ScreenCaptureStarting)(
20341                windows_core::Interface::as_raw(self),
20342                token,
20343            )
20344            .ok()
20345        }
20346    }
20347}
20348#[repr(C)]
20349#[doc(hidden)]
20350pub struct ICoreWebView2Frame6_Vtbl {
20351    pub base__: ICoreWebView2Frame5_Vtbl,
20352    pub add_ScreenCaptureStarting: unsafe extern "system" fn(
20353        *mut core::ffi::c_void,
20354        *mut core::ffi::c_void,
20355        *mut i64,
20356    ) -> windows_core::HRESULT,
20357    pub remove_ScreenCaptureStarting:
20358        unsafe extern "system" fn(*mut core::ffi::c_void, i64) -> windows_core::HRESULT,
20359}
20360pub trait ICoreWebView2Frame6_Impl: ICoreWebView2Frame5_Impl {
20361    fn add_ScreenCaptureStarting(
20362        &self,
20363        eventhandler: windows_core::Ref<ICoreWebView2FrameScreenCaptureStartingEventHandler>,
20364        token: *mut i64,
20365    ) -> windows_core::Result<()>;
20366    fn remove_ScreenCaptureStarting(&self, token: i64) -> windows_core::Result<()>;
20367}
20368impl ICoreWebView2Frame6_Vtbl {
20369    pub const fn new<Identity: ICoreWebView2Frame6_Impl, const OFFSET: isize>() -> Self {
20370        unsafe extern "system" fn add_ScreenCaptureStarting<
20371            Identity: ICoreWebView2Frame6_Impl,
20372            const OFFSET: isize,
20373        >(
20374            this: *mut core::ffi::c_void,
20375            eventhandler: *mut core::ffi::c_void,
20376            token: *mut i64,
20377        ) -> windows_core::HRESULT {
20378            unsafe {
20379                let this: &Identity =
20380                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
20381                ICoreWebView2Frame6_Impl::add_ScreenCaptureStarting(
20382                    this,
20383                    core::mem::transmute_copy(&eventhandler),
20384                    core::mem::transmute_copy(&token),
20385                )
20386                .into()
20387            }
20388        }
20389        unsafe extern "system" fn remove_ScreenCaptureStarting<
20390            Identity: ICoreWebView2Frame6_Impl,
20391            const OFFSET: isize,
20392        >(
20393            this: *mut core::ffi::c_void,
20394            token: i64,
20395        ) -> windows_core::HRESULT {
20396            unsafe {
20397                let this: &Identity =
20398                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
20399                ICoreWebView2Frame6_Impl::remove_ScreenCaptureStarting(
20400                    this,
20401                    core::mem::transmute_copy(&token),
20402                )
20403                .into()
20404            }
20405        }
20406        Self {
20407            base__: ICoreWebView2Frame5_Vtbl::new::<Identity, OFFSET>(),
20408            add_ScreenCaptureStarting: add_ScreenCaptureStarting::<Identity, OFFSET>,
20409            remove_ScreenCaptureStarting: remove_ScreenCaptureStarting::<Identity, OFFSET>,
20410        }
20411    }
20412    pub fn matches(iid: &windows_core::GUID) -> bool {
20413        iid == &<ICoreWebView2Frame6 as windows_core::Interface>::IID
20414            || iid == &<ICoreWebView2Frame as windows_core::Interface>::IID
20415            || iid == &<ICoreWebView2Frame2 as windows_core::Interface>::IID
20416            || iid == &<ICoreWebView2Frame3 as windows_core::Interface>::IID
20417            || iid == &<ICoreWebView2Frame4 as windows_core::Interface>::IID
20418            || iid == &<ICoreWebView2Frame5 as windows_core::Interface>::IID
20419    }
20420}
20421impl windows_core::RuntimeName for ICoreWebView2Frame6 {}
20422windows_core::imp::define_interface!(
20423    ICoreWebView2Frame7,
20424    ICoreWebView2Frame7_Vtbl,
20425    0x3598cfa2_d85d_5a9f_9228_4dde1f59ec64
20426);
20427impl core::ops::Deref for ICoreWebView2Frame7 {
20428    type Target = ICoreWebView2Frame6;
20429    fn deref(&self) -> &Self::Target {
20430        unsafe { core::mem::transmute(self) }
20431    }
20432}
20433windows_core::imp::interface_hierarchy!(
20434    ICoreWebView2Frame7,
20435    windows_core::IUnknown,
20436    ICoreWebView2Frame,
20437    ICoreWebView2Frame2,
20438    ICoreWebView2Frame3,
20439    ICoreWebView2Frame4,
20440    ICoreWebView2Frame5,
20441    ICoreWebView2Frame6
20442);
20443impl ICoreWebView2Frame7 {
20444    pub unsafe fn add_FrameCreated<P0>(
20445        &self,
20446        eventhandler: P0,
20447        token: *mut i64,
20448    ) -> windows_core::Result<()>
20449    where
20450        P0: windows_core::Param<ICoreWebView2FrameChildFrameCreatedEventHandler>,
20451    {
20452        unsafe {
20453            (windows_core::Interface::vtable(self).add_FrameCreated)(
20454                windows_core::Interface::as_raw(self),
20455                eventhandler.param().abi(),
20456                token as _,
20457            )
20458            .ok()
20459        }
20460    }
20461    pub unsafe fn remove_FrameCreated(&self, token: i64) -> windows_core::Result<()> {
20462        unsafe {
20463            (windows_core::Interface::vtable(self).remove_FrameCreated)(
20464                windows_core::Interface::as_raw(self),
20465                token,
20466            )
20467            .ok()
20468        }
20469    }
20470}
20471#[repr(C)]
20472#[doc(hidden)]
20473pub struct ICoreWebView2Frame7_Vtbl {
20474    pub base__: ICoreWebView2Frame6_Vtbl,
20475    pub add_FrameCreated: unsafe extern "system" fn(
20476        *mut core::ffi::c_void,
20477        *mut core::ffi::c_void,
20478        *mut i64,
20479    ) -> windows_core::HRESULT,
20480    pub remove_FrameCreated:
20481        unsafe extern "system" fn(*mut core::ffi::c_void, i64) -> windows_core::HRESULT,
20482}
20483pub trait ICoreWebView2Frame7_Impl: ICoreWebView2Frame6_Impl {
20484    fn add_FrameCreated(
20485        &self,
20486        eventhandler: windows_core::Ref<ICoreWebView2FrameChildFrameCreatedEventHandler>,
20487        token: *mut i64,
20488    ) -> windows_core::Result<()>;
20489    fn remove_FrameCreated(&self, token: i64) -> windows_core::Result<()>;
20490}
20491impl ICoreWebView2Frame7_Vtbl {
20492    pub const fn new<Identity: ICoreWebView2Frame7_Impl, const OFFSET: isize>() -> Self {
20493        unsafe extern "system" fn add_FrameCreated<
20494            Identity: ICoreWebView2Frame7_Impl,
20495            const OFFSET: isize,
20496        >(
20497            this: *mut core::ffi::c_void,
20498            eventhandler: *mut core::ffi::c_void,
20499            token: *mut i64,
20500        ) -> windows_core::HRESULT {
20501            unsafe {
20502                let this: &Identity =
20503                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
20504                ICoreWebView2Frame7_Impl::add_FrameCreated(
20505                    this,
20506                    core::mem::transmute_copy(&eventhandler),
20507                    core::mem::transmute_copy(&token),
20508                )
20509                .into()
20510            }
20511        }
20512        unsafe extern "system" fn remove_FrameCreated<
20513            Identity: ICoreWebView2Frame7_Impl,
20514            const OFFSET: isize,
20515        >(
20516            this: *mut core::ffi::c_void,
20517            token: i64,
20518        ) -> windows_core::HRESULT {
20519            unsafe {
20520                let this: &Identity =
20521                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
20522                ICoreWebView2Frame7_Impl::remove_FrameCreated(
20523                    this,
20524                    core::mem::transmute_copy(&token),
20525                )
20526                .into()
20527            }
20528        }
20529        Self {
20530            base__: ICoreWebView2Frame6_Vtbl::new::<Identity, OFFSET>(),
20531            add_FrameCreated: add_FrameCreated::<Identity, OFFSET>,
20532            remove_FrameCreated: remove_FrameCreated::<Identity, OFFSET>,
20533        }
20534    }
20535    pub fn matches(iid: &windows_core::GUID) -> bool {
20536        iid == &<ICoreWebView2Frame7 as windows_core::Interface>::IID
20537            || iid == &<ICoreWebView2Frame as windows_core::Interface>::IID
20538            || iid == &<ICoreWebView2Frame2 as windows_core::Interface>::IID
20539            || iid == &<ICoreWebView2Frame3 as windows_core::Interface>::IID
20540            || iid == &<ICoreWebView2Frame4 as windows_core::Interface>::IID
20541            || iid == &<ICoreWebView2Frame5 as windows_core::Interface>::IID
20542            || iid == &<ICoreWebView2Frame6 as windows_core::Interface>::IID
20543    }
20544}
20545impl windows_core::RuntimeName for ICoreWebView2Frame7 {}
20546windows_core::imp::define_interface!(
20547    ICoreWebView2FrameChildFrameCreatedEventHandler,
20548    ICoreWebView2FrameChildFrameCreatedEventHandler_Vtbl,
20549    0x569e40e7_46b7_563d_83ae_1073155664d7
20550);
20551windows_core::imp::interface_hierarchy!(
20552    ICoreWebView2FrameChildFrameCreatedEventHandler,
20553    windows_core::IUnknown
20554);
20555impl ICoreWebView2FrameChildFrameCreatedEventHandler {
20556    pub unsafe fn Invoke<P0, P1>(&self, sender: P0, args: P1) -> windows_core::Result<()>
20557    where
20558        P0: windows_core::Param<ICoreWebView2Frame>,
20559        P1: windows_core::Param<ICoreWebView2FrameCreatedEventArgs>,
20560    {
20561        unsafe {
20562            (windows_core::Interface::vtable(self).Invoke)(
20563                windows_core::Interface::as_raw(self),
20564                sender.param().abi(),
20565                args.param().abi(),
20566            )
20567            .ok()
20568        }
20569    }
20570}
20571#[repr(C)]
20572#[doc(hidden)]
20573pub struct ICoreWebView2FrameChildFrameCreatedEventHandler_Vtbl {
20574    pub base__: windows_core::IUnknown_Vtbl,
20575    pub Invoke: unsafe extern "system" fn(
20576        *mut core::ffi::c_void,
20577        *mut core::ffi::c_void,
20578        *mut core::ffi::c_void,
20579    ) -> windows_core::HRESULT,
20580}
20581pub trait ICoreWebView2FrameChildFrameCreatedEventHandler_Impl: windows_core::IUnknownImpl {
20582    fn Invoke(
20583        &self,
20584        sender: windows_core::Ref<ICoreWebView2Frame>,
20585        args: windows_core::Ref<ICoreWebView2FrameCreatedEventArgs>,
20586    ) -> windows_core::Result<()>;
20587}
20588impl ICoreWebView2FrameChildFrameCreatedEventHandler_Vtbl {
20589    pub const fn new<
20590        Identity: ICoreWebView2FrameChildFrameCreatedEventHandler_Impl,
20591        const OFFSET: isize,
20592    >() -> Self {
20593        unsafe extern "system" fn Invoke<
20594            Identity: ICoreWebView2FrameChildFrameCreatedEventHandler_Impl,
20595            const OFFSET: isize,
20596        >(
20597            this: *mut core::ffi::c_void,
20598            sender: *mut core::ffi::c_void,
20599            args: *mut core::ffi::c_void,
20600        ) -> windows_core::HRESULT {
20601            unsafe {
20602                let this: &Identity =
20603                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
20604                ICoreWebView2FrameChildFrameCreatedEventHandler_Impl::Invoke(
20605                    this,
20606                    core::mem::transmute_copy(&sender),
20607                    core::mem::transmute_copy(&args),
20608                )
20609                .into()
20610            }
20611        }
20612        Self {
20613            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
20614            Invoke: Invoke::<Identity, OFFSET>,
20615        }
20616    }
20617    pub fn matches(iid: &windows_core::GUID) -> bool {
20618        iid == &<ICoreWebView2FrameChildFrameCreatedEventHandler as windows_core::Interface>::IID
20619    }
20620}
20621impl windows_core::RuntimeName for ICoreWebView2FrameChildFrameCreatedEventHandler {}
20622windows_core::imp::define_interface!(
20623    ICoreWebView2FrameContentLoadingEventHandler,
20624    ICoreWebView2FrameContentLoadingEventHandler_Vtbl,
20625    0x0d6156f2_d332_49a7_9e03_7d8f2feeee54
20626);
20627windows_core::imp::interface_hierarchy!(
20628    ICoreWebView2FrameContentLoadingEventHandler,
20629    windows_core::IUnknown
20630);
20631impl ICoreWebView2FrameContentLoadingEventHandler {
20632    pub unsafe fn Invoke<P0, P1>(&self, sender: P0, args: P1) -> windows_core::Result<()>
20633    where
20634        P0: windows_core::Param<ICoreWebView2Frame>,
20635        P1: windows_core::Param<ICoreWebView2ContentLoadingEventArgs>,
20636    {
20637        unsafe {
20638            (windows_core::Interface::vtable(self).Invoke)(
20639                windows_core::Interface::as_raw(self),
20640                sender.param().abi(),
20641                args.param().abi(),
20642            )
20643            .ok()
20644        }
20645    }
20646}
20647#[repr(C)]
20648#[doc(hidden)]
20649pub struct ICoreWebView2FrameContentLoadingEventHandler_Vtbl {
20650    pub base__: windows_core::IUnknown_Vtbl,
20651    pub Invoke: unsafe extern "system" fn(
20652        *mut core::ffi::c_void,
20653        *mut core::ffi::c_void,
20654        *mut core::ffi::c_void,
20655    ) -> windows_core::HRESULT,
20656}
20657pub trait ICoreWebView2FrameContentLoadingEventHandler_Impl: windows_core::IUnknownImpl {
20658    fn Invoke(
20659        &self,
20660        sender: windows_core::Ref<ICoreWebView2Frame>,
20661        args: windows_core::Ref<ICoreWebView2ContentLoadingEventArgs>,
20662    ) -> windows_core::Result<()>;
20663}
20664impl ICoreWebView2FrameContentLoadingEventHandler_Vtbl {
20665    pub const fn new<
20666        Identity: ICoreWebView2FrameContentLoadingEventHandler_Impl,
20667        const OFFSET: isize,
20668    >() -> Self {
20669        unsafe extern "system" fn Invoke<
20670            Identity: ICoreWebView2FrameContentLoadingEventHandler_Impl,
20671            const OFFSET: isize,
20672        >(
20673            this: *mut core::ffi::c_void,
20674            sender: *mut core::ffi::c_void,
20675            args: *mut core::ffi::c_void,
20676        ) -> windows_core::HRESULT {
20677            unsafe {
20678                let this: &Identity =
20679                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
20680                ICoreWebView2FrameContentLoadingEventHandler_Impl::Invoke(
20681                    this,
20682                    core::mem::transmute_copy(&sender),
20683                    core::mem::transmute_copy(&args),
20684                )
20685                .into()
20686            }
20687        }
20688        Self {
20689            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
20690            Invoke: Invoke::<Identity, OFFSET>,
20691        }
20692    }
20693    pub fn matches(iid: &windows_core::GUID) -> bool {
20694        iid == &<ICoreWebView2FrameContentLoadingEventHandler as windows_core::Interface>::IID
20695    }
20696}
20697impl windows_core::RuntimeName for ICoreWebView2FrameContentLoadingEventHandler {}
20698windows_core::imp::define_interface!(
20699    ICoreWebView2FrameCreatedEventArgs,
20700    ICoreWebView2FrameCreatedEventArgs_Vtbl,
20701    0x4d6e7b5e_9baa_11eb_a8b3_0242ac130003
20702);
20703windows_core::imp::interface_hierarchy!(ICoreWebView2FrameCreatedEventArgs, windows_core::IUnknown);
20704impl ICoreWebView2FrameCreatedEventArgs {
20705    pub unsafe fn Frame(&self) -> windows_core::Result<ICoreWebView2Frame> {
20706        unsafe {
20707            let mut result__ = core::mem::zeroed();
20708            (windows_core::Interface::vtable(self).Frame)(
20709                windows_core::Interface::as_raw(self),
20710                &mut result__,
20711            )
20712            .and_then(|| windows_core::Type::from_abi(result__))
20713        }
20714    }
20715}
20716#[repr(C)]
20717#[doc(hidden)]
20718pub struct ICoreWebView2FrameCreatedEventArgs_Vtbl {
20719    pub base__: windows_core::IUnknown_Vtbl,
20720    pub Frame: unsafe extern "system" fn(
20721        *mut core::ffi::c_void,
20722        *mut *mut core::ffi::c_void,
20723    ) -> windows_core::HRESULT,
20724}
20725pub trait ICoreWebView2FrameCreatedEventArgs_Impl: windows_core::IUnknownImpl {
20726    fn Frame(&self) -> windows_core::Result<ICoreWebView2Frame>;
20727}
20728impl ICoreWebView2FrameCreatedEventArgs_Vtbl {
20729    pub const fn new<Identity: ICoreWebView2FrameCreatedEventArgs_Impl, const OFFSET: isize>(
20730    ) -> Self {
20731        unsafe extern "system" fn Frame<
20732            Identity: ICoreWebView2FrameCreatedEventArgs_Impl,
20733            const OFFSET: isize,
20734        >(
20735            this: *mut core::ffi::c_void,
20736            value: *mut *mut core::ffi::c_void,
20737        ) -> windows_core::HRESULT {
20738            unsafe {
20739                let this: &Identity =
20740                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
20741                match ICoreWebView2FrameCreatedEventArgs_Impl::Frame(this) {
20742                    Ok(ok__) => {
20743                        value.write(core::mem::transmute(ok__));
20744                        windows_core::HRESULT(0)
20745                    }
20746                    Err(err) => err.into(),
20747                }
20748            }
20749        }
20750        Self {
20751            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
20752            Frame: Frame::<Identity, OFFSET>,
20753        }
20754    }
20755    pub fn matches(iid: &windows_core::GUID) -> bool {
20756        iid == &<ICoreWebView2FrameCreatedEventArgs as windows_core::Interface>::IID
20757    }
20758}
20759impl windows_core::RuntimeName for ICoreWebView2FrameCreatedEventArgs {}
20760windows_core::imp::define_interface!(
20761    ICoreWebView2FrameCreatedEventHandler,
20762    ICoreWebView2FrameCreatedEventHandler_Vtbl,
20763    0x38059770_9baa_11eb_a8b3_0242ac130003
20764);
20765windows_core::imp::interface_hierarchy!(
20766    ICoreWebView2FrameCreatedEventHandler,
20767    windows_core::IUnknown
20768);
20769impl ICoreWebView2FrameCreatedEventHandler {
20770    pub unsafe fn Invoke<P0, P1>(&self, sender: P0, args: P1) -> windows_core::Result<()>
20771    where
20772        P0: windows_core::Param<ICoreWebView2>,
20773        P1: windows_core::Param<ICoreWebView2FrameCreatedEventArgs>,
20774    {
20775        unsafe {
20776            (windows_core::Interface::vtable(self).Invoke)(
20777                windows_core::Interface::as_raw(self),
20778                sender.param().abi(),
20779                args.param().abi(),
20780            )
20781            .ok()
20782        }
20783    }
20784}
20785#[repr(C)]
20786#[doc(hidden)]
20787pub struct ICoreWebView2FrameCreatedEventHandler_Vtbl {
20788    pub base__: windows_core::IUnknown_Vtbl,
20789    pub Invoke: unsafe extern "system" fn(
20790        *mut core::ffi::c_void,
20791        *mut core::ffi::c_void,
20792        *mut core::ffi::c_void,
20793    ) -> windows_core::HRESULT,
20794}
20795pub trait ICoreWebView2FrameCreatedEventHandler_Impl: windows_core::IUnknownImpl {
20796    fn Invoke(
20797        &self,
20798        sender: windows_core::Ref<ICoreWebView2>,
20799        args: windows_core::Ref<ICoreWebView2FrameCreatedEventArgs>,
20800    ) -> windows_core::Result<()>;
20801}
20802impl ICoreWebView2FrameCreatedEventHandler_Vtbl {
20803    pub const fn new<Identity: ICoreWebView2FrameCreatedEventHandler_Impl, const OFFSET: isize>(
20804    ) -> Self {
20805        unsafe extern "system" fn Invoke<
20806            Identity: ICoreWebView2FrameCreatedEventHandler_Impl,
20807            const OFFSET: isize,
20808        >(
20809            this: *mut core::ffi::c_void,
20810            sender: *mut core::ffi::c_void,
20811            args: *mut core::ffi::c_void,
20812        ) -> windows_core::HRESULT {
20813            unsafe {
20814                let this: &Identity =
20815                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
20816                ICoreWebView2FrameCreatedEventHandler_Impl::Invoke(
20817                    this,
20818                    core::mem::transmute_copy(&sender),
20819                    core::mem::transmute_copy(&args),
20820                )
20821                .into()
20822            }
20823        }
20824        Self {
20825            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
20826            Invoke: Invoke::<Identity, OFFSET>,
20827        }
20828    }
20829    pub fn matches(iid: &windows_core::GUID) -> bool {
20830        iid == &<ICoreWebView2FrameCreatedEventHandler as windows_core::Interface>::IID
20831    }
20832}
20833impl windows_core::RuntimeName for ICoreWebView2FrameCreatedEventHandler {}
20834windows_core::imp::define_interface!(
20835    ICoreWebView2FrameDOMContentLoadedEventHandler,
20836    ICoreWebView2FrameDOMContentLoadedEventHandler_Vtbl,
20837    0x38d9520d_340f_4d1e_a775_43fce9753683
20838);
20839windows_core::imp::interface_hierarchy!(
20840    ICoreWebView2FrameDOMContentLoadedEventHandler,
20841    windows_core::IUnknown
20842);
20843impl ICoreWebView2FrameDOMContentLoadedEventHandler {
20844    pub unsafe fn Invoke<P0, P1>(&self, sender: P0, args: P1) -> windows_core::Result<()>
20845    where
20846        P0: windows_core::Param<ICoreWebView2Frame>,
20847        P1: windows_core::Param<ICoreWebView2DOMContentLoadedEventArgs>,
20848    {
20849        unsafe {
20850            (windows_core::Interface::vtable(self).Invoke)(
20851                windows_core::Interface::as_raw(self),
20852                sender.param().abi(),
20853                args.param().abi(),
20854            )
20855            .ok()
20856        }
20857    }
20858}
20859#[repr(C)]
20860#[doc(hidden)]
20861pub struct ICoreWebView2FrameDOMContentLoadedEventHandler_Vtbl {
20862    pub base__: windows_core::IUnknown_Vtbl,
20863    pub Invoke: unsafe extern "system" fn(
20864        *mut core::ffi::c_void,
20865        *mut core::ffi::c_void,
20866        *mut core::ffi::c_void,
20867    ) -> windows_core::HRESULT,
20868}
20869pub trait ICoreWebView2FrameDOMContentLoadedEventHandler_Impl: windows_core::IUnknownImpl {
20870    fn Invoke(
20871        &self,
20872        sender: windows_core::Ref<ICoreWebView2Frame>,
20873        args: windows_core::Ref<ICoreWebView2DOMContentLoadedEventArgs>,
20874    ) -> windows_core::Result<()>;
20875}
20876impl ICoreWebView2FrameDOMContentLoadedEventHandler_Vtbl {
20877    pub const fn new<
20878        Identity: ICoreWebView2FrameDOMContentLoadedEventHandler_Impl,
20879        const OFFSET: isize,
20880    >() -> Self {
20881        unsafe extern "system" fn Invoke<
20882            Identity: ICoreWebView2FrameDOMContentLoadedEventHandler_Impl,
20883            const OFFSET: isize,
20884        >(
20885            this: *mut core::ffi::c_void,
20886            sender: *mut core::ffi::c_void,
20887            args: *mut core::ffi::c_void,
20888        ) -> windows_core::HRESULT {
20889            unsafe {
20890                let this: &Identity =
20891                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
20892                ICoreWebView2FrameDOMContentLoadedEventHandler_Impl::Invoke(
20893                    this,
20894                    core::mem::transmute_copy(&sender),
20895                    core::mem::transmute_copy(&args),
20896                )
20897                .into()
20898            }
20899        }
20900        Self {
20901            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
20902            Invoke: Invoke::<Identity, OFFSET>,
20903        }
20904    }
20905    pub fn matches(iid: &windows_core::GUID) -> bool {
20906        iid == &<ICoreWebView2FrameDOMContentLoadedEventHandler as windows_core::Interface>::IID
20907    }
20908}
20909impl windows_core::RuntimeName for ICoreWebView2FrameDOMContentLoadedEventHandler {}
20910windows_core::imp::define_interface!(
20911    ICoreWebView2FrameDestroyedEventHandler,
20912    ICoreWebView2FrameDestroyedEventHandler_Vtbl,
20913    0x59dd7b4c_9baa_11eb_a8b3_0242ac130003
20914);
20915windows_core::imp::interface_hierarchy!(
20916    ICoreWebView2FrameDestroyedEventHandler,
20917    windows_core::IUnknown
20918);
20919impl ICoreWebView2FrameDestroyedEventHandler {
20920    pub unsafe fn Invoke<P0, P1>(&self, sender: P0, args: P1) -> windows_core::Result<()>
20921    where
20922        P0: windows_core::Param<ICoreWebView2Frame>,
20923        P1: windows_core::Param<windows_core::IUnknown>,
20924    {
20925        unsafe {
20926            (windows_core::Interface::vtable(self).Invoke)(
20927                windows_core::Interface::as_raw(self),
20928                sender.param().abi(),
20929                args.param().abi(),
20930            )
20931            .ok()
20932        }
20933    }
20934}
20935#[repr(C)]
20936#[doc(hidden)]
20937pub struct ICoreWebView2FrameDestroyedEventHandler_Vtbl {
20938    pub base__: windows_core::IUnknown_Vtbl,
20939    pub Invoke: unsafe extern "system" fn(
20940        *mut core::ffi::c_void,
20941        *mut core::ffi::c_void,
20942        *mut core::ffi::c_void,
20943    ) -> windows_core::HRESULT,
20944}
20945pub trait ICoreWebView2FrameDestroyedEventHandler_Impl: windows_core::IUnknownImpl {
20946    fn Invoke(
20947        &self,
20948        sender: windows_core::Ref<ICoreWebView2Frame>,
20949        args: windows_core::Ref<windows_core::IUnknown>,
20950    ) -> windows_core::Result<()>;
20951}
20952impl ICoreWebView2FrameDestroyedEventHandler_Vtbl {
20953    pub const fn new<
20954        Identity: ICoreWebView2FrameDestroyedEventHandler_Impl,
20955        const OFFSET: isize,
20956    >() -> Self {
20957        unsafe extern "system" fn Invoke<
20958            Identity: ICoreWebView2FrameDestroyedEventHandler_Impl,
20959            const OFFSET: isize,
20960        >(
20961            this: *mut core::ffi::c_void,
20962            sender: *mut core::ffi::c_void,
20963            args: *mut core::ffi::c_void,
20964        ) -> windows_core::HRESULT {
20965            unsafe {
20966                let this: &Identity =
20967                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
20968                ICoreWebView2FrameDestroyedEventHandler_Impl::Invoke(
20969                    this,
20970                    core::mem::transmute_copy(&sender),
20971                    core::mem::transmute_copy(&args),
20972                )
20973                .into()
20974            }
20975        }
20976        Self {
20977            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
20978            Invoke: Invoke::<Identity, OFFSET>,
20979        }
20980    }
20981    pub fn matches(iid: &windows_core::GUID) -> bool {
20982        iid == &<ICoreWebView2FrameDestroyedEventHandler as windows_core::Interface>::IID
20983    }
20984}
20985impl windows_core::RuntimeName for ICoreWebView2FrameDestroyedEventHandler {}
20986windows_core::imp::define_interface!(
20987    ICoreWebView2FrameInfo,
20988    ICoreWebView2FrameInfo_Vtbl,
20989    0xda86b8a1_bdf3_4f11_9955_528cefa59727
20990);
20991windows_core::imp::interface_hierarchy!(ICoreWebView2FrameInfo, windows_core::IUnknown);
20992impl ICoreWebView2FrameInfo {
20993    pub unsafe fn Name(&self, value: *mut windows_core::PWSTR) -> windows_core::Result<()> {
20994        unsafe {
20995            (windows_core::Interface::vtable(self).Name)(
20996                windows_core::Interface::as_raw(self),
20997                value as _,
20998            )
20999            .ok()
21000        }
21001    }
21002    pub unsafe fn Source(&self, value: *mut windows_core::PWSTR) -> windows_core::Result<()> {
21003        unsafe {
21004            (windows_core::Interface::vtable(self).Source)(
21005                windows_core::Interface::as_raw(self),
21006                value as _,
21007            )
21008            .ok()
21009        }
21010    }
21011}
21012#[repr(C)]
21013#[doc(hidden)]
21014pub struct ICoreWebView2FrameInfo_Vtbl {
21015    pub base__: windows_core::IUnknown_Vtbl,
21016    pub Name: unsafe extern "system" fn(
21017        *mut core::ffi::c_void,
21018        *mut windows_core::PWSTR,
21019    ) -> windows_core::HRESULT,
21020    pub Source: unsafe extern "system" fn(
21021        *mut core::ffi::c_void,
21022        *mut windows_core::PWSTR,
21023    ) -> windows_core::HRESULT,
21024}
21025pub trait ICoreWebView2FrameInfo_Impl: windows_core::IUnknownImpl {
21026    fn Name(&self, value: *mut windows_core::PWSTR) -> windows_core::Result<()>;
21027    fn Source(&self, value: *mut windows_core::PWSTR) -> windows_core::Result<()>;
21028}
21029impl ICoreWebView2FrameInfo_Vtbl {
21030    pub const fn new<Identity: ICoreWebView2FrameInfo_Impl, const OFFSET: isize>() -> Self {
21031        unsafe extern "system" fn Name<
21032            Identity: ICoreWebView2FrameInfo_Impl,
21033            const OFFSET: isize,
21034        >(
21035            this: *mut core::ffi::c_void,
21036            value: *mut windows_core::PWSTR,
21037        ) -> windows_core::HRESULT {
21038            unsafe {
21039                let this: &Identity =
21040                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
21041                ICoreWebView2FrameInfo_Impl::Name(this, core::mem::transmute_copy(&value)).into()
21042            }
21043        }
21044        unsafe extern "system" fn Source<
21045            Identity: ICoreWebView2FrameInfo_Impl,
21046            const OFFSET: isize,
21047        >(
21048            this: *mut core::ffi::c_void,
21049            value: *mut windows_core::PWSTR,
21050        ) -> windows_core::HRESULT {
21051            unsafe {
21052                let this: &Identity =
21053                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
21054                ICoreWebView2FrameInfo_Impl::Source(this, core::mem::transmute_copy(&value)).into()
21055            }
21056        }
21057        Self {
21058            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
21059            Name: Name::<Identity, OFFSET>,
21060            Source: Source::<Identity, OFFSET>,
21061        }
21062    }
21063    pub fn matches(iid: &windows_core::GUID) -> bool {
21064        iid == &<ICoreWebView2FrameInfo as windows_core::Interface>::IID
21065    }
21066}
21067impl windows_core::RuntimeName for ICoreWebView2FrameInfo {}
21068windows_core::imp::define_interface!(
21069    ICoreWebView2FrameInfo2,
21070    ICoreWebView2FrameInfo2_Vtbl,
21071    0x56f85cfa_72c4_11ee_b962_0242ac120002
21072);
21073impl core::ops::Deref for ICoreWebView2FrameInfo2 {
21074    type Target = ICoreWebView2FrameInfo;
21075    fn deref(&self) -> &Self::Target {
21076        unsafe { core::mem::transmute(self) }
21077    }
21078}
21079windows_core::imp::interface_hierarchy!(
21080    ICoreWebView2FrameInfo2,
21081    windows_core::IUnknown,
21082    ICoreWebView2FrameInfo
21083);
21084impl ICoreWebView2FrameInfo2 {
21085    pub unsafe fn ParentFrameInfo(&self) -> windows_core::Result<ICoreWebView2FrameInfo> {
21086        unsafe {
21087            let mut result__ = core::mem::zeroed();
21088            (windows_core::Interface::vtable(self).ParentFrameInfo)(
21089                windows_core::Interface::as_raw(self),
21090                &mut result__,
21091            )
21092            .and_then(|| windows_core::Type::from_abi(result__))
21093        }
21094    }
21095    pub unsafe fn FrameId(&self, id: *mut u32) -> windows_core::Result<()> {
21096        unsafe {
21097            (windows_core::Interface::vtable(self).FrameId)(
21098                windows_core::Interface::as_raw(self),
21099                id as _,
21100            )
21101            .ok()
21102        }
21103    }
21104    pub unsafe fn FrameKind(&self, kind: *mut COREWEBVIEW2_FRAME_KIND) -> windows_core::Result<()> {
21105        unsafe {
21106            (windows_core::Interface::vtable(self).FrameKind)(
21107                windows_core::Interface::as_raw(self),
21108                kind as _,
21109            )
21110            .ok()
21111        }
21112    }
21113}
21114#[repr(C)]
21115#[doc(hidden)]
21116pub struct ICoreWebView2FrameInfo2_Vtbl {
21117    pub base__: ICoreWebView2FrameInfo_Vtbl,
21118    pub ParentFrameInfo: unsafe extern "system" fn(
21119        *mut core::ffi::c_void,
21120        *mut *mut core::ffi::c_void,
21121    ) -> windows_core::HRESULT,
21122    pub FrameId:
21123        unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
21124    pub FrameKind: unsafe extern "system" fn(
21125        *mut core::ffi::c_void,
21126        *mut COREWEBVIEW2_FRAME_KIND,
21127    ) -> windows_core::HRESULT,
21128}
21129pub trait ICoreWebView2FrameInfo2_Impl: ICoreWebView2FrameInfo_Impl {
21130    fn ParentFrameInfo(&self) -> windows_core::Result<ICoreWebView2FrameInfo>;
21131    fn FrameId(&self, id: *mut u32) -> windows_core::Result<()>;
21132    fn FrameKind(&self, kind: *mut COREWEBVIEW2_FRAME_KIND) -> windows_core::Result<()>;
21133}
21134impl ICoreWebView2FrameInfo2_Vtbl {
21135    pub const fn new<Identity: ICoreWebView2FrameInfo2_Impl, const OFFSET: isize>() -> Self {
21136        unsafe extern "system" fn ParentFrameInfo<
21137            Identity: ICoreWebView2FrameInfo2_Impl,
21138            const OFFSET: isize,
21139        >(
21140            this: *mut core::ffi::c_void,
21141            frameinfo: *mut *mut core::ffi::c_void,
21142        ) -> windows_core::HRESULT {
21143            unsafe {
21144                let this: &Identity =
21145                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
21146                match ICoreWebView2FrameInfo2_Impl::ParentFrameInfo(this) {
21147                    Ok(ok__) => {
21148                        frameinfo.write(core::mem::transmute(ok__));
21149                        windows_core::HRESULT(0)
21150                    }
21151                    Err(err) => err.into(),
21152                }
21153            }
21154        }
21155        unsafe extern "system" fn FrameId<
21156            Identity: ICoreWebView2FrameInfo2_Impl,
21157            const OFFSET: isize,
21158        >(
21159            this: *mut core::ffi::c_void,
21160            id: *mut u32,
21161        ) -> windows_core::HRESULT {
21162            unsafe {
21163                let this: &Identity =
21164                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
21165                ICoreWebView2FrameInfo2_Impl::FrameId(this, core::mem::transmute_copy(&id)).into()
21166            }
21167        }
21168        unsafe extern "system" fn FrameKind<
21169            Identity: ICoreWebView2FrameInfo2_Impl,
21170            const OFFSET: isize,
21171        >(
21172            this: *mut core::ffi::c_void,
21173            kind: *mut COREWEBVIEW2_FRAME_KIND,
21174        ) -> windows_core::HRESULT {
21175            unsafe {
21176                let this: &Identity =
21177                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
21178                ICoreWebView2FrameInfo2_Impl::FrameKind(this, core::mem::transmute_copy(&kind))
21179                    .into()
21180            }
21181        }
21182        Self {
21183            base__: ICoreWebView2FrameInfo_Vtbl::new::<Identity, OFFSET>(),
21184            ParentFrameInfo: ParentFrameInfo::<Identity, OFFSET>,
21185            FrameId: FrameId::<Identity, OFFSET>,
21186            FrameKind: FrameKind::<Identity, OFFSET>,
21187        }
21188    }
21189    pub fn matches(iid: &windows_core::GUID) -> bool {
21190        iid == &<ICoreWebView2FrameInfo2 as windows_core::Interface>::IID
21191            || iid == &<ICoreWebView2FrameInfo as windows_core::Interface>::IID
21192    }
21193}
21194impl windows_core::RuntimeName for ICoreWebView2FrameInfo2 {}
21195windows_core::imp::define_interface!(
21196    ICoreWebView2FrameInfoCollection,
21197    ICoreWebView2FrameInfoCollection_Vtbl,
21198    0x8f834154_d38e_4d90_affb_6800a7272839
21199);
21200windows_core::imp::interface_hierarchy!(ICoreWebView2FrameInfoCollection, windows_core::IUnknown);
21201impl ICoreWebView2FrameInfoCollection {
21202    pub unsafe fn GetIterator(
21203        &self,
21204    ) -> windows_core::Result<ICoreWebView2FrameInfoCollectionIterator> {
21205        unsafe {
21206            let mut result__ = core::mem::zeroed();
21207            (windows_core::Interface::vtable(self).GetIterator)(
21208                windows_core::Interface::as_raw(self),
21209                &mut result__,
21210            )
21211            .and_then(|| windows_core::Type::from_abi(result__))
21212        }
21213    }
21214}
21215#[repr(C)]
21216#[doc(hidden)]
21217pub struct ICoreWebView2FrameInfoCollection_Vtbl {
21218    pub base__: windows_core::IUnknown_Vtbl,
21219    pub GetIterator: unsafe extern "system" fn(
21220        *mut core::ffi::c_void,
21221        *mut *mut core::ffi::c_void,
21222    ) -> windows_core::HRESULT,
21223}
21224pub trait ICoreWebView2FrameInfoCollection_Impl: windows_core::IUnknownImpl {
21225    fn GetIterator(&self) -> windows_core::Result<ICoreWebView2FrameInfoCollectionIterator>;
21226}
21227impl ICoreWebView2FrameInfoCollection_Vtbl {
21228    pub const fn new<Identity: ICoreWebView2FrameInfoCollection_Impl, const OFFSET: isize>() -> Self
21229    {
21230        unsafe extern "system" fn GetIterator<
21231            Identity: ICoreWebView2FrameInfoCollection_Impl,
21232            const OFFSET: isize,
21233        >(
21234            this: *mut core::ffi::c_void,
21235            value: *mut *mut core::ffi::c_void,
21236        ) -> windows_core::HRESULT {
21237            unsafe {
21238                let this: &Identity =
21239                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
21240                match ICoreWebView2FrameInfoCollection_Impl::GetIterator(this) {
21241                    Ok(ok__) => {
21242                        value.write(core::mem::transmute(ok__));
21243                        windows_core::HRESULT(0)
21244                    }
21245                    Err(err) => err.into(),
21246                }
21247            }
21248        }
21249        Self {
21250            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
21251            GetIterator: GetIterator::<Identity, OFFSET>,
21252        }
21253    }
21254    pub fn matches(iid: &windows_core::GUID) -> bool {
21255        iid == &<ICoreWebView2FrameInfoCollection as windows_core::Interface>::IID
21256    }
21257}
21258impl windows_core::RuntimeName for ICoreWebView2FrameInfoCollection {}
21259windows_core::imp::define_interface!(
21260    ICoreWebView2FrameInfoCollectionIterator,
21261    ICoreWebView2FrameInfoCollectionIterator_Vtbl,
21262    0x1bf89e2d_1b2b_4629_b28f_05099b41bb03
21263);
21264windows_core::imp::interface_hierarchy!(
21265    ICoreWebView2FrameInfoCollectionIterator,
21266    windows_core::IUnknown
21267);
21268impl ICoreWebView2FrameInfoCollectionIterator {
21269    pub unsafe fn HasCurrent(&self, value: *mut windows_core::BOOL) -> windows_core::Result<()> {
21270        unsafe {
21271            (windows_core::Interface::vtable(self).HasCurrent)(
21272                windows_core::Interface::as_raw(self),
21273                value as _,
21274            )
21275            .ok()
21276        }
21277    }
21278    pub unsafe fn GetCurrent(&self) -> windows_core::Result<ICoreWebView2FrameInfo> {
21279        unsafe {
21280            let mut result__ = core::mem::zeroed();
21281            (windows_core::Interface::vtable(self).GetCurrent)(
21282                windows_core::Interface::as_raw(self),
21283                &mut result__,
21284            )
21285            .and_then(|| windows_core::Type::from_abi(result__))
21286        }
21287    }
21288    pub unsafe fn MoveNext(&self, value: *mut windows_core::BOOL) -> windows_core::Result<()> {
21289        unsafe {
21290            (windows_core::Interface::vtable(self).MoveNext)(
21291                windows_core::Interface::as_raw(self),
21292                value as _,
21293            )
21294            .ok()
21295        }
21296    }
21297}
21298#[repr(C)]
21299#[doc(hidden)]
21300pub struct ICoreWebView2FrameInfoCollectionIterator_Vtbl {
21301    pub base__: windows_core::IUnknown_Vtbl,
21302    pub HasCurrent: unsafe extern "system" fn(
21303        *mut core::ffi::c_void,
21304        *mut windows_core::BOOL,
21305    ) -> windows_core::HRESULT,
21306    pub GetCurrent: unsafe extern "system" fn(
21307        *mut core::ffi::c_void,
21308        *mut *mut core::ffi::c_void,
21309    ) -> windows_core::HRESULT,
21310    pub MoveNext: unsafe extern "system" fn(
21311        *mut core::ffi::c_void,
21312        *mut windows_core::BOOL,
21313    ) -> windows_core::HRESULT,
21314}
21315pub trait ICoreWebView2FrameInfoCollectionIterator_Impl: windows_core::IUnknownImpl {
21316    fn HasCurrent(&self, value: *mut windows_core::BOOL) -> windows_core::Result<()>;
21317    fn GetCurrent(&self) -> windows_core::Result<ICoreWebView2FrameInfo>;
21318    fn MoveNext(&self, value: *mut windows_core::BOOL) -> windows_core::Result<()>;
21319}
21320impl ICoreWebView2FrameInfoCollectionIterator_Vtbl {
21321    pub const fn new<
21322        Identity: ICoreWebView2FrameInfoCollectionIterator_Impl,
21323        const OFFSET: isize,
21324    >() -> Self {
21325        unsafe extern "system" fn HasCurrent<
21326            Identity: ICoreWebView2FrameInfoCollectionIterator_Impl,
21327            const OFFSET: isize,
21328        >(
21329            this: *mut core::ffi::c_void,
21330            value: *mut windows_core::BOOL,
21331        ) -> windows_core::HRESULT {
21332            unsafe {
21333                let this: &Identity =
21334                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
21335                ICoreWebView2FrameInfoCollectionIterator_Impl::HasCurrent(
21336                    this,
21337                    core::mem::transmute_copy(&value),
21338                )
21339                .into()
21340            }
21341        }
21342        unsafe extern "system" fn GetCurrent<
21343            Identity: ICoreWebView2FrameInfoCollectionIterator_Impl,
21344            const OFFSET: isize,
21345        >(
21346            this: *mut core::ffi::c_void,
21347            value: *mut *mut core::ffi::c_void,
21348        ) -> windows_core::HRESULT {
21349            unsafe {
21350                let this: &Identity =
21351                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
21352                match ICoreWebView2FrameInfoCollectionIterator_Impl::GetCurrent(this) {
21353                    Ok(ok__) => {
21354                        value.write(core::mem::transmute(ok__));
21355                        windows_core::HRESULT(0)
21356                    }
21357                    Err(err) => err.into(),
21358                }
21359            }
21360        }
21361        unsafe extern "system" fn MoveNext<
21362            Identity: ICoreWebView2FrameInfoCollectionIterator_Impl,
21363            const OFFSET: isize,
21364        >(
21365            this: *mut core::ffi::c_void,
21366            value: *mut windows_core::BOOL,
21367        ) -> windows_core::HRESULT {
21368            unsafe {
21369                let this: &Identity =
21370                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
21371                ICoreWebView2FrameInfoCollectionIterator_Impl::MoveNext(
21372                    this,
21373                    core::mem::transmute_copy(&value),
21374                )
21375                .into()
21376            }
21377        }
21378        Self {
21379            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
21380            HasCurrent: HasCurrent::<Identity, OFFSET>,
21381            GetCurrent: GetCurrent::<Identity, OFFSET>,
21382            MoveNext: MoveNext::<Identity, OFFSET>,
21383        }
21384    }
21385    pub fn matches(iid: &windows_core::GUID) -> bool {
21386        iid == &<ICoreWebView2FrameInfoCollectionIterator as windows_core::Interface>::IID
21387    }
21388}
21389impl windows_core::RuntimeName for ICoreWebView2FrameInfoCollectionIterator {}
21390windows_core::imp::define_interface!(
21391    ICoreWebView2FrameNameChangedEventHandler,
21392    ICoreWebView2FrameNameChangedEventHandler_Vtbl,
21393    0x435c7dc8_9baa_11eb_a8b3_0242ac130003
21394);
21395windows_core::imp::interface_hierarchy!(
21396    ICoreWebView2FrameNameChangedEventHandler,
21397    windows_core::IUnknown
21398);
21399impl ICoreWebView2FrameNameChangedEventHandler {
21400    pub unsafe fn Invoke<P0, P1>(&self, sender: P0, args: P1) -> windows_core::Result<()>
21401    where
21402        P0: windows_core::Param<ICoreWebView2Frame>,
21403        P1: windows_core::Param<windows_core::IUnknown>,
21404    {
21405        unsafe {
21406            (windows_core::Interface::vtable(self).Invoke)(
21407                windows_core::Interface::as_raw(self),
21408                sender.param().abi(),
21409                args.param().abi(),
21410            )
21411            .ok()
21412        }
21413    }
21414}
21415#[repr(C)]
21416#[doc(hidden)]
21417pub struct ICoreWebView2FrameNameChangedEventHandler_Vtbl {
21418    pub base__: windows_core::IUnknown_Vtbl,
21419    pub Invoke: unsafe extern "system" fn(
21420        *mut core::ffi::c_void,
21421        *mut core::ffi::c_void,
21422        *mut core::ffi::c_void,
21423    ) -> windows_core::HRESULT,
21424}
21425pub trait ICoreWebView2FrameNameChangedEventHandler_Impl: windows_core::IUnknownImpl {
21426    fn Invoke(
21427        &self,
21428        sender: windows_core::Ref<ICoreWebView2Frame>,
21429        args: windows_core::Ref<windows_core::IUnknown>,
21430    ) -> windows_core::Result<()>;
21431}
21432impl ICoreWebView2FrameNameChangedEventHandler_Vtbl {
21433    pub const fn new<
21434        Identity: ICoreWebView2FrameNameChangedEventHandler_Impl,
21435        const OFFSET: isize,
21436    >() -> Self {
21437        unsafe extern "system" fn Invoke<
21438            Identity: ICoreWebView2FrameNameChangedEventHandler_Impl,
21439            const OFFSET: isize,
21440        >(
21441            this: *mut core::ffi::c_void,
21442            sender: *mut core::ffi::c_void,
21443            args: *mut core::ffi::c_void,
21444        ) -> windows_core::HRESULT {
21445            unsafe {
21446                let this: &Identity =
21447                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
21448                ICoreWebView2FrameNameChangedEventHandler_Impl::Invoke(
21449                    this,
21450                    core::mem::transmute_copy(&sender),
21451                    core::mem::transmute_copy(&args),
21452                )
21453                .into()
21454            }
21455        }
21456        Self {
21457            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
21458            Invoke: Invoke::<Identity, OFFSET>,
21459        }
21460    }
21461    pub fn matches(iid: &windows_core::GUID) -> bool {
21462        iid == &<ICoreWebView2FrameNameChangedEventHandler as windows_core::Interface>::IID
21463    }
21464}
21465impl windows_core::RuntimeName for ICoreWebView2FrameNameChangedEventHandler {}
21466windows_core::imp::define_interface!(
21467    ICoreWebView2FrameNavigationCompletedEventHandler,
21468    ICoreWebView2FrameNavigationCompletedEventHandler_Vtbl,
21469    0x609302ad_0e36_4f9a_a210_6a45272842a9
21470);
21471windows_core::imp::interface_hierarchy!(
21472    ICoreWebView2FrameNavigationCompletedEventHandler,
21473    windows_core::IUnknown
21474);
21475impl ICoreWebView2FrameNavigationCompletedEventHandler {
21476    pub unsafe fn Invoke<P0, P1>(&self, sender: P0, args: P1) -> windows_core::Result<()>
21477    where
21478        P0: windows_core::Param<ICoreWebView2Frame>,
21479        P1: windows_core::Param<ICoreWebView2NavigationCompletedEventArgs>,
21480    {
21481        unsafe {
21482            (windows_core::Interface::vtable(self).Invoke)(
21483                windows_core::Interface::as_raw(self),
21484                sender.param().abi(),
21485                args.param().abi(),
21486            )
21487            .ok()
21488        }
21489    }
21490}
21491#[repr(C)]
21492#[doc(hidden)]
21493pub struct ICoreWebView2FrameNavigationCompletedEventHandler_Vtbl {
21494    pub base__: windows_core::IUnknown_Vtbl,
21495    pub Invoke: unsafe extern "system" fn(
21496        *mut core::ffi::c_void,
21497        *mut core::ffi::c_void,
21498        *mut core::ffi::c_void,
21499    ) -> windows_core::HRESULT,
21500}
21501pub trait ICoreWebView2FrameNavigationCompletedEventHandler_Impl:
21502    windows_core::IUnknownImpl
21503{
21504    fn Invoke(
21505        &self,
21506        sender: windows_core::Ref<ICoreWebView2Frame>,
21507        args: windows_core::Ref<ICoreWebView2NavigationCompletedEventArgs>,
21508    ) -> windows_core::Result<()>;
21509}
21510impl ICoreWebView2FrameNavigationCompletedEventHandler_Vtbl {
21511    pub const fn new<
21512        Identity: ICoreWebView2FrameNavigationCompletedEventHandler_Impl,
21513        const OFFSET: isize,
21514    >() -> Self {
21515        unsafe extern "system" fn Invoke<
21516            Identity: ICoreWebView2FrameNavigationCompletedEventHandler_Impl,
21517            const OFFSET: isize,
21518        >(
21519            this: *mut core::ffi::c_void,
21520            sender: *mut core::ffi::c_void,
21521            args: *mut core::ffi::c_void,
21522        ) -> windows_core::HRESULT {
21523            unsafe {
21524                let this: &Identity =
21525                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
21526                ICoreWebView2FrameNavigationCompletedEventHandler_Impl::Invoke(
21527                    this,
21528                    core::mem::transmute_copy(&sender),
21529                    core::mem::transmute_copy(&args),
21530                )
21531                .into()
21532            }
21533        }
21534        Self {
21535            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
21536            Invoke: Invoke::<Identity, OFFSET>,
21537        }
21538    }
21539    pub fn matches(iid: &windows_core::GUID) -> bool {
21540        iid == &<ICoreWebView2FrameNavigationCompletedEventHandler as windows_core::Interface>::IID
21541    }
21542}
21543impl windows_core::RuntimeName for ICoreWebView2FrameNavigationCompletedEventHandler {}
21544windows_core::imp::define_interface!(
21545    ICoreWebView2FrameNavigationStartingEventHandler,
21546    ICoreWebView2FrameNavigationStartingEventHandler_Vtbl,
21547    0xe79908bf_2d5d_4968_83db_263fea2c1da3
21548);
21549windows_core::imp::interface_hierarchy!(
21550    ICoreWebView2FrameNavigationStartingEventHandler,
21551    windows_core::IUnknown
21552);
21553impl ICoreWebView2FrameNavigationStartingEventHandler {
21554    pub unsafe fn Invoke<P0, P1>(&self, sender: P0, args: P1) -> windows_core::Result<()>
21555    where
21556        P0: windows_core::Param<ICoreWebView2Frame>,
21557        P1: windows_core::Param<ICoreWebView2NavigationStartingEventArgs>,
21558    {
21559        unsafe {
21560            (windows_core::Interface::vtable(self).Invoke)(
21561                windows_core::Interface::as_raw(self),
21562                sender.param().abi(),
21563                args.param().abi(),
21564            )
21565            .ok()
21566        }
21567    }
21568}
21569#[repr(C)]
21570#[doc(hidden)]
21571pub struct ICoreWebView2FrameNavigationStartingEventHandler_Vtbl {
21572    pub base__: windows_core::IUnknown_Vtbl,
21573    pub Invoke: unsafe extern "system" fn(
21574        *mut core::ffi::c_void,
21575        *mut core::ffi::c_void,
21576        *mut core::ffi::c_void,
21577    ) -> windows_core::HRESULT,
21578}
21579pub trait ICoreWebView2FrameNavigationStartingEventHandler_Impl:
21580    windows_core::IUnknownImpl
21581{
21582    fn Invoke(
21583        &self,
21584        sender: windows_core::Ref<ICoreWebView2Frame>,
21585        args: windows_core::Ref<ICoreWebView2NavigationStartingEventArgs>,
21586    ) -> windows_core::Result<()>;
21587}
21588impl ICoreWebView2FrameNavigationStartingEventHandler_Vtbl {
21589    pub const fn new<
21590        Identity: ICoreWebView2FrameNavigationStartingEventHandler_Impl,
21591        const OFFSET: isize,
21592    >() -> Self {
21593        unsafe extern "system" fn Invoke<
21594            Identity: ICoreWebView2FrameNavigationStartingEventHandler_Impl,
21595            const OFFSET: isize,
21596        >(
21597            this: *mut core::ffi::c_void,
21598            sender: *mut core::ffi::c_void,
21599            args: *mut core::ffi::c_void,
21600        ) -> windows_core::HRESULT {
21601            unsafe {
21602                let this: &Identity =
21603                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
21604                ICoreWebView2FrameNavigationStartingEventHandler_Impl::Invoke(
21605                    this,
21606                    core::mem::transmute_copy(&sender),
21607                    core::mem::transmute_copy(&args),
21608                )
21609                .into()
21610            }
21611        }
21612        Self {
21613            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
21614            Invoke: Invoke::<Identity, OFFSET>,
21615        }
21616    }
21617    pub fn matches(iid: &windows_core::GUID) -> bool {
21618        iid == &<ICoreWebView2FrameNavigationStartingEventHandler as windows_core::Interface>::IID
21619    }
21620}
21621impl windows_core::RuntimeName for ICoreWebView2FrameNavigationStartingEventHandler {}
21622windows_core::imp::define_interface!(
21623    ICoreWebView2FramePermissionRequestedEventHandler,
21624    ICoreWebView2FramePermissionRequestedEventHandler_Vtbl,
21625    0x845d0edd_8bd8_429b_9915_4821789f23e9
21626);
21627windows_core::imp::interface_hierarchy!(
21628    ICoreWebView2FramePermissionRequestedEventHandler,
21629    windows_core::IUnknown
21630);
21631impl ICoreWebView2FramePermissionRequestedEventHandler {
21632    pub unsafe fn Invoke<P0, P1>(&self, sender: P0, args: P1) -> windows_core::Result<()>
21633    where
21634        P0: windows_core::Param<ICoreWebView2Frame>,
21635        P1: windows_core::Param<ICoreWebView2PermissionRequestedEventArgs2>,
21636    {
21637        unsafe {
21638            (windows_core::Interface::vtable(self).Invoke)(
21639                windows_core::Interface::as_raw(self),
21640                sender.param().abi(),
21641                args.param().abi(),
21642            )
21643            .ok()
21644        }
21645    }
21646}
21647#[repr(C)]
21648#[doc(hidden)]
21649pub struct ICoreWebView2FramePermissionRequestedEventHandler_Vtbl {
21650    pub base__: windows_core::IUnknown_Vtbl,
21651    pub Invoke: unsafe extern "system" fn(
21652        *mut core::ffi::c_void,
21653        *mut core::ffi::c_void,
21654        *mut core::ffi::c_void,
21655    ) -> windows_core::HRESULT,
21656}
21657pub trait ICoreWebView2FramePermissionRequestedEventHandler_Impl:
21658    windows_core::IUnknownImpl
21659{
21660    fn Invoke(
21661        &self,
21662        sender: windows_core::Ref<ICoreWebView2Frame>,
21663        args: windows_core::Ref<ICoreWebView2PermissionRequestedEventArgs2>,
21664    ) -> windows_core::Result<()>;
21665}
21666impl ICoreWebView2FramePermissionRequestedEventHandler_Vtbl {
21667    pub const fn new<
21668        Identity: ICoreWebView2FramePermissionRequestedEventHandler_Impl,
21669        const OFFSET: isize,
21670    >() -> Self {
21671        unsafe extern "system" fn Invoke<
21672            Identity: ICoreWebView2FramePermissionRequestedEventHandler_Impl,
21673            const OFFSET: isize,
21674        >(
21675            this: *mut core::ffi::c_void,
21676            sender: *mut core::ffi::c_void,
21677            args: *mut core::ffi::c_void,
21678        ) -> windows_core::HRESULT {
21679            unsafe {
21680                let this: &Identity =
21681                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
21682                ICoreWebView2FramePermissionRequestedEventHandler_Impl::Invoke(
21683                    this,
21684                    core::mem::transmute_copy(&sender),
21685                    core::mem::transmute_copy(&args),
21686                )
21687                .into()
21688            }
21689        }
21690        Self {
21691            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
21692            Invoke: Invoke::<Identity, OFFSET>,
21693        }
21694    }
21695    pub fn matches(iid: &windows_core::GUID) -> bool {
21696        iid == &<ICoreWebView2FramePermissionRequestedEventHandler as windows_core::Interface>::IID
21697    }
21698}
21699impl windows_core::RuntimeName for ICoreWebView2FramePermissionRequestedEventHandler {}
21700windows_core::imp::define_interface!(
21701    ICoreWebView2FrameScreenCaptureStartingEventHandler,
21702    ICoreWebView2FrameScreenCaptureStartingEventHandler_Vtbl,
21703    0xa6c1d8ad_bb80_59c5_895b_fba1698b9309
21704);
21705windows_core::imp::interface_hierarchy!(
21706    ICoreWebView2FrameScreenCaptureStartingEventHandler,
21707    windows_core::IUnknown
21708);
21709impl ICoreWebView2FrameScreenCaptureStartingEventHandler {
21710    pub unsafe fn Invoke<P0, P1>(&self, sender: P0, args: P1) -> windows_core::Result<()>
21711    where
21712        P0: windows_core::Param<ICoreWebView2Frame>,
21713        P1: windows_core::Param<ICoreWebView2ScreenCaptureStartingEventArgs>,
21714    {
21715        unsafe {
21716            (windows_core::Interface::vtable(self).Invoke)(
21717                windows_core::Interface::as_raw(self),
21718                sender.param().abi(),
21719                args.param().abi(),
21720            )
21721            .ok()
21722        }
21723    }
21724}
21725#[repr(C)]
21726#[doc(hidden)]
21727pub struct ICoreWebView2FrameScreenCaptureStartingEventHandler_Vtbl {
21728    pub base__: windows_core::IUnknown_Vtbl,
21729    pub Invoke: unsafe extern "system" fn(
21730        *mut core::ffi::c_void,
21731        *mut core::ffi::c_void,
21732        *mut core::ffi::c_void,
21733    ) -> windows_core::HRESULT,
21734}
21735pub trait ICoreWebView2FrameScreenCaptureStartingEventHandler_Impl:
21736    windows_core::IUnknownImpl
21737{
21738    fn Invoke(
21739        &self,
21740        sender: windows_core::Ref<ICoreWebView2Frame>,
21741        args: windows_core::Ref<ICoreWebView2ScreenCaptureStartingEventArgs>,
21742    ) -> windows_core::Result<()>;
21743}
21744impl ICoreWebView2FrameScreenCaptureStartingEventHandler_Vtbl {
21745    pub const fn new<
21746        Identity: ICoreWebView2FrameScreenCaptureStartingEventHandler_Impl,
21747        const OFFSET: isize,
21748    >() -> Self {
21749        unsafe extern "system" fn Invoke<
21750            Identity: ICoreWebView2FrameScreenCaptureStartingEventHandler_Impl,
21751            const OFFSET: isize,
21752        >(
21753            this: *mut core::ffi::c_void,
21754            sender: *mut core::ffi::c_void,
21755            args: *mut core::ffi::c_void,
21756        ) -> windows_core::HRESULT {
21757            unsafe {
21758                let this: &Identity =
21759                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
21760                ICoreWebView2FrameScreenCaptureStartingEventHandler_Impl::Invoke(
21761                    this,
21762                    core::mem::transmute_copy(&sender),
21763                    core::mem::transmute_copy(&args),
21764                )
21765                .into()
21766            }
21767        }
21768        Self {
21769            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
21770            Invoke: Invoke::<Identity, OFFSET>,
21771        }
21772    }
21773    pub fn matches(iid: &windows_core::GUID) -> bool {
21774        iid == & < ICoreWebView2FrameScreenCaptureStartingEventHandler as windows_core::Interface >::IID
21775    }
21776}
21777impl windows_core::RuntimeName for ICoreWebView2FrameScreenCaptureStartingEventHandler {}
21778windows_core::imp::define_interface!(
21779    ICoreWebView2FrameWebMessageReceivedEventHandler,
21780    ICoreWebView2FrameWebMessageReceivedEventHandler_Vtbl,
21781    0xe371e005_6d1d_4517_934b_a8f1629c62a5
21782);
21783windows_core::imp::interface_hierarchy!(
21784    ICoreWebView2FrameWebMessageReceivedEventHandler,
21785    windows_core::IUnknown
21786);
21787impl ICoreWebView2FrameWebMessageReceivedEventHandler {
21788    pub unsafe fn Invoke<P0, P1>(&self, sender: P0, args: P1) -> windows_core::Result<()>
21789    where
21790        P0: windows_core::Param<ICoreWebView2Frame>,
21791        P1: windows_core::Param<ICoreWebView2WebMessageReceivedEventArgs>,
21792    {
21793        unsafe {
21794            (windows_core::Interface::vtable(self).Invoke)(
21795                windows_core::Interface::as_raw(self),
21796                sender.param().abi(),
21797                args.param().abi(),
21798            )
21799            .ok()
21800        }
21801    }
21802}
21803#[repr(C)]
21804#[doc(hidden)]
21805pub struct ICoreWebView2FrameWebMessageReceivedEventHandler_Vtbl {
21806    pub base__: windows_core::IUnknown_Vtbl,
21807    pub Invoke: unsafe extern "system" fn(
21808        *mut core::ffi::c_void,
21809        *mut core::ffi::c_void,
21810        *mut core::ffi::c_void,
21811    ) -> windows_core::HRESULT,
21812}
21813pub trait ICoreWebView2FrameWebMessageReceivedEventHandler_Impl:
21814    windows_core::IUnknownImpl
21815{
21816    fn Invoke(
21817        &self,
21818        sender: windows_core::Ref<ICoreWebView2Frame>,
21819        args: windows_core::Ref<ICoreWebView2WebMessageReceivedEventArgs>,
21820    ) -> windows_core::Result<()>;
21821}
21822impl ICoreWebView2FrameWebMessageReceivedEventHandler_Vtbl {
21823    pub const fn new<
21824        Identity: ICoreWebView2FrameWebMessageReceivedEventHandler_Impl,
21825        const OFFSET: isize,
21826    >() -> Self {
21827        unsafe extern "system" fn Invoke<
21828            Identity: ICoreWebView2FrameWebMessageReceivedEventHandler_Impl,
21829            const OFFSET: isize,
21830        >(
21831            this: *mut core::ffi::c_void,
21832            sender: *mut core::ffi::c_void,
21833            args: *mut core::ffi::c_void,
21834        ) -> windows_core::HRESULT {
21835            unsafe {
21836                let this: &Identity =
21837                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
21838                ICoreWebView2FrameWebMessageReceivedEventHandler_Impl::Invoke(
21839                    this,
21840                    core::mem::transmute_copy(&sender),
21841                    core::mem::transmute_copy(&args),
21842                )
21843                .into()
21844            }
21845        }
21846        Self {
21847            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
21848            Invoke: Invoke::<Identity, OFFSET>,
21849        }
21850    }
21851    pub fn matches(iid: &windows_core::GUID) -> bool {
21852        iid == &<ICoreWebView2FrameWebMessageReceivedEventHandler as windows_core::Interface>::IID
21853    }
21854}
21855impl windows_core::RuntimeName for ICoreWebView2FrameWebMessageReceivedEventHandler {}
21856windows_core::imp::define_interface!(
21857    ICoreWebView2GetCookiesCompletedHandler,
21858    ICoreWebView2GetCookiesCompletedHandler_Vtbl,
21859    0x5a4f5069_5c15_47c3_8646_f4de1c116670
21860);
21861windows_core::imp::interface_hierarchy!(
21862    ICoreWebView2GetCookiesCompletedHandler,
21863    windows_core::IUnknown
21864);
21865impl ICoreWebView2GetCookiesCompletedHandler {
21866    pub unsafe fn Invoke<P1>(
21867        &self,
21868        errorcode: windows_core::HRESULT,
21869        result: P1,
21870    ) -> windows_core::Result<()>
21871    where
21872        P1: windows_core::Param<ICoreWebView2CookieList>,
21873    {
21874        unsafe {
21875            (windows_core::Interface::vtable(self).Invoke)(
21876                windows_core::Interface::as_raw(self),
21877                errorcode,
21878                result.param().abi(),
21879            )
21880            .ok()
21881        }
21882    }
21883}
21884#[repr(C)]
21885#[doc(hidden)]
21886pub struct ICoreWebView2GetCookiesCompletedHandler_Vtbl {
21887    pub base__: windows_core::IUnknown_Vtbl,
21888    pub Invoke: unsafe extern "system" fn(
21889        *mut core::ffi::c_void,
21890        windows_core::HRESULT,
21891        *mut core::ffi::c_void,
21892    ) -> windows_core::HRESULT,
21893}
21894pub trait ICoreWebView2GetCookiesCompletedHandler_Impl: windows_core::IUnknownImpl {
21895    fn Invoke(
21896        &self,
21897        errorcode: windows_core::HRESULT,
21898        result: windows_core::Ref<ICoreWebView2CookieList>,
21899    ) -> windows_core::Result<()>;
21900}
21901impl ICoreWebView2GetCookiesCompletedHandler_Vtbl {
21902    pub const fn new<
21903        Identity: ICoreWebView2GetCookiesCompletedHandler_Impl,
21904        const OFFSET: isize,
21905    >() -> Self {
21906        unsafe extern "system" fn Invoke<
21907            Identity: ICoreWebView2GetCookiesCompletedHandler_Impl,
21908            const OFFSET: isize,
21909        >(
21910            this: *mut core::ffi::c_void,
21911            errorcode: windows_core::HRESULT,
21912            result: *mut core::ffi::c_void,
21913        ) -> windows_core::HRESULT {
21914            unsafe {
21915                let this: &Identity =
21916                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
21917                ICoreWebView2GetCookiesCompletedHandler_Impl::Invoke(
21918                    this,
21919                    core::mem::transmute_copy(&errorcode),
21920                    core::mem::transmute_copy(&result),
21921                )
21922                .into()
21923            }
21924        }
21925        Self {
21926            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
21927            Invoke: Invoke::<Identity, OFFSET>,
21928        }
21929    }
21930    pub fn matches(iid: &windows_core::GUID) -> bool {
21931        iid == &<ICoreWebView2GetCookiesCompletedHandler as windows_core::Interface>::IID
21932    }
21933}
21934impl windows_core::RuntimeName for ICoreWebView2GetCookiesCompletedHandler {}
21935windows_core::imp::define_interface!(
21936    ICoreWebView2GetFaviconCompletedHandler,
21937    ICoreWebView2GetFaviconCompletedHandler_Vtbl,
21938    0xa2508329_7da8_49d7_8c05_fa125e4aee8d
21939);
21940windows_core::imp::interface_hierarchy!(
21941    ICoreWebView2GetFaviconCompletedHandler,
21942    windows_core::IUnknown
21943);
21944impl ICoreWebView2GetFaviconCompletedHandler {
21945    pub unsafe fn Invoke<P1>(
21946        &self,
21947        errorcode: windows_core::HRESULT,
21948        result: P1,
21949    ) -> windows_core::Result<()>
21950    where
21951        P1: windows_core::Param<windows::Win32::System::Com::IStream>,
21952    {
21953        unsafe {
21954            (windows_core::Interface::vtable(self).Invoke)(
21955                windows_core::Interface::as_raw(self),
21956                errorcode,
21957                result.param().abi(),
21958            )
21959            .ok()
21960        }
21961    }
21962}
21963#[repr(C)]
21964#[doc(hidden)]
21965pub struct ICoreWebView2GetFaviconCompletedHandler_Vtbl {
21966    pub base__: windows_core::IUnknown_Vtbl,
21967    pub Invoke: unsafe extern "system" fn(
21968        *mut core::ffi::c_void,
21969        windows_core::HRESULT,
21970        *mut core::ffi::c_void,
21971    ) -> windows_core::HRESULT,
21972}
21973pub trait ICoreWebView2GetFaviconCompletedHandler_Impl: windows_core::IUnknownImpl {
21974    fn Invoke(
21975        &self,
21976        errorcode: windows_core::HRESULT,
21977        result: windows_core::Ref<windows::Win32::System::Com::IStream>,
21978    ) -> windows_core::Result<()>;
21979}
21980impl ICoreWebView2GetFaviconCompletedHandler_Vtbl {
21981    pub const fn new<
21982        Identity: ICoreWebView2GetFaviconCompletedHandler_Impl,
21983        const OFFSET: isize,
21984    >() -> Self {
21985        unsafe extern "system" fn Invoke<
21986            Identity: ICoreWebView2GetFaviconCompletedHandler_Impl,
21987            const OFFSET: isize,
21988        >(
21989            this: *mut core::ffi::c_void,
21990            errorcode: windows_core::HRESULT,
21991            result: *mut core::ffi::c_void,
21992        ) -> windows_core::HRESULT {
21993            unsafe {
21994                let this: &Identity =
21995                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
21996                ICoreWebView2GetFaviconCompletedHandler_Impl::Invoke(
21997                    this,
21998                    core::mem::transmute_copy(&errorcode),
21999                    core::mem::transmute_copy(&result),
22000                )
22001                .into()
22002            }
22003        }
22004        Self {
22005            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
22006            Invoke: Invoke::<Identity, OFFSET>,
22007        }
22008    }
22009    pub fn matches(iid: &windows_core::GUID) -> bool {
22010        iid == &<ICoreWebView2GetFaviconCompletedHandler as windows_core::Interface>::IID
22011    }
22012}
22013impl windows_core::RuntimeName for ICoreWebView2GetFaviconCompletedHandler {}
22014windows_core::imp::define_interface!(
22015    ICoreWebView2GetNonDefaultPermissionSettingsCompletedHandler,
22016    ICoreWebView2GetNonDefaultPermissionSettingsCompletedHandler_Vtbl,
22017    0x38274481_a15c_4563_94cf_990edc9aeb95
22018);
22019windows_core::imp::interface_hierarchy!(
22020    ICoreWebView2GetNonDefaultPermissionSettingsCompletedHandler,
22021    windows_core::IUnknown
22022);
22023impl ICoreWebView2GetNonDefaultPermissionSettingsCompletedHandler {
22024    pub unsafe fn Invoke<P1>(
22025        &self,
22026        errorcode: windows_core::HRESULT,
22027        result: P1,
22028    ) -> windows_core::Result<()>
22029    where
22030        P1: windows_core::Param<ICoreWebView2PermissionSettingCollectionView>,
22031    {
22032        unsafe {
22033            (windows_core::Interface::vtable(self).Invoke)(
22034                windows_core::Interface::as_raw(self),
22035                errorcode,
22036                result.param().abi(),
22037            )
22038            .ok()
22039        }
22040    }
22041}
22042#[repr(C)]
22043#[doc(hidden)]
22044pub struct ICoreWebView2GetNonDefaultPermissionSettingsCompletedHandler_Vtbl {
22045    pub base__: windows_core::IUnknown_Vtbl,
22046    pub Invoke: unsafe extern "system" fn(
22047        *mut core::ffi::c_void,
22048        windows_core::HRESULT,
22049        *mut core::ffi::c_void,
22050    ) -> windows_core::HRESULT,
22051}
22052pub trait ICoreWebView2GetNonDefaultPermissionSettingsCompletedHandler_Impl:
22053    windows_core::IUnknownImpl
22054{
22055    fn Invoke(
22056        &self,
22057        errorcode: windows_core::HRESULT,
22058        result: windows_core::Ref<ICoreWebView2PermissionSettingCollectionView>,
22059    ) -> windows_core::Result<()>;
22060}
22061impl ICoreWebView2GetNonDefaultPermissionSettingsCompletedHandler_Vtbl {
22062    pub const fn new<
22063        Identity: ICoreWebView2GetNonDefaultPermissionSettingsCompletedHandler_Impl,
22064        const OFFSET: isize,
22065    >() -> Self {
22066        unsafe extern "system" fn Invoke<
22067            Identity: ICoreWebView2GetNonDefaultPermissionSettingsCompletedHandler_Impl,
22068            const OFFSET: isize,
22069        >(
22070            this: *mut core::ffi::c_void,
22071            errorcode: windows_core::HRESULT,
22072            result: *mut core::ffi::c_void,
22073        ) -> windows_core::HRESULT {
22074            unsafe {
22075                let this: &Identity =
22076                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
22077                ICoreWebView2GetNonDefaultPermissionSettingsCompletedHandler_Impl::Invoke(
22078                    this,
22079                    core::mem::transmute_copy(&errorcode),
22080                    core::mem::transmute_copy(&result),
22081                )
22082                .into()
22083            }
22084        }
22085        Self {
22086            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
22087            Invoke: Invoke::<Identity, OFFSET>,
22088        }
22089    }
22090    pub fn matches(iid: &windows_core::GUID) -> bool {
22091        iid == & < ICoreWebView2GetNonDefaultPermissionSettingsCompletedHandler as windows_core::Interface >::IID
22092    }
22093}
22094impl windows_core::RuntimeName for ICoreWebView2GetNonDefaultPermissionSettingsCompletedHandler {}
22095windows_core::imp::define_interface!(
22096    ICoreWebView2GetProcessExtendedInfosCompletedHandler,
22097    ICoreWebView2GetProcessExtendedInfosCompletedHandler_Vtbl,
22098    0xf45e55aa_3bc2_11ee_be56_0242ac120002
22099);
22100windows_core::imp::interface_hierarchy!(
22101    ICoreWebView2GetProcessExtendedInfosCompletedHandler,
22102    windows_core::IUnknown
22103);
22104impl ICoreWebView2GetProcessExtendedInfosCompletedHandler {
22105    pub unsafe fn Invoke<P1>(
22106        &self,
22107        errorcode: windows_core::HRESULT,
22108        result: P1,
22109    ) -> windows_core::Result<()>
22110    where
22111        P1: windows_core::Param<ICoreWebView2ProcessExtendedInfoCollection>,
22112    {
22113        unsafe {
22114            (windows_core::Interface::vtable(self).Invoke)(
22115                windows_core::Interface::as_raw(self),
22116                errorcode,
22117                result.param().abi(),
22118            )
22119            .ok()
22120        }
22121    }
22122}
22123#[repr(C)]
22124#[doc(hidden)]
22125pub struct ICoreWebView2GetProcessExtendedInfosCompletedHandler_Vtbl {
22126    pub base__: windows_core::IUnknown_Vtbl,
22127    pub Invoke: unsafe extern "system" fn(
22128        *mut core::ffi::c_void,
22129        windows_core::HRESULT,
22130        *mut core::ffi::c_void,
22131    ) -> windows_core::HRESULT,
22132}
22133pub trait ICoreWebView2GetProcessExtendedInfosCompletedHandler_Impl:
22134    windows_core::IUnknownImpl
22135{
22136    fn Invoke(
22137        &self,
22138        errorcode: windows_core::HRESULT,
22139        result: windows_core::Ref<ICoreWebView2ProcessExtendedInfoCollection>,
22140    ) -> windows_core::Result<()>;
22141}
22142impl ICoreWebView2GetProcessExtendedInfosCompletedHandler_Vtbl {
22143    pub const fn new<
22144        Identity: ICoreWebView2GetProcessExtendedInfosCompletedHandler_Impl,
22145        const OFFSET: isize,
22146    >() -> Self {
22147        unsafe extern "system" fn Invoke<
22148            Identity: ICoreWebView2GetProcessExtendedInfosCompletedHandler_Impl,
22149            const OFFSET: isize,
22150        >(
22151            this: *mut core::ffi::c_void,
22152            errorcode: windows_core::HRESULT,
22153            result: *mut core::ffi::c_void,
22154        ) -> windows_core::HRESULT {
22155            unsafe {
22156                let this: &Identity =
22157                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
22158                ICoreWebView2GetProcessExtendedInfosCompletedHandler_Impl::Invoke(
22159                    this,
22160                    core::mem::transmute_copy(&errorcode),
22161                    core::mem::transmute_copy(&result),
22162                )
22163                .into()
22164            }
22165        }
22166        Self {
22167            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
22168            Invoke: Invoke::<Identity, OFFSET>,
22169        }
22170    }
22171    pub fn matches(iid: &windows_core::GUID) -> bool {
22172        iid == & < ICoreWebView2GetProcessExtendedInfosCompletedHandler as windows_core::Interface >::IID
22173    }
22174}
22175impl windows_core::RuntimeName for ICoreWebView2GetProcessExtendedInfosCompletedHandler {}
22176windows_core::imp::define_interface!(
22177    ICoreWebView2HistoryChangedEventHandler,
22178    ICoreWebView2HistoryChangedEventHandler_Vtbl,
22179    0xc79a420c_efd9_4058_9295_3e8b4bcab645
22180);
22181windows_core::imp::interface_hierarchy!(
22182    ICoreWebView2HistoryChangedEventHandler,
22183    windows_core::IUnknown
22184);
22185impl ICoreWebView2HistoryChangedEventHandler {
22186    pub unsafe fn Invoke<P0, P1>(&self, sender: P0, args: P1) -> windows_core::Result<()>
22187    where
22188        P0: windows_core::Param<ICoreWebView2>,
22189        P1: windows_core::Param<windows_core::IUnknown>,
22190    {
22191        unsafe {
22192            (windows_core::Interface::vtable(self).Invoke)(
22193                windows_core::Interface::as_raw(self),
22194                sender.param().abi(),
22195                args.param().abi(),
22196            )
22197            .ok()
22198        }
22199    }
22200}
22201#[repr(C)]
22202#[doc(hidden)]
22203pub struct ICoreWebView2HistoryChangedEventHandler_Vtbl {
22204    pub base__: windows_core::IUnknown_Vtbl,
22205    pub Invoke: unsafe extern "system" fn(
22206        *mut core::ffi::c_void,
22207        *mut core::ffi::c_void,
22208        *mut core::ffi::c_void,
22209    ) -> windows_core::HRESULT,
22210}
22211pub trait ICoreWebView2HistoryChangedEventHandler_Impl: windows_core::IUnknownImpl {
22212    fn Invoke(
22213        &self,
22214        sender: windows_core::Ref<ICoreWebView2>,
22215        args: windows_core::Ref<windows_core::IUnknown>,
22216    ) -> windows_core::Result<()>;
22217}
22218impl ICoreWebView2HistoryChangedEventHandler_Vtbl {
22219    pub const fn new<
22220        Identity: ICoreWebView2HistoryChangedEventHandler_Impl,
22221        const OFFSET: isize,
22222    >() -> Self {
22223        unsafe extern "system" fn Invoke<
22224            Identity: ICoreWebView2HistoryChangedEventHandler_Impl,
22225            const OFFSET: isize,
22226        >(
22227            this: *mut core::ffi::c_void,
22228            sender: *mut core::ffi::c_void,
22229            args: *mut core::ffi::c_void,
22230        ) -> windows_core::HRESULT {
22231            unsafe {
22232                let this: &Identity =
22233                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
22234                ICoreWebView2HistoryChangedEventHandler_Impl::Invoke(
22235                    this,
22236                    core::mem::transmute_copy(&sender),
22237                    core::mem::transmute_copy(&args),
22238                )
22239                .into()
22240            }
22241        }
22242        Self {
22243            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
22244            Invoke: Invoke::<Identity, OFFSET>,
22245        }
22246    }
22247    pub fn matches(iid: &windows_core::GUID) -> bool {
22248        iid == &<ICoreWebView2HistoryChangedEventHandler as windows_core::Interface>::IID
22249    }
22250}
22251impl windows_core::RuntimeName for ICoreWebView2HistoryChangedEventHandler {}
22252windows_core::imp::define_interface!(
22253    ICoreWebView2HttpHeadersCollectionIterator,
22254    ICoreWebView2HttpHeadersCollectionIterator_Vtbl,
22255    0x0702fc30_f43b_47bb_ab52_a42cb552ad9f
22256);
22257windows_core::imp::interface_hierarchy!(
22258    ICoreWebView2HttpHeadersCollectionIterator,
22259    windows_core::IUnknown
22260);
22261impl ICoreWebView2HttpHeadersCollectionIterator {
22262    pub unsafe fn GetCurrentHeader(
22263        &self,
22264        name: *mut windows_core::PWSTR,
22265        value: *mut windows_core::PWSTR,
22266    ) -> windows_core::Result<()> {
22267        unsafe {
22268            (windows_core::Interface::vtable(self).GetCurrentHeader)(
22269                windows_core::Interface::as_raw(self),
22270                name as _,
22271                value as _,
22272            )
22273            .ok()
22274        }
22275    }
22276    pub unsafe fn HasCurrentHeader(
22277        &self,
22278        hascurrent: *mut windows_core::BOOL,
22279    ) -> windows_core::Result<()> {
22280        unsafe {
22281            (windows_core::Interface::vtable(self).HasCurrentHeader)(
22282                windows_core::Interface::as_raw(self),
22283                hascurrent as _,
22284            )
22285            .ok()
22286        }
22287    }
22288    pub unsafe fn MoveNext(&self, hasnext: *mut windows_core::BOOL) -> windows_core::Result<()> {
22289        unsafe {
22290            (windows_core::Interface::vtable(self).MoveNext)(
22291                windows_core::Interface::as_raw(self),
22292                hasnext as _,
22293            )
22294            .ok()
22295        }
22296    }
22297}
22298#[repr(C)]
22299#[doc(hidden)]
22300pub struct ICoreWebView2HttpHeadersCollectionIterator_Vtbl {
22301    pub base__: windows_core::IUnknown_Vtbl,
22302    pub GetCurrentHeader: unsafe extern "system" fn(
22303        *mut core::ffi::c_void,
22304        *mut windows_core::PWSTR,
22305        *mut windows_core::PWSTR,
22306    ) -> windows_core::HRESULT,
22307    pub HasCurrentHeader: unsafe extern "system" fn(
22308        *mut core::ffi::c_void,
22309        *mut windows_core::BOOL,
22310    ) -> windows_core::HRESULT,
22311    pub MoveNext: unsafe extern "system" fn(
22312        *mut core::ffi::c_void,
22313        *mut windows_core::BOOL,
22314    ) -> windows_core::HRESULT,
22315}
22316pub trait ICoreWebView2HttpHeadersCollectionIterator_Impl: windows_core::IUnknownImpl {
22317    fn GetCurrentHeader(
22318        &self,
22319        name: *mut windows_core::PWSTR,
22320        value: *mut windows_core::PWSTR,
22321    ) -> windows_core::Result<()>;
22322    fn HasCurrentHeader(&self, hascurrent: *mut windows_core::BOOL) -> windows_core::Result<()>;
22323    fn MoveNext(&self, hasnext: *mut windows_core::BOOL) -> windows_core::Result<()>;
22324}
22325impl ICoreWebView2HttpHeadersCollectionIterator_Vtbl {
22326    pub const fn new<
22327        Identity: ICoreWebView2HttpHeadersCollectionIterator_Impl,
22328        const OFFSET: isize,
22329    >() -> Self {
22330        unsafe extern "system" fn GetCurrentHeader<
22331            Identity: ICoreWebView2HttpHeadersCollectionIterator_Impl,
22332            const OFFSET: isize,
22333        >(
22334            this: *mut core::ffi::c_void,
22335            name: *mut windows_core::PWSTR,
22336            value: *mut windows_core::PWSTR,
22337        ) -> windows_core::HRESULT {
22338            unsafe {
22339                let this: &Identity =
22340                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
22341                ICoreWebView2HttpHeadersCollectionIterator_Impl::GetCurrentHeader(
22342                    this,
22343                    core::mem::transmute_copy(&name),
22344                    core::mem::transmute_copy(&value),
22345                )
22346                .into()
22347            }
22348        }
22349        unsafe extern "system" fn HasCurrentHeader<
22350            Identity: ICoreWebView2HttpHeadersCollectionIterator_Impl,
22351            const OFFSET: isize,
22352        >(
22353            this: *mut core::ffi::c_void,
22354            hascurrent: *mut windows_core::BOOL,
22355        ) -> windows_core::HRESULT {
22356            unsafe {
22357                let this: &Identity =
22358                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
22359                ICoreWebView2HttpHeadersCollectionIterator_Impl::HasCurrentHeader(
22360                    this,
22361                    core::mem::transmute_copy(&hascurrent),
22362                )
22363                .into()
22364            }
22365        }
22366        unsafe extern "system" fn MoveNext<
22367            Identity: ICoreWebView2HttpHeadersCollectionIterator_Impl,
22368            const OFFSET: isize,
22369        >(
22370            this: *mut core::ffi::c_void,
22371            hasnext: *mut windows_core::BOOL,
22372        ) -> windows_core::HRESULT {
22373            unsafe {
22374                let this: &Identity =
22375                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
22376                ICoreWebView2HttpHeadersCollectionIterator_Impl::MoveNext(
22377                    this,
22378                    core::mem::transmute_copy(&hasnext),
22379                )
22380                .into()
22381            }
22382        }
22383        Self {
22384            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
22385            GetCurrentHeader: GetCurrentHeader::<Identity, OFFSET>,
22386            HasCurrentHeader: HasCurrentHeader::<Identity, OFFSET>,
22387            MoveNext: MoveNext::<Identity, OFFSET>,
22388        }
22389    }
22390    pub fn matches(iid: &windows_core::GUID) -> bool {
22391        iid == &<ICoreWebView2HttpHeadersCollectionIterator as windows_core::Interface>::IID
22392    }
22393}
22394impl windows_core::RuntimeName for ICoreWebView2HttpHeadersCollectionIterator {}
22395windows_core::imp::define_interface!(
22396    ICoreWebView2HttpRequestHeaders,
22397    ICoreWebView2HttpRequestHeaders_Vtbl,
22398    0xe86cac0e_5523_465c_b536_8fb9fc8c8c60
22399);
22400windows_core::imp::interface_hierarchy!(ICoreWebView2HttpRequestHeaders, windows_core::IUnknown);
22401impl ICoreWebView2HttpRequestHeaders {
22402    pub unsafe fn GetHeader<P0>(
22403        &self,
22404        name: P0,
22405        value: *mut windows_core::PWSTR,
22406    ) -> windows_core::Result<()>
22407    where
22408        P0: windows_core::Param<windows_core::PCWSTR>,
22409    {
22410        unsafe {
22411            (windows_core::Interface::vtable(self).GetHeader)(
22412                windows_core::Interface::as_raw(self),
22413                name.param().abi(),
22414                value as _,
22415            )
22416            .ok()
22417        }
22418    }
22419    pub unsafe fn GetHeaders<P0>(
22420        &self,
22421        name: P0,
22422    ) -> windows_core::Result<ICoreWebView2HttpHeadersCollectionIterator>
22423    where
22424        P0: windows_core::Param<windows_core::PCWSTR>,
22425    {
22426        unsafe {
22427            let mut result__ = core::mem::zeroed();
22428            (windows_core::Interface::vtable(self).GetHeaders)(
22429                windows_core::Interface::as_raw(self),
22430                name.param().abi(),
22431                &mut result__,
22432            )
22433            .and_then(|| windows_core::Type::from_abi(result__))
22434        }
22435    }
22436    pub unsafe fn Contains<P0>(
22437        &self,
22438        name: P0,
22439        value: *mut windows_core::BOOL,
22440    ) -> windows_core::Result<()>
22441    where
22442        P0: windows_core::Param<windows_core::PCWSTR>,
22443    {
22444        unsafe {
22445            (windows_core::Interface::vtable(self).Contains)(
22446                windows_core::Interface::as_raw(self),
22447                name.param().abi(),
22448                value as _,
22449            )
22450            .ok()
22451        }
22452    }
22453    pub unsafe fn SetHeader<P0, P1>(&self, name: P0, value: P1) -> windows_core::Result<()>
22454    where
22455        P0: windows_core::Param<windows_core::PCWSTR>,
22456        P1: windows_core::Param<windows_core::PCWSTR>,
22457    {
22458        unsafe {
22459            (windows_core::Interface::vtable(self).SetHeader)(
22460                windows_core::Interface::as_raw(self),
22461                name.param().abi(),
22462                value.param().abi(),
22463            )
22464            .ok()
22465        }
22466    }
22467    pub unsafe fn RemoveHeader<P0>(&self, name: P0) -> windows_core::Result<()>
22468    where
22469        P0: windows_core::Param<windows_core::PCWSTR>,
22470    {
22471        unsafe {
22472            (windows_core::Interface::vtable(self).RemoveHeader)(
22473                windows_core::Interface::as_raw(self),
22474                name.param().abi(),
22475            )
22476            .ok()
22477        }
22478    }
22479    pub unsafe fn GetIterator(
22480        &self,
22481    ) -> windows_core::Result<ICoreWebView2HttpHeadersCollectionIterator> {
22482        unsafe {
22483            let mut result__ = core::mem::zeroed();
22484            (windows_core::Interface::vtable(self).GetIterator)(
22485                windows_core::Interface::as_raw(self),
22486                &mut result__,
22487            )
22488            .and_then(|| windows_core::Type::from_abi(result__))
22489        }
22490    }
22491}
22492#[repr(C)]
22493#[doc(hidden)]
22494pub struct ICoreWebView2HttpRequestHeaders_Vtbl {
22495    pub base__: windows_core::IUnknown_Vtbl,
22496    pub GetHeader: unsafe extern "system" fn(
22497        *mut core::ffi::c_void,
22498        windows_core::PCWSTR,
22499        *mut windows_core::PWSTR,
22500    ) -> windows_core::HRESULT,
22501    pub GetHeaders: unsafe extern "system" fn(
22502        *mut core::ffi::c_void,
22503        windows_core::PCWSTR,
22504        *mut *mut core::ffi::c_void,
22505    ) -> windows_core::HRESULT,
22506    pub Contains: unsafe extern "system" fn(
22507        *mut core::ffi::c_void,
22508        windows_core::PCWSTR,
22509        *mut windows_core::BOOL,
22510    ) -> windows_core::HRESULT,
22511    pub SetHeader: unsafe extern "system" fn(
22512        *mut core::ffi::c_void,
22513        windows_core::PCWSTR,
22514        windows_core::PCWSTR,
22515    ) -> windows_core::HRESULT,
22516    pub RemoveHeader: unsafe extern "system" fn(
22517        *mut core::ffi::c_void,
22518        windows_core::PCWSTR,
22519    ) -> windows_core::HRESULT,
22520    pub GetIterator: unsafe extern "system" fn(
22521        *mut core::ffi::c_void,
22522        *mut *mut core::ffi::c_void,
22523    ) -> windows_core::HRESULT,
22524}
22525pub trait ICoreWebView2HttpRequestHeaders_Impl: windows_core::IUnknownImpl {
22526    fn GetHeader(
22527        &self,
22528        name: &windows_core::PCWSTR,
22529        value: *mut windows_core::PWSTR,
22530    ) -> windows_core::Result<()>;
22531    fn GetHeaders(
22532        &self,
22533        name: &windows_core::PCWSTR,
22534    ) -> windows_core::Result<ICoreWebView2HttpHeadersCollectionIterator>;
22535    fn Contains(
22536        &self,
22537        name: &windows_core::PCWSTR,
22538        value: *mut windows_core::BOOL,
22539    ) -> windows_core::Result<()>;
22540    fn SetHeader(
22541        &self,
22542        name: &windows_core::PCWSTR,
22543        value: &windows_core::PCWSTR,
22544    ) -> windows_core::Result<()>;
22545    fn RemoveHeader(&self, name: &windows_core::PCWSTR) -> windows_core::Result<()>;
22546    fn GetIterator(&self) -> windows_core::Result<ICoreWebView2HttpHeadersCollectionIterator>;
22547}
22548impl ICoreWebView2HttpRequestHeaders_Vtbl {
22549    pub const fn new<Identity: ICoreWebView2HttpRequestHeaders_Impl, const OFFSET: isize>() -> Self
22550    {
22551        unsafe extern "system" fn GetHeader<
22552            Identity: ICoreWebView2HttpRequestHeaders_Impl,
22553            const OFFSET: isize,
22554        >(
22555            this: *mut core::ffi::c_void,
22556            name: windows_core::PCWSTR,
22557            value: *mut windows_core::PWSTR,
22558        ) -> windows_core::HRESULT {
22559            unsafe {
22560                let this: &Identity =
22561                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
22562                ICoreWebView2HttpRequestHeaders_Impl::GetHeader(
22563                    this,
22564                    core::mem::transmute(&name),
22565                    core::mem::transmute_copy(&value),
22566                )
22567                .into()
22568            }
22569        }
22570        unsafe extern "system" fn GetHeaders<
22571            Identity: ICoreWebView2HttpRequestHeaders_Impl,
22572            const OFFSET: isize,
22573        >(
22574            this: *mut core::ffi::c_void,
22575            name: windows_core::PCWSTR,
22576            value: *mut *mut core::ffi::c_void,
22577        ) -> windows_core::HRESULT {
22578            unsafe {
22579                let this: &Identity =
22580                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
22581                match ICoreWebView2HttpRequestHeaders_Impl::GetHeaders(
22582                    this,
22583                    core::mem::transmute(&name),
22584                ) {
22585                    Ok(ok__) => {
22586                        value.write(core::mem::transmute(ok__));
22587                        windows_core::HRESULT(0)
22588                    }
22589                    Err(err) => err.into(),
22590                }
22591            }
22592        }
22593        unsafe extern "system" fn Contains<
22594            Identity: ICoreWebView2HttpRequestHeaders_Impl,
22595            const OFFSET: isize,
22596        >(
22597            this: *mut core::ffi::c_void,
22598            name: windows_core::PCWSTR,
22599            value: *mut windows_core::BOOL,
22600        ) -> windows_core::HRESULT {
22601            unsafe {
22602                let this: &Identity =
22603                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
22604                ICoreWebView2HttpRequestHeaders_Impl::Contains(
22605                    this,
22606                    core::mem::transmute(&name),
22607                    core::mem::transmute_copy(&value),
22608                )
22609                .into()
22610            }
22611        }
22612        unsafe extern "system" fn SetHeader<
22613            Identity: ICoreWebView2HttpRequestHeaders_Impl,
22614            const OFFSET: isize,
22615        >(
22616            this: *mut core::ffi::c_void,
22617            name: windows_core::PCWSTR,
22618            value: windows_core::PCWSTR,
22619        ) -> windows_core::HRESULT {
22620            unsafe {
22621                let this: &Identity =
22622                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
22623                ICoreWebView2HttpRequestHeaders_Impl::SetHeader(
22624                    this,
22625                    core::mem::transmute(&name),
22626                    core::mem::transmute(&value),
22627                )
22628                .into()
22629            }
22630        }
22631        unsafe extern "system" fn RemoveHeader<
22632            Identity: ICoreWebView2HttpRequestHeaders_Impl,
22633            const OFFSET: isize,
22634        >(
22635            this: *mut core::ffi::c_void,
22636            name: windows_core::PCWSTR,
22637        ) -> windows_core::HRESULT {
22638            unsafe {
22639                let this: &Identity =
22640                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
22641                ICoreWebView2HttpRequestHeaders_Impl::RemoveHeader(
22642                    this,
22643                    core::mem::transmute(&name),
22644                )
22645                .into()
22646            }
22647        }
22648        unsafe extern "system" fn GetIterator<
22649            Identity: ICoreWebView2HttpRequestHeaders_Impl,
22650            const OFFSET: isize,
22651        >(
22652            this: *mut core::ffi::c_void,
22653            value: *mut *mut core::ffi::c_void,
22654        ) -> windows_core::HRESULT {
22655            unsafe {
22656                let this: &Identity =
22657                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
22658                match ICoreWebView2HttpRequestHeaders_Impl::GetIterator(this) {
22659                    Ok(ok__) => {
22660                        value.write(core::mem::transmute(ok__));
22661                        windows_core::HRESULT(0)
22662                    }
22663                    Err(err) => err.into(),
22664                }
22665            }
22666        }
22667        Self {
22668            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
22669            GetHeader: GetHeader::<Identity, OFFSET>,
22670            GetHeaders: GetHeaders::<Identity, OFFSET>,
22671            Contains: Contains::<Identity, OFFSET>,
22672            SetHeader: SetHeader::<Identity, OFFSET>,
22673            RemoveHeader: RemoveHeader::<Identity, OFFSET>,
22674            GetIterator: GetIterator::<Identity, OFFSET>,
22675        }
22676    }
22677    pub fn matches(iid: &windows_core::GUID) -> bool {
22678        iid == &<ICoreWebView2HttpRequestHeaders as windows_core::Interface>::IID
22679    }
22680}
22681impl windows_core::RuntimeName for ICoreWebView2HttpRequestHeaders {}
22682windows_core::imp::define_interface!(
22683    ICoreWebView2HttpResponseHeaders,
22684    ICoreWebView2HttpResponseHeaders_Vtbl,
22685    0x03c5ff5a_9b45_4a88_881c_89a9f328619c
22686);
22687windows_core::imp::interface_hierarchy!(ICoreWebView2HttpResponseHeaders, windows_core::IUnknown);
22688impl ICoreWebView2HttpResponseHeaders {
22689    pub unsafe fn AppendHeader<P0, P1>(&self, name: P0, value: P1) -> windows_core::Result<()>
22690    where
22691        P0: windows_core::Param<windows_core::PCWSTR>,
22692        P1: windows_core::Param<windows_core::PCWSTR>,
22693    {
22694        unsafe {
22695            (windows_core::Interface::vtable(self).AppendHeader)(
22696                windows_core::Interface::as_raw(self),
22697                name.param().abi(),
22698                value.param().abi(),
22699            )
22700            .ok()
22701        }
22702    }
22703    pub unsafe fn Contains<P0>(
22704        &self,
22705        name: P0,
22706        value: *mut windows_core::BOOL,
22707    ) -> windows_core::Result<()>
22708    where
22709        P0: windows_core::Param<windows_core::PCWSTR>,
22710    {
22711        unsafe {
22712            (windows_core::Interface::vtable(self).Contains)(
22713                windows_core::Interface::as_raw(self),
22714                name.param().abi(),
22715                value as _,
22716            )
22717            .ok()
22718        }
22719    }
22720    pub unsafe fn GetHeader<P0>(
22721        &self,
22722        name: P0,
22723        value: *mut windows_core::PWSTR,
22724    ) -> windows_core::Result<()>
22725    where
22726        P0: windows_core::Param<windows_core::PCWSTR>,
22727    {
22728        unsafe {
22729            (windows_core::Interface::vtable(self).GetHeader)(
22730                windows_core::Interface::as_raw(self),
22731                name.param().abi(),
22732                value as _,
22733            )
22734            .ok()
22735        }
22736    }
22737    pub unsafe fn GetHeaders<P0>(
22738        &self,
22739        name: P0,
22740    ) -> windows_core::Result<ICoreWebView2HttpHeadersCollectionIterator>
22741    where
22742        P0: windows_core::Param<windows_core::PCWSTR>,
22743    {
22744        unsafe {
22745            let mut result__ = core::mem::zeroed();
22746            (windows_core::Interface::vtable(self).GetHeaders)(
22747                windows_core::Interface::as_raw(self),
22748                name.param().abi(),
22749                &mut result__,
22750            )
22751            .and_then(|| windows_core::Type::from_abi(result__))
22752        }
22753    }
22754    pub unsafe fn GetIterator(
22755        &self,
22756    ) -> windows_core::Result<ICoreWebView2HttpHeadersCollectionIterator> {
22757        unsafe {
22758            let mut result__ = core::mem::zeroed();
22759            (windows_core::Interface::vtable(self).GetIterator)(
22760                windows_core::Interface::as_raw(self),
22761                &mut result__,
22762            )
22763            .and_then(|| windows_core::Type::from_abi(result__))
22764        }
22765    }
22766}
22767#[repr(C)]
22768#[doc(hidden)]
22769pub struct ICoreWebView2HttpResponseHeaders_Vtbl {
22770    pub base__: windows_core::IUnknown_Vtbl,
22771    pub AppendHeader: unsafe extern "system" fn(
22772        *mut core::ffi::c_void,
22773        windows_core::PCWSTR,
22774        windows_core::PCWSTR,
22775    ) -> windows_core::HRESULT,
22776    pub Contains: unsafe extern "system" fn(
22777        *mut core::ffi::c_void,
22778        windows_core::PCWSTR,
22779        *mut windows_core::BOOL,
22780    ) -> windows_core::HRESULT,
22781    pub GetHeader: unsafe extern "system" fn(
22782        *mut core::ffi::c_void,
22783        windows_core::PCWSTR,
22784        *mut windows_core::PWSTR,
22785    ) -> windows_core::HRESULT,
22786    pub GetHeaders: unsafe extern "system" fn(
22787        *mut core::ffi::c_void,
22788        windows_core::PCWSTR,
22789        *mut *mut core::ffi::c_void,
22790    ) -> windows_core::HRESULT,
22791    pub GetIterator: unsafe extern "system" fn(
22792        *mut core::ffi::c_void,
22793        *mut *mut core::ffi::c_void,
22794    ) -> windows_core::HRESULT,
22795}
22796pub trait ICoreWebView2HttpResponseHeaders_Impl: windows_core::IUnknownImpl {
22797    fn AppendHeader(
22798        &self,
22799        name: &windows_core::PCWSTR,
22800        value: &windows_core::PCWSTR,
22801    ) -> windows_core::Result<()>;
22802    fn Contains(
22803        &self,
22804        name: &windows_core::PCWSTR,
22805        value: *mut windows_core::BOOL,
22806    ) -> windows_core::Result<()>;
22807    fn GetHeader(
22808        &self,
22809        name: &windows_core::PCWSTR,
22810        value: *mut windows_core::PWSTR,
22811    ) -> windows_core::Result<()>;
22812    fn GetHeaders(
22813        &self,
22814        name: &windows_core::PCWSTR,
22815    ) -> windows_core::Result<ICoreWebView2HttpHeadersCollectionIterator>;
22816    fn GetIterator(&self) -> windows_core::Result<ICoreWebView2HttpHeadersCollectionIterator>;
22817}
22818impl ICoreWebView2HttpResponseHeaders_Vtbl {
22819    pub const fn new<Identity: ICoreWebView2HttpResponseHeaders_Impl, const OFFSET: isize>() -> Self
22820    {
22821        unsafe extern "system" fn AppendHeader<
22822            Identity: ICoreWebView2HttpResponseHeaders_Impl,
22823            const OFFSET: isize,
22824        >(
22825            this: *mut core::ffi::c_void,
22826            name: windows_core::PCWSTR,
22827            value: windows_core::PCWSTR,
22828        ) -> windows_core::HRESULT {
22829            unsafe {
22830                let this: &Identity =
22831                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
22832                ICoreWebView2HttpResponseHeaders_Impl::AppendHeader(
22833                    this,
22834                    core::mem::transmute(&name),
22835                    core::mem::transmute(&value),
22836                )
22837                .into()
22838            }
22839        }
22840        unsafe extern "system" fn Contains<
22841            Identity: ICoreWebView2HttpResponseHeaders_Impl,
22842            const OFFSET: isize,
22843        >(
22844            this: *mut core::ffi::c_void,
22845            name: windows_core::PCWSTR,
22846            value: *mut windows_core::BOOL,
22847        ) -> windows_core::HRESULT {
22848            unsafe {
22849                let this: &Identity =
22850                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
22851                ICoreWebView2HttpResponseHeaders_Impl::Contains(
22852                    this,
22853                    core::mem::transmute(&name),
22854                    core::mem::transmute_copy(&value),
22855                )
22856                .into()
22857            }
22858        }
22859        unsafe extern "system" fn GetHeader<
22860            Identity: ICoreWebView2HttpResponseHeaders_Impl,
22861            const OFFSET: isize,
22862        >(
22863            this: *mut core::ffi::c_void,
22864            name: windows_core::PCWSTR,
22865            value: *mut windows_core::PWSTR,
22866        ) -> windows_core::HRESULT {
22867            unsafe {
22868                let this: &Identity =
22869                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
22870                ICoreWebView2HttpResponseHeaders_Impl::GetHeader(
22871                    this,
22872                    core::mem::transmute(&name),
22873                    core::mem::transmute_copy(&value),
22874                )
22875                .into()
22876            }
22877        }
22878        unsafe extern "system" fn GetHeaders<
22879            Identity: ICoreWebView2HttpResponseHeaders_Impl,
22880            const OFFSET: isize,
22881        >(
22882            this: *mut core::ffi::c_void,
22883            name: windows_core::PCWSTR,
22884            value: *mut *mut core::ffi::c_void,
22885        ) -> windows_core::HRESULT {
22886            unsafe {
22887                let this: &Identity =
22888                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
22889                match ICoreWebView2HttpResponseHeaders_Impl::GetHeaders(
22890                    this,
22891                    core::mem::transmute(&name),
22892                ) {
22893                    Ok(ok__) => {
22894                        value.write(core::mem::transmute(ok__));
22895                        windows_core::HRESULT(0)
22896                    }
22897                    Err(err) => err.into(),
22898                }
22899            }
22900        }
22901        unsafe extern "system" fn GetIterator<
22902            Identity: ICoreWebView2HttpResponseHeaders_Impl,
22903            const OFFSET: isize,
22904        >(
22905            this: *mut core::ffi::c_void,
22906            value: *mut *mut core::ffi::c_void,
22907        ) -> windows_core::HRESULT {
22908            unsafe {
22909                let this: &Identity =
22910                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
22911                match ICoreWebView2HttpResponseHeaders_Impl::GetIterator(this) {
22912                    Ok(ok__) => {
22913                        value.write(core::mem::transmute(ok__));
22914                        windows_core::HRESULT(0)
22915                    }
22916                    Err(err) => err.into(),
22917                }
22918            }
22919        }
22920        Self {
22921            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
22922            AppendHeader: AppendHeader::<Identity, OFFSET>,
22923            Contains: Contains::<Identity, OFFSET>,
22924            GetHeader: GetHeader::<Identity, OFFSET>,
22925            GetHeaders: GetHeaders::<Identity, OFFSET>,
22926            GetIterator: GetIterator::<Identity, OFFSET>,
22927        }
22928    }
22929    pub fn matches(iid: &windows_core::GUID) -> bool {
22930        iid == &<ICoreWebView2HttpResponseHeaders as windows_core::Interface>::IID
22931    }
22932}
22933impl windows_core::RuntimeName for ICoreWebView2HttpResponseHeaders {}
22934windows_core::imp::define_interface!(
22935    ICoreWebView2IsDefaultDownloadDialogOpenChangedEventHandler,
22936    ICoreWebView2IsDefaultDownloadDialogOpenChangedEventHandler_Vtbl,
22937    0x3117da26_ae13_438d_bd46_edbeb2c4ce81
22938);
22939windows_core::imp::interface_hierarchy!(
22940    ICoreWebView2IsDefaultDownloadDialogOpenChangedEventHandler,
22941    windows_core::IUnknown
22942);
22943impl ICoreWebView2IsDefaultDownloadDialogOpenChangedEventHandler {
22944    pub unsafe fn Invoke<P0, P1>(&self, sender: P0, args: P1) -> windows_core::Result<()>
22945    where
22946        P0: windows_core::Param<ICoreWebView2>,
22947        P1: windows_core::Param<windows_core::IUnknown>,
22948    {
22949        unsafe {
22950            (windows_core::Interface::vtable(self).Invoke)(
22951                windows_core::Interface::as_raw(self),
22952                sender.param().abi(),
22953                args.param().abi(),
22954            )
22955            .ok()
22956        }
22957    }
22958}
22959#[repr(C)]
22960#[doc(hidden)]
22961pub struct ICoreWebView2IsDefaultDownloadDialogOpenChangedEventHandler_Vtbl {
22962    pub base__: windows_core::IUnknown_Vtbl,
22963    pub Invoke: unsafe extern "system" fn(
22964        *mut core::ffi::c_void,
22965        *mut core::ffi::c_void,
22966        *mut core::ffi::c_void,
22967    ) -> windows_core::HRESULT,
22968}
22969pub trait ICoreWebView2IsDefaultDownloadDialogOpenChangedEventHandler_Impl:
22970    windows_core::IUnknownImpl
22971{
22972    fn Invoke(
22973        &self,
22974        sender: windows_core::Ref<ICoreWebView2>,
22975        args: windows_core::Ref<windows_core::IUnknown>,
22976    ) -> windows_core::Result<()>;
22977}
22978impl ICoreWebView2IsDefaultDownloadDialogOpenChangedEventHandler_Vtbl {
22979    pub const fn new<
22980        Identity: ICoreWebView2IsDefaultDownloadDialogOpenChangedEventHandler_Impl,
22981        const OFFSET: isize,
22982    >() -> Self {
22983        unsafe extern "system" fn Invoke<
22984            Identity: ICoreWebView2IsDefaultDownloadDialogOpenChangedEventHandler_Impl,
22985            const OFFSET: isize,
22986        >(
22987            this: *mut core::ffi::c_void,
22988            sender: *mut core::ffi::c_void,
22989            args: *mut core::ffi::c_void,
22990        ) -> windows_core::HRESULT {
22991            unsafe {
22992                let this: &Identity =
22993                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
22994                ICoreWebView2IsDefaultDownloadDialogOpenChangedEventHandler_Impl::Invoke(
22995                    this,
22996                    core::mem::transmute_copy(&sender),
22997                    core::mem::transmute_copy(&args),
22998                )
22999                .into()
23000            }
23001        }
23002        Self {
23003            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
23004            Invoke: Invoke::<Identity, OFFSET>,
23005        }
23006    }
23007    pub fn matches(iid: &windows_core::GUID) -> bool {
23008        iid == & < ICoreWebView2IsDefaultDownloadDialogOpenChangedEventHandler as windows_core::Interface >::IID
23009    }
23010}
23011impl windows_core::RuntimeName for ICoreWebView2IsDefaultDownloadDialogOpenChangedEventHandler {}
23012windows_core::imp::define_interface!(
23013    ICoreWebView2IsDocumentPlayingAudioChangedEventHandler,
23014    ICoreWebView2IsDocumentPlayingAudioChangedEventHandler_Vtbl,
23015    0x5def109a_2f4b_49fa_b7f6_11c39e513328
23016);
23017windows_core::imp::interface_hierarchy!(
23018    ICoreWebView2IsDocumentPlayingAudioChangedEventHandler,
23019    windows_core::IUnknown
23020);
23021impl ICoreWebView2IsDocumentPlayingAudioChangedEventHandler {
23022    pub unsafe fn Invoke<P0, P1>(&self, sender: P0, args: P1) -> windows_core::Result<()>
23023    where
23024        P0: windows_core::Param<ICoreWebView2>,
23025        P1: windows_core::Param<windows_core::IUnknown>,
23026    {
23027        unsafe {
23028            (windows_core::Interface::vtable(self).Invoke)(
23029                windows_core::Interface::as_raw(self),
23030                sender.param().abi(),
23031                args.param().abi(),
23032            )
23033            .ok()
23034        }
23035    }
23036}
23037#[repr(C)]
23038#[doc(hidden)]
23039pub struct ICoreWebView2IsDocumentPlayingAudioChangedEventHandler_Vtbl {
23040    pub base__: windows_core::IUnknown_Vtbl,
23041    pub Invoke: unsafe extern "system" fn(
23042        *mut core::ffi::c_void,
23043        *mut core::ffi::c_void,
23044        *mut core::ffi::c_void,
23045    ) -> windows_core::HRESULT,
23046}
23047pub trait ICoreWebView2IsDocumentPlayingAudioChangedEventHandler_Impl:
23048    windows_core::IUnknownImpl
23049{
23050    fn Invoke(
23051        &self,
23052        sender: windows_core::Ref<ICoreWebView2>,
23053        args: windows_core::Ref<windows_core::IUnknown>,
23054    ) -> windows_core::Result<()>;
23055}
23056impl ICoreWebView2IsDocumentPlayingAudioChangedEventHandler_Vtbl {
23057    pub const fn new<
23058        Identity: ICoreWebView2IsDocumentPlayingAudioChangedEventHandler_Impl,
23059        const OFFSET: isize,
23060    >() -> Self {
23061        unsafe extern "system" fn Invoke<
23062            Identity: ICoreWebView2IsDocumentPlayingAudioChangedEventHandler_Impl,
23063            const OFFSET: isize,
23064        >(
23065            this: *mut core::ffi::c_void,
23066            sender: *mut core::ffi::c_void,
23067            args: *mut core::ffi::c_void,
23068        ) -> windows_core::HRESULT {
23069            unsafe {
23070                let this: &Identity =
23071                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
23072                ICoreWebView2IsDocumentPlayingAudioChangedEventHandler_Impl::Invoke(
23073                    this,
23074                    core::mem::transmute_copy(&sender),
23075                    core::mem::transmute_copy(&args),
23076                )
23077                .into()
23078            }
23079        }
23080        Self {
23081            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
23082            Invoke: Invoke::<Identity, OFFSET>,
23083        }
23084    }
23085    pub fn matches(iid: &windows_core::GUID) -> bool {
23086        iid == & < ICoreWebView2IsDocumentPlayingAudioChangedEventHandler as windows_core::Interface >::IID
23087    }
23088}
23089impl windows_core::RuntimeName for ICoreWebView2IsDocumentPlayingAudioChangedEventHandler {}
23090windows_core::imp::define_interface!(
23091    ICoreWebView2IsMutedChangedEventHandler,
23092    ICoreWebView2IsMutedChangedEventHandler_Vtbl,
23093    0x57d90347_cd0e_4952_a4a2_7483a2756f08
23094);
23095windows_core::imp::interface_hierarchy!(
23096    ICoreWebView2IsMutedChangedEventHandler,
23097    windows_core::IUnknown
23098);
23099impl ICoreWebView2IsMutedChangedEventHandler {
23100    pub unsafe fn Invoke<P0, P1>(&self, sender: P0, args: P1) -> windows_core::Result<()>
23101    where
23102        P0: windows_core::Param<ICoreWebView2>,
23103        P1: windows_core::Param<windows_core::IUnknown>,
23104    {
23105        unsafe {
23106            (windows_core::Interface::vtable(self).Invoke)(
23107                windows_core::Interface::as_raw(self),
23108                sender.param().abi(),
23109                args.param().abi(),
23110            )
23111            .ok()
23112        }
23113    }
23114}
23115#[repr(C)]
23116#[doc(hidden)]
23117pub struct ICoreWebView2IsMutedChangedEventHandler_Vtbl {
23118    pub base__: windows_core::IUnknown_Vtbl,
23119    pub Invoke: unsafe extern "system" fn(
23120        *mut core::ffi::c_void,
23121        *mut core::ffi::c_void,
23122        *mut core::ffi::c_void,
23123    ) -> windows_core::HRESULT,
23124}
23125pub trait ICoreWebView2IsMutedChangedEventHandler_Impl: windows_core::IUnknownImpl {
23126    fn Invoke(
23127        &self,
23128        sender: windows_core::Ref<ICoreWebView2>,
23129        args: windows_core::Ref<windows_core::IUnknown>,
23130    ) -> windows_core::Result<()>;
23131}
23132impl ICoreWebView2IsMutedChangedEventHandler_Vtbl {
23133    pub const fn new<
23134        Identity: ICoreWebView2IsMutedChangedEventHandler_Impl,
23135        const OFFSET: isize,
23136    >() -> Self {
23137        unsafe extern "system" fn Invoke<
23138            Identity: ICoreWebView2IsMutedChangedEventHandler_Impl,
23139            const OFFSET: isize,
23140        >(
23141            this: *mut core::ffi::c_void,
23142            sender: *mut core::ffi::c_void,
23143            args: *mut core::ffi::c_void,
23144        ) -> windows_core::HRESULT {
23145            unsafe {
23146                let this: &Identity =
23147                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
23148                ICoreWebView2IsMutedChangedEventHandler_Impl::Invoke(
23149                    this,
23150                    core::mem::transmute_copy(&sender),
23151                    core::mem::transmute_copy(&args),
23152                )
23153                .into()
23154            }
23155        }
23156        Self {
23157            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
23158            Invoke: Invoke::<Identity, OFFSET>,
23159        }
23160    }
23161    pub fn matches(iid: &windows_core::GUID) -> bool {
23162        iid == &<ICoreWebView2IsMutedChangedEventHandler as windows_core::Interface>::IID
23163    }
23164}
23165impl windows_core::RuntimeName for ICoreWebView2IsMutedChangedEventHandler {}
23166windows_core::imp::define_interface!(
23167    ICoreWebView2LaunchingExternalUriSchemeEventArgs,
23168    ICoreWebView2LaunchingExternalUriSchemeEventArgs_Vtbl,
23169    0x07d1a6c3_7175_4ba1_9306_e593ca07e46c
23170);
23171windows_core::imp::interface_hierarchy!(
23172    ICoreWebView2LaunchingExternalUriSchemeEventArgs,
23173    windows_core::IUnknown
23174);
23175impl ICoreWebView2LaunchingExternalUriSchemeEventArgs {
23176    pub unsafe fn Uri(&self, value: *mut windows_core::PWSTR) -> windows_core::Result<()> {
23177        unsafe {
23178            (windows_core::Interface::vtable(self).Uri)(
23179                windows_core::Interface::as_raw(self),
23180                value as _,
23181            )
23182            .ok()
23183        }
23184    }
23185    pub unsafe fn InitiatingOrigin(
23186        &self,
23187        value: *mut windows_core::PWSTR,
23188    ) -> windows_core::Result<()> {
23189        unsafe {
23190            (windows_core::Interface::vtable(self).InitiatingOrigin)(
23191                windows_core::Interface::as_raw(self),
23192                value as _,
23193            )
23194            .ok()
23195        }
23196    }
23197    pub unsafe fn IsUserInitiated(
23198        &self,
23199        value: *mut windows_core::BOOL,
23200    ) -> windows_core::Result<()> {
23201        unsafe {
23202            (windows_core::Interface::vtable(self).IsUserInitiated)(
23203                windows_core::Interface::as_raw(self),
23204                value as _,
23205            )
23206            .ok()
23207        }
23208    }
23209    pub unsafe fn Cancel(&self, value: *mut windows_core::BOOL) -> windows_core::Result<()> {
23210        unsafe {
23211            (windows_core::Interface::vtable(self).Cancel)(
23212                windows_core::Interface::as_raw(self),
23213                value as _,
23214            )
23215            .ok()
23216        }
23217    }
23218    pub unsafe fn SetCancel(&self, value: bool) -> windows_core::Result<()> {
23219        unsafe {
23220            (windows_core::Interface::vtable(self).SetCancel)(
23221                windows_core::Interface::as_raw(self),
23222                value.into(),
23223            )
23224            .ok()
23225        }
23226    }
23227    pub unsafe fn GetDeferral(&self) -> windows_core::Result<ICoreWebView2Deferral> {
23228        unsafe {
23229            let mut result__ = core::mem::zeroed();
23230            (windows_core::Interface::vtable(self).GetDeferral)(
23231                windows_core::Interface::as_raw(self),
23232                &mut result__,
23233            )
23234            .and_then(|| windows_core::Type::from_abi(result__))
23235        }
23236    }
23237}
23238#[repr(C)]
23239#[doc(hidden)]
23240pub struct ICoreWebView2LaunchingExternalUriSchemeEventArgs_Vtbl {
23241    pub base__: windows_core::IUnknown_Vtbl,
23242    pub Uri: unsafe extern "system" fn(
23243        *mut core::ffi::c_void,
23244        *mut windows_core::PWSTR,
23245    ) -> windows_core::HRESULT,
23246    pub InitiatingOrigin: unsafe extern "system" fn(
23247        *mut core::ffi::c_void,
23248        *mut windows_core::PWSTR,
23249    ) -> windows_core::HRESULT,
23250    pub IsUserInitiated: unsafe extern "system" fn(
23251        *mut core::ffi::c_void,
23252        *mut windows_core::BOOL,
23253    ) -> windows_core::HRESULT,
23254    pub Cancel: unsafe extern "system" fn(
23255        *mut core::ffi::c_void,
23256        *mut windows_core::BOOL,
23257    ) -> windows_core::HRESULT,
23258    pub SetCancel: unsafe extern "system" fn(
23259        *mut core::ffi::c_void,
23260        windows_core::BOOL,
23261    ) -> windows_core::HRESULT,
23262    pub GetDeferral: unsafe extern "system" fn(
23263        *mut core::ffi::c_void,
23264        *mut *mut core::ffi::c_void,
23265    ) -> windows_core::HRESULT,
23266}
23267pub trait ICoreWebView2LaunchingExternalUriSchemeEventArgs_Impl:
23268    windows_core::IUnknownImpl
23269{
23270    fn Uri(&self, value: *mut windows_core::PWSTR) -> windows_core::Result<()>;
23271    fn InitiatingOrigin(&self, value: *mut windows_core::PWSTR) -> windows_core::Result<()>;
23272    fn IsUserInitiated(&self, value: *mut windows_core::BOOL) -> windows_core::Result<()>;
23273    fn Cancel(&self, value: *mut windows_core::BOOL) -> windows_core::Result<()>;
23274    fn SetCancel(&self, value: windows_core::BOOL) -> windows_core::Result<()>;
23275    fn GetDeferral(&self) -> windows_core::Result<ICoreWebView2Deferral>;
23276}
23277impl ICoreWebView2LaunchingExternalUriSchemeEventArgs_Vtbl {
23278    pub const fn new<
23279        Identity: ICoreWebView2LaunchingExternalUriSchemeEventArgs_Impl,
23280        const OFFSET: isize,
23281    >() -> Self {
23282        unsafe extern "system" fn Uri<
23283            Identity: ICoreWebView2LaunchingExternalUriSchemeEventArgs_Impl,
23284            const OFFSET: isize,
23285        >(
23286            this: *mut core::ffi::c_void,
23287            value: *mut windows_core::PWSTR,
23288        ) -> windows_core::HRESULT {
23289            unsafe {
23290                let this: &Identity =
23291                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
23292                ICoreWebView2LaunchingExternalUriSchemeEventArgs_Impl::Uri(
23293                    this,
23294                    core::mem::transmute_copy(&value),
23295                )
23296                .into()
23297            }
23298        }
23299        unsafe extern "system" fn InitiatingOrigin<
23300            Identity: ICoreWebView2LaunchingExternalUriSchemeEventArgs_Impl,
23301            const OFFSET: isize,
23302        >(
23303            this: *mut core::ffi::c_void,
23304            value: *mut windows_core::PWSTR,
23305        ) -> windows_core::HRESULT {
23306            unsafe {
23307                let this: &Identity =
23308                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
23309                ICoreWebView2LaunchingExternalUriSchemeEventArgs_Impl::InitiatingOrigin(
23310                    this,
23311                    core::mem::transmute_copy(&value),
23312                )
23313                .into()
23314            }
23315        }
23316        unsafe extern "system" fn IsUserInitiated<
23317            Identity: ICoreWebView2LaunchingExternalUriSchemeEventArgs_Impl,
23318            const OFFSET: isize,
23319        >(
23320            this: *mut core::ffi::c_void,
23321            value: *mut windows_core::BOOL,
23322        ) -> windows_core::HRESULT {
23323            unsafe {
23324                let this: &Identity =
23325                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
23326                ICoreWebView2LaunchingExternalUriSchemeEventArgs_Impl::IsUserInitiated(
23327                    this,
23328                    core::mem::transmute_copy(&value),
23329                )
23330                .into()
23331            }
23332        }
23333        unsafe extern "system" fn Cancel<
23334            Identity: ICoreWebView2LaunchingExternalUriSchemeEventArgs_Impl,
23335            const OFFSET: isize,
23336        >(
23337            this: *mut core::ffi::c_void,
23338            value: *mut windows_core::BOOL,
23339        ) -> windows_core::HRESULT {
23340            unsafe {
23341                let this: &Identity =
23342                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
23343                ICoreWebView2LaunchingExternalUriSchemeEventArgs_Impl::Cancel(
23344                    this,
23345                    core::mem::transmute_copy(&value),
23346                )
23347                .into()
23348            }
23349        }
23350        unsafe extern "system" fn SetCancel<
23351            Identity: ICoreWebView2LaunchingExternalUriSchemeEventArgs_Impl,
23352            const OFFSET: isize,
23353        >(
23354            this: *mut core::ffi::c_void,
23355            value: windows_core::BOOL,
23356        ) -> windows_core::HRESULT {
23357            unsafe {
23358                let this: &Identity =
23359                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
23360                ICoreWebView2LaunchingExternalUriSchemeEventArgs_Impl::SetCancel(
23361                    this,
23362                    core::mem::transmute_copy(&value),
23363                )
23364                .into()
23365            }
23366        }
23367        unsafe extern "system" fn GetDeferral<
23368            Identity: ICoreWebView2LaunchingExternalUriSchemeEventArgs_Impl,
23369            const OFFSET: isize,
23370        >(
23371            this: *mut core::ffi::c_void,
23372            value: *mut *mut core::ffi::c_void,
23373        ) -> windows_core::HRESULT {
23374            unsafe {
23375                let this: &Identity =
23376                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
23377                match ICoreWebView2LaunchingExternalUriSchemeEventArgs_Impl::GetDeferral(this) {
23378                    Ok(ok__) => {
23379                        value.write(core::mem::transmute(ok__));
23380                        windows_core::HRESULT(0)
23381                    }
23382                    Err(err) => err.into(),
23383                }
23384            }
23385        }
23386        Self {
23387            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
23388            Uri: Uri::<Identity, OFFSET>,
23389            InitiatingOrigin: InitiatingOrigin::<Identity, OFFSET>,
23390            IsUserInitiated: IsUserInitiated::<Identity, OFFSET>,
23391            Cancel: Cancel::<Identity, OFFSET>,
23392            SetCancel: SetCancel::<Identity, OFFSET>,
23393            GetDeferral: GetDeferral::<Identity, OFFSET>,
23394        }
23395    }
23396    pub fn matches(iid: &windows_core::GUID) -> bool {
23397        iid == &<ICoreWebView2LaunchingExternalUriSchemeEventArgs as windows_core::Interface>::IID
23398    }
23399}
23400impl windows_core::RuntimeName for ICoreWebView2LaunchingExternalUriSchemeEventArgs {}
23401windows_core::imp::define_interface!(
23402    ICoreWebView2LaunchingExternalUriSchemeEventHandler,
23403    ICoreWebView2LaunchingExternalUriSchemeEventHandler_Vtbl,
23404    0x74f712e0_8165_43a9_a13f_0cce597e75df
23405);
23406windows_core::imp::interface_hierarchy!(
23407    ICoreWebView2LaunchingExternalUriSchemeEventHandler,
23408    windows_core::IUnknown
23409);
23410impl ICoreWebView2LaunchingExternalUriSchemeEventHandler {
23411    pub unsafe fn Invoke<P0, P1>(&self, sender: P0, args: P1) -> windows_core::Result<()>
23412    where
23413        P0: windows_core::Param<ICoreWebView2>,
23414        P1: windows_core::Param<ICoreWebView2LaunchingExternalUriSchemeEventArgs>,
23415    {
23416        unsafe {
23417            (windows_core::Interface::vtable(self).Invoke)(
23418                windows_core::Interface::as_raw(self),
23419                sender.param().abi(),
23420                args.param().abi(),
23421            )
23422            .ok()
23423        }
23424    }
23425}
23426#[repr(C)]
23427#[doc(hidden)]
23428pub struct ICoreWebView2LaunchingExternalUriSchemeEventHandler_Vtbl {
23429    pub base__: windows_core::IUnknown_Vtbl,
23430    pub Invoke: unsafe extern "system" fn(
23431        *mut core::ffi::c_void,
23432        *mut core::ffi::c_void,
23433        *mut core::ffi::c_void,
23434    ) -> windows_core::HRESULT,
23435}
23436pub trait ICoreWebView2LaunchingExternalUriSchemeEventHandler_Impl:
23437    windows_core::IUnknownImpl
23438{
23439    fn Invoke(
23440        &self,
23441        sender: windows_core::Ref<ICoreWebView2>,
23442        args: windows_core::Ref<ICoreWebView2LaunchingExternalUriSchemeEventArgs>,
23443    ) -> windows_core::Result<()>;
23444}
23445impl ICoreWebView2LaunchingExternalUriSchemeEventHandler_Vtbl {
23446    pub const fn new<
23447        Identity: ICoreWebView2LaunchingExternalUriSchemeEventHandler_Impl,
23448        const OFFSET: isize,
23449    >() -> Self {
23450        unsafe extern "system" fn Invoke<
23451            Identity: ICoreWebView2LaunchingExternalUriSchemeEventHandler_Impl,
23452            const OFFSET: isize,
23453        >(
23454            this: *mut core::ffi::c_void,
23455            sender: *mut core::ffi::c_void,
23456            args: *mut core::ffi::c_void,
23457        ) -> windows_core::HRESULT {
23458            unsafe {
23459                let this: &Identity =
23460                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
23461                ICoreWebView2LaunchingExternalUriSchemeEventHandler_Impl::Invoke(
23462                    this,
23463                    core::mem::transmute_copy(&sender),
23464                    core::mem::transmute_copy(&args),
23465                )
23466                .into()
23467            }
23468        }
23469        Self {
23470            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
23471            Invoke: Invoke::<Identity, OFFSET>,
23472        }
23473    }
23474    pub fn matches(iid: &windows_core::GUID) -> bool {
23475        iid == & < ICoreWebView2LaunchingExternalUriSchemeEventHandler as windows_core::Interface >::IID
23476    }
23477}
23478impl windows_core::RuntimeName for ICoreWebView2LaunchingExternalUriSchemeEventHandler {}
23479windows_core::imp::define_interface!(
23480    ICoreWebView2MoveFocusRequestedEventArgs,
23481    ICoreWebView2MoveFocusRequestedEventArgs_Vtbl,
23482    0x2d6aa13b_3839_4a15_92fc_d88b3c0d9c9d
23483);
23484windows_core::imp::interface_hierarchy!(
23485    ICoreWebView2MoveFocusRequestedEventArgs,
23486    windows_core::IUnknown
23487);
23488impl ICoreWebView2MoveFocusRequestedEventArgs {
23489    pub unsafe fn Reason(
23490        &self,
23491        reason: *mut COREWEBVIEW2_MOVE_FOCUS_REASON,
23492    ) -> windows_core::Result<()> {
23493        unsafe {
23494            (windows_core::Interface::vtable(self).Reason)(
23495                windows_core::Interface::as_raw(self),
23496                reason as _,
23497            )
23498            .ok()
23499        }
23500    }
23501    pub unsafe fn Handled(&self, value: *mut windows_core::BOOL) -> windows_core::Result<()> {
23502        unsafe {
23503            (windows_core::Interface::vtable(self).Handled)(
23504                windows_core::Interface::as_raw(self),
23505                value as _,
23506            )
23507            .ok()
23508        }
23509    }
23510    pub unsafe fn SetHandled(&self, value: bool) -> windows_core::Result<()> {
23511        unsafe {
23512            (windows_core::Interface::vtable(self).SetHandled)(
23513                windows_core::Interface::as_raw(self),
23514                value.into(),
23515            )
23516            .ok()
23517        }
23518    }
23519}
23520#[repr(C)]
23521#[doc(hidden)]
23522pub struct ICoreWebView2MoveFocusRequestedEventArgs_Vtbl {
23523    pub base__: windows_core::IUnknown_Vtbl,
23524    pub Reason: unsafe extern "system" fn(
23525        *mut core::ffi::c_void,
23526        *mut COREWEBVIEW2_MOVE_FOCUS_REASON,
23527    ) -> windows_core::HRESULT,
23528    pub Handled: unsafe extern "system" fn(
23529        *mut core::ffi::c_void,
23530        *mut windows_core::BOOL,
23531    ) -> windows_core::HRESULT,
23532    pub SetHandled: unsafe extern "system" fn(
23533        *mut core::ffi::c_void,
23534        windows_core::BOOL,
23535    ) -> windows_core::HRESULT,
23536}
23537pub trait ICoreWebView2MoveFocusRequestedEventArgs_Impl: windows_core::IUnknownImpl {
23538    fn Reason(&self, reason: *mut COREWEBVIEW2_MOVE_FOCUS_REASON) -> windows_core::Result<()>;
23539    fn Handled(&self, value: *mut windows_core::BOOL) -> windows_core::Result<()>;
23540    fn SetHandled(&self, value: windows_core::BOOL) -> windows_core::Result<()>;
23541}
23542impl ICoreWebView2MoveFocusRequestedEventArgs_Vtbl {
23543    pub const fn new<
23544        Identity: ICoreWebView2MoveFocusRequestedEventArgs_Impl,
23545        const OFFSET: isize,
23546    >() -> Self {
23547        unsafe extern "system" fn Reason<
23548            Identity: ICoreWebView2MoveFocusRequestedEventArgs_Impl,
23549            const OFFSET: isize,
23550        >(
23551            this: *mut core::ffi::c_void,
23552            reason: *mut COREWEBVIEW2_MOVE_FOCUS_REASON,
23553        ) -> windows_core::HRESULT {
23554            unsafe {
23555                let this: &Identity =
23556                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
23557                ICoreWebView2MoveFocusRequestedEventArgs_Impl::Reason(
23558                    this,
23559                    core::mem::transmute_copy(&reason),
23560                )
23561                .into()
23562            }
23563        }
23564        unsafe extern "system" fn Handled<
23565            Identity: ICoreWebView2MoveFocusRequestedEventArgs_Impl,
23566            const OFFSET: isize,
23567        >(
23568            this: *mut core::ffi::c_void,
23569            value: *mut windows_core::BOOL,
23570        ) -> windows_core::HRESULT {
23571            unsafe {
23572                let this: &Identity =
23573                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
23574                ICoreWebView2MoveFocusRequestedEventArgs_Impl::Handled(
23575                    this,
23576                    core::mem::transmute_copy(&value),
23577                )
23578                .into()
23579            }
23580        }
23581        unsafe extern "system" fn SetHandled<
23582            Identity: ICoreWebView2MoveFocusRequestedEventArgs_Impl,
23583            const OFFSET: isize,
23584        >(
23585            this: *mut core::ffi::c_void,
23586            value: windows_core::BOOL,
23587        ) -> windows_core::HRESULT {
23588            unsafe {
23589                let this: &Identity =
23590                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
23591                ICoreWebView2MoveFocusRequestedEventArgs_Impl::SetHandled(
23592                    this,
23593                    core::mem::transmute_copy(&value),
23594                )
23595                .into()
23596            }
23597        }
23598        Self {
23599            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
23600            Reason: Reason::<Identity, OFFSET>,
23601            Handled: Handled::<Identity, OFFSET>,
23602            SetHandled: SetHandled::<Identity, OFFSET>,
23603        }
23604    }
23605    pub fn matches(iid: &windows_core::GUID) -> bool {
23606        iid == &<ICoreWebView2MoveFocusRequestedEventArgs as windows_core::Interface>::IID
23607    }
23608}
23609impl windows_core::RuntimeName for ICoreWebView2MoveFocusRequestedEventArgs {}
23610windows_core::imp::define_interface!(
23611    ICoreWebView2MoveFocusRequestedEventHandler,
23612    ICoreWebView2MoveFocusRequestedEventHandler_Vtbl,
23613    0x69035451_6dc7_4cb8_9bce_b2bd70ad289f
23614);
23615windows_core::imp::interface_hierarchy!(
23616    ICoreWebView2MoveFocusRequestedEventHandler,
23617    windows_core::IUnknown
23618);
23619impl ICoreWebView2MoveFocusRequestedEventHandler {
23620    pub unsafe fn Invoke<P0, P1>(&self, sender: P0, args: P1) -> windows_core::Result<()>
23621    where
23622        P0: windows_core::Param<ICoreWebView2Controller>,
23623        P1: windows_core::Param<ICoreWebView2MoveFocusRequestedEventArgs>,
23624    {
23625        unsafe {
23626            (windows_core::Interface::vtable(self).Invoke)(
23627                windows_core::Interface::as_raw(self),
23628                sender.param().abi(),
23629                args.param().abi(),
23630            )
23631            .ok()
23632        }
23633    }
23634}
23635#[repr(C)]
23636#[doc(hidden)]
23637pub struct ICoreWebView2MoveFocusRequestedEventHandler_Vtbl {
23638    pub base__: windows_core::IUnknown_Vtbl,
23639    pub Invoke: unsafe extern "system" fn(
23640        *mut core::ffi::c_void,
23641        *mut core::ffi::c_void,
23642        *mut core::ffi::c_void,
23643    ) -> windows_core::HRESULT,
23644}
23645pub trait ICoreWebView2MoveFocusRequestedEventHandler_Impl: windows_core::IUnknownImpl {
23646    fn Invoke(
23647        &self,
23648        sender: windows_core::Ref<ICoreWebView2Controller>,
23649        args: windows_core::Ref<ICoreWebView2MoveFocusRequestedEventArgs>,
23650    ) -> windows_core::Result<()>;
23651}
23652impl ICoreWebView2MoveFocusRequestedEventHandler_Vtbl {
23653    pub const fn new<
23654        Identity: ICoreWebView2MoveFocusRequestedEventHandler_Impl,
23655        const OFFSET: isize,
23656    >() -> Self {
23657        unsafe extern "system" fn Invoke<
23658            Identity: ICoreWebView2MoveFocusRequestedEventHandler_Impl,
23659            const OFFSET: isize,
23660        >(
23661            this: *mut core::ffi::c_void,
23662            sender: *mut core::ffi::c_void,
23663            args: *mut core::ffi::c_void,
23664        ) -> windows_core::HRESULT {
23665            unsafe {
23666                let this: &Identity =
23667                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
23668                ICoreWebView2MoveFocusRequestedEventHandler_Impl::Invoke(
23669                    this,
23670                    core::mem::transmute_copy(&sender),
23671                    core::mem::transmute_copy(&args),
23672                )
23673                .into()
23674            }
23675        }
23676        Self {
23677            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
23678            Invoke: Invoke::<Identity, OFFSET>,
23679        }
23680    }
23681    pub fn matches(iid: &windows_core::GUID) -> bool {
23682        iid == &<ICoreWebView2MoveFocusRequestedEventHandler as windows_core::Interface>::IID
23683    }
23684}
23685impl windows_core::RuntimeName for ICoreWebView2MoveFocusRequestedEventHandler {}
23686windows_core::imp::define_interface!(
23687    ICoreWebView2NavigationCompletedEventArgs,
23688    ICoreWebView2NavigationCompletedEventArgs_Vtbl,
23689    0x30d68b7d_20d9_4752_a9ca_ec8448fbb5c1
23690);
23691windows_core::imp::interface_hierarchy!(
23692    ICoreWebView2NavigationCompletedEventArgs,
23693    windows_core::IUnknown
23694);
23695impl ICoreWebView2NavigationCompletedEventArgs {
23696    pub unsafe fn IsSuccess(&self, issuccess: *mut windows_core::BOOL) -> windows_core::Result<()> {
23697        unsafe {
23698            (windows_core::Interface::vtable(self).IsSuccess)(
23699                windows_core::Interface::as_raw(self),
23700                issuccess as _,
23701            )
23702            .ok()
23703        }
23704    }
23705    pub unsafe fn WebErrorStatus(
23706        &self,
23707        weberrorstatus: *mut COREWEBVIEW2_WEB_ERROR_STATUS,
23708    ) -> windows_core::Result<()> {
23709        unsafe {
23710            (windows_core::Interface::vtable(self).WebErrorStatus)(
23711                windows_core::Interface::as_raw(self),
23712                weberrorstatus as _,
23713            )
23714            .ok()
23715        }
23716    }
23717    pub unsafe fn NavigationId(&self, navigationid: *mut u64) -> windows_core::Result<()> {
23718        unsafe {
23719            (windows_core::Interface::vtable(self).NavigationId)(
23720                windows_core::Interface::as_raw(self),
23721                navigationid as _,
23722            )
23723            .ok()
23724        }
23725    }
23726}
23727#[repr(C)]
23728#[doc(hidden)]
23729pub struct ICoreWebView2NavigationCompletedEventArgs_Vtbl {
23730    pub base__: windows_core::IUnknown_Vtbl,
23731    pub IsSuccess: unsafe extern "system" fn(
23732        *mut core::ffi::c_void,
23733        *mut windows_core::BOOL,
23734    ) -> windows_core::HRESULT,
23735    pub WebErrorStatus: unsafe extern "system" fn(
23736        *mut core::ffi::c_void,
23737        *mut COREWEBVIEW2_WEB_ERROR_STATUS,
23738    ) -> windows_core::HRESULT,
23739    pub NavigationId:
23740        unsafe extern "system" fn(*mut core::ffi::c_void, *mut u64) -> windows_core::HRESULT,
23741}
23742pub trait ICoreWebView2NavigationCompletedEventArgs_Impl: windows_core::IUnknownImpl {
23743    fn IsSuccess(&self, issuccess: *mut windows_core::BOOL) -> windows_core::Result<()>;
23744    fn WebErrorStatus(
23745        &self,
23746        weberrorstatus: *mut COREWEBVIEW2_WEB_ERROR_STATUS,
23747    ) -> windows_core::Result<()>;
23748    fn NavigationId(&self, navigationid: *mut u64) -> windows_core::Result<()>;
23749}
23750impl ICoreWebView2NavigationCompletedEventArgs_Vtbl {
23751    pub const fn new<
23752        Identity: ICoreWebView2NavigationCompletedEventArgs_Impl,
23753        const OFFSET: isize,
23754    >() -> Self {
23755        unsafe extern "system" fn IsSuccess<
23756            Identity: ICoreWebView2NavigationCompletedEventArgs_Impl,
23757            const OFFSET: isize,
23758        >(
23759            this: *mut core::ffi::c_void,
23760            issuccess: *mut windows_core::BOOL,
23761        ) -> windows_core::HRESULT {
23762            unsafe {
23763                let this: &Identity =
23764                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
23765                ICoreWebView2NavigationCompletedEventArgs_Impl::IsSuccess(
23766                    this,
23767                    core::mem::transmute_copy(&issuccess),
23768                )
23769                .into()
23770            }
23771        }
23772        unsafe extern "system" fn WebErrorStatus<
23773            Identity: ICoreWebView2NavigationCompletedEventArgs_Impl,
23774            const OFFSET: isize,
23775        >(
23776            this: *mut core::ffi::c_void,
23777            weberrorstatus: *mut COREWEBVIEW2_WEB_ERROR_STATUS,
23778        ) -> windows_core::HRESULT {
23779            unsafe {
23780                let this: &Identity =
23781                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
23782                ICoreWebView2NavigationCompletedEventArgs_Impl::WebErrorStatus(
23783                    this,
23784                    core::mem::transmute_copy(&weberrorstatus),
23785                )
23786                .into()
23787            }
23788        }
23789        unsafe extern "system" fn NavigationId<
23790            Identity: ICoreWebView2NavigationCompletedEventArgs_Impl,
23791            const OFFSET: isize,
23792        >(
23793            this: *mut core::ffi::c_void,
23794            navigationid: *mut u64,
23795        ) -> windows_core::HRESULT {
23796            unsafe {
23797                let this: &Identity =
23798                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
23799                ICoreWebView2NavigationCompletedEventArgs_Impl::NavigationId(
23800                    this,
23801                    core::mem::transmute_copy(&navigationid),
23802                )
23803                .into()
23804            }
23805        }
23806        Self {
23807            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
23808            IsSuccess: IsSuccess::<Identity, OFFSET>,
23809            WebErrorStatus: WebErrorStatus::<Identity, OFFSET>,
23810            NavigationId: NavigationId::<Identity, OFFSET>,
23811        }
23812    }
23813    pub fn matches(iid: &windows_core::GUID) -> bool {
23814        iid == &<ICoreWebView2NavigationCompletedEventArgs as windows_core::Interface>::IID
23815    }
23816}
23817impl windows_core::RuntimeName for ICoreWebView2NavigationCompletedEventArgs {}
23818windows_core::imp::define_interface!(
23819    ICoreWebView2NavigationCompletedEventArgs2,
23820    ICoreWebView2NavigationCompletedEventArgs2_Vtbl,
23821    0xfdf8b738_ee1e_4db2_a329_8d7d7b74d792
23822);
23823impl core::ops::Deref for ICoreWebView2NavigationCompletedEventArgs2 {
23824    type Target = ICoreWebView2NavigationCompletedEventArgs;
23825    fn deref(&self) -> &Self::Target {
23826        unsafe { core::mem::transmute(self) }
23827    }
23828}
23829windows_core::imp::interface_hierarchy!(
23830    ICoreWebView2NavigationCompletedEventArgs2,
23831    windows_core::IUnknown,
23832    ICoreWebView2NavigationCompletedEventArgs
23833);
23834impl ICoreWebView2NavigationCompletedEventArgs2 {
23835    pub unsafe fn HttpStatusCode(&self, value: *mut i32) -> windows_core::Result<()> {
23836        unsafe {
23837            (windows_core::Interface::vtable(self).HttpStatusCode)(
23838                windows_core::Interface::as_raw(self),
23839                value as _,
23840            )
23841            .ok()
23842        }
23843    }
23844}
23845#[repr(C)]
23846#[doc(hidden)]
23847pub struct ICoreWebView2NavigationCompletedEventArgs2_Vtbl {
23848    pub base__: ICoreWebView2NavigationCompletedEventArgs_Vtbl,
23849    pub HttpStatusCode:
23850        unsafe extern "system" fn(*mut core::ffi::c_void, *mut i32) -> windows_core::HRESULT,
23851}
23852pub trait ICoreWebView2NavigationCompletedEventArgs2_Impl:
23853    ICoreWebView2NavigationCompletedEventArgs_Impl
23854{
23855    fn HttpStatusCode(&self, value: *mut i32) -> windows_core::Result<()>;
23856}
23857impl ICoreWebView2NavigationCompletedEventArgs2_Vtbl {
23858    pub const fn new<
23859        Identity: ICoreWebView2NavigationCompletedEventArgs2_Impl,
23860        const OFFSET: isize,
23861    >() -> Self {
23862        unsafe extern "system" fn HttpStatusCode<
23863            Identity: ICoreWebView2NavigationCompletedEventArgs2_Impl,
23864            const OFFSET: isize,
23865        >(
23866            this: *mut core::ffi::c_void,
23867            value: *mut i32,
23868        ) -> windows_core::HRESULT {
23869            unsafe {
23870                let this: &Identity =
23871                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
23872                ICoreWebView2NavigationCompletedEventArgs2_Impl::HttpStatusCode(
23873                    this,
23874                    core::mem::transmute_copy(&value),
23875                )
23876                .into()
23877            }
23878        }
23879        Self {
23880            base__: ICoreWebView2NavigationCompletedEventArgs_Vtbl::new::<Identity, OFFSET>(),
23881            HttpStatusCode: HttpStatusCode::<Identity, OFFSET>,
23882        }
23883    }
23884    pub fn matches(iid: &windows_core::GUID) -> bool {
23885        iid == &<ICoreWebView2NavigationCompletedEventArgs2 as windows_core::Interface>::IID
23886            || iid == &<ICoreWebView2NavigationCompletedEventArgs as windows_core::Interface>::IID
23887    }
23888}
23889impl windows_core::RuntimeName for ICoreWebView2NavigationCompletedEventArgs2 {}
23890windows_core::imp::define_interface!(
23891    ICoreWebView2NavigationCompletedEventHandler,
23892    ICoreWebView2NavigationCompletedEventHandler_Vtbl,
23893    0xd33a35bf_1c49_4f98_93ab_006e0533fe1c
23894);
23895windows_core::imp::interface_hierarchy!(
23896    ICoreWebView2NavigationCompletedEventHandler,
23897    windows_core::IUnknown
23898);
23899impl ICoreWebView2NavigationCompletedEventHandler {
23900    pub unsafe fn Invoke<P0, P1>(&self, sender: P0, args: P1) -> windows_core::Result<()>
23901    where
23902        P0: windows_core::Param<ICoreWebView2>,
23903        P1: windows_core::Param<ICoreWebView2NavigationCompletedEventArgs>,
23904    {
23905        unsafe {
23906            (windows_core::Interface::vtable(self).Invoke)(
23907                windows_core::Interface::as_raw(self),
23908                sender.param().abi(),
23909                args.param().abi(),
23910            )
23911            .ok()
23912        }
23913    }
23914}
23915#[repr(C)]
23916#[doc(hidden)]
23917pub struct ICoreWebView2NavigationCompletedEventHandler_Vtbl {
23918    pub base__: windows_core::IUnknown_Vtbl,
23919    pub Invoke: unsafe extern "system" fn(
23920        *mut core::ffi::c_void,
23921        *mut core::ffi::c_void,
23922        *mut core::ffi::c_void,
23923    ) -> windows_core::HRESULT,
23924}
23925pub trait ICoreWebView2NavigationCompletedEventHandler_Impl: windows_core::IUnknownImpl {
23926    fn Invoke(
23927        &self,
23928        sender: windows_core::Ref<ICoreWebView2>,
23929        args: windows_core::Ref<ICoreWebView2NavigationCompletedEventArgs>,
23930    ) -> windows_core::Result<()>;
23931}
23932impl ICoreWebView2NavigationCompletedEventHandler_Vtbl {
23933    pub const fn new<
23934        Identity: ICoreWebView2NavigationCompletedEventHandler_Impl,
23935        const OFFSET: isize,
23936    >() -> Self {
23937        unsafe extern "system" fn Invoke<
23938            Identity: ICoreWebView2NavigationCompletedEventHandler_Impl,
23939            const OFFSET: isize,
23940        >(
23941            this: *mut core::ffi::c_void,
23942            sender: *mut core::ffi::c_void,
23943            args: *mut core::ffi::c_void,
23944        ) -> windows_core::HRESULT {
23945            unsafe {
23946                let this: &Identity =
23947                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
23948                ICoreWebView2NavigationCompletedEventHandler_Impl::Invoke(
23949                    this,
23950                    core::mem::transmute_copy(&sender),
23951                    core::mem::transmute_copy(&args),
23952                )
23953                .into()
23954            }
23955        }
23956        Self {
23957            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
23958            Invoke: Invoke::<Identity, OFFSET>,
23959        }
23960    }
23961    pub fn matches(iid: &windows_core::GUID) -> bool {
23962        iid == &<ICoreWebView2NavigationCompletedEventHandler as windows_core::Interface>::IID
23963    }
23964}
23965impl windows_core::RuntimeName for ICoreWebView2NavigationCompletedEventHandler {}
23966windows_core::imp::define_interface!(
23967    ICoreWebView2NavigationStartingEventArgs,
23968    ICoreWebView2NavigationStartingEventArgs_Vtbl,
23969    0x5b495469_e119_438a_9b18_7604f25f2e49
23970);
23971windows_core::imp::interface_hierarchy!(
23972    ICoreWebView2NavigationStartingEventArgs,
23973    windows_core::IUnknown
23974);
23975impl ICoreWebView2NavigationStartingEventArgs {
23976    pub unsafe fn Uri(&self, uri: *mut windows_core::PWSTR) -> windows_core::Result<()> {
23977        unsafe {
23978            (windows_core::Interface::vtable(self).Uri)(
23979                windows_core::Interface::as_raw(self),
23980                uri as _,
23981            )
23982            .ok()
23983        }
23984    }
23985    pub unsafe fn IsUserInitiated(
23986        &self,
23987        isuserinitiated: *mut windows_core::BOOL,
23988    ) -> windows_core::Result<()> {
23989        unsafe {
23990            (windows_core::Interface::vtable(self).IsUserInitiated)(
23991                windows_core::Interface::as_raw(self),
23992                isuserinitiated as _,
23993            )
23994            .ok()
23995        }
23996    }
23997    pub unsafe fn IsRedirected(
23998        &self,
23999        isredirected: *mut windows_core::BOOL,
24000    ) -> windows_core::Result<()> {
24001        unsafe {
24002            (windows_core::Interface::vtable(self).IsRedirected)(
24003                windows_core::Interface::as_raw(self),
24004                isredirected as _,
24005            )
24006            .ok()
24007        }
24008    }
24009    pub unsafe fn RequestHeaders(&self) -> windows_core::Result<ICoreWebView2HttpRequestHeaders> {
24010        unsafe {
24011            let mut result__ = core::mem::zeroed();
24012            (windows_core::Interface::vtable(self).RequestHeaders)(
24013                windows_core::Interface::as_raw(self),
24014                &mut result__,
24015            )
24016            .and_then(|| windows_core::Type::from_abi(result__))
24017        }
24018    }
24019    pub unsafe fn Cancel(&self, cancel: *mut windows_core::BOOL) -> windows_core::Result<()> {
24020        unsafe {
24021            (windows_core::Interface::vtable(self).Cancel)(
24022                windows_core::Interface::as_raw(self),
24023                cancel as _,
24024            )
24025            .ok()
24026        }
24027    }
24028    pub unsafe fn SetCancel(&self, cancel: bool) -> windows_core::Result<()> {
24029        unsafe {
24030            (windows_core::Interface::vtable(self).SetCancel)(
24031                windows_core::Interface::as_raw(self),
24032                cancel.into(),
24033            )
24034            .ok()
24035        }
24036    }
24037    pub unsafe fn NavigationId(&self, navigationid: *mut u64) -> windows_core::Result<()> {
24038        unsafe {
24039            (windows_core::Interface::vtable(self).NavigationId)(
24040                windows_core::Interface::as_raw(self),
24041                navigationid as _,
24042            )
24043            .ok()
24044        }
24045    }
24046}
24047#[repr(C)]
24048#[doc(hidden)]
24049pub struct ICoreWebView2NavigationStartingEventArgs_Vtbl {
24050    pub base__: windows_core::IUnknown_Vtbl,
24051    pub Uri: unsafe extern "system" fn(
24052        *mut core::ffi::c_void,
24053        *mut windows_core::PWSTR,
24054    ) -> windows_core::HRESULT,
24055    pub IsUserInitiated: unsafe extern "system" fn(
24056        *mut core::ffi::c_void,
24057        *mut windows_core::BOOL,
24058    ) -> windows_core::HRESULT,
24059    pub IsRedirected: unsafe extern "system" fn(
24060        *mut core::ffi::c_void,
24061        *mut windows_core::BOOL,
24062    ) -> windows_core::HRESULT,
24063    pub RequestHeaders: unsafe extern "system" fn(
24064        *mut core::ffi::c_void,
24065        *mut *mut core::ffi::c_void,
24066    ) -> windows_core::HRESULT,
24067    pub Cancel: unsafe extern "system" fn(
24068        *mut core::ffi::c_void,
24069        *mut windows_core::BOOL,
24070    ) -> windows_core::HRESULT,
24071    pub SetCancel: unsafe extern "system" fn(
24072        *mut core::ffi::c_void,
24073        windows_core::BOOL,
24074    ) -> windows_core::HRESULT,
24075    pub NavigationId:
24076        unsafe extern "system" fn(*mut core::ffi::c_void, *mut u64) -> windows_core::HRESULT,
24077}
24078pub trait ICoreWebView2NavigationStartingEventArgs_Impl: windows_core::IUnknownImpl {
24079    fn Uri(&self, uri: *mut windows_core::PWSTR) -> windows_core::Result<()>;
24080    fn IsUserInitiated(&self, isuserinitiated: *mut windows_core::BOOL)
24081        -> windows_core::Result<()>;
24082    fn IsRedirected(&self, isredirected: *mut windows_core::BOOL) -> windows_core::Result<()>;
24083    fn RequestHeaders(&self) -> windows_core::Result<ICoreWebView2HttpRequestHeaders>;
24084    fn Cancel(&self, cancel: *mut windows_core::BOOL) -> windows_core::Result<()>;
24085    fn SetCancel(&self, cancel: windows_core::BOOL) -> windows_core::Result<()>;
24086    fn NavigationId(&self, navigationid: *mut u64) -> windows_core::Result<()>;
24087}
24088impl ICoreWebView2NavigationStartingEventArgs_Vtbl {
24089    pub const fn new<
24090        Identity: ICoreWebView2NavigationStartingEventArgs_Impl,
24091        const OFFSET: isize,
24092    >() -> Self {
24093        unsafe extern "system" fn Uri<
24094            Identity: ICoreWebView2NavigationStartingEventArgs_Impl,
24095            const OFFSET: isize,
24096        >(
24097            this: *mut core::ffi::c_void,
24098            uri: *mut windows_core::PWSTR,
24099        ) -> windows_core::HRESULT {
24100            unsafe {
24101                let this: &Identity =
24102                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
24103                ICoreWebView2NavigationStartingEventArgs_Impl::Uri(
24104                    this,
24105                    core::mem::transmute_copy(&uri),
24106                )
24107                .into()
24108            }
24109        }
24110        unsafe extern "system" fn IsUserInitiated<
24111            Identity: ICoreWebView2NavigationStartingEventArgs_Impl,
24112            const OFFSET: isize,
24113        >(
24114            this: *mut core::ffi::c_void,
24115            isuserinitiated: *mut windows_core::BOOL,
24116        ) -> windows_core::HRESULT {
24117            unsafe {
24118                let this: &Identity =
24119                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
24120                ICoreWebView2NavigationStartingEventArgs_Impl::IsUserInitiated(
24121                    this,
24122                    core::mem::transmute_copy(&isuserinitiated),
24123                )
24124                .into()
24125            }
24126        }
24127        unsafe extern "system" fn IsRedirected<
24128            Identity: ICoreWebView2NavigationStartingEventArgs_Impl,
24129            const OFFSET: isize,
24130        >(
24131            this: *mut core::ffi::c_void,
24132            isredirected: *mut windows_core::BOOL,
24133        ) -> windows_core::HRESULT {
24134            unsafe {
24135                let this: &Identity =
24136                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
24137                ICoreWebView2NavigationStartingEventArgs_Impl::IsRedirected(
24138                    this,
24139                    core::mem::transmute_copy(&isredirected),
24140                )
24141                .into()
24142            }
24143        }
24144        unsafe extern "system" fn RequestHeaders<
24145            Identity: ICoreWebView2NavigationStartingEventArgs_Impl,
24146            const OFFSET: isize,
24147        >(
24148            this: *mut core::ffi::c_void,
24149            requestheaders: *mut *mut core::ffi::c_void,
24150        ) -> windows_core::HRESULT {
24151            unsafe {
24152                let this: &Identity =
24153                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
24154                match ICoreWebView2NavigationStartingEventArgs_Impl::RequestHeaders(this) {
24155                    Ok(ok__) => {
24156                        requestheaders.write(core::mem::transmute(ok__));
24157                        windows_core::HRESULT(0)
24158                    }
24159                    Err(err) => err.into(),
24160                }
24161            }
24162        }
24163        unsafe extern "system" fn Cancel<
24164            Identity: ICoreWebView2NavigationStartingEventArgs_Impl,
24165            const OFFSET: isize,
24166        >(
24167            this: *mut core::ffi::c_void,
24168            cancel: *mut windows_core::BOOL,
24169        ) -> windows_core::HRESULT {
24170            unsafe {
24171                let this: &Identity =
24172                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
24173                ICoreWebView2NavigationStartingEventArgs_Impl::Cancel(
24174                    this,
24175                    core::mem::transmute_copy(&cancel),
24176                )
24177                .into()
24178            }
24179        }
24180        unsafe extern "system" fn SetCancel<
24181            Identity: ICoreWebView2NavigationStartingEventArgs_Impl,
24182            const OFFSET: isize,
24183        >(
24184            this: *mut core::ffi::c_void,
24185            cancel: windows_core::BOOL,
24186        ) -> windows_core::HRESULT {
24187            unsafe {
24188                let this: &Identity =
24189                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
24190                ICoreWebView2NavigationStartingEventArgs_Impl::SetCancel(
24191                    this,
24192                    core::mem::transmute_copy(&cancel),
24193                )
24194                .into()
24195            }
24196        }
24197        unsafe extern "system" fn NavigationId<
24198            Identity: ICoreWebView2NavigationStartingEventArgs_Impl,
24199            const OFFSET: isize,
24200        >(
24201            this: *mut core::ffi::c_void,
24202            navigationid: *mut u64,
24203        ) -> windows_core::HRESULT {
24204            unsafe {
24205                let this: &Identity =
24206                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
24207                ICoreWebView2NavigationStartingEventArgs_Impl::NavigationId(
24208                    this,
24209                    core::mem::transmute_copy(&navigationid),
24210                )
24211                .into()
24212            }
24213        }
24214        Self {
24215            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
24216            Uri: Uri::<Identity, OFFSET>,
24217            IsUserInitiated: IsUserInitiated::<Identity, OFFSET>,
24218            IsRedirected: IsRedirected::<Identity, OFFSET>,
24219            RequestHeaders: RequestHeaders::<Identity, OFFSET>,
24220            Cancel: Cancel::<Identity, OFFSET>,
24221            SetCancel: SetCancel::<Identity, OFFSET>,
24222            NavigationId: NavigationId::<Identity, OFFSET>,
24223        }
24224    }
24225    pub fn matches(iid: &windows_core::GUID) -> bool {
24226        iid == &<ICoreWebView2NavigationStartingEventArgs as windows_core::Interface>::IID
24227    }
24228}
24229impl windows_core::RuntimeName for ICoreWebView2NavigationStartingEventArgs {}
24230windows_core::imp::define_interface!(
24231    ICoreWebView2NavigationStartingEventArgs2,
24232    ICoreWebView2NavigationStartingEventArgs2_Vtbl,
24233    0x9086be93_91aa_472d_a7e0_579f2ba006ad
24234);
24235impl core::ops::Deref for ICoreWebView2NavigationStartingEventArgs2 {
24236    type Target = ICoreWebView2NavigationStartingEventArgs;
24237    fn deref(&self) -> &Self::Target {
24238        unsafe { core::mem::transmute(self) }
24239    }
24240}
24241windows_core::imp::interface_hierarchy!(
24242    ICoreWebView2NavigationStartingEventArgs2,
24243    windows_core::IUnknown,
24244    ICoreWebView2NavigationStartingEventArgs
24245);
24246impl ICoreWebView2NavigationStartingEventArgs2 {
24247    pub unsafe fn AdditionalAllowedFrameAncestors(
24248        &self,
24249        value: *mut windows_core::PWSTR,
24250    ) -> windows_core::Result<()> {
24251        unsafe {
24252            (windows_core::Interface::vtable(self).AdditionalAllowedFrameAncestors)(
24253                windows_core::Interface::as_raw(self),
24254                value as _,
24255            )
24256            .ok()
24257        }
24258    }
24259    pub unsafe fn SetAdditionalAllowedFrameAncestors<P0>(
24260        &self,
24261        value: P0,
24262    ) -> windows_core::Result<()>
24263    where
24264        P0: windows_core::Param<windows_core::PCWSTR>,
24265    {
24266        unsafe {
24267            (windows_core::Interface::vtable(self).SetAdditionalAllowedFrameAncestors)(
24268                windows_core::Interface::as_raw(self),
24269                value.param().abi(),
24270            )
24271            .ok()
24272        }
24273    }
24274}
24275#[repr(C)]
24276#[doc(hidden)]
24277pub struct ICoreWebView2NavigationStartingEventArgs2_Vtbl {
24278    pub base__: ICoreWebView2NavigationStartingEventArgs_Vtbl,
24279    pub AdditionalAllowedFrameAncestors: unsafe extern "system" fn(
24280        *mut core::ffi::c_void,
24281        *mut windows_core::PWSTR,
24282    ) -> windows_core::HRESULT,
24283    pub SetAdditionalAllowedFrameAncestors: unsafe extern "system" fn(
24284        *mut core::ffi::c_void,
24285        windows_core::PCWSTR,
24286    ) -> windows_core::HRESULT,
24287}
24288pub trait ICoreWebView2NavigationStartingEventArgs2_Impl:
24289    ICoreWebView2NavigationStartingEventArgs_Impl
24290{
24291    fn AdditionalAllowedFrameAncestors(
24292        &self,
24293        value: *mut windows_core::PWSTR,
24294    ) -> windows_core::Result<()>;
24295    fn SetAdditionalAllowedFrameAncestors(
24296        &self,
24297        value: &windows_core::PCWSTR,
24298    ) -> windows_core::Result<()>;
24299}
24300impl ICoreWebView2NavigationStartingEventArgs2_Vtbl {
24301    pub const fn new<
24302        Identity: ICoreWebView2NavigationStartingEventArgs2_Impl,
24303        const OFFSET: isize,
24304    >() -> Self {
24305        unsafe extern "system" fn AdditionalAllowedFrameAncestors<
24306            Identity: ICoreWebView2NavigationStartingEventArgs2_Impl,
24307            const OFFSET: isize,
24308        >(
24309            this: *mut core::ffi::c_void,
24310            value: *mut windows_core::PWSTR,
24311        ) -> windows_core::HRESULT {
24312            unsafe {
24313                let this: &Identity =
24314                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
24315                ICoreWebView2NavigationStartingEventArgs2_Impl::AdditionalAllowedFrameAncestors(
24316                    this,
24317                    core::mem::transmute_copy(&value),
24318                )
24319                .into()
24320            }
24321        }
24322        unsafe extern "system" fn SetAdditionalAllowedFrameAncestors<
24323            Identity: ICoreWebView2NavigationStartingEventArgs2_Impl,
24324            const OFFSET: isize,
24325        >(
24326            this: *mut core::ffi::c_void,
24327            value: windows_core::PCWSTR,
24328        ) -> windows_core::HRESULT {
24329            unsafe {
24330                let this: &Identity =
24331                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
24332                ICoreWebView2NavigationStartingEventArgs2_Impl::SetAdditionalAllowedFrameAncestors(
24333                    this,
24334                    core::mem::transmute(&value),
24335                )
24336                .into()
24337            }
24338        }
24339        Self {
24340            base__: ICoreWebView2NavigationStartingEventArgs_Vtbl::new::<Identity, OFFSET>(),
24341            AdditionalAllowedFrameAncestors: AdditionalAllowedFrameAncestors::<Identity, OFFSET>,
24342            SetAdditionalAllowedFrameAncestors: SetAdditionalAllowedFrameAncestors::<
24343                Identity,
24344                OFFSET,
24345            >,
24346        }
24347    }
24348    pub fn matches(iid: &windows_core::GUID) -> bool {
24349        iid == &<ICoreWebView2NavigationStartingEventArgs2 as windows_core::Interface>::IID
24350            || iid == &<ICoreWebView2NavigationStartingEventArgs as windows_core::Interface>::IID
24351    }
24352}
24353impl windows_core::RuntimeName for ICoreWebView2NavigationStartingEventArgs2 {}
24354windows_core::imp::define_interface!(
24355    ICoreWebView2NavigationStartingEventArgs3,
24356    ICoreWebView2NavigationStartingEventArgs3_Vtbl,
24357    0xddffe494_4942_4bd2_ab73_35b8ff40e19f
24358);
24359impl core::ops::Deref for ICoreWebView2NavigationStartingEventArgs3 {
24360    type Target = ICoreWebView2NavigationStartingEventArgs2;
24361    fn deref(&self) -> &Self::Target {
24362        unsafe { core::mem::transmute(self) }
24363    }
24364}
24365windows_core::imp::interface_hierarchy!(
24366    ICoreWebView2NavigationStartingEventArgs3,
24367    windows_core::IUnknown,
24368    ICoreWebView2NavigationStartingEventArgs,
24369    ICoreWebView2NavigationStartingEventArgs2
24370);
24371impl ICoreWebView2NavigationStartingEventArgs3 {
24372    pub unsafe fn NavigationKind(
24373        &self,
24374        value: *mut COREWEBVIEW2_NAVIGATION_KIND,
24375    ) -> windows_core::Result<()> {
24376        unsafe {
24377            (windows_core::Interface::vtable(self).NavigationKind)(
24378                windows_core::Interface::as_raw(self),
24379                value as _,
24380            )
24381            .ok()
24382        }
24383    }
24384}
24385#[repr(C)]
24386#[doc(hidden)]
24387pub struct ICoreWebView2NavigationStartingEventArgs3_Vtbl {
24388    pub base__: ICoreWebView2NavigationStartingEventArgs2_Vtbl,
24389    pub NavigationKind: unsafe extern "system" fn(
24390        *mut core::ffi::c_void,
24391        *mut COREWEBVIEW2_NAVIGATION_KIND,
24392    ) -> windows_core::HRESULT,
24393}
24394pub trait ICoreWebView2NavigationStartingEventArgs3_Impl:
24395    ICoreWebView2NavigationStartingEventArgs2_Impl
24396{
24397    fn NavigationKind(&self, value: *mut COREWEBVIEW2_NAVIGATION_KIND) -> windows_core::Result<()>;
24398}
24399impl ICoreWebView2NavigationStartingEventArgs3_Vtbl {
24400    pub const fn new<
24401        Identity: ICoreWebView2NavigationStartingEventArgs3_Impl,
24402        const OFFSET: isize,
24403    >() -> Self {
24404        unsafe extern "system" fn NavigationKind<
24405            Identity: ICoreWebView2NavigationStartingEventArgs3_Impl,
24406            const OFFSET: isize,
24407        >(
24408            this: *mut core::ffi::c_void,
24409            value: *mut COREWEBVIEW2_NAVIGATION_KIND,
24410        ) -> windows_core::HRESULT {
24411            unsafe {
24412                let this: &Identity =
24413                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
24414                ICoreWebView2NavigationStartingEventArgs3_Impl::NavigationKind(
24415                    this,
24416                    core::mem::transmute_copy(&value),
24417                )
24418                .into()
24419            }
24420        }
24421        Self {
24422            base__: ICoreWebView2NavigationStartingEventArgs2_Vtbl::new::<Identity, OFFSET>(),
24423            NavigationKind: NavigationKind::<Identity, OFFSET>,
24424        }
24425    }
24426    pub fn matches(iid: &windows_core::GUID) -> bool {
24427        iid == &<ICoreWebView2NavigationStartingEventArgs3 as windows_core::Interface>::IID
24428            || iid == &<ICoreWebView2NavigationStartingEventArgs as windows_core::Interface>::IID
24429            || iid == &<ICoreWebView2NavigationStartingEventArgs2 as windows_core::Interface>::IID
24430    }
24431}
24432impl windows_core::RuntimeName for ICoreWebView2NavigationStartingEventArgs3 {}
24433windows_core::imp::define_interface!(
24434    ICoreWebView2NavigationStartingEventHandler,
24435    ICoreWebView2NavigationStartingEventHandler_Vtbl,
24436    0x9adbe429_f36d_432b_9ddc_f8881fbd76e3
24437);
24438windows_core::imp::interface_hierarchy!(
24439    ICoreWebView2NavigationStartingEventHandler,
24440    windows_core::IUnknown
24441);
24442impl ICoreWebView2NavigationStartingEventHandler {
24443    pub unsafe fn Invoke<P0, P1>(&self, sender: P0, args: P1) -> windows_core::Result<()>
24444    where
24445        P0: windows_core::Param<ICoreWebView2>,
24446        P1: windows_core::Param<ICoreWebView2NavigationStartingEventArgs>,
24447    {
24448        unsafe {
24449            (windows_core::Interface::vtable(self).Invoke)(
24450                windows_core::Interface::as_raw(self),
24451                sender.param().abi(),
24452                args.param().abi(),
24453            )
24454            .ok()
24455        }
24456    }
24457}
24458#[repr(C)]
24459#[doc(hidden)]
24460pub struct ICoreWebView2NavigationStartingEventHandler_Vtbl {
24461    pub base__: windows_core::IUnknown_Vtbl,
24462    pub Invoke: unsafe extern "system" fn(
24463        *mut core::ffi::c_void,
24464        *mut core::ffi::c_void,
24465        *mut core::ffi::c_void,
24466    ) -> windows_core::HRESULT,
24467}
24468pub trait ICoreWebView2NavigationStartingEventHandler_Impl: windows_core::IUnknownImpl {
24469    fn Invoke(
24470        &self,
24471        sender: windows_core::Ref<ICoreWebView2>,
24472        args: windows_core::Ref<ICoreWebView2NavigationStartingEventArgs>,
24473    ) -> windows_core::Result<()>;
24474}
24475impl ICoreWebView2NavigationStartingEventHandler_Vtbl {
24476    pub const fn new<
24477        Identity: ICoreWebView2NavigationStartingEventHandler_Impl,
24478        const OFFSET: isize,
24479    >() -> Self {
24480        unsafe extern "system" fn Invoke<
24481            Identity: ICoreWebView2NavigationStartingEventHandler_Impl,
24482            const OFFSET: isize,
24483        >(
24484            this: *mut core::ffi::c_void,
24485            sender: *mut core::ffi::c_void,
24486            args: *mut core::ffi::c_void,
24487        ) -> windows_core::HRESULT {
24488            unsafe {
24489                let this: &Identity =
24490                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
24491                ICoreWebView2NavigationStartingEventHandler_Impl::Invoke(
24492                    this,
24493                    core::mem::transmute_copy(&sender),
24494                    core::mem::transmute_copy(&args),
24495                )
24496                .into()
24497            }
24498        }
24499        Self {
24500            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
24501            Invoke: Invoke::<Identity, OFFSET>,
24502        }
24503    }
24504    pub fn matches(iid: &windows_core::GUID) -> bool {
24505        iid == &<ICoreWebView2NavigationStartingEventHandler as windows_core::Interface>::IID
24506    }
24507}
24508impl windows_core::RuntimeName for ICoreWebView2NavigationStartingEventHandler {}
24509windows_core::imp::define_interface!(
24510    ICoreWebView2NewBrowserVersionAvailableEventHandler,
24511    ICoreWebView2NewBrowserVersionAvailableEventHandler_Vtbl,
24512    0xf9a2976e_d34e_44fc_adee_81b6b57ca914
24513);
24514windows_core::imp::interface_hierarchy!(
24515    ICoreWebView2NewBrowserVersionAvailableEventHandler,
24516    windows_core::IUnknown
24517);
24518impl ICoreWebView2NewBrowserVersionAvailableEventHandler {
24519    pub unsafe fn Invoke<P0, P1>(&self, sender: P0, args: P1) -> windows_core::Result<()>
24520    where
24521        P0: windows_core::Param<ICoreWebView2Environment>,
24522        P1: windows_core::Param<windows_core::IUnknown>,
24523    {
24524        unsafe {
24525            (windows_core::Interface::vtable(self).Invoke)(
24526                windows_core::Interface::as_raw(self),
24527                sender.param().abi(),
24528                args.param().abi(),
24529            )
24530            .ok()
24531        }
24532    }
24533}
24534#[repr(C)]
24535#[doc(hidden)]
24536pub struct ICoreWebView2NewBrowserVersionAvailableEventHandler_Vtbl {
24537    pub base__: windows_core::IUnknown_Vtbl,
24538    pub Invoke: unsafe extern "system" fn(
24539        *mut core::ffi::c_void,
24540        *mut core::ffi::c_void,
24541        *mut core::ffi::c_void,
24542    ) -> windows_core::HRESULT,
24543}
24544pub trait ICoreWebView2NewBrowserVersionAvailableEventHandler_Impl:
24545    windows_core::IUnknownImpl
24546{
24547    fn Invoke(
24548        &self,
24549        sender: windows_core::Ref<ICoreWebView2Environment>,
24550        args: windows_core::Ref<windows_core::IUnknown>,
24551    ) -> windows_core::Result<()>;
24552}
24553impl ICoreWebView2NewBrowserVersionAvailableEventHandler_Vtbl {
24554    pub const fn new<
24555        Identity: ICoreWebView2NewBrowserVersionAvailableEventHandler_Impl,
24556        const OFFSET: isize,
24557    >() -> Self {
24558        unsafe extern "system" fn Invoke<
24559            Identity: ICoreWebView2NewBrowserVersionAvailableEventHandler_Impl,
24560            const OFFSET: isize,
24561        >(
24562            this: *mut core::ffi::c_void,
24563            sender: *mut core::ffi::c_void,
24564            args: *mut core::ffi::c_void,
24565        ) -> windows_core::HRESULT {
24566            unsafe {
24567                let this: &Identity =
24568                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
24569                ICoreWebView2NewBrowserVersionAvailableEventHandler_Impl::Invoke(
24570                    this,
24571                    core::mem::transmute_copy(&sender),
24572                    core::mem::transmute_copy(&args),
24573                )
24574                .into()
24575            }
24576        }
24577        Self {
24578            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
24579            Invoke: Invoke::<Identity, OFFSET>,
24580        }
24581    }
24582    pub fn matches(iid: &windows_core::GUID) -> bool {
24583        iid == & < ICoreWebView2NewBrowserVersionAvailableEventHandler as windows_core::Interface >::IID
24584    }
24585}
24586impl windows_core::RuntimeName for ICoreWebView2NewBrowserVersionAvailableEventHandler {}
24587windows_core::imp::define_interface!(
24588    ICoreWebView2NewWindowRequestedEventArgs,
24589    ICoreWebView2NewWindowRequestedEventArgs_Vtbl,
24590    0x34acb11c_fc37_4418_9132_f9c21d1eafb9
24591);
24592windows_core::imp::interface_hierarchy!(
24593    ICoreWebView2NewWindowRequestedEventArgs,
24594    windows_core::IUnknown
24595);
24596impl ICoreWebView2NewWindowRequestedEventArgs {
24597    pub unsafe fn Uri(&self, uri: *mut windows_core::PWSTR) -> windows_core::Result<()> {
24598        unsafe {
24599            (windows_core::Interface::vtable(self).Uri)(
24600                windows_core::Interface::as_raw(self),
24601                uri as _,
24602            )
24603            .ok()
24604        }
24605    }
24606    pub unsafe fn SetNewWindow<P0>(&self, newwindow: P0) -> windows_core::Result<()>
24607    where
24608        P0: windows_core::Param<ICoreWebView2>,
24609    {
24610        unsafe {
24611            (windows_core::Interface::vtable(self).SetNewWindow)(
24612                windows_core::Interface::as_raw(self),
24613                newwindow.param().abi(),
24614            )
24615            .ok()
24616        }
24617    }
24618    pub unsafe fn NewWindow(&self) -> windows_core::Result<ICoreWebView2> {
24619        unsafe {
24620            let mut result__ = core::mem::zeroed();
24621            (windows_core::Interface::vtable(self).NewWindow)(
24622                windows_core::Interface::as_raw(self),
24623                &mut result__,
24624            )
24625            .and_then(|| windows_core::Type::from_abi(result__))
24626        }
24627    }
24628    pub unsafe fn SetHandled(&self, handled: bool) -> windows_core::Result<()> {
24629        unsafe {
24630            (windows_core::Interface::vtable(self).SetHandled)(
24631                windows_core::Interface::as_raw(self),
24632                handled.into(),
24633            )
24634            .ok()
24635        }
24636    }
24637    pub unsafe fn Handled(&self, handled: *mut windows_core::BOOL) -> windows_core::Result<()> {
24638        unsafe {
24639            (windows_core::Interface::vtable(self).Handled)(
24640                windows_core::Interface::as_raw(self),
24641                handled as _,
24642            )
24643            .ok()
24644        }
24645    }
24646    pub unsafe fn IsUserInitiated(
24647        &self,
24648        isuserinitiated: *mut windows_core::BOOL,
24649    ) -> windows_core::Result<()> {
24650        unsafe {
24651            (windows_core::Interface::vtable(self).IsUserInitiated)(
24652                windows_core::Interface::as_raw(self),
24653                isuserinitiated as _,
24654            )
24655            .ok()
24656        }
24657    }
24658    pub unsafe fn GetDeferral(&self) -> windows_core::Result<ICoreWebView2Deferral> {
24659        unsafe {
24660            let mut result__ = core::mem::zeroed();
24661            (windows_core::Interface::vtable(self).GetDeferral)(
24662                windows_core::Interface::as_raw(self),
24663                &mut result__,
24664            )
24665            .and_then(|| windows_core::Type::from_abi(result__))
24666        }
24667    }
24668    pub unsafe fn WindowFeatures(&self) -> windows_core::Result<ICoreWebView2WindowFeatures> {
24669        unsafe {
24670            let mut result__ = core::mem::zeroed();
24671            (windows_core::Interface::vtable(self).WindowFeatures)(
24672                windows_core::Interface::as_raw(self),
24673                &mut result__,
24674            )
24675            .and_then(|| windows_core::Type::from_abi(result__))
24676        }
24677    }
24678}
24679#[repr(C)]
24680#[doc(hidden)]
24681pub struct ICoreWebView2NewWindowRequestedEventArgs_Vtbl {
24682    pub base__: windows_core::IUnknown_Vtbl,
24683    pub Uri: unsafe extern "system" fn(
24684        *mut core::ffi::c_void,
24685        *mut windows_core::PWSTR,
24686    ) -> windows_core::HRESULT,
24687    pub SetNewWindow: unsafe extern "system" fn(
24688        *mut core::ffi::c_void,
24689        *mut core::ffi::c_void,
24690    ) -> windows_core::HRESULT,
24691    pub NewWindow: unsafe extern "system" fn(
24692        *mut core::ffi::c_void,
24693        *mut *mut core::ffi::c_void,
24694    ) -> windows_core::HRESULT,
24695    pub SetHandled: unsafe extern "system" fn(
24696        *mut core::ffi::c_void,
24697        windows_core::BOOL,
24698    ) -> windows_core::HRESULT,
24699    pub Handled: unsafe extern "system" fn(
24700        *mut core::ffi::c_void,
24701        *mut windows_core::BOOL,
24702    ) -> windows_core::HRESULT,
24703    pub IsUserInitiated: unsafe extern "system" fn(
24704        *mut core::ffi::c_void,
24705        *mut windows_core::BOOL,
24706    ) -> windows_core::HRESULT,
24707    pub GetDeferral: unsafe extern "system" fn(
24708        *mut core::ffi::c_void,
24709        *mut *mut core::ffi::c_void,
24710    ) -> windows_core::HRESULT,
24711    pub WindowFeatures: unsafe extern "system" fn(
24712        *mut core::ffi::c_void,
24713        *mut *mut core::ffi::c_void,
24714    ) -> windows_core::HRESULT,
24715}
24716pub trait ICoreWebView2NewWindowRequestedEventArgs_Impl: windows_core::IUnknownImpl {
24717    fn Uri(&self, uri: *mut windows_core::PWSTR) -> windows_core::Result<()>;
24718    fn SetNewWindow(&self, newwindow: windows_core::Ref<ICoreWebView2>)
24719        -> windows_core::Result<()>;
24720    fn NewWindow(&self) -> windows_core::Result<ICoreWebView2>;
24721    fn SetHandled(&self, handled: windows_core::BOOL) -> windows_core::Result<()>;
24722    fn Handled(&self, handled: *mut windows_core::BOOL) -> windows_core::Result<()>;
24723    fn IsUserInitiated(&self, isuserinitiated: *mut windows_core::BOOL)
24724        -> windows_core::Result<()>;
24725    fn GetDeferral(&self) -> windows_core::Result<ICoreWebView2Deferral>;
24726    fn WindowFeatures(&self) -> windows_core::Result<ICoreWebView2WindowFeatures>;
24727}
24728impl ICoreWebView2NewWindowRequestedEventArgs_Vtbl {
24729    pub const fn new<
24730        Identity: ICoreWebView2NewWindowRequestedEventArgs_Impl,
24731        const OFFSET: isize,
24732    >() -> Self {
24733        unsafe extern "system" fn Uri<
24734            Identity: ICoreWebView2NewWindowRequestedEventArgs_Impl,
24735            const OFFSET: isize,
24736        >(
24737            this: *mut core::ffi::c_void,
24738            uri: *mut windows_core::PWSTR,
24739        ) -> windows_core::HRESULT {
24740            unsafe {
24741                let this: &Identity =
24742                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
24743                ICoreWebView2NewWindowRequestedEventArgs_Impl::Uri(
24744                    this,
24745                    core::mem::transmute_copy(&uri),
24746                )
24747                .into()
24748            }
24749        }
24750        unsafe extern "system" fn SetNewWindow<
24751            Identity: ICoreWebView2NewWindowRequestedEventArgs_Impl,
24752            const OFFSET: isize,
24753        >(
24754            this: *mut core::ffi::c_void,
24755            newwindow: *mut core::ffi::c_void,
24756        ) -> windows_core::HRESULT {
24757            unsafe {
24758                let this: &Identity =
24759                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
24760                ICoreWebView2NewWindowRequestedEventArgs_Impl::SetNewWindow(
24761                    this,
24762                    core::mem::transmute_copy(&newwindow),
24763                )
24764                .into()
24765            }
24766        }
24767        unsafe extern "system" fn NewWindow<
24768            Identity: ICoreWebView2NewWindowRequestedEventArgs_Impl,
24769            const OFFSET: isize,
24770        >(
24771            this: *mut core::ffi::c_void,
24772            newwindow: *mut *mut core::ffi::c_void,
24773        ) -> windows_core::HRESULT {
24774            unsafe {
24775                let this: &Identity =
24776                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
24777                match ICoreWebView2NewWindowRequestedEventArgs_Impl::NewWindow(this) {
24778                    Ok(ok__) => {
24779                        newwindow.write(core::mem::transmute(ok__));
24780                        windows_core::HRESULT(0)
24781                    }
24782                    Err(err) => err.into(),
24783                }
24784            }
24785        }
24786        unsafe extern "system" fn SetHandled<
24787            Identity: ICoreWebView2NewWindowRequestedEventArgs_Impl,
24788            const OFFSET: isize,
24789        >(
24790            this: *mut core::ffi::c_void,
24791            handled: windows_core::BOOL,
24792        ) -> windows_core::HRESULT {
24793            unsafe {
24794                let this: &Identity =
24795                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
24796                ICoreWebView2NewWindowRequestedEventArgs_Impl::SetHandled(
24797                    this,
24798                    core::mem::transmute_copy(&handled),
24799                )
24800                .into()
24801            }
24802        }
24803        unsafe extern "system" fn Handled<
24804            Identity: ICoreWebView2NewWindowRequestedEventArgs_Impl,
24805            const OFFSET: isize,
24806        >(
24807            this: *mut core::ffi::c_void,
24808            handled: *mut windows_core::BOOL,
24809        ) -> windows_core::HRESULT {
24810            unsafe {
24811                let this: &Identity =
24812                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
24813                ICoreWebView2NewWindowRequestedEventArgs_Impl::Handled(
24814                    this,
24815                    core::mem::transmute_copy(&handled),
24816                )
24817                .into()
24818            }
24819        }
24820        unsafe extern "system" fn IsUserInitiated<
24821            Identity: ICoreWebView2NewWindowRequestedEventArgs_Impl,
24822            const OFFSET: isize,
24823        >(
24824            this: *mut core::ffi::c_void,
24825            isuserinitiated: *mut windows_core::BOOL,
24826        ) -> windows_core::HRESULT {
24827            unsafe {
24828                let this: &Identity =
24829                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
24830                ICoreWebView2NewWindowRequestedEventArgs_Impl::IsUserInitiated(
24831                    this,
24832                    core::mem::transmute_copy(&isuserinitiated),
24833                )
24834                .into()
24835            }
24836        }
24837        unsafe extern "system" fn GetDeferral<
24838            Identity: ICoreWebView2NewWindowRequestedEventArgs_Impl,
24839            const OFFSET: isize,
24840        >(
24841            this: *mut core::ffi::c_void,
24842            deferral: *mut *mut core::ffi::c_void,
24843        ) -> windows_core::HRESULT {
24844            unsafe {
24845                let this: &Identity =
24846                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
24847                match ICoreWebView2NewWindowRequestedEventArgs_Impl::GetDeferral(this) {
24848                    Ok(ok__) => {
24849                        deferral.write(core::mem::transmute(ok__));
24850                        windows_core::HRESULT(0)
24851                    }
24852                    Err(err) => err.into(),
24853                }
24854            }
24855        }
24856        unsafe extern "system" fn WindowFeatures<
24857            Identity: ICoreWebView2NewWindowRequestedEventArgs_Impl,
24858            const OFFSET: isize,
24859        >(
24860            this: *mut core::ffi::c_void,
24861            value: *mut *mut core::ffi::c_void,
24862        ) -> windows_core::HRESULT {
24863            unsafe {
24864                let this: &Identity =
24865                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
24866                match ICoreWebView2NewWindowRequestedEventArgs_Impl::WindowFeatures(this) {
24867                    Ok(ok__) => {
24868                        value.write(core::mem::transmute(ok__));
24869                        windows_core::HRESULT(0)
24870                    }
24871                    Err(err) => err.into(),
24872                }
24873            }
24874        }
24875        Self {
24876            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
24877            Uri: Uri::<Identity, OFFSET>,
24878            SetNewWindow: SetNewWindow::<Identity, OFFSET>,
24879            NewWindow: NewWindow::<Identity, OFFSET>,
24880            SetHandled: SetHandled::<Identity, OFFSET>,
24881            Handled: Handled::<Identity, OFFSET>,
24882            IsUserInitiated: IsUserInitiated::<Identity, OFFSET>,
24883            GetDeferral: GetDeferral::<Identity, OFFSET>,
24884            WindowFeatures: WindowFeatures::<Identity, OFFSET>,
24885        }
24886    }
24887    pub fn matches(iid: &windows_core::GUID) -> bool {
24888        iid == &<ICoreWebView2NewWindowRequestedEventArgs as windows_core::Interface>::IID
24889    }
24890}
24891impl windows_core::RuntimeName for ICoreWebView2NewWindowRequestedEventArgs {}
24892windows_core::imp::define_interface!(
24893    ICoreWebView2NewWindowRequestedEventArgs2,
24894    ICoreWebView2NewWindowRequestedEventArgs2_Vtbl,
24895    0xbbc7baed_74c6_4c92_b63a_7f5aeae03de3
24896);
24897impl core::ops::Deref for ICoreWebView2NewWindowRequestedEventArgs2 {
24898    type Target = ICoreWebView2NewWindowRequestedEventArgs;
24899    fn deref(&self) -> &Self::Target {
24900        unsafe { core::mem::transmute(self) }
24901    }
24902}
24903windows_core::imp::interface_hierarchy!(
24904    ICoreWebView2NewWindowRequestedEventArgs2,
24905    windows_core::IUnknown,
24906    ICoreWebView2NewWindowRequestedEventArgs
24907);
24908impl ICoreWebView2NewWindowRequestedEventArgs2 {
24909    pub unsafe fn Name(&self, value: *mut windows_core::PWSTR) -> windows_core::Result<()> {
24910        unsafe {
24911            (windows_core::Interface::vtable(self).Name)(
24912                windows_core::Interface::as_raw(self),
24913                value as _,
24914            )
24915            .ok()
24916        }
24917    }
24918}
24919#[repr(C)]
24920#[doc(hidden)]
24921pub struct ICoreWebView2NewWindowRequestedEventArgs2_Vtbl {
24922    pub base__: ICoreWebView2NewWindowRequestedEventArgs_Vtbl,
24923    pub Name: unsafe extern "system" fn(
24924        *mut core::ffi::c_void,
24925        *mut windows_core::PWSTR,
24926    ) -> windows_core::HRESULT,
24927}
24928pub trait ICoreWebView2NewWindowRequestedEventArgs2_Impl:
24929    ICoreWebView2NewWindowRequestedEventArgs_Impl
24930{
24931    fn Name(&self, value: *mut windows_core::PWSTR) -> windows_core::Result<()>;
24932}
24933impl ICoreWebView2NewWindowRequestedEventArgs2_Vtbl {
24934    pub const fn new<
24935        Identity: ICoreWebView2NewWindowRequestedEventArgs2_Impl,
24936        const OFFSET: isize,
24937    >() -> Self {
24938        unsafe extern "system" fn Name<
24939            Identity: ICoreWebView2NewWindowRequestedEventArgs2_Impl,
24940            const OFFSET: isize,
24941        >(
24942            this: *mut core::ffi::c_void,
24943            value: *mut windows_core::PWSTR,
24944        ) -> windows_core::HRESULT {
24945            unsafe {
24946                let this: &Identity =
24947                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
24948                ICoreWebView2NewWindowRequestedEventArgs2_Impl::Name(
24949                    this,
24950                    core::mem::transmute_copy(&value),
24951                )
24952                .into()
24953            }
24954        }
24955        Self {
24956            base__: ICoreWebView2NewWindowRequestedEventArgs_Vtbl::new::<Identity, OFFSET>(),
24957            Name: Name::<Identity, OFFSET>,
24958        }
24959    }
24960    pub fn matches(iid: &windows_core::GUID) -> bool {
24961        iid == &<ICoreWebView2NewWindowRequestedEventArgs2 as windows_core::Interface>::IID
24962            || iid == &<ICoreWebView2NewWindowRequestedEventArgs as windows_core::Interface>::IID
24963    }
24964}
24965impl windows_core::RuntimeName for ICoreWebView2NewWindowRequestedEventArgs2 {}
24966windows_core::imp::define_interface!(
24967    ICoreWebView2NewWindowRequestedEventArgs3,
24968    ICoreWebView2NewWindowRequestedEventArgs3_Vtbl,
24969    0x842bed3c_6ad6_4dd9_b938_28c96667ad66
24970);
24971impl core::ops::Deref for ICoreWebView2NewWindowRequestedEventArgs3 {
24972    type Target = ICoreWebView2NewWindowRequestedEventArgs2;
24973    fn deref(&self) -> &Self::Target {
24974        unsafe { core::mem::transmute(self) }
24975    }
24976}
24977windows_core::imp::interface_hierarchy!(
24978    ICoreWebView2NewWindowRequestedEventArgs3,
24979    windows_core::IUnknown,
24980    ICoreWebView2NewWindowRequestedEventArgs,
24981    ICoreWebView2NewWindowRequestedEventArgs2
24982);
24983impl ICoreWebView2NewWindowRequestedEventArgs3 {
24984    pub unsafe fn OriginalSourceFrameInfo(&self) -> windows_core::Result<ICoreWebView2FrameInfo> {
24985        unsafe {
24986            let mut result__ = core::mem::zeroed();
24987            (windows_core::Interface::vtable(self).OriginalSourceFrameInfo)(
24988                windows_core::Interface::as_raw(self),
24989                &mut result__,
24990            )
24991            .and_then(|| windows_core::Type::from_abi(result__))
24992        }
24993    }
24994}
24995#[repr(C)]
24996#[doc(hidden)]
24997pub struct ICoreWebView2NewWindowRequestedEventArgs3_Vtbl {
24998    pub base__: ICoreWebView2NewWindowRequestedEventArgs2_Vtbl,
24999    pub OriginalSourceFrameInfo: unsafe extern "system" fn(
25000        *mut core::ffi::c_void,
25001        *mut *mut core::ffi::c_void,
25002    ) -> windows_core::HRESULT,
25003}
25004pub trait ICoreWebView2NewWindowRequestedEventArgs3_Impl:
25005    ICoreWebView2NewWindowRequestedEventArgs2_Impl
25006{
25007    fn OriginalSourceFrameInfo(&self) -> windows_core::Result<ICoreWebView2FrameInfo>;
25008}
25009impl ICoreWebView2NewWindowRequestedEventArgs3_Vtbl {
25010    pub const fn new<
25011        Identity: ICoreWebView2NewWindowRequestedEventArgs3_Impl,
25012        const OFFSET: isize,
25013    >() -> Self {
25014        unsafe extern "system" fn OriginalSourceFrameInfo<
25015            Identity: ICoreWebView2NewWindowRequestedEventArgs3_Impl,
25016            const OFFSET: isize,
25017        >(
25018            this: *mut core::ffi::c_void,
25019            value: *mut *mut core::ffi::c_void,
25020        ) -> windows_core::HRESULT {
25021            unsafe {
25022                let this: &Identity =
25023                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
25024                match ICoreWebView2NewWindowRequestedEventArgs3_Impl::OriginalSourceFrameInfo(this)
25025                {
25026                    Ok(ok__) => {
25027                        value.write(core::mem::transmute(ok__));
25028                        windows_core::HRESULT(0)
25029                    }
25030                    Err(err) => err.into(),
25031                }
25032            }
25033        }
25034        Self {
25035            base__: ICoreWebView2NewWindowRequestedEventArgs2_Vtbl::new::<Identity, OFFSET>(),
25036            OriginalSourceFrameInfo: OriginalSourceFrameInfo::<Identity, OFFSET>,
25037        }
25038    }
25039    pub fn matches(iid: &windows_core::GUID) -> bool {
25040        iid == &<ICoreWebView2NewWindowRequestedEventArgs3 as windows_core::Interface>::IID
25041            || iid == &<ICoreWebView2NewWindowRequestedEventArgs as windows_core::Interface>::IID
25042            || iid == &<ICoreWebView2NewWindowRequestedEventArgs2 as windows_core::Interface>::IID
25043    }
25044}
25045impl windows_core::RuntimeName for ICoreWebView2NewWindowRequestedEventArgs3 {}
25046windows_core::imp::define_interface!(
25047    ICoreWebView2NewWindowRequestedEventHandler,
25048    ICoreWebView2NewWindowRequestedEventHandler_Vtbl,
25049    0xd4c185fe_c81c_4989_97af_2d3fa7ab5651
25050);
25051windows_core::imp::interface_hierarchy!(
25052    ICoreWebView2NewWindowRequestedEventHandler,
25053    windows_core::IUnknown
25054);
25055impl ICoreWebView2NewWindowRequestedEventHandler {
25056    pub unsafe fn Invoke<P0, P1>(&self, sender: P0, args: P1) -> windows_core::Result<()>
25057    where
25058        P0: windows_core::Param<ICoreWebView2>,
25059        P1: windows_core::Param<ICoreWebView2NewWindowRequestedEventArgs>,
25060    {
25061        unsafe {
25062            (windows_core::Interface::vtable(self).Invoke)(
25063                windows_core::Interface::as_raw(self),
25064                sender.param().abi(),
25065                args.param().abi(),
25066            )
25067            .ok()
25068        }
25069    }
25070}
25071#[repr(C)]
25072#[doc(hidden)]
25073pub struct ICoreWebView2NewWindowRequestedEventHandler_Vtbl {
25074    pub base__: windows_core::IUnknown_Vtbl,
25075    pub Invoke: unsafe extern "system" fn(
25076        *mut core::ffi::c_void,
25077        *mut core::ffi::c_void,
25078        *mut core::ffi::c_void,
25079    ) -> windows_core::HRESULT,
25080}
25081pub trait ICoreWebView2NewWindowRequestedEventHandler_Impl: windows_core::IUnknownImpl {
25082    fn Invoke(
25083        &self,
25084        sender: windows_core::Ref<ICoreWebView2>,
25085        args: windows_core::Ref<ICoreWebView2NewWindowRequestedEventArgs>,
25086    ) -> windows_core::Result<()>;
25087}
25088impl ICoreWebView2NewWindowRequestedEventHandler_Vtbl {
25089    pub const fn new<
25090        Identity: ICoreWebView2NewWindowRequestedEventHandler_Impl,
25091        const OFFSET: isize,
25092    >() -> Self {
25093        unsafe extern "system" fn Invoke<
25094            Identity: ICoreWebView2NewWindowRequestedEventHandler_Impl,
25095            const OFFSET: isize,
25096        >(
25097            this: *mut core::ffi::c_void,
25098            sender: *mut core::ffi::c_void,
25099            args: *mut core::ffi::c_void,
25100        ) -> windows_core::HRESULT {
25101            unsafe {
25102                let this: &Identity =
25103                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
25104                ICoreWebView2NewWindowRequestedEventHandler_Impl::Invoke(
25105                    this,
25106                    core::mem::transmute_copy(&sender),
25107                    core::mem::transmute_copy(&args),
25108                )
25109                .into()
25110            }
25111        }
25112        Self {
25113            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
25114            Invoke: Invoke::<Identity, OFFSET>,
25115        }
25116    }
25117    pub fn matches(iid: &windows_core::GUID) -> bool {
25118        iid == &<ICoreWebView2NewWindowRequestedEventHandler as windows_core::Interface>::IID
25119    }
25120}
25121impl windows_core::RuntimeName for ICoreWebView2NewWindowRequestedEventHandler {}
25122windows_core::imp::define_interface!(
25123    ICoreWebView2NonClientRegionChangedEventArgs,
25124    ICoreWebView2NonClientRegionChangedEventArgs_Vtbl,
25125    0xab71d500_0820_4a52_809c_48db04ff93bf
25126);
25127windows_core::imp::interface_hierarchy!(
25128    ICoreWebView2NonClientRegionChangedEventArgs,
25129    windows_core::IUnknown
25130);
25131impl ICoreWebView2NonClientRegionChangedEventArgs {
25132    pub unsafe fn RegionKind(
25133        &self,
25134        value: *mut COREWEBVIEW2_NON_CLIENT_REGION_KIND,
25135    ) -> windows_core::Result<()> {
25136        unsafe {
25137            (windows_core::Interface::vtable(self).RegionKind)(
25138                windows_core::Interface::as_raw(self),
25139                value as _,
25140            )
25141            .ok()
25142        }
25143    }
25144}
25145#[repr(C)]
25146#[doc(hidden)]
25147pub struct ICoreWebView2NonClientRegionChangedEventArgs_Vtbl {
25148    pub base__: windows_core::IUnknown_Vtbl,
25149    pub RegionKind: unsafe extern "system" fn(
25150        *mut core::ffi::c_void,
25151        *mut COREWEBVIEW2_NON_CLIENT_REGION_KIND,
25152    ) -> windows_core::HRESULT,
25153}
25154pub trait ICoreWebView2NonClientRegionChangedEventArgs_Impl: windows_core::IUnknownImpl {
25155    fn RegionKind(
25156        &self,
25157        value: *mut COREWEBVIEW2_NON_CLIENT_REGION_KIND,
25158    ) -> windows_core::Result<()>;
25159}
25160impl ICoreWebView2NonClientRegionChangedEventArgs_Vtbl {
25161    pub const fn new<
25162        Identity: ICoreWebView2NonClientRegionChangedEventArgs_Impl,
25163        const OFFSET: isize,
25164    >() -> Self {
25165        unsafe extern "system" fn RegionKind<
25166            Identity: ICoreWebView2NonClientRegionChangedEventArgs_Impl,
25167            const OFFSET: isize,
25168        >(
25169            this: *mut core::ffi::c_void,
25170            value: *mut COREWEBVIEW2_NON_CLIENT_REGION_KIND,
25171        ) -> windows_core::HRESULT {
25172            unsafe {
25173                let this: &Identity =
25174                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
25175                ICoreWebView2NonClientRegionChangedEventArgs_Impl::RegionKind(
25176                    this,
25177                    core::mem::transmute_copy(&value),
25178                )
25179                .into()
25180            }
25181        }
25182        Self {
25183            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
25184            RegionKind: RegionKind::<Identity, OFFSET>,
25185        }
25186    }
25187    pub fn matches(iid: &windows_core::GUID) -> bool {
25188        iid == &<ICoreWebView2NonClientRegionChangedEventArgs as windows_core::Interface>::IID
25189    }
25190}
25191impl windows_core::RuntimeName for ICoreWebView2NonClientRegionChangedEventArgs {}
25192windows_core::imp::define_interface!(
25193    ICoreWebView2NonClientRegionChangedEventHandler,
25194    ICoreWebView2NonClientRegionChangedEventHandler_Vtbl,
25195    0x4a794e66_aa6c_46bd_93a3_382196837680
25196);
25197windows_core::imp::interface_hierarchy!(
25198    ICoreWebView2NonClientRegionChangedEventHandler,
25199    windows_core::IUnknown
25200);
25201impl ICoreWebView2NonClientRegionChangedEventHandler {
25202    pub unsafe fn Invoke<P0, P1>(&self, sender: P0, args: P1) -> windows_core::Result<()>
25203    where
25204        P0: windows_core::Param<ICoreWebView2CompositionController>,
25205        P1: windows_core::Param<ICoreWebView2NonClientRegionChangedEventArgs>,
25206    {
25207        unsafe {
25208            (windows_core::Interface::vtable(self).Invoke)(
25209                windows_core::Interface::as_raw(self),
25210                sender.param().abi(),
25211                args.param().abi(),
25212            )
25213            .ok()
25214        }
25215    }
25216}
25217#[repr(C)]
25218#[doc(hidden)]
25219pub struct ICoreWebView2NonClientRegionChangedEventHandler_Vtbl {
25220    pub base__: windows_core::IUnknown_Vtbl,
25221    pub Invoke: unsafe extern "system" fn(
25222        *mut core::ffi::c_void,
25223        *mut core::ffi::c_void,
25224        *mut core::ffi::c_void,
25225    ) -> windows_core::HRESULT,
25226}
25227pub trait ICoreWebView2NonClientRegionChangedEventHandler_Impl: windows_core::IUnknownImpl {
25228    fn Invoke(
25229        &self,
25230        sender: windows_core::Ref<ICoreWebView2CompositionController>,
25231        args: windows_core::Ref<ICoreWebView2NonClientRegionChangedEventArgs>,
25232    ) -> windows_core::Result<()>;
25233}
25234impl ICoreWebView2NonClientRegionChangedEventHandler_Vtbl {
25235    pub const fn new<
25236        Identity: ICoreWebView2NonClientRegionChangedEventHandler_Impl,
25237        const OFFSET: isize,
25238    >() -> Self {
25239        unsafe extern "system" fn Invoke<
25240            Identity: ICoreWebView2NonClientRegionChangedEventHandler_Impl,
25241            const OFFSET: isize,
25242        >(
25243            this: *mut core::ffi::c_void,
25244            sender: *mut core::ffi::c_void,
25245            args: *mut core::ffi::c_void,
25246        ) -> windows_core::HRESULT {
25247            unsafe {
25248                let this: &Identity =
25249                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
25250                ICoreWebView2NonClientRegionChangedEventHandler_Impl::Invoke(
25251                    this,
25252                    core::mem::transmute_copy(&sender),
25253                    core::mem::transmute_copy(&args),
25254                )
25255                .into()
25256            }
25257        }
25258        Self {
25259            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
25260            Invoke: Invoke::<Identity, OFFSET>,
25261        }
25262    }
25263    pub fn matches(iid: &windows_core::GUID) -> bool {
25264        iid == &<ICoreWebView2NonClientRegionChangedEventHandler as windows_core::Interface>::IID
25265    }
25266}
25267impl windows_core::RuntimeName for ICoreWebView2NonClientRegionChangedEventHandler {}
25268windows_core::imp::define_interface!(
25269    ICoreWebView2Notification,
25270    ICoreWebView2Notification_Vtbl,
25271    0xb7434d98_6bc8_419d_9da5_fb5a96d4dacd
25272);
25273windows_core::imp::interface_hierarchy!(ICoreWebView2Notification, windows_core::IUnknown);
25274impl ICoreWebView2Notification {
25275    pub unsafe fn add_CloseRequested<P0>(
25276        &self,
25277        eventhandler: P0,
25278        token: *mut i64,
25279    ) -> windows_core::Result<()>
25280    where
25281        P0: windows_core::Param<ICoreWebView2NotificationCloseRequestedEventHandler>,
25282    {
25283        unsafe {
25284            (windows_core::Interface::vtable(self).add_CloseRequested)(
25285                windows_core::Interface::as_raw(self),
25286                eventhandler.param().abi(),
25287                token as _,
25288            )
25289            .ok()
25290        }
25291    }
25292    pub unsafe fn remove_CloseRequested(&self, token: i64) -> windows_core::Result<()> {
25293        unsafe {
25294            (windows_core::Interface::vtable(self).remove_CloseRequested)(
25295                windows_core::Interface::as_raw(self),
25296                token,
25297            )
25298            .ok()
25299        }
25300    }
25301    pub unsafe fn ReportShown(&self) -> windows_core::Result<()> {
25302        unsafe {
25303            (windows_core::Interface::vtable(self).ReportShown)(windows_core::Interface::as_raw(
25304                self,
25305            ))
25306            .ok()
25307        }
25308    }
25309    pub unsafe fn ReportClicked(&self) -> windows_core::Result<()> {
25310        unsafe {
25311            (windows_core::Interface::vtable(self).ReportClicked)(windows_core::Interface::as_raw(
25312                self,
25313            ))
25314            .ok()
25315        }
25316    }
25317    pub unsafe fn ReportClosed(&self) -> windows_core::Result<()> {
25318        unsafe {
25319            (windows_core::Interface::vtable(self).ReportClosed)(windows_core::Interface::as_raw(
25320                self,
25321            ))
25322            .ok()
25323        }
25324    }
25325    pub unsafe fn Body(&self, value: *mut windows_core::PWSTR) -> windows_core::Result<()> {
25326        unsafe {
25327            (windows_core::Interface::vtable(self).Body)(
25328                windows_core::Interface::as_raw(self),
25329                value as _,
25330            )
25331            .ok()
25332        }
25333    }
25334    pub unsafe fn Direction(
25335        &self,
25336        value: *mut COREWEBVIEW2_TEXT_DIRECTION_KIND,
25337    ) -> windows_core::Result<()> {
25338        unsafe {
25339            (windows_core::Interface::vtable(self).Direction)(
25340                windows_core::Interface::as_raw(self),
25341                value as _,
25342            )
25343            .ok()
25344        }
25345    }
25346    pub unsafe fn Language(&self, value: *mut windows_core::PWSTR) -> windows_core::Result<()> {
25347        unsafe {
25348            (windows_core::Interface::vtable(self).Language)(
25349                windows_core::Interface::as_raw(self),
25350                value as _,
25351            )
25352            .ok()
25353        }
25354    }
25355    pub unsafe fn Tag(&self, value: *mut windows_core::PWSTR) -> windows_core::Result<()> {
25356        unsafe {
25357            (windows_core::Interface::vtable(self).Tag)(
25358                windows_core::Interface::as_raw(self),
25359                value as _,
25360            )
25361            .ok()
25362        }
25363    }
25364    pub unsafe fn IconUri(&self, value: *mut windows_core::PWSTR) -> windows_core::Result<()> {
25365        unsafe {
25366            (windows_core::Interface::vtable(self).IconUri)(
25367                windows_core::Interface::as_raw(self),
25368                value as _,
25369            )
25370            .ok()
25371        }
25372    }
25373    pub unsafe fn Title(&self, value: *mut windows_core::PWSTR) -> windows_core::Result<()> {
25374        unsafe {
25375            (windows_core::Interface::vtable(self).Title)(
25376                windows_core::Interface::as_raw(self),
25377                value as _,
25378            )
25379            .ok()
25380        }
25381    }
25382    pub unsafe fn BadgeUri(&self, value: *mut windows_core::PWSTR) -> windows_core::Result<()> {
25383        unsafe {
25384            (windows_core::Interface::vtable(self).BadgeUri)(
25385                windows_core::Interface::as_raw(self),
25386                value as _,
25387            )
25388            .ok()
25389        }
25390    }
25391    pub unsafe fn BodyImageUri(&self, value: *mut windows_core::PWSTR) -> windows_core::Result<()> {
25392        unsafe {
25393            (windows_core::Interface::vtable(self).BodyImageUri)(
25394                windows_core::Interface::as_raw(self),
25395                value as _,
25396            )
25397            .ok()
25398        }
25399    }
25400    pub unsafe fn ShouldRenotify(
25401        &self,
25402        value: *mut windows_core::BOOL,
25403    ) -> windows_core::Result<()> {
25404        unsafe {
25405            (windows_core::Interface::vtable(self).ShouldRenotify)(
25406                windows_core::Interface::as_raw(self),
25407                value as _,
25408            )
25409            .ok()
25410        }
25411    }
25412    pub unsafe fn RequiresInteraction(
25413        &self,
25414        value: *mut windows_core::BOOL,
25415    ) -> windows_core::Result<()> {
25416        unsafe {
25417            (windows_core::Interface::vtable(self).RequiresInteraction)(
25418                windows_core::Interface::as_raw(self),
25419                value as _,
25420            )
25421            .ok()
25422        }
25423    }
25424    pub unsafe fn IsSilent(&self, value: *mut windows_core::BOOL) -> windows_core::Result<()> {
25425        unsafe {
25426            (windows_core::Interface::vtable(self).IsSilent)(
25427                windows_core::Interface::as_raw(self),
25428                value as _,
25429            )
25430            .ok()
25431        }
25432    }
25433    pub unsafe fn Timestamp(&self, value: *mut f64) -> windows_core::Result<()> {
25434        unsafe {
25435            (windows_core::Interface::vtable(self).Timestamp)(
25436                windows_core::Interface::as_raw(self),
25437                value as _,
25438            )
25439            .ok()
25440        }
25441    }
25442    pub unsafe fn GetVibrationPattern(
25443        &self,
25444        count: *mut u32,
25445        vibrationpattern: *mut *mut u64,
25446    ) -> windows_core::Result<()> {
25447        unsafe {
25448            (windows_core::Interface::vtable(self).GetVibrationPattern)(
25449                windows_core::Interface::as_raw(self),
25450                count as _,
25451                vibrationpattern as _,
25452            )
25453            .ok()
25454        }
25455    }
25456}
25457#[repr(C)]
25458#[doc(hidden)]
25459pub struct ICoreWebView2Notification_Vtbl {
25460    pub base__: windows_core::IUnknown_Vtbl,
25461    pub add_CloseRequested: unsafe extern "system" fn(
25462        *mut core::ffi::c_void,
25463        *mut core::ffi::c_void,
25464        *mut i64,
25465    ) -> windows_core::HRESULT,
25466    pub remove_CloseRequested:
25467        unsafe extern "system" fn(*mut core::ffi::c_void, i64) -> windows_core::HRESULT,
25468    pub ReportShown: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
25469    pub ReportClicked: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
25470    pub ReportClosed: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
25471    pub Body: unsafe extern "system" fn(
25472        *mut core::ffi::c_void,
25473        *mut windows_core::PWSTR,
25474    ) -> windows_core::HRESULT,
25475    pub Direction: unsafe extern "system" fn(
25476        *mut core::ffi::c_void,
25477        *mut COREWEBVIEW2_TEXT_DIRECTION_KIND,
25478    ) -> windows_core::HRESULT,
25479    pub Language: unsafe extern "system" fn(
25480        *mut core::ffi::c_void,
25481        *mut windows_core::PWSTR,
25482    ) -> windows_core::HRESULT,
25483    pub Tag: unsafe extern "system" fn(
25484        *mut core::ffi::c_void,
25485        *mut windows_core::PWSTR,
25486    ) -> windows_core::HRESULT,
25487    pub IconUri: unsafe extern "system" fn(
25488        *mut core::ffi::c_void,
25489        *mut windows_core::PWSTR,
25490    ) -> windows_core::HRESULT,
25491    pub Title: unsafe extern "system" fn(
25492        *mut core::ffi::c_void,
25493        *mut windows_core::PWSTR,
25494    ) -> windows_core::HRESULT,
25495    pub BadgeUri: unsafe extern "system" fn(
25496        *mut core::ffi::c_void,
25497        *mut windows_core::PWSTR,
25498    ) -> windows_core::HRESULT,
25499    pub BodyImageUri: unsafe extern "system" fn(
25500        *mut core::ffi::c_void,
25501        *mut windows_core::PWSTR,
25502    ) -> windows_core::HRESULT,
25503    pub ShouldRenotify: unsafe extern "system" fn(
25504        *mut core::ffi::c_void,
25505        *mut windows_core::BOOL,
25506    ) -> windows_core::HRESULT,
25507    pub RequiresInteraction: unsafe extern "system" fn(
25508        *mut core::ffi::c_void,
25509        *mut windows_core::BOOL,
25510    ) -> windows_core::HRESULT,
25511    pub IsSilent: unsafe extern "system" fn(
25512        *mut core::ffi::c_void,
25513        *mut windows_core::BOOL,
25514    ) -> windows_core::HRESULT,
25515    pub Timestamp:
25516        unsafe extern "system" fn(*mut core::ffi::c_void, *mut f64) -> windows_core::HRESULT,
25517    pub GetVibrationPattern: unsafe extern "system" fn(
25518        *mut core::ffi::c_void,
25519        *mut u32,
25520        *mut *mut u64,
25521    ) -> windows_core::HRESULT,
25522}
25523pub trait ICoreWebView2Notification_Impl: windows_core::IUnknownImpl {
25524    fn add_CloseRequested(
25525        &self,
25526        eventhandler: windows_core::Ref<ICoreWebView2NotificationCloseRequestedEventHandler>,
25527        token: *mut i64,
25528    ) -> windows_core::Result<()>;
25529    fn remove_CloseRequested(&self, token: i64) -> windows_core::Result<()>;
25530    fn ReportShown(&self) -> windows_core::Result<()>;
25531    fn ReportClicked(&self) -> windows_core::Result<()>;
25532    fn ReportClosed(&self) -> windows_core::Result<()>;
25533    fn Body(&self, value: *mut windows_core::PWSTR) -> windows_core::Result<()>;
25534    fn Direction(&self, value: *mut COREWEBVIEW2_TEXT_DIRECTION_KIND) -> windows_core::Result<()>;
25535    fn Language(&self, value: *mut windows_core::PWSTR) -> windows_core::Result<()>;
25536    fn Tag(&self, value: *mut windows_core::PWSTR) -> windows_core::Result<()>;
25537    fn IconUri(&self, value: *mut windows_core::PWSTR) -> windows_core::Result<()>;
25538    fn Title(&self, value: *mut windows_core::PWSTR) -> windows_core::Result<()>;
25539    fn BadgeUri(&self, value: *mut windows_core::PWSTR) -> windows_core::Result<()>;
25540    fn BodyImageUri(&self, value: *mut windows_core::PWSTR) -> windows_core::Result<()>;
25541    fn ShouldRenotify(&self, value: *mut windows_core::BOOL) -> windows_core::Result<()>;
25542    fn RequiresInteraction(&self, value: *mut windows_core::BOOL) -> windows_core::Result<()>;
25543    fn IsSilent(&self, value: *mut windows_core::BOOL) -> windows_core::Result<()>;
25544    fn Timestamp(&self, value: *mut f64) -> windows_core::Result<()>;
25545    fn GetVibrationPattern(
25546        &self,
25547        count: *mut u32,
25548        vibrationpattern: *mut *mut u64,
25549    ) -> windows_core::Result<()>;
25550}
25551impl ICoreWebView2Notification_Vtbl {
25552    pub const fn new<Identity: ICoreWebView2Notification_Impl, const OFFSET: isize>() -> Self {
25553        unsafe extern "system" fn add_CloseRequested<
25554            Identity: ICoreWebView2Notification_Impl,
25555            const OFFSET: isize,
25556        >(
25557            this: *mut core::ffi::c_void,
25558            eventhandler: *mut core::ffi::c_void,
25559            token: *mut i64,
25560        ) -> windows_core::HRESULT {
25561            unsafe {
25562                let this: &Identity =
25563                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
25564                ICoreWebView2Notification_Impl::add_CloseRequested(
25565                    this,
25566                    core::mem::transmute_copy(&eventhandler),
25567                    core::mem::transmute_copy(&token),
25568                )
25569                .into()
25570            }
25571        }
25572        unsafe extern "system" fn remove_CloseRequested<
25573            Identity: ICoreWebView2Notification_Impl,
25574            const OFFSET: isize,
25575        >(
25576            this: *mut core::ffi::c_void,
25577            token: i64,
25578        ) -> windows_core::HRESULT {
25579            unsafe {
25580                let this: &Identity =
25581                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
25582                ICoreWebView2Notification_Impl::remove_CloseRequested(
25583                    this,
25584                    core::mem::transmute_copy(&token),
25585                )
25586                .into()
25587            }
25588        }
25589        unsafe extern "system" fn ReportShown<
25590            Identity: ICoreWebView2Notification_Impl,
25591            const OFFSET: isize,
25592        >(
25593            this: *mut core::ffi::c_void,
25594        ) -> windows_core::HRESULT {
25595            unsafe {
25596                let this: &Identity =
25597                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
25598                ICoreWebView2Notification_Impl::ReportShown(this).into()
25599            }
25600        }
25601        unsafe extern "system" fn ReportClicked<
25602            Identity: ICoreWebView2Notification_Impl,
25603            const OFFSET: isize,
25604        >(
25605            this: *mut core::ffi::c_void,
25606        ) -> windows_core::HRESULT {
25607            unsafe {
25608                let this: &Identity =
25609                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
25610                ICoreWebView2Notification_Impl::ReportClicked(this).into()
25611            }
25612        }
25613        unsafe extern "system" fn ReportClosed<
25614            Identity: ICoreWebView2Notification_Impl,
25615            const OFFSET: isize,
25616        >(
25617            this: *mut core::ffi::c_void,
25618        ) -> windows_core::HRESULT {
25619            unsafe {
25620                let this: &Identity =
25621                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
25622                ICoreWebView2Notification_Impl::ReportClosed(this).into()
25623            }
25624        }
25625        unsafe extern "system" fn Body<
25626            Identity: ICoreWebView2Notification_Impl,
25627            const OFFSET: isize,
25628        >(
25629            this: *mut core::ffi::c_void,
25630            value: *mut windows_core::PWSTR,
25631        ) -> windows_core::HRESULT {
25632            unsafe {
25633                let this: &Identity =
25634                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
25635                ICoreWebView2Notification_Impl::Body(this, core::mem::transmute_copy(&value)).into()
25636            }
25637        }
25638        unsafe extern "system" fn Direction<
25639            Identity: ICoreWebView2Notification_Impl,
25640            const OFFSET: isize,
25641        >(
25642            this: *mut core::ffi::c_void,
25643            value: *mut COREWEBVIEW2_TEXT_DIRECTION_KIND,
25644        ) -> windows_core::HRESULT {
25645            unsafe {
25646                let this: &Identity =
25647                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
25648                ICoreWebView2Notification_Impl::Direction(this, core::mem::transmute_copy(&value))
25649                    .into()
25650            }
25651        }
25652        unsafe extern "system" fn Language<
25653            Identity: ICoreWebView2Notification_Impl,
25654            const OFFSET: isize,
25655        >(
25656            this: *mut core::ffi::c_void,
25657            value: *mut windows_core::PWSTR,
25658        ) -> windows_core::HRESULT {
25659            unsafe {
25660                let this: &Identity =
25661                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
25662                ICoreWebView2Notification_Impl::Language(this, core::mem::transmute_copy(&value))
25663                    .into()
25664            }
25665        }
25666        unsafe extern "system" fn Tag<
25667            Identity: ICoreWebView2Notification_Impl,
25668            const OFFSET: isize,
25669        >(
25670            this: *mut core::ffi::c_void,
25671            value: *mut windows_core::PWSTR,
25672        ) -> windows_core::HRESULT {
25673            unsafe {
25674                let this: &Identity =
25675                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
25676                ICoreWebView2Notification_Impl::Tag(this, core::mem::transmute_copy(&value)).into()
25677            }
25678        }
25679        unsafe extern "system" fn IconUri<
25680            Identity: ICoreWebView2Notification_Impl,
25681            const OFFSET: isize,
25682        >(
25683            this: *mut core::ffi::c_void,
25684            value: *mut windows_core::PWSTR,
25685        ) -> windows_core::HRESULT {
25686            unsafe {
25687                let this: &Identity =
25688                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
25689                ICoreWebView2Notification_Impl::IconUri(this, core::mem::transmute_copy(&value))
25690                    .into()
25691            }
25692        }
25693        unsafe extern "system" fn Title<
25694            Identity: ICoreWebView2Notification_Impl,
25695            const OFFSET: isize,
25696        >(
25697            this: *mut core::ffi::c_void,
25698            value: *mut windows_core::PWSTR,
25699        ) -> windows_core::HRESULT {
25700            unsafe {
25701                let this: &Identity =
25702                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
25703                ICoreWebView2Notification_Impl::Title(this, core::mem::transmute_copy(&value))
25704                    .into()
25705            }
25706        }
25707        unsafe extern "system" fn BadgeUri<
25708            Identity: ICoreWebView2Notification_Impl,
25709            const OFFSET: isize,
25710        >(
25711            this: *mut core::ffi::c_void,
25712            value: *mut windows_core::PWSTR,
25713        ) -> windows_core::HRESULT {
25714            unsafe {
25715                let this: &Identity =
25716                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
25717                ICoreWebView2Notification_Impl::BadgeUri(this, core::mem::transmute_copy(&value))
25718                    .into()
25719            }
25720        }
25721        unsafe extern "system" fn BodyImageUri<
25722            Identity: ICoreWebView2Notification_Impl,
25723            const OFFSET: isize,
25724        >(
25725            this: *mut core::ffi::c_void,
25726            value: *mut windows_core::PWSTR,
25727        ) -> windows_core::HRESULT {
25728            unsafe {
25729                let this: &Identity =
25730                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
25731                ICoreWebView2Notification_Impl::BodyImageUri(
25732                    this,
25733                    core::mem::transmute_copy(&value),
25734                )
25735                .into()
25736            }
25737        }
25738        unsafe extern "system" fn ShouldRenotify<
25739            Identity: ICoreWebView2Notification_Impl,
25740            const OFFSET: isize,
25741        >(
25742            this: *mut core::ffi::c_void,
25743            value: *mut windows_core::BOOL,
25744        ) -> windows_core::HRESULT {
25745            unsafe {
25746                let this: &Identity =
25747                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
25748                ICoreWebView2Notification_Impl::ShouldRenotify(
25749                    this,
25750                    core::mem::transmute_copy(&value),
25751                )
25752                .into()
25753            }
25754        }
25755        unsafe extern "system" fn RequiresInteraction<
25756            Identity: ICoreWebView2Notification_Impl,
25757            const OFFSET: isize,
25758        >(
25759            this: *mut core::ffi::c_void,
25760            value: *mut windows_core::BOOL,
25761        ) -> windows_core::HRESULT {
25762            unsafe {
25763                let this: &Identity =
25764                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
25765                ICoreWebView2Notification_Impl::RequiresInteraction(
25766                    this,
25767                    core::mem::transmute_copy(&value),
25768                )
25769                .into()
25770            }
25771        }
25772        unsafe extern "system" fn IsSilent<
25773            Identity: ICoreWebView2Notification_Impl,
25774            const OFFSET: isize,
25775        >(
25776            this: *mut core::ffi::c_void,
25777            value: *mut windows_core::BOOL,
25778        ) -> windows_core::HRESULT {
25779            unsafe {
25780                let this: &Identity =
25781                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
25782                ICoreWebView2Notification_Impl::IsSilent(this, core::mem::transmute_copy(&value))
25783                    .into()
25784            }
25785        }
25786        unsafe extern "system" fn Timestamp<
25787            Identity: ICoreWebView2Notification_Impl,
25788            const OFFSET: isize,
25789        >(
25790            this: *mut core::ffi::c_void,
25791            value: *mut f64,
25792        ) -> windows_core::HRESULT {
25793            unsafe {
25794                let this: &Identity =
25795                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
25796                ICoreWebView2Notification_Impl::Timestamp(this, core::mem::transmute_copy(&value))
25797                    .into()
25798            }
25799        }
25800        unsafe extern "system" fn GetVibrationPattern<
25801            Identity: ICoreWebView2Notification_Impl,
25802            const OFFSET: isize,
25803        >(
25804            this: *mut core::ffi::c_void,
25805            count: *mut u32,
25806            vibrationpattern: *mut *mut u64,
25807        ) -> windows_core::HRESULT {
25808            unsafe {
25809                let this: &Identity =
25810                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
25811                ICoreWebView2Notification_Impl::GetVibrationPattern(
25812                    this,
25813                    core::mem::transmute_copy(&count),
25814                    core::mem::transmute_copy(&vibrationpattern),
25815                )
25816                .into()
25817            }
25818        }
25819        Self {
25820            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
25821            add_CloseRequested: add_CloseRequested::<Identity, OFFSET>,
25822            remove_CloseRequested: remove_CloseRequested::<Identity, OFFSET>,
25823            ReportShown: ReportShown::<Identity, OFFSET>,
25824            ReportClicked: ReportClicked::<Identity, OFFSET>,
25825            ReportClosed: ReportClosed::<Identity, OFFSET>,
25826            Body: Body::<Identity, OFFSET>,
25827            Direction: Direction::<Identity, OFFSET>,
25828            Language: Language::<Identity, OFFSET>,
25829            Tag: Tag::<Identity, OFFSET>,
25830            IconUri: IconUri::<Identity, OFFSET>,
25831            Title: Title::<Identity, OFFSET>,
25832            BadgeUri: BadgeUri::<Identity, OFFSET>,
25833            BodyImageUri: BodyImageUri::<Identity, OFFSET>,
25834            ShouldRenotify: ShouldRenotify::<Identity, OFFSET>,
25835            RequiresInteraction: RequiresInteraction::<Identity, OFFSET>,
25836            IsSilent: IsSilent::<Identity, OFFSET>,
25837            Timestamp: Timestamp::<Identity, OFFSET>,
25838            GetVibrationPattern: GetVibrationPattern::<Identity, OFFSET>,
25839        }
25840    }
25841    pub fn matches(iid: &windows_core::GUID) -> bool {
25842        iid == &<ICoreWebView2Notification as windows_core::Interface>::IID
25843    }
25844}
25845impl windows_core::RuntimeName for ICoreWebView2Notification {}
25846windows_core::imp::define_interface!(
25847    ICoreWebView2NotificationCloseRequestedEventHandler,
25848    ICoreWebView2NotificationCloseRequestedEventHandler_Vtbl,
25849    0x47c32d23_1e94_4733_85f1_d9bf4acd0974
25850);
25851windows_core::imp::interface_hierarchy!(
25852    ICoreWebView2NotificationCloseRequestedEventHandler,
25853    windows_core::IUnknown
25854);
25855impl ICoreWebView2NotificationCloseRequestedEventHandler {
25856    pub unsafe fn Invoke<P0, P1>(&self, sender: P0, args: P1) -> windows_core::Result<()>
25857    where
25858        P0: windows_core::Param<ICoreWebView2Notification>,
25859        P1: windows_core::Param<windows_core::IUnknown>,
25860    {
25861        unsafe {
25862            (windows_core::Interface::vtable(self).Invoke)(
25863                windows_core::Interface::as_raw(self),
25864                sender.param().abi(),
25865                args.param().abi(),
25866            )
25867            .ok()
25868        }
25869    }
25870}
25871#[repr(C)]
25872#[doc(hidden)]
25873pub struct ICoreWebView2NotificationCloseRequestedEventHandler_Vtbl {
25874    pub base__: windows_core::IUnknown_Vtbl,
25875    pub Invoke: unsafe extern "system" fn(
25876        *mut core::ffi::c_void,
25877        *mut core::ffi::c_void,
25878        *mut core::ffi::c_void,
25879    ) -> windows_core::HRESULT,
25880}
25881pub trait ICoreWebView2NotificationCloseRequestedEventHandler_Impl:
25882    windows_core::IUnknownImpl
25883{
25884    fn Invoke(
25885        &self,
25886        sender: windows_core::Ref<ICoreWebView2Notification>,
25887        args: windows_core::Ref<windows_core::IUnknown>,
25888    ) -> windows_core::Result<()>;
25889}
25890impl ICoreWebView2NotificationCloseRequestedEventHandler_Vtbl {
25891    pub const fn new<
25892        Identity: ICoreWebView2NotificationCloseRequestedEventHandler_Impl,
25893        const OFFSET: isize,
25894    >() -> Self {
25895        unsafe extern "system" fn Invoke<
25896            Identity: ICoreWebView2NotificationCloseRequestedEventHandler_Impl,
25897            const OFFSET: isize,
25898        >(
25899            this: *mut core::ffi::c_void,
25900            sender: *mut core::ffi::c_void,
25901            args: *mut core::ffi::c_void,
25902        ) -> windows_core::HRESULT {
25903            unsafe {
25904                let this: &Identity =
25905                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
25906                ICoreWebView2NotificationCloseRequestedEventHandler_Impl::Invoke(
25907                    this,
25908                    core::mem::transmute_copy(&sender),
25909                    core::mem::transmute_copy(&args),
25910                )
25911                .into()
25912            }
25913        }
25914        Self {
25915            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
25916            Invoke: Invoke::<Identity, OFFSET>,
25917        }
25918    }
25919    pub fn matches(iid: &windows_core::GUID) -> bool {
25920        iid == & < ICoreWebView2NotificationCloseRequestedEventHandler as windows_core::Interface >::IID
25921    }
25922}
25923impl windows_core::RuntimeName for ICoreWebView2NotificationCloseRequestedEventHandler {}
25924windows_core::imp::define_interface!(
25925    ICoreWebView2NotificationReceivedEventArgs,
25926    ICoreWebView2NotificationReceivedEventArgs_Vtbl,
25927    0x1512dd5b_5514_4f85_886e_21c3a4c9cfe6
25928);
25929windows_core::imp::interface_hierarchy!(
25930    ICoreWebView2NotificationReceivedEventArgs,
25931    windows_core::IUnknown
25932);
25933impl ICoreWebView2NotificationReceivedEventArgs {
25934    pub unsafe fn SenderOrigin(&self, value: *mut windows_core::PWSTR) -> windows_core::Result<()> {
25935        unsafe {
25936            (windows_core::Interface::vtable(self).SenderOrigin)(
25937                windows_core::Interface::as_raw(self),
25938                value as _,
25939            )
25940            .ok()
25941        }
25942    }
25943    pub unsafe fn Notification(&self) -> windows_core::Result<ICoreWebView2Notification> {
25944        unsafe {
25945            let mut result__ = core::mem::zeroed();
25946            (windows_core::Interface::vtable(self).Notification)(
25947                windows_core::Interface::as_raw(self),
25948                &mut result__,
25949            )
25950            .and_then(|| windows_core::Type::from_abi(result__))
25951        }
25952    }
25953    pub unsafe fn SetHandled(&self, value: bool) -> windows_core::Result<()> {
25954        unsafe {
25955            (windows_core::Interface::vtable(self).SetHandled)(
25956                windows_core::Interface::as_raw(self),
25957                value.into(),
25958            )
25959            .ok()
25960        }
25961    }
25962    pub unsafe fn Handled(&self, value: *mut windows_core::BOOL) -> windows_core::Result<()> {
25963        unsafe {
25964            (windows_core::Interface::vtable(self).Handled)(
25965                windows_core::Interface::as_raw(self),
25966                value as _,
25967            )
25968            .ok()
25969        }
25970    }
25971    pub unsafe fn GetDeferral(&self) -> windows_core::Result<ICoreWebView2Deferral> {
25972        unsafe {
25973            let mut result__ = core::mem::zeroed();
25974            (windows_core::Interface::vtable(self).GetDeferral)(
25975                windows_core::Interface::as_raw(self),
25976                &mut result__,
25977            )
25978            .and_then(|| windows_core::Type::from_abi(result__))
25979        }
25980    }
25981}
25982#[repr(C)]
25983#[doc(hidden)]
25984pub struct ICoreWebView2NotificationReceivedEventArgs_Vtbl {
25985    pub base__: windows_core::IUnknown_Vtbl,
25986    pub SenderOrigin: unsafe extern "system" fn(
25987        *mut core::ffi::c_void,
25988        *mut windows_core::PWSTR,
25989    ) -> windows_core::HRESULT,
25990    pub Notification: unsafe extern "system" fn(
25991        *mut core::ffi::c_void,
25992        *mut *mut core::ffi::c_void,
25993    ) -> windows_core::HRESULT,
25994    pub SetHandled: unsafe extern "system" fn(
25995        *mut core::ffi::c_void,
25996        windows_core::BOOL,
25997    ) -> windows_core::HRESULT,
25998    pub Handled: unsafe extern "system" fn(
25999        *mut core::ffi::c_void,
26000        *mut windows_core::BOOL,
26001    ) -> windows_core::HRESULT,
26002    pub GetDeferral: unsafe extern "system" fn(
26003        *mut core::ffi::c_void,
26004        *mut *mut core::ffi::c_void,
26005    ) -> windows_core::HRESULT,
26006}
26007pub trait ICoreWebView2NotificationReceivedEventArgs_Impl: windows_core::IUnknownImpl {
26008    fn SenderOrigin(&self, value: *mut windows_core::PWSTR) -> windows_core::Result<()>;
26009    fn Notification(&self) -> windows_core::Result<ICoreWebView2Notification>;
26010    fn SetHandled(&self, value: windows_core::BOOL) -> windows_core::Result<()>;
26011    fn Handled(&self, value: *mut windows_core::BOOL) -> windows_core::Result<()>;
26012    fn GetDeferral(&self) -> windows_core::Result<ICoreWebView2Deferral>;
26013}
26014impl ICoreWebView2NotificationReceivedEventArgs_Vtbl {
26015    pub const fn new<
26016        Identity: ICoreWebView2NotificationReceivedEventArgs_Impl,
26017        const OFFSET: isize,
26018    >() -> Self {
26019        unsafe extern "system" fn SenderOrigin<
26020            Identity: ICoreWebView2NotificationReceivedEventArgs_Impl,
26021            const OFFSET: isize,
26022        >(
26023            this: *mut core::ffi::c_void,
26024            value: *mut windows_core::PWSTR,
26025        ) -> windows_core::HRESULT {
26026            unsafe {
26027                let this: &Identity =
26028                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
26029                ICoreWebView2NotificationReceivedEventArgs_Impl::SenderOrigin(
26030                    this,
26031                    core::mem::transmute_copy(&value),
26032                )
26033                .into()
26034            }
26035        }
26036        unsafe extern "system" fn Notification<
26037            Identity: ICoreWebView2NotificationReceivedEventArgs_Impl,
26038            const OFFSET: isize,
26039        >(
26040            this: *mut core::ffi::c_void,
26041            value: *mut *mut core::ffi::c_void,
26042        ) -> windows_core::HRESULT {
26043            unsafe {
26044                let this: &Identity =
26045                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
26046                match ICoreWebView2NotificationReceivedEventArgs_Impl::Notification(this) {
26047                    Ok(ok__) => {
26048                        value.write(core::mem::transmute(ok__));
26049                        windows_core::HRESULT(0)
26050                    }
26051                    Err(err) => err.into(),
26052                }
26053            }
26054        }
26055        unsafe extern "system" fn SetHandled<
26056            Identity: ICoreWebView2NotificationReceivedEventArgs_Impl,
26057            const OFFSET: isize,
26058        >(
26059            this: *mut core::ffi::c_void,
26060            value: windows_core::BOOL,
26061        ) -> windows_core::HRESULT {
26062            unsafe {
26063                let this: &Identity =
26064                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
26065                ICoreWebView2NotificationReceivedEventArgs_Impl::SetHandled(
26066                    this,
26067                    core::mem::transmute_copy(&value),
26068                )
26069                .into()
26070            }
26071        }
26072        unsafe extern "system" fn Handled<
26073            Identity: ICoreWebView2NotificationReceivedEventArgs_Impl,
26074            const OFFSET: isize,
26075        >(
26076            this: *mut core::ffi::c_void,
26077            value: *mut windows_core::BOOL,
26078        ) -> windows_core::HRESULT {
26079            unsafe {
26080                let this: &Identity =
26081                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
26082                ICoreWebView2NotificationReceivedEventArgs_Impl::Handled(
26083                    this,
26084                    core::mem::transmute_copy(&value),
26085                )
26086                .into()
26087            }
26088        }
26089        unsafe extern "system" fn GetDeferral<
26090            Identity: ICoreWebView2NotificationReceivedEventArgs_Impl,
26091            const OFFSET: isize,
26092        >(
26093            this: *mut core::ffi::c_void,
26094            deferral: *mut *mut core::ffi::c_void,
26095        ) -> windows_core::HRESULT {
26096            unsafe {
26097                let this: &Identity =
26098                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
26099                match ICoreWebView2NotificationReceivedEventArgs_Impl::GetDeferral(this) {
26100                    Ok(ok__) => {
26101                        deferral.write(core::mem::transmute(ok__));
26102                        windows_core::HRESULT(0)
26103                    }
26104                    Err(err) => err.into(),
26105                }
26106            }
26107        }
26108        Self {
26109            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
26110            SenderOrigin: SenderOrigin::<Identity, OFFSET>,
26111            Notification: Notification::<Identity, OFFSET>,
26112            SetHandled: SetHandled::<Identity, OFFSET>,
26113            Handled: Handled::<Identity, OFFSET>,
26114            GetDeferral: GetDeferral::<Identity, OFFSET>,
26115        }
26116    }
26117    pub fn matches(iid: &windows_core::GUID) -> bool {
26118        iid == &<ICoreWebView2NotificationReceivedEventArgs as windows_core::Interface>::IID
26119    }
26120}
26121impl windows_core::RuntimeName for ICoreWebView2NotificationReceivedEventArgs {}
26122windows_core::imp::define_interface!(
26123    ICoreWebView2NotificationReceivedEventHandler,
26124    ICoreWebView2NotificationReceivedEventHandler_Vtbl,
26125    0x89c5d598_8788_423b_be97_e6e01c0f9ee3
26126);
26127windows_core::imp::interface_hierarchy!(
26128    ICoreWebView2NotificationReceivedEventHandler,
26129    windows_core::IUnknown
26130);
26131impl ICoreWebView2NotificationReceivedEventHandler {
26132    pub unsafe fn Invoke<P0, P1>(&self, sender: P0, args: P1) -> windows_core::Result<()>
26133    where
26134        P0: windows_core::Param<ICoreWebView2>,
26135        P1: windows_core::Param<ICoreWebView2NotificationReceivedEventArgs>,
26136    {
26137        unsafe {
26138            (windows_core::Interface::vtable(self).Invoke)(
26139                windows_core::Interface::as_raw(self),
26140                sender.param().abi(),
26141                args.param().abi(),
26142            )
26143            .ok()
26144        }
26145    }
26146}
26147#[repr(C)]
26148#[doc(hidden)]
26149pub struct ICoreWebView2NotificationReceivedEventHandler_Vtbl {
26150    pub base__: windows_core::IUnknown_Vtbl,
26151    pub Invoke: unsafe extern "system" fn(
26152        *mut core::ffi::c_void,
26153        *mut core::ffi::c_void,
26154        *mut core::ffi::c_void,
26155    ) -> windows_core::HRESULT,
26156}
26157pub trait ICoreWebView2NotificationReceivedEventHandler_Impl: windows_core::IUnknownImpl {
26158    fn Invoke(
26159        &self,
26160        sender: windows_core::Ref<ICoreWebView2>,
26161        args: windows_core::Ref<ICoreWebView2NotificationReceivedEventArgs>,
26162    ) -> windows_core::Result<()>;
26163}
26164impl ICoreWebView2NotificationReceivedEventHandler_Vtbl {
26165    pub const fn new<
26166        Identity: ICoreWebView2NotificationReceivedEventHandler_Impl,
26167        const OFFSET: isize,
26168    >() -> Self {
26169        unsafe extern "system" fn Invoke<
26170            Identity: ICoreWebView2NotificationReceivedEventHandler_Impl,
26171            const OFFSET: isize,
26172        >(
26173            this: *mut core::ffi::c_void,
26174            sender: *mut core::ffi::c_void,
26175            args: *mut core::ffi::c_void,
26176        ) -> windows_core::HRESULT {
26177            unsafe {
26178                let this: &Identity =
26179                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
26180                ICoreWebView2NotificationReceivedEventHandler_Impl::Invoke(
26181                    this,
26182                    core::mem::transmute_copy(&sender),
26183                    core::mem::transmute_copy(&args),
26184                )
26185                .into()
26186            }
26187        }
26188        Self {
26189            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
26190            Invoke: Invoke::<Identity, OFFSET>,
26191        }
26192    }
26193    pub fn matches(iid: &windows_core::GUID) -> bool {
26194        iid == &<ICoreWebView2NotificationReceivedEventHandler as windows_core::Interface>::IID
26195    }
26196}
26197impl windows_core::RuntimeName for ICoreWebView2NotificationReceivedEventHandler {}
26198windows_core::imp::define_interface!(
26199    ICoreWebView2ObjectCollection,
26200    ICoreWebView2ObjectCollection_Vtbl,
26201    0x5cfec11c_25bd_4e8d_9e1a_7acdaeeec047
26202);
26203impl core::ops::Deref for ICoreWebView2ObjectCollection {
26204    type Target = ICoreWebView2ObjectCollectionView;
26205    fn deref(&self) -> &Self::Target {
26206        unsafe { core::mem::transmute(self) }
26207    }
26208}
26209windows_core::imp::interface_hierarchy!(
26210    ICoreWebView2ObjectCollection,
26211    windows_core::IUnknown,
26212    ICoreWebView2ObjectCollectionView
26213);
26214impl ICoreWebView2ObjectCollection {
26215    pub unsafe fn RemoveValueAtIndex(&self, index: u32) -> windows_core::Result<()> {
26216        unsafe {
26217            (windows_core::Interface::vtable(self).RemoveValueAtIndex)(
26218                windows_core::Interface::as_raw(self),
26219                index,
26220            )
26221            .ok()
26222        }
26223    }
26224    pub unsafe fn InsertValueAtIndex<P1>(&self, index: u32, value: P1) -> windows_core::Result<()>
26225    where
26226        P1: windows_core::Param<windows_core::IUnknown>,
26227    {
26228        unsafe {
26229            (windows_core::Interface::vtable(self).InsertValueAtIndex)(
26230                windows_core::Interface::as_raw(self),
26231                index,
26232                value.param().abi(),
26233            )
26234            .ok()
26235        }
26236    }
26237}
26238#[repr(C)]
26239#[doc(hidden)]
26240pub struct ICoreWebView2ObjectCollection_Vtbl {
26241    pub base__: ICoreWebView2ObjectCollectionView_Vtbl,
26242    pub RemoveValueAtIndex:
26243        unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
26244    pub InsertValueAtIndex: unsafe extern "system" fn(
26245        *mut core::ffi::c_void,
26246        u32,
26247        *mut core::ffi::c_void,
26248    ) -> windows_core::HRESULT,
26249}
26250pub trait ICoreWebView2ObjectCollection_Impl: ICoreWebView2ObjectCollectionView_Impl {
26251    fn RemoveValueAtIndex(&self, index: u32) -> windows_core::Result<()>;
26252    fn InsertValueAtIndex(
26253        &self,
26254        index: u32,
26255        value: windows_core::Ref<windows_core::IUnknown>,
26256    ) -> windows_core::Result<()>;
26257}
26258impl ICoreWebView2ObjectCollection_Vtbl {
26259    pub const fn new<Identity: ICoreWebView2ObjectCollection_Impl, const OFFSET: isize>() -> Self {
26260        unsafe extern "system" fn RemoveValueAtIndex<
26261            Identity: ICoreWebView2ObjectCollection_Impl,
26262            const OFFSET: isize,
26263        >(
26264            this: *mut core::ffi::c_void,
26265            index: u32,
26266        ) -> windows_core::HRESULT {
26267            unsafe {
26268                let this: &Identity =
26269                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
26270                ICoreWebView2ObjectCollection_Impl::RemoveValueAtIndex(
26271                    this,
26272                    core::mem::transmute_copy(&index),
26273                )
26274                .into()
26275            }
26276        }
26277        unsafe extern "system" fn InsertValueAtIndex<
26278            Identity: ICoreWebView2ObjectCollection_Impl,
26279            const OFFSET: isize,
26280        >(
26281            this: *mut core::ffi::c_void,
26282            index: u32,
26283            value: *mut core::ffi::c_void,
26284        ) -> windows_core::HRESULT {
26285            unsafe {
26286                let this: &Identity =
26287                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
26288                ICoreWebView2ObjectCollection_Impl::InsertValueAtIndex(
26289                    this,
26290                    core::mem::transmute_copy(&index),
26291                    core::mem::transmute_copy(&value),
26292                )
26293                .into()
26294            }
26295        }
26296        Self {
26297            base__: ICoreWebView2ObjectCollectionView_Vtbl::new::<Identity, OFFSET>(),
26298            RemoveValueAtIndex: RemoveValueAtIndex::<Identity, OFFSET>,
26299            InsertValueAtIndex: InsertValueAtIndex::<Identity, OFFSET>,
26300        }
26301    }
26302    pub fn matches(iid: &windows_core::GUID) -> bool {
26303        iid == &<ICoreWebView2ObjectCollection as windows_core::Interface>::IID
26304            || iid == &<ICoreWebView2ObjectCollectionView as windows_core::Interface>::IID
26305    }
26306}
26307impl windows_core::RuntimeName for ICoreWebView2ObjectCollection {}
26308windows_core::imp::define_interface!(
26309    ICoreWebView2ObjectCollectionView,
26310    ICoreWebView2ObjectCollectionView_Vtbl,
26311    0x0f36fd87_4f69_4415_98da_888f89fb9a33
26312);
26313windows_core::imp::interface_hierarchy!(ICoreWebView2ObjectCollectionView, windows_core::IUnknown);
26314impl ICoreWebView2ObjectCollectionView {
26315    pub unsafe fn Count(&self, value: *mut u32) -> windows_core::Result<()> {
26316        unsafe {
26317            (windows_core::Interface::vtable(self).Count)(
26318                windows_core::Interface::as_raw(self),
26319                value as _,
26320            )
26321            .ok()
26322        }
26323    }
26324    pub unsafe fn GetValueAtIndex(
26325        &self,
26326        index: u32,
26327    ) -> windows_core::Result<windows_core::IUnknown> {
26328        unsafe {
26329            let mut result__ = core::mem::zeroed();
26330            (windows_core::Interface::vtable(self).GetValueAtIndex)(
26331                windows_core::Interface::as_raw(self),
26332                index,
26333                &mut result__,
26334            )
26335            .and_then(|| windows_core::Type::from_abi(result__))
26336        }
26337    }
26338}
26339#[repr(C)]
26340#[doc(hidden)]
26341pub struct ICoreWebView2ObjectCollectionView_Vtbl {
26342    pub base__: windows_core::IUnknown_Vtbl,
26343    pub Count: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
26344    pub GetValueAtIndex: unsafe extern "system" fn(
26345        *mut core::ffi::c_void,
26346        u32,
26347        *mut *mut core::ffi::c_void,
26348    ) -> windows_core::HRESULT,
26349}
26350pub trait ICoreWebView2ObjectCollectionView_Impl: windows_core::IUnknownImpl {
26351    fn Count(&self, value: *mut u32) -> windows_core::Result<()>;
26352    fn GetValueAtIndex(&self, index: u32) -> windows_core::Result<windows_core::IUnknown>;
26353}
26354impl ICoreWebView2ObjectCollectionView_Vtbl {
26355    pub const fn new<Identity: ICoreWebView2ObjectCollectionView_Impl, const OFFSET: isize>() -> Self
26356    {
26357        unsafe extern "system" fn Count<
26358            Identity: ICoreWebView2ObjectCollectionView_Impl,
26359            const OFFSET: isize,
26360        >(
26361            this: *mut core::ffi::c_void,
26362            value: *mut u32,
26363        ) -> windows_core::HRESULT {
26364            unsafe {
26365                let this: &Identity =
26366                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
26367                ICoreWebView2ObjectCollectionView_Impl::Count(
26368                    this,
26369                    core::mem::transmute_copy(&value),
26370                )
26371                .into()
26372            }
26373        }
26374        unsafe extern "system" fn GetValueAtIndex<
26375            Identity: ICoreWebView2ObjectCollectionView_Impl,
26376            const OFFSET: isize,
26377        >(
26378            this: *mut core::ffi::c_void,
26379            index: u32,
26380            value: *mut *mut core::ffi::c_void,
26381        ) -> windows_core::HRESULT {
26382            unsafe {
26383                let this: &Identity =
26384                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
26385                match ICoreWebView2ObjectCollectionView_Impl::GetValueAtIndex(
26386                    this,
26387                    core::mem::transmute_copy(&index),
26388                ) {
26389                    Ok(ok__) => {
26390                        value.write(core::mem::transmute(ok__));
26391                        windows_core::HRESULT(0)
26392                    }
26393                    Err(err) => err.into(),
26394                }
26395            }
26396        }
26397        Self {
26398            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
26399            Count: Count::<Identity, OFFSET>,
26400            GetValueAtIndex: GetValueAtIndex::<Identity, OFFSET>,
26401        }
26402    }
26403    pub fn matches(iid: &windows_core::GUID) -> bool {
26404        iid == &<ICoreWebView2ObjectCollectionView as windows_core::Interface>::IID
26405    }
26406}
26407impl windows_core::RuntimeName for ICoreWebView2ObjectCollectionView {}
26408windows_core::imp::define_interface!(
26409    ICoreWebView2PermissionRequestedEventArgs,
26410    ICoreWebView2PermissionRequestedEventArgs_Vtbl,
26411    0x973ae2ef_ff18_4894_8fb2_3c758f046810
26412);
26413windows_core::imp::interface_hierarchy!(
26414    ICoreWebView2PermissionRequestedEventArgs,
26415    windows_core::IUnknown
26416);
26417impl ICoreWebView2PermissionRequestedEventArgs {
26418    pub unsafe fn Uri(&self, uri: *mut windows_core::PWSTR) -> windows_core::Result<()> {
26419        unsafe {
26420            (windows_core::Interface::vtable(self).Uri)(
26421                windows_core::Interface::as_raw(self),
26422                uri as _,
26423            )
26424            .ok()
26425        }
26426    }
26427    pub unsafe fn PermissionKind(
26428        &self,
26429        permissionkind: *mut COREWEBVIEW2_PERMISSION_KIND,
26430    ) -> windows_core::Result<()> {
26431        unsafe {
26432            (windows_core::Interface::vtable(self).PermissionKind)(
26433                windows_core::Interface::as_raw(self),
26434                permissionkind as _,
26435            )
26436            .ok()
26437        }
26438    }
26439    pub unsafe fn IsUserInitiated(
26440        &self,
26441        isuserinitiated: *mut windows_core::BOOL,
26442    ) -> windows_core::Result<()> {
26443        unsafe {
26444            (windows_core::Interface::vtable(self).IsUserInitiated)(
26445                windows_core::Interface::as_raw(self),
26446                isuserinitiated as _,
26447            )
26448            .ok()
26449        }
26450    }
26451    pub unsafe fn State(
26452        &self,
26453        state: *mut COREWEBVIEW2_PERMISSION_STATE,
26454    ) -> windows_core::Result<()> {
26455        unsafe {
26456            (windows_core::Interface::vtable(self).State)(
26457                windows_core::Interface::as_raw(self),
26458                state as _,
26459            )
26460            .ok()
26461        }
26462    }
26463    pub unsafe fn SetState(
26464        &self,
26465        state: COREWEBVIEW2_PERMISSION_STATE,
26466    ) -> windows_core::Result<()> {
26467        unsafe {
26468            (windows_core::Interface::vtable(self).SetState)(
26469                windows_core::Interface::as_raw(self),
26470                state,
26471            )
26472            .ok()
26473        }
26474    }
26475    pub unsafe fn GetDeferral(&self) -> windows_core::Result<ICoreWebView2Deferral> {
26476        unsafe {
26477            let mut result__ = core::mem::zeroed();
26478            (windows_core::Interface::vtable(self).GetDeferral)(
26479                windows_core::Interface::as_raw(self),
26480                &mut result__,
26481            )
26482            .and_then(|| windows_core::Type::from_abi(result__))
26483        }
26484    }
26485}
26486#[repr(C)]
26487#[doc(hidden)]
26488pub struct ICoreWebView2PermissionRequestedEventArgs_Vtbl {
26489    pub base__: windows_core::IUnknown_Vtbl,
26490    pub Uri: unsafe extern "system" fn(
26491        *mut core::ffi::c_void,
26492        *mut windows_core::PWSTR,
26493    ) -> windows_core::HRESULT,
26494    pub PermissionKind: unsafe extern "system" fn(
26495        *mut core::ffi::c_void,
26496        *mut COREWEBVIEW2_PERMISSION_KIND,
26497    ) -> windows_core::HRESULT,
26498    pub IsUserInitiated: unsafe extern "system" fn(
26499        *mut core::ffi::c_void,
26500        *mut windows_core::BOOL,
26501    ) -> windows_core::HRESULT,
26502    pub State: unsafe extern "system" fn(
26503        *mut core::ffi::c_void,
26504        *mut COREWEBVIEW2_PERMISSION_STATE,
26505    ) -> windows_core::HRESULT,
26506    pub SetState: unsafe extern "system" fn(
26507        *mut core::ffi::c_void,
26508        COREWEBVIEW2_PERMISSION_STATE,
26509    ) -> windows_core::HRESULT,
26510    pub GetDeferral: unsafe extern "system" fn(
26511        *mut core::ffi::c_void,
26512        *mut *mut core::ffi::c_void,
26513    ) -> windows_core::HRESULT,
26514}
26515pub trait ICoreWebView2PermissionRequestedEventArgs_Impl: windows_core::IUnknownImpl {
26516    fn Uri(&self, uri: *mut windows_core::PWSTR) -> windows_core::Result<()>;
26517    fn PermissionKind(
26518        &self,
26519        permissionkind: *mut COREWEBVIEW2_PERMISSION_KIND,
26520    ) -> windows_core::Result<()>;
26521    fn IsUserInitiated(&self, isuserinitiated: *mut windows_core::BOOL)
26522        -> windows_core::Result<()>;
26523    fn State(&self, state: *mut COREWEBVIEW2_PERMISSION_STATE) -> windows_core::Result<()>;
26524    fn SetState(&self, state: COREWEBVIEW2_PERMISSION_STATE) -> windows_core::Result<()>;
26525    fn GetDeferral(&self) -> windows_core::Result<ICoreWebView2Deferral>;
26526}
26527impl ICoreWebView2PermissionRequestedEventArgs_Vtbl {
26528    pub const fn new<
26529        Identity: ICoreWebView2PermissionRequestedEventArgs_Impl,
26530        const OFFSET: isize,
26531    >() -> Self {
26532        unsafe extern "system" fn Uri<
26533            Identity: ICoreWebView2PermissionRequestedEventArgs_Impl,
26534            const OFFSET: isize,
26535        >(
26536            this: *mut core::ffi::c_void,
26537            uri: *mut windows_core::PWSTR,
26538        ) -> windows_core::HRESULT {
26539            unsafe {
26540                let this: &Identity =
26541                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
26542                ICoreWebView2PermissionRequestedEventArgs_Impl::Uri(
26543                    this,
26544                    core::mem::transmute_copy(&uri),
26545                )
26546                .into()
26547            }
26548        }
26549        unsafe extern "system" fn PermissionKind<
26550            Identity: ICoreWebView2PermissionRequestedEventArgs_Impl,
26551            const OFFSET: isize,
26552        >(
26553            this: *mut core::ffi::c_void,
26554            permissionkind: *mut COREWEBVIEW2_PERMISSION_KIND,
26555        ) -> windows_core::HRESULT {
26556            unsafe {
26557                let this: &Identity =
26558                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
26559                ICoreWebView2PermissionRequestedEventArgs_Impl::PermissionKind(
26560                    this,
26561                    core::mem::transmute_copy(&permissionkind),
26562                )
26563                .into()
26564            }
26565        }
26566        unsafe extern "system" fn IsUserInitiated<
26567            Identity: ICoreWebView2PermissionRequestedEventArgs_Impl,
26568            const OFFSET: isize,
26569        >(
26570            this: *mut core::ffi::c_void,
26571            isuserinitiated: *mut windows_core::BOOL,
26572        ) -> windows_core::HRESULT {
26573            unsafe {
26574                let this: &Identity =
26575                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
26576                ICoreWebView2PermissionRequestedEventArgs_Impl::IsUserInitiated(
26577                    this,
26578                    core::mem::transmute_copy(&isuserinitiated),
26579                )
26580                .into()
26581            }
26582        }
26583        unsafe extern "system" fn State<
26584            Identity: ICoreWebView2PermissionRequestedEventArgs_Impl,
26585            const OFFSET: isize,
26586        >(
26587            this: *mut core::ffi::c_void,
26588            state: *mut COREWEBVIEW2_PERMISSION_STATE,
26589        ) -> windows_core::HRESULT {
26590            unsafe {
26591                let this: &Identity =
26592                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
26593                ICoreWebView2PermissionRequestedEventArgs_Impl::State(
26594                    this,
26595                    core::mem::transmute_copy(&state),
26596                )
26597                .into()
26598            }
26599        }
26600        unsafe extern "system" fn SetState<
26601            Identity: ICoreWebView2PermissionRequestedEventArgs_Impl,
26602            const OFFSET: isize,
26603        >(
26604            this: *mut core::ffi::c_void,
26605            state: COREWEBVIEW2_PERMISSION_STATE,
26606        ) -> windows_core::HRESULT {
26607            unsafe {
26608                let this: &Identity =
26609                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
26610                ICoreWebView2PermissionRequestedEventArgs_Impl::SetState(
26611                    this,
26612                    core::mem::transmute_copy(&state),
26613                )
26614                .into()
26615            }
26616        }
26617        unsafe extern "system" fn GetDeferral<
26618            Identity: ICoreWebView2PermissionRequestedEventArgs_Impl,
26619            const OFFSET: isize,
26620        >(
26621            this: *mut core::ffi::c_void,
26622            deferral: *mut *mut core::ffi::c_void,
26623        ) -> windows_core::HRESULT {
26624            unsafe {
26625                let this: &Identity =
26626                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
26627                match ICoreWebView2PermissionRequestedEventArgs_Impl::GetDeferral(this) {
26628                    Ok(ok__) => {
26629                        deferral.write(core::mem::transmute(ok__));
26630                        windows_core::HRESULT(0)
26631                    }
26632                    Err(err) => err.into(),
26633                }
26634            }
26635        }
26636        Self {
26637            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
26638            Uri: Uri::<Identity, OFFSET>,
26639            PermissionKind: PermissionKind::<Identity, OFFSET>,
26640            IsUserInitiated: IsUserInitiated::<Identity, OFFSET>,
26641            State: State::<Identity, OFFSET>,
26642            SetState: SetState::<Identity, OFFSET>,
26643            GetDeferral: GetDeferral::<Identity, OFFSET>,
26644        }
26645    }
26646    pub fn matches(iid: &windows_core::GUID) -> bool {
26647        iid == &<ICoreWebView2PermissionRequestedEventArgs as windows_core::Interface>::IID
26648    }
26649}
26650impl windows_core::RuntimeName for ICoreWebView2PermissionRequestedEventArgs {}
26651windows_core::imp::define_interface!(
26652    ICoreWebView2PermissionRequestedEventArgs2,
26653    ICoreWebView2PermissionRequestedEventArgs2_Vtbl,
26654    0x74d7127f_9de6_4200_8734_42d6fb4ff741
26655);
26656impl core::ops::Deref for ICoreWebView2PermissionRequestedEventArgs2 {
26657    type Target = ICoreWebView2PermissionRequestedEventArgs;
26658    fn deref(&self) -> &Self::Target {
26659        unsafe { core::mem::transmute(self) }
26660    }
26661}
26662windows_core::imp::interface_hierarchy!(
26663    ICoreWebView2PermissionRequestedEventArgs2,
26664    windows_core::IUnknown,
26665    ICoreWebView2PermissionRequestedEventArgs
26666);
26667impl ICoreWebView2PermissionRequestedEventArgs2 {
26668    pub unsafe fn Handled(&self, value: *mut windows_core::BOOL) -> windows_core::Result<()> {
26669        unsafe {
26670            (windows_core::Interface::vtable(self).Handled)(
26671                windows_core::Interface::as_raw(self),
26672                value as _,
26673            )
26674            .ok()
26675        }
26676    }
26677    pub unsafe fn SetHandled(&self, value: bool) -> windows_core::Result<()> {
26678        unsafe {
26679            (windows_core::Interface::vtable(self).SetHandled)(
26680                windows_core::Interface::as_raw(self),
26681                value.into(),
26682            )
26683            .ok()
26684        }
26685    }
26686}
26687#[repr(C)]
26688#[doc(hidden)]
26689pub struct ICoreWebView2PermissionRequestedEventArgs2_Vtbl {
26690    pub base__: ICoreWebView2PermissionRequestedEventArgs_Vtbl,
26691    pub Handled: unsafe extern "system" fn(
26692        *mut core::ffi::c_void,
26693        *mut windows_core::BOOL,
26694    ) -> windows_core::HRESULT,
26695    pub SetHandled: unsafe extern "system" fn(
26696        *mut core::ffi::c_void,
26697        windows_core::BOOL,
26698    ) -> windows_core::HRESULT,
26699}
26700pub trait ICoreWebView2PermissionRequestedEventArgs2_Impl:
26701    ICoreWebView2PermissionRequestedEventArgs_Impl
26702{
26703    fn Handled(&self, value: *mut windows_core::BOOL) -> windows_core::Result<()>;
26704    fn SetHandled(&self, value: windows_core::BOOL) -> windows_core::Result<()>;
26705}
26706impl ICoreWebView2PermissionRequestedEventArgs2_Vtbl {
26707    pub const fn new<
26708        Identity: ICoreWebView2PermissionRequestedEventArgs2_Impl,
26709        const OFFSET: isize,
26710    >() -> Self {
26711        unsafe extern "system" fn Handled<
26712            Identity: ICoreWebView2PermissionRequestedEventArgs2_Impl,
26713            const OFFSET: isize,
26714        >(
26715            this: *mut core::ffi::c_void,
26716            value: *mut windows_core::BOOL,
26717        ) -> windows_core::HRESULT {
26718            unsafe {
26719                let this: &Identity =
26720                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
26721                ICoreWebView2PermissionRequestedEventArgs2_Impl::Handled(
26722                    this,
26723                    core::mem::transmute_copy(&value),
26724                )
26725                .into()
26726            }
26727        }
26728        unsafe extern "system" fn SetHandled<
26729            Identity: ICoreWebView2PermissionRequestedEventArgs2_Impl,
26730            const OFFSET: isize,
26731        >(
26732            this: *mut core::ffi::c_void,
26733            value: windows_core::BOOL,
26734        ) -> windows_core::HRESULT {
26735            unsafe {
26736                let this: &Identity =
26737                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
26738                ICoreWebView2PermissionRequestedEventArgs2_Impl::SetHandled(
26739                    this,
26740                    core::mem::transmute_copy(&value),
26741                )
26742                .into()
26743            }
26744        }
26745        Self {
26746            base__: ICoreWebView2PermissionRequestedEventArgs_Vtbl::new::<Identity, OFFSET>(),
26747            Handled: Handled::<Identity, OFFSET>,
26748            SetHandled: SetHandled::<Identity, OFFSET>,
26749        }
26750    }
26751    pub fn matches(iid: &windows_core::GUID) -> bool {
26752        iid == &<ICoreWebView2PermissionRequestedEventArgs2 as windows_core::Interface>::IID
26753            || iid == &<ICoreWebView2PermissionRequestedEventArgs as windows_core::Interface>::IID
26754    }
26755}
26756impl windows_core::RuntimeName for ICoreWebView2PermissionRequestedEventArgs2 {}
26757windows_core::imp::define_interface!(
26758    ICoreWebView2PermissionRequestedEventArgs3,
26759    ICoreWebView2PermissionRequestedEventArgs3_Vtbl,
26760    0xe61670bc_3dce_4177_86d2_c629ae3cb6ac
26761);
26762impl core::ops::Deref for ICoreWebView2PermissionRequestedEventArgs3 {
26763    type Target = ICoreWebView2PermissionRequestedEventArgs2;
26764    fn deref(&self) -> &Self::Target {
26765        unsafe { core::mem::transmute(self) }
26766    }
26767}
26768windows_core::imp::interface_hierarchy!(
26769    ICoreWebView2PermissionRequestedEventArgs3,
26770    windows_core::IUnknown,
26771    ICoreWebView2PermissionRequestedEventArgs,
26772    ICoreWebView2PermissionRequestedEventArgs2
26773);
26774impl ICoreWebView2PermissionRequestedEventArgs3 {
26775    pub unsafe fn SavesInProfile(
26776        &self,
26777        value: *mut windows_core::BOOL,
26778    ) -> windows_core::Result<()> {
26779        unsafe {
26780            (windows_core::Interface::vtable(self).SavesInProfile)(
26781                windows_core::Interface::as_raw(self),
26782                value as _,
26783            )
26784            .ok()
26785        }
26786    }
26787    pub unsafe fn SetSavesInProfile(&self, value: bool) -> windows_core::Result<()> {
26788        unsafe {
26789            (windows_core::Interface::vtable(self).SetSavesInProfile)(
26790                windows_core::Interface::as_raw(self),
26791                value.into(),
26792            )
26793            .ok()
26794        }
26795    }
26796}
26797#[repr(C)]
26798#[doc(hidden)]
26799pub struct ICoreWebView2PermissionRequestedEventArgs3_Vtbl {
26800    pub base__: ICoreWebView2PermissionRequestedEventArgs2_Vtbl,
26801    pub SavesInProfile: unsafe extern "system" fn(
26802        *mut core::ffi::c_void,
26803        *mut windows_core::BOOL,
26804    ) -> windows_core::HRESULT,
26805    pub SetSavesInProfile: unsafe extern "system" fn(
26806        *mut core::ffi::c_void,
26807        windows_core::BOOL,
26808    ) -> windows_core::HRESULT,
26809}
26810pub trait ICoreWebView2PermissionRequestedEventArgs3_Impl:
26811    ICoreWebView2PermissionRequestedEventArgs2_Impl
26812{
26813    fn SavesInProfile(&self, value: *mut windows_core::BOOL) -> windows_core::Result<()>;
26814    fn SetSavesInProfile(&self, value: windows_core::BOOL) -> windows_core::Result<()>;
26815}
26816impl ICoreWebView2PermissionRequestedEventArgs3_Vtbl {
26817    pub const fn new<
26818        Identity: ICoreWebView2PermissionRequestedEventArgs3_Impl,
26819        const OFFSET: isize,
26820    >() -> Self {
26821        unsafe extern "system" fn SavesInProfile<
26822            Identity: ICoreWebView2PermissionRequestedEventArgs3_Impl,
26823            const OFFSET: isize,
26824        >(
26825            this: *mut core::ffi::c_void,
26826            value: *mut windows_core::BOOL,
26827        ) -> windows_core::HRESULT {
26828            unsafe {
26829                let this: &Identity =
26830                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
26831                ICoreWebView2PermissionRequestedEventArgs3_Impl::SavesInProfile(
26832                    this,
26833                    core::mem::transmute_copy(&value),
26834                )
26835                .into()
26836            }
26837        }
26838        unsafe extern "system" fn SetSavesInProfile<
26839            Identity: ICoreWebView2PermissionRequestedEventArgs3_Impl,
26840            const OFFSET: isize,
26841        >(
26842            this: *mut core::ffi::c_void,
26843            value: windows_core::BOOL,
26844        ) -> windows_core::HRESULT {
26845            unsafe {
26846                let this: &Identity =
26847                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
26848                ICoreWebView2PermissionRequestedEventArgs3_Impl::SetSavesInProfile(
26849                    this,
26850                    core::mem::transmute_copy(&value),
26851                )
26852                .into()
26853            }
26854        }
26855        Self {
26856            base__: ICoreWebView2PermissionRequestedEventArgs2_Vtbl::new::<Identity, OFFSET>(),
26857            SavesInProfile: SavesInProfile::<Identity, OFFSET>,
26858            SetSavesInProfile: SetSavesInProfile::<Identity, OFFSET>,
26859        }
26860    }
26861    pub fn matches(iid: &windows_core::GUID) -> bool {
26862        iid == &<ICoreWebView2PermissionRequestedEventArgs3 as windows_core::Interface>::IID
26863            || iid == &<ICoreWebView2PermissionRequestedEventArgs as windows_core::Interface>::IID
26864            || iid == &<ICoreWebView2PermissionRequestedEventArgs2 as windows_core::Interface>::IID
26865    }
26866}
26867impl windows_core::RuntimeName for ICoreWebView2PermissionRequestedEventArgs3 {}
26868windows_core::imp::define_interface!(
26869    ICoreWebView2PermissionRequestedEventHandler,
26870    ICoreWebView2PermissionRequestedEventHandler_Vtbl,
26871    0x15e1c6a3_c72a_4df3_91d7_d097fbec6bfd
26872);
26873windows_core::imp::interface_hierarchy!(
26874    ICoreWebView2PermissionRequestedEventHandler,
26875    windows_core::IUnknown
26876);
26877impl ICoreWebView2PermissionRequestedEventHandler {
26878    pub unsafe fn Invoke<P0, P1>(&self, sender: P0, args: P1) -> windows_core::Result<()>
26879    where
26880        P0: windows_core::Param<ICoreWebView2>,
26881        P1: windows_core::Param<ICoreWebView2PermissionRequestedEventArgs>,
26882    {
26883        unsafe {
26884            (windows_core::Interface::vtable(self).Invoke)(
26885                windows_core::Interface::as_raw(self),
26886                sender.param().abi(),
26887                args.param().abi(),
26888            )
26889            .ok()
26890        }
26891    }
26892}
26893#[repr(C)]
26894#[doc(hidden)]
26895pub struct ICoreWebView2PermissionRequestedEventHandler_Vtbl {
26896    pub base__: windows_core::IUnknown_Vtbl,
26897    pub Invoke: unsafe extern "system" fn(
26898        *mut core::ffi::c_void,
26899        *mut core::ffi::c_void,
26900        *mut core::ffi::c_void,
26901    ) -> windows_core::HRESULT,
26902}
26903pub trait ICoreWebView2PermissionRequestedEventHandler_Impl: windows_core::IUnknownImpl {
26904    fn Invoke(
26905        &self,
26906        sender: windows_core::Ref<ICoreWebView2>,
26907        args: windows_core::Ref<ICoreWebView2PermissionRequestedEventArgs>,
26908    ) -> windows_core::Result<()>;
26909}
26910impl ICoreWebView2PermissionRequestedEventHandler_Vtbl {
26911    pub const fn new<
26912        Identity: ICoreWebView2PermissionRequestedEventHandler_Impl,
26913        const OFFSET: isize,
26914    >() -> Self {
26915        unsafe extern "system" fn Invoke<
26916            Identity: ICoreWebView2PermissionRequestedEventHandler_Impl,
26917            const OFFSET: isize,
26918        >(
26919            this: *mut core::ffi::c_void,
26920            sender: *mut core::ffi::c_void,
26921            args: *mut core::ffi::c_void,
26922        ) -> windows_core::HRESULT {
26923            unsafe {
26924                let this: &Identity =
26925                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
26926                ICoreWebView2PermissionRequestedEventHandler_Impl::Invoke(
26927                    this,
26928                    core::mem::transmute_copy(&sender),
26929                    core::mem::transmute_copy(&args),
26930                )
26931                .into()
26932            }
26933        }
26934        Self {
26935            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
26936            Invoke: Invoke::<Identity, OFFSET>,
26937        }
26938    }
26939    pub fn matches(iid: &windows_core::GUID) -> bool {
26940        iid == &<ICoreWebView2PermissionRequestedEventHandler as windows_core::Interface>::IID
26941    }
26942}
26943impl windows_core::RuntimeName for ICoreWebView2PermissionRequestedEventHandler {}
26944windows_core::imp::define_interface!(
26945    ICoreWebView2PermissionSetting,
26946    ICoreWebView2PermissionSetting_Vtbl,
26947    0x792b6eca_5576_421c_9119_74ebb3a4ffb3
26948);
26949windows_core::imp::interface_hierarchy!(ICoreWebView2PermissionSetting, windows_core::IUnknown);
26950impl ICoreWebView2PermissionSetting {
26951    pub unsafe fn PermissionKind(
26952        &self,
26953        value: *mut COREWEBVIEW2_PERMISSION_KIND,
26954    ) -> windows_core::Result<()> {
26955        unsafe {
26956            (windows_core::Interface::vtable(self).PermissionKind)(
26957                windows_core::Interface::as_raw(self),
26958                value as _,
26959            )
26960            .ok()
26961        }
26962    }
26963    pub unsafe fn PermissionOrigin(
26964        &self,
26965        value: *mut windows_core::PWSTR,
26966    ) -> windows_core::Result<()> {
26967        unsafe {
26968            (windows_core::Interface::vtable(self).PermissionOrigin)(
26969                windows_core::Interface::as_raw(self),
26970                value as _,
26971            )
26972            .ok()
26973        }
26974    }
26975    pub unsafe fn PermissionState(
26976        &self,
26977        value: *mut COREWEBVIEW2_PERMISSION_STATE,
26978    ) -> windows_core::Result<()> {
26979        unsafe {
26980            (windows_core::Interface::vtable(self).PermissionState)(
26981                windows_core::Interface::as_raw(self),
26982                value as _,
26983            )
26984            .ok()
26985        }
26986    }
26987}
26988#[repr(C)]
26989#[doc(hidden)]
26990pub struct ICoreWebView2PermissionSetting_Vtbl {
26991    pub base__: windows_core::IUnknown_Vtbl,
26992    pub PermissionKind: unsafe extern "system" fn(
26993        *mut core::ffi::c_void,
26994        *mut COREWEBVIEW2_PERMISSION_KIND,
26995    ) -> windows_core::HRESULT,
26996    pub PermissionOrigin: unsafe extern "system" fn(
26997        *mut core::ffi::c_void,
26998        *mut windows_core::PWSTR,
26999    ) -> windows_core::HRESULT,
27000    pub PermissionState: unsafe extern "system" fn(
27001        *mut core::ffi::c_void,
27002        *mut COREWEBVIEW2_PERMISSION_STATE,
27003    ) -> windows_core::HRESULT,
27004}
27005pub trait ICoreWebView2PermissionSetting_Impl: windows_core::IUnknownImpl {
27006    fn PermissionKind(&self, value: *mut COREWEBVIEW2_PERMISSION_KIND) -> windows_core::Result<()>;
27007    fn PermissionOrigin(&self, value: *mut windows_core::PWSTR) -> windows_core::Result<()>;
27008    fn PermissionState(
27009        &self,
27010        value: *mut COREWEBVIEW2_PERMISSION_STATE,
27011    ) -> windows_core::Result<()>;
27012}
27013impl ICoreWebView2PermissionSetting_Vtbl {
27014    pub const fn new<Identity: ICoreWebView2PermissionSetting_Impl, const OFFSET: isize>() -> Self {
27015        unsafe extern "system" fn PermissionKind<
27016            Identity: ICoreWebView2PermissionSetting_Impl,
27017            const OFFSET: isize,
27018        >(
27019            this: *mut core::ffi::c_void,
27020            value: *mut COREWEBVIEW2_PERMISSION_KIND,
27021        ) -> windows_core::HRESULT {
27022            unsafe {
27023                let this: &Identity =
27024                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
27025                ICoreWebView2PermissionSetting_Impl::PermissionKind(
27026                    this,
27027                    core::mem::transmute_copy(&value),
27028                )
27029                .into()
27030            }
27031        }
27032        unsafe extern "system" fn PermissionOrigin<
27033            Identity: ICoreWebView2PermissionSetting_Impl,
27034            const OFFSET: isize,
27035        >(
27036            this: *mut core::ffi::c_void,
27037            value: *mut windows_core::PWSTR,
27038        ) -> windows_core::HRESULT {
27039            unsafe {
27040                let this: &Identity =
27041                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
27042                ICoreWebView2PermissionSetting_Impl::PermissionOrigin(
27043                    this,
27044                    core::mem::transmute_copy(&value),
27045                )
27046                .into()
27047            }
27048        }
27049        unsafe extern "system" fn PermissionState<
27050            Identity: ICoreWebView2PermissionSetting_Impl,
27051            const OFFSET: isize,
27052        >(
27053            this: *mut core::ffi::c_void,
27054            value: *mut COREWEBVIEW2_PERMISSION_STATE,
27055        ) -> windows_core::HRESULT {
27056            unsafe {
27057                let this: &Identity =
27058                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
27059                ICoreWebView2PermissionSetting_Impl::PermissionState(
27060                    this,
27061                    core::mem::transmute_copy(&value),
27062                )
27063                .into()
27064            }
27065        }
27066        Self {
27067            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
27068            PermissionKind: PermissionKind::<Identity, OFFSET>,
27069            PermissionOrigin: PermissionOrigin::<Identity, OFFSET>,
27070            PermissionState: PermissionState::<Identity, OFFSET>,
27071        }
27072    }
27073    pub fn matches(iid: &windows_core::GUID) -> bool {
27074        iid == &<ICoreWebView2PermissionSetting as windows_core::Interface>::IID
27075    }
27076}
27077impl windows_core::RuntimeName for ICoreWebView2PermissionSetting {}
27078windows_core::imp::define_interface!(
27079    ICoreWebView2PermissionSettingCollectionView,
27080    ICoreWebView2PermissionSettingCollectionView_Vtbl,
27081    0xf5596f62_3de5_47b1_91e8_a4104b596b96
27082);
27083windows_core::imp::interface_hierarchy!(
27084    ICoreWebView2PermissionSettingCollectionView,
27085    windows_core::IUnknown
27086);
27087impl ICoreWebView2PermissionSettingCollectionView {
27088    pub unsafe fn GetValueAtIndex(
27089        &self,
27090        index: u32,
27091    ) -> windows_core::Result<ICoreWebView2PermissionSetting> {
27092        unsafe {
27093            let mut result__ = core::mem::zeroed();
27094            (windows_core::Interface::vtable(self).GetValueAtIndex)(
27095                windows_core::Interface::as_raw(self),
27096                index,
27097                &mut result__,
27098            )
27099            .and_then(|| windows_core::Type::from_abi(result__))
27100        }
27101    }
27102    pub unsafe fn Count(&self, value: *mut u32) -> windows_core::Result<()> {
27103        unsafe {
27104            (windows_core::Interface::vtable(self).Count)(
27105                windows_core::Interface::as_raw(self),
27106                value as _,
27107            )
27108            .ok()
27109        }
27110    }
27111}
27112#[repr(C)]
27113#[doc(hidden)]
27114pub struct ICoreWebView2PermissionSettingCollectionView_Vtbl {
27115    pub base__: windows_core::IUnknown_Vtbl,
27116    pub GetValueAtIndex: unsafe extern "system" fn(
27117        *mut core::ffi::c_void,
27118        u32,
27119        *mut *mut core::ffi::c_void,
27120    ) -> windows_core::HRESULT,
27121    pub Count: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
27122}
27123pub trait ICoreWebView2PermissionSettingCollectionView_Impl: windows_core::IUnknownImpl {
27124    fn GetValueAtIndex(&self, index: u32) -> windows_core::Result<ICoreWebView2PermissionSetting>;
27125    fn Count(&self, value: *mut u32) -> windows_core::Result<()>;
27126}
27127impl ICoreWebView2PermissionSettingCollectionView_Vtbl {
27128    pub const fn new<
27129        Identity: ICoreWebView2PermissionSettingCollectionView_Impl,
27130        const OFFSET: isize,
27131    >() -> Self {
27132        unsafe extern "system" fn GetValueAtIndex<
27133            Identity: ICoreWebView2PermissionSettingCollectionView_Impl,
27134            const OFFSET: isize,
27135        >(
27136            this: *mut core::ffi::c_void,
27137            index: u32,
27138            permissionsetting: *mut *mut core::ffi::c_void,
27139        ) -> windows_core::HRESULT {
27140            unsafe {
27141                let this: &Identity =
27142                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
27143                match ICoreWebView2PermissionSettingCollectionView_Impl::GetValueAtIndex(
27144                    this,
27145                    core::mem::transmute_copy(&index),
27146                ) {
27147                    Ok(ok__) => {
27148                        permissionsetting.write(core::mem::transmute(ok__));
27149                        windows_core::HRESULT(0)
27150                    }
27151                    Err(err) => err.into(),
27152                }
27153            }
27154        }
27155        unsafe extern "system" fn Count<
27156            Identity: ICoreWebView2PermissionSettingCollectionView_Impl,
27157            const OFFSET: isize,
27158        >(
27159            this: *mut core::ffi::c_void,
27160            value: *mut u32,
27161        ) -> windows_core::HRESULT {
27162            unsafe {
27163                let this: &Identity =
27164                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
27165                ICoreWebView2PermissionSettingCollectionView_Impl::Count(
27166                    this,
27167                    core::mem::transmute_copy(&value),
27168                )
27169                .into()
27170            }
27171        }
27172        Self {
27173            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
27174            GetValueAtIndex: GetValueAtIndex::<Identity, OFFSET>,
27175            Count: Count::<Identity, OFFSET>,
27176        }
27177    }
27178    pub fn matches(iid: &windows_core::GUID) -> bool {
27179        iid == &<ICoreWebView2PermissionSettingCollectionView as windows_core::Interface>::IID
27180    }
27181}
27182impl windows_core::RuntimeName for ICoreWebView2PermissionSettingCollectionView {}
27183windows_core::imp::define_interface!(
27184    ICoreWebView2PointerInfo,
27185    ICoreWebView2PointerInfo_Vtbl,
27186    0xe6995887_d10d_4f5d_9359_4ce46e4f96b9
27187);
27188windows_core::imp::interface_hierarchy!(ICoreWebView2PointerInfo, windows_core::IUnknown);
27189impl ICoreWebView2PointerInfo {
27190    pub unsafe fn PointerKind(&self, pointerkind: *mut u32) -> windows_core::Result<()> {
27191        unsafe {
27192            (windows_core::Interface::vtable(self).PointerKind)(
27193                windows_core::Interface::as_raw(self),
27194                pointerkind as _,
27195            )
27196            .ok()
27197        }
27198    }
27199    pub unsafe fn SetPointerKind(&self, pointerkind: u32) -> windows_core::Result<()> {
27200        unsafe {
27201            (windows_core::Interface::vtable(self).SetPointerKind)(
27202                windows_core::Interface::as_raw(self),
27203                pointerkind,
27204            )
27205            .ok()
27206        }
27207    }
27208    pub unsafe fn PointerId(&self, pointerid: *mut u32) -> windows_core::Result<()> {
27209        unsafe {
27210            (windows_core::Interface::vtable(self).PointerId)(
27211                windows_core::Interface::as_raw(self),
27212                pointerid as _,
27213            )
27214            .ok()
27215        }
27216    }
27217    pub unsafe fn SetPointerId(&self, pointerid: u32) -> windows_core::Result<()> {
27218        unsafe {
27219            (windows_core::Interface::vtable(self).SetPointerId)(
27220                windows_core::Interface::as_raw(self),
27221                pointerid,
27222            )
27223            .ok()
27224        }
27225    }
27226    pub unsafe fn FrameId(&self, frameid: *mut u32) -> windows_core::Result<()> {
27227        unsafe {
27228            (windows_core::Interface::vtable(self).FrameId)(
27229                windows_core::Interface::as_raw(self),
27230                frameid as _,
27231            )
27232            .ok()
27233        }
27234    }
27235    pub unsafe fn SetFrameId(&self, frameid: u32) -> windows_core::Result<()> {
27236        unsafe {
27237            (windows_core::Interface::vtable(self).SetFrameId)(
27238                windows_core::Interface::as_raw(self),
27239                frameid,
27240            )
27241            .ok()
27242        }
27243    }
27244    pub unsafe fn PointerFlags(&self, pointerflags: *mut u32) -> windows_core::Result<()> {
27245        unsafe {
27246            (windows_core::Interface::vtable(self).PointerFlags)(
27247                windows_core::Interface::as_raw(self),
27248                pointerflags as _,
27249            )
27250            .ok()
27251        }
27252    }
27253    pub unsafe fn SetPointerFlags(&self, pointerflags: u32) -> windows_core::Result<()> {
27254        unsafe {
27255            (windows_core::Interface::vtable(self).SetPointerFlags)(
27256                windows_core::Interface::as_raw(self),
27257                pointerflags,
27258            )
27259            .ok()
27260        }
27261    }
27262    pub unsafe fn PointerDeviceRect(
27263        &self,
27264        pointerdevicerect: *mut windows::Win32::Foundation::RECT,
27265    ) -> windows_core::Result<()> {
27266        unsafe {
27267            (windows_core::Interface::vtable(self).PointerDeviceRect)(
27268                windows_core::Interface::as_raw(self),
27269                pointerdevicerect as _,
27270            )
27271            .ok()
27272        }
27273    }
27274    pub unsafe fn SetPointerDeviceRect(
27275        &self,
27276        pointerdevicerect: windows::Win32::Foundation::RECT,
27277    ) -> windows_core::Result<()> {
27278        unsafe {
27279            (windows_core::Interface::vtable(self).SetPointerDeviceRect)(
27280                windows_core::Interface::as_raw(self),
27281                core::mem::transmute(pointerdevicerect),
27282            )
27283            .ok()
27284        }
27285    }
27286    pub unsafe fn DisplayRect(
27287        &self,
27288        displayrect: *mut windows::Win32::Foundation::RECT,
27289    ) -> windows_core::Result<()> {
27290        unsafe {
27291            (windows_core::Interface::vtable(self).DisplayRect)(
27292                windows_core::Interface::as_raw(self),
27293                displayrect as _,
27294            )
27295            .ok()
27296        }
27297    }
27298    pub unsafe fn SetDisplayRect(
27299        &self,
27300        displayrect: windows::Win32::Foundation::RECT,
27301    ) -> windows_core::Result<()> {
27302        unsafe {
27303            (windows_core::Interface::vtable(self).SetDisplayRect)(
27304                windows_core::Interface::as_raw(self),
27305                core::mem::transmute(displayrect),
27306            )
27307            .ok()
27308        }
27309    }
27310    pub unsafe fn PixelLocation(
27311        &self,
27312        pixellocation: *mut windows::Win32::Foundation::POINT,
27313    ) -> windows_core::Result<()> {
27314        unsafe {
27315            (windows_core::Interface::vtable(self).PixelLocation)(
27316                windows_core::Interface::as_raw(self),
27317                pixellocation as _,
27318            )
27319            .ok()
27320        }
27321    }
27322    pub unsafe fn SetPixelLocation(
27323        &self,
27324        pixellocation: windows::Win32::Foundation::POINT,
27325    ) -> windows_core::Result<()> {
27326        unsafe {
27327            (windows_core::Interface::vtable(self).SetPixelLocation)(
27328                windows_core::Interface::as_raw(self),
27329                core::mem::transmute(pixellocation),
27330            )
27331            .ok()
27332        }
27333    }
27334    pub unsafe fn HimetricLocation(
27335        &self,
27336        himetriclocation: *mut windows::Win32::Foundation::POINT,
27337    ) -> windows_core::Result<()> {
27338        unsafe {
27339            (windows_core::Interface::vtable(self).HimetricLocation)(
27340                windows_core::Interface::as_raw(self),
27341                himetriclocation as _,
27342            )
27343            .ok()
27344        }
27345    }
27346    pub unsafe fn SetHimetricLocation(
27347        &self,
27348        himetriclocation: windows::Win32::Foundation::POINT,
27349    ) -> windows_core::Result<()> {
27350        unsafe {
27351            (windows_core::Interface::vtable(self).SetHimetricLocation)(
27352                windows_core::Interface::as_raw(self),
27353                core::mem::transmute(himetriclocation),
27354            )
27355            .ok()
27356        }
27357    }
27358    pub unsafe fn PixelLocationRaw(
27359        &self,
27360        pixellocationraw: *mut windows::Win32::Foundation::POINT,
27361    ) -> windows_core::Result<()> {
27362        unsafe {
27363            (windows_core::Interface::vtable(self).PixelLocationRaw)(
27364                windows_core::Interface::as_raw(self),
27365                pixellocationraw as _,
27366            )
27367            .ok()
27368        }
27369    }
27370    pub unsafe fn SetPixelLocationRaw(
27371        &self,
27372        pixellocationraw: windows::Win32::Foundation::POINT,
27373    ) -> windows_core::Result<()> {
27374        unsafe {
27375            (windows_core::Interface::vtable(self).SetPixelLocationRaw)(
27376                windows_core::Interface::as_raw(self),
27377                core::mem::transmute(pixellocationraw),
27378            )
27379            .ok()
27380        }
27381    }
27382    pub unsafe fn HimetricLocationRaw(
27383        &self,
27384        himetriclocationraw: *mut windows::Win32::Foundation::POINT,
27385    ) -> windows_core::Result<()> {
27386        unsafe {
27387            (windows_core::Interface::vtable(self).HimetricLocationRaw)(
27388                windows_core::Interface::as_raw(self),
27389                himetriclocationraw as _,
27390            )
27391            .ok()
27392        }
27393    }
27394    pub unsafe fn SetHimetricLocationRaw(
27395        &self,
27396        himetriclocationraw: windows::Win32::Foundation::POINT,
27397    ) -> windows_core::Result<()> {
27398        unsafe {
27399            (windows_core::Interface::vtable(self).SetHimetricLocationRaw)(
27400                windows_core::Interface::as_raw(self),
27401                core::mem::transmute(himetriclocationraw),
27402            )
27403            .ok()
27404        }
27405    }
27406    pub unsafe fn Time(&self, time: *mut u32) -> windows_core::Result<()> {
27407        unsafe {
27408            (windows_core::Interface::vtable(self).Time)(
27409                windows_core::Interface::as_raw(self),
27410                time as _,
27411            )
27412            .ok()
27413        }
27414    }
27415    pub unsafe fn SetTime(&self, time: u32) -> windows_core::Result<()> {
27416        unsafe {
27417            (windows_core::Interface::vtable(self).SetTime)(
27418                windows_core::Interface::as_raw(self),
27419                time,
27420            )
27421            .ok()
27422        }
27423    }
27424    pub unsafe fn HistoryCount(&self, historycount: *mut u32) -> windows_core::Result<()> {
27425        unsafe {
27426            (windows_core::Interface::vtable(self).HistoryCount)(
27427                windows_core::Interface::as_raw(self),
27428                historycount as _,
27429            )
27430            .ok()
27431        }
27432    }
27433    pub unsafe fn SetHistoryCount(&self, historycount: u32) -> windows_core::Result<()> {
27434        unsafe {
27435            (windows_core::Interface::vtable(self).SetHistoryCount)(
27436                windows_core::Interface::as_raw(self),
27437                historycount,
27438            )
27439            .ok()
27440        }
27441    }
27442    pub unsafe fn InputData(&self, inputdata: *mut i32) -> windows_core::Result<()> {
27443        unsafe {
27444            (windows_core::Interface::vtable(self).InputData)(
27445                windows_core::Interface::as_raw(self),
27446                inputdata as _,
27447            )
27448            .ok()
27449        }
27450    }
27451    pub unsafe fn SetInputData(&self, inputdata: i32) -> windows_core::Result<()> {
27452        unsafe {
27453            (windows_core::Interface::vtable(self).SetInputData)(
27454                windows_core::Interface::as_raw(self),
27455                inputdata,
27456            )
27457            .ok()
27458        }
27459    }
27460    pub unsafe fn KeyStates(&self, keystates: *mut u32) -> windows_core::Result<()> {
27461        unsafe {
27462            (windows_core::Interface::vtable(self).KeyStates)(
27463                windows_core::Interface::as_raw(self),
27464                keystates as _,
27465            )
27466            .ok()
27467        }
27468    }
27469    pub unsafe fn SetKeyStates(&self, keystates: u32) -> windows_core::Result<()> {
27470        unsafe {
27471            (windows_core::Interface::vtable(self).SetKeyStates)(
27472                windows_core::Interface::as_raw(self),
27473                keystates,
27474            )
27475            .ok()
27476        }
27477    }
27478    pub unsafe fn PerformanceCount(&self, performancecount: *mut u64) -> windows_core::Result<()> {
27479        unsafe {
27480            (windows_core::Interface::vtable(self).PerformanceCount)(
27481                windows_core::Interface::as_raw(self),
27482                performancecount as _,
27483            )
27484            .ok()
27485        }
27486    }
27487    pub unsafe fn SetPerformanceCount(&self, performancecount: u64) -> windows_core::Result<()> {
27488        unsafe {
27489            (windows_core::Interface::vtable(self).SetPerformanceCount)(
27490                windows_core::Interface::as_raw(self),
27491                performancecount,
27492            )
27493            .ok()
27494        }
27495    }
27496    pub unsafe fn ButtonChangeKind(&self, buttonchangekind: *mut i32) -> windows_core::Result<()> {
27497        unsafe {
27498            (windows_core::Interface::vtable(self).ButtonChangeKind)(
27499                windows_core::Interface::as_raw(self),
27500                buttonchangekind as _,
27501            )
27502            .ok()
27503        }
27504    }
27505    pub unsafe fn SetButtonChangeKind(&self, buttonchangekind: i32) -> windows_core::Result<()> {
27506        unsafe {
27507            (windows_core::Interface::vtable(self).SetButtonChangeKind)(
27508                windows_core::Interface::as_raw(self),
27509                buttonchangekind,
27510            )
27511            .ok()
27512        }
27513    }
27514    pub unsafe fn PenFlags(&self, penflags: *mut u32) -> windows_core::Result<()> {
27515        unsafe {
27516            (windows_core::Interface::vtable(self).PenFlags)(
27517                windows_core::Interface::as_raw(self),
27518                penflags as _,
27519            )
27520            .ok()
27521        }
27522    }
27523    pub unsafe fn SetPenFlags(&self, penflags: u32) -> windows_core::Result<()> {
27524        unsafe {
27525            (windows_core::Interface::vtable(self).SetPenFlags)(
27526                windows_core::Interface::as_raw(self),
27527                penflags,
27528            )
27529            .ok()
27530        }
27531    }
27532    pub unsafe fn PenMask(&self, penmask: *mut u32) -> windows_core::Result<()> {
27533        unsafe {
27534            (windows_core::Interface::vtable(self).PenMask)(
27535                windows_core::Interface::as_raw(self),
27536                penmask as _,
27537            )
27538            .ok()
27539        }
27540    }
27541    pub unsafe fn SetPenMask(&self, penmask: u32) -> windows_core::Result<()> {
27542        unsafe {
27543            (windows_core::Interface::vtable(self).SetPenMask)(
27544                windows_core::Interface::as_raw(self),
27545                penmask,
27546            )
27547            .ok()
27548        }
27549    }
27550    pub unsafe fn PenPressure(&self, penpressure: *mut u32) -> windows_core::Result<()> {
27551        unsafe {
27552            (windows_core::Interface::vtable(self).PenPressure)(
27553                windows_core::Interface::as_raw(self),
27554                penpressure as _,
27555            )
27556            .ok()
27557        }
27558    }
27559    pub unsafe fn SetPenPressure(&self, penpressure: u32) -> windows_core::Result<()> {
27560        unsafe {
27561            (windows_core::Interface::vtable(self).SetPenPressure)(
27562                windows_core::Interface::as_raw(self),
27563                penpressure,
27564            )
27565            .ok()
27566        }
27567    }
27568    pub unsafe fn PenRotation(&self, penrotation: *mut u32) -> windows_core::Result<()> {
27569        unsafe {
27570            (windows_core::Interface::vtable(self).PenRotation)(
27571                windows_core::Interface::as_raw(self),
27572                penrotation as _,
27573            )
27574            .ok()
27575        }
27576    }
27577    pub unsafe fn SetPenRotation(&self, penrotation: u32) -> windows_core::Result<()> {
27578        unsafe {
27579            (windows_core::Interface::vtable(self).SetPenRotation)(
27580                windows_core::Interface::as_raw(self),
27581                penrotation,
27582            )
27583            .ok()
27584        }
27585    }
27586    pub unsafe fn PenTiltX(&self, pentiltx: *mut i32) -> windows_core::Result<()> {
27587        unsafe {
27588            (windows_core::Interface::vtable(self).PenTiltX)(
27589                windows_core::Interface::as_raw(self),
27590                pentiltx as _,
27591            )
27592            .ok()
27593        }
27594    }
27595    pub unsafe fn SetPenTiltX(&self, pentiltx: i32) -> windows_core::Result<()> {
27596        unsafe {
27597            (windows_core::Interface::vtable(self).SetPenTiltX)(
27598                windows_core::Interface::as_raw(self),
27599                pentiltx,
27600            )
27601            .ok()
27602        }
27603    }
27604    pub unsafe fn PenTiltY(&self, pentilty: *mut i32) -> windows_core::Result<()> {
27605        unsafe {
27606            (windows_core::Interface::vtable(self).PenTiltY)(
27607                windows_core::Interface::as_raw(self),
27608                pentilty as _,
27609            )
27610            .ok()
27611        }
27612    }
27613    pub unsafe fn SetPenTiltY(&self, pentilty: i32) -> windows_core::Result<()> {
27614        unsafe {
27615            (windows_core::Interface::vtable(self).SetPenTiltY)(
27616                windows_core::Interface::as_raw(self),
27617                pentilty,
27618            )
27619            .ok()
27620        }
27621    }
27622    pub unsafe fn TouchFlags(&self, touchflags: *mut u32) -> windows_core::Result<()> {
27623        unsafe {
27624            (windows_core::Interface::vtable(self).TouchFlags)(
27625                windows_core::Interface::as_raw(self),
27626                touchflags as _,
27627            )
27628            .ok()
27629        }
27630    }
27631    pub unsafe fn SetTouchFlags(&self, touchflags: u32) -> windows_core::Result<()> {
27632        unsafe {
27633            (windows_core::Interface::vtable(self).SetTouchFlags)(
27634                windows_core::Interface::as_raw(self),
27635                touchflags,
27636            )
27637            .ok()
27638        }
27639    }
27640    pub unsafe fn TouchMask(&self, touchmask: *mut u32) -> windows_core::Result<()> {
27641        unsafe {
27642            (windows_core::Interface::vtable(self).TouchMask)(
27643                windows_core::Interface::as_raw(self),
27644                touchmask as _,
27645            )
27646            .ok()
27647        }
27648    }
27649    pub unsafe fn SetTouchMask(&self, touchmask: u32) -> windows_core::Result<()> {
27650        unsafe {
27651            (windows_core::Interface::vtable(self).SetTouchMask)(
27652                windows_core::Interface::as_raw(self),
27653                touchmask,
27654            )
27655            .ok()
27656        }
27657    }
27658    pub unsafe fn TouchContact(
27659        &self,
27660        touchcontact: *mut windows::Win32::Foundation::RECT,
27661    ) -> windows_core::Result<()> {
27662        unsafe {
27663            (windows_core::Interface::vtable(self).TouchContact)(
27664                windows_core::Interface::as_raw(self),
27665                touchcontact as _,
27666            )
27667            .ok()
27668        }
27669    }
27670    pub unsafe fn SetTouchContact(
27671        &self,
27672        touchcontact: windows::Win32::Foundation::RECT,
27673    ) -> windows_core::Result<()> {
27674        unsafe {
27675            (windows_core::Interface::vtable(self).SetTouchContact)(
27676                windows_core::Interface::as_raw(self),
27677                core::mem::transmute(touchcontact),
27678            )
27679            .ok()
27680        }
27681    }
27682    pub unsafe fn TouchContactRaw(
27683        &self,
27684        touchcontactraw: *mut windows::Win32::Foundation::RECT,
27685    ) -> windows_core::Result<()> {
27686        unsafe {
27687            (windows_core::Interface::vtable(self).TouchContactRaw)(
27688                windows_core::Interface::as_raw(self),
27689                touchcontactraw as _,
27690            )
27691            .ok()
27692        }
27693    }
27694    pub unsafe fn SetTouchContactRaw(
27695        &self,
27696        touchcontactraw: windows::Win32::Foundation::RECT,
27697    ) -> windows_core::Result<()> {
27698        unsafe {
27699            (windows_core::Interface::vtable(self).SetTouchContactRaw)(
27700                windows_core::Interface::as_raw(self),
27701                core::mem::transmute(touchcontactraw),
27702            )
27703            .ok()
27704        }
27705    }
27706    pub unsafe fn TouchOrientation(&self, touchorientation: *mut u32) -> windows_core::Result<()> {
27707        unsafe {
27708            (windows_core::Interface::vtable(self).TouchOrientation)(
27709                windows_core::Interface::as_raw(self),
27710                touchorientation as _,
27711            )
27712            .ok()
27713        }
27714    }
27715    pub unsafe fn SetTouchOrientation(&self, touchorientation: u32) -> windows_core::Result<()> {
27716        unsafe {
27717            (windows_core::Interface::vtable(self).SetTouchOrientation)(
27718                windows_core::Interface::as_raw(self),
27719                touchorientation,
27720            )
27721            .ok()
27722        }
27723    }
27724    pub unsafe fn TouchPressure(&self, touchpressure: *mut u32) -> windows_core::Result<()> {
27725        unsafe {
27726            (windows_core::Interface::vtable(self).TouchPressure)(
27727                windows_core::Interface::as_raw(self),
27728                touchpressure as _,
27729            )
27730            .ok()
27731        }
27732    }
27733    pub unsafe fn SetTouchPressure(&self, touchpressure: u32) -> windows_core::Result<()> {
27734        unsafe {
27735            (windows_core::Interface::vtable(self).SetTouchPressure)(
27736                windows_core::Interface::as_raw(self),
27737                touchpressure,
27738            )
27739            .ok()
27740        }
27741    }
27742}
27743#[repr(C)]
27744#[doc(hidden)]
27745pub struct ICoreWebView2PointerInfo_Vtbl {
27746    pub base__: windows_core::IUnknown_Vtbl,
27747    pub PointerKind:
27748        unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
27749    pub SetPointerKind:
27750        unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
27751    pub PointerId:
27752        unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
27753    pub SetPointerId:
27754        unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
27755    pub FrameId:
27756        unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
27757    pub SetFrameId: unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
27758    pub PointerFlags:
27759        unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
27760    pub SetPointerFlags:
27761        unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
27762    pub PointerDeviceRect: unsafe extern "system" fn(
27763        *mut core::ffi::c_void,
27764        *mut windows::Win32::Foundation::RECT,
27765    ) -> windows_core::HRESULT,
27766    pub SetPointerDeviceRect: unsafe extern "system" fn(
27767        *mut core::ffi::c_void,
27768        windows::Win32::Foundation::RECT,
27769    ) -> windows_core::HRESULT,
27770    pub DisplayRect: unsafe extern "system" fn(
27771        *mut core::ffi::c_void,
27772        *mut windows::Win32::Foundation::RECT,
27773    ) -> windows_core::HRESULT,
27774    pub SetDisplayRect: unsafe extern "system" fn(
27775        *mut core::ffi::c_void,
27776        windows::Win32::Foundation::RECT,
27777    ) -> windows_core::HRESULT,
27778    pub PixelLocation: unsafe extern "system" fn(
27779        *mut core::ffi::c_void,
27780        *mut windows::Win32::Foundation::POINT,
27781    ) -> windows_core::HRESULT,
27782    pub SetPixelLocation: unsafe extern "system" fn(
27783        *mut core::ffi::c_void,
27784        windows::Win32::Foundation::POINT,
27785    ) -> windows_core::HRESULT,
27786    pub HimetricLocation: unsafe extern "system" fn(
27787        *mut core::ffi::c_void,
27788        *mut windows::Win32::Foundation::POINT,
27789    ) -> windows_core::HRESULT,
27790    pub SetHimetricLocation: unsafe extern "system" fn(
27791        *mut core::ffi::c_void,
27792        windows::Win32::Foundation::POINT,
27793    ) -> windows_core::HRESULT,
27794    pub PixelLocationRaw: unsafe extern "system" fn(
27795        *mut core::ffi::c_void,
27796        *mut windows::Win32::Foundation::POINT,
27797    ) -> windows_core::HRESULT,
27798    pub SetPixelLocationRaw: unsafe extern "system" fn(
27799        *mut core::ffi::c_void,
27800        windows::Win32::Foundation::POINT,
27801    ) -> windows_core::HRESULT,
27802    pub HimetricLocationRaw: unsafe extern "system" fn(
27803        *mut core::ffi::c_void,
27804        *mut windows::Win32::Foundation::POINT,
27805    ) -> windows_core::HRESULT,
27806    pub SetHimetricLocationRaw: unsafe extern "system" fn(
27807        *mut core::ffi::c_void,
27808        windows::Win32::Foundation::POINT,
27809    ) -> windows_core::HRESULT,
27810    pub Time: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
27811    pub SetTime: unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
27812    pub HistoryCount:
27813        unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
27814    pub SetHistoryCount:
27815        unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
27816    pub InputData:
27817        unsafe extern "system" fn(*mut core::ffi::c_void, *mut i32) -> windows_core::HRESULT,
27818    pub SetInputData:
27819        unsafe extern "system" fn(*mut core::ffi::c_void, i32) -> windows_core::HRESULT,
27820    pub KeyStates:
27821        unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
27822    pub SetKeyStates:
27823        unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
27824    pub PerformanceCount:
27825        unsafe extern "system" fn(*mut core::ffi::c_void, *mut u64) -> windows_core::HRESULT,
27826    pub SetPerformanceCount:
27827        unsafe extern "system" fn(*mut core::ffi::c_void, u64) -> windows_core::HRESULT,
27828    pub ButtonChangeKind:
27829        unsafe extern "system" fn(*mut core::ffi::c_void, *mut i32) -> windows_core::HRESULT,
27830    pub SetButtonChangeKind:
27831        unsafe extern "system" fn(*mut core::ffi::c_void, i32) -> windows_core::HRESULT,
27832    pub PenFlags:
27833        unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
27834    pub SetPenFlags:
27835        unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
27836    pub PenMask:
27837        unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
27838    pub SetPenMask: unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
27839    pub PenPressure:
27840        unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
27841    pub SetPenPressure:
27842        unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
27843    pub PenRotation:
27844        unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
27845    pub SetPenRotation:
27846        unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
27847    pub PenTiltX:
27848        unsafe extern "system" fn(*mut core::ffi::c_void, *mut i32) -> windows_core::HRESULT,
27849    pub SetPenTiltX:
27850        unsafe extern "system" fn(*mut core::ffi::c_void, i32) -> windows_core::HRESULT,
27851    pub PenTiltY:
27852        unsafe extern "system" fn(*mut core::ffi::c_void, *mut i32) -> windows_core::HRESULT,
27853    pub SetPenTiltY:
27854        unsafe extern "system" fn(*mut core::ffi::c_void, i32) -> windows_core::HRESULT,
27855    pub TouchFlags:
27856        unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
27857    pub SetTouchFlags:
27858        unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
27859    pub TouchMask:
27860        unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
27861    pub SetTouchMask:
27862        unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
27863    pub TouchContact: unsafe extern "system" fn(
27864        *mut core::ffi::c_void,
27865        *mut windows::Win32::Foundation::RECT,
27866    ) -> windows_core::HRESULT,
27867    pub SetTouchContact: unsafe extern "system" fn(
27868        *mut core::ffi::c_void,
27869        windows::Win32::Foundation::RECT,
27870    ) -> windows_core::HRESULT,
27871    pub TouchContactRaw: unsafe extern "system" fn(
27872        *mut core::ffi::c_void,
27873        *mut windows::Win32::Foundation::RECT,
27874    ) -> windows_core::HRESULT,
27875    pub SetTouchContactRaw: unsafe extern "system" fn(
27876        *mut core::ffi::c_void,
27877        windows::Win32::Foundation::RECT,
27878    ) -> windows_core::HRESULT,
27879    pub TouchOrientation:
27880        unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
27881    pub SetTouchOrientation:
27882        unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
27883    pub TouchPressure:
27884        unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
27885    pub SetTouchPressure:
27886        unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
27887}
27888pub trait ICoreWebView2PointerInfo_Impl: windows_core::IUnknownImpl {
27889    fn PointerKind(&self, pointerkind: *mut u32) -> windows_core::Result<()>;
27890    fn SetPointerKind(&self, pointerkind: u32) -> windows_core::Result<()>;
27891    fn PointerId(&self, pointerid: *mut u32) -> windows_core::Result<()>;
27892    fn SetPointerId(&self, pointerid: u32) -> windows_core::Result<()>;
27893    fn FrameId(&self, frameid: *mut u32) -> windows_core::Result<()>;
27894    fn SetFrameId(&self, frameid: u32) -> windows_core::Result<()>;
27895    fn PointerFlags(&self, pointerflags: *mut u32) -> windows_core::Result<()>;
27896    fn SetPointerFlags(&self, pointerflags: u32) -> windows_core::Result<()>;
27897    fn PointerDeviceRect(
27898        &self,
27899        pointerdevicerect: *mut windows::Win32::Foundation::RECT,
27900    ) -> windows_core::Result<()>;
27901    fn SetPointerDeviceRect(
27902        &self,
27903        pointerdevicerect: &windows::Win32::Foundation::RECT,
27904    ) -> windows_core::Result<()>;
27905    fn DisplayRect(
27906        &self,
27907        displayrect: *mut windows::Win32::Foundation::RECT,
27908    ) -> windows_core::Result<()>;
27909    fn SetDisplayRect(
27910        &self,
27911        displayrect: &windows::Win32::Foundation::RECT,
27912    ) -> windows_core::Result<()>;
27913    fn PixelLocation(
27914        &self,
27915        pixellocation: *mut windows::Win32::Foundation::POINT,
27916    ) -> windows_core::Result<()>;
27917    fn SetPixelLocation(
27918        &self,
27919        pixellocation: &windows::Win32::Foundation::POINT,
27920    ) -> windows_core::Result<()>;
27921    fn HimetricLocation(
27922        &self,
27923        himetriclocation: *mut windows::Win32::Foundation::POINT,
27924    ) -> windows_core::Result<()>;
27925    fn SetHimetricLocation(
27926        &self,
27927        himetriclocation: &windows::Win32::Foundation::POINT,
27928    ) -> windows_core::Result<()>;
27929    fn PixelLocationRaw(
27930        &self,
27931        pixellocationraw: *mut windows::Win32::Foundation::POINT,
27932    ) -> windows_core::Result<()>;
27933    fn SetPixelLocationRaw(
27934        &self,
27935        pixellocationraw: &windows::Win32::Foundation::POINT,
27936    ) -> windows_core::Result<()>;
27937    fn HimetricLocationRaw(
27938        &self,
27939        himetriclocationraw: *mut windows::Win32::Foundation::POINT,
27940    ) -> windows_core::Result<()>;
27941    fn SetHimetricLocationRaw(
27942        &self,
27943        himetriclocationraw: &windows::Win32::Foundation::POINT,
27944    ) -> windows_core::Result<()>;
27945    fn Time(&self, time: *mut u32) -> windows_core::Result<()>;
27946    fn SetTime(&self, time: u32) -> windows_core::Result<()>;
27947    fn HistoryCount(&self, historycount: *mut u32) -> windows_core::Result<()>;
27948    fn SetHistoryCount(&self, historycount: u32) -> windows_core::Result<()>;
27949    fn InputData(&self, inputdata: *mut i32) -> windows_core::Result<()>;
27950    fn SetInputData(&self, inputdata: i32) -> windows_core::Result<()>;
27951    fn KeyStates(&self, keystates: *mut u32) -> windows_core::Result<()>;
27952    fn SetKeyStates(&self, keystates: u32) -> windows_core::Result<()>;
27953    fn PerformanceCount(&self, performancecount: *mut u64) -> windows_core::Result<()>;
27954    fn SetPerformanceCount(&self, performancecount: u64) -> windows_core::Result<()>;
27955    fn ButtonChangeKind(&self, buttonchangekind: *mut i32) -> windows_core::Result<()>;
27956    fn SetButtonChangeKind(&self, buttonchangekind: i32) -> windows_core::Result<()>;
27957    fn PenFlags(&self, penflags: *mut u32) -> windows_core::Result<()>;
27958    fn SetPenFlags(&self, penflags: u32) -> windows_core::Result<()>;
27959    fn PenMask(&self, penmask: *mut u32) -> windows_core::Result<()>;
27960    fn SetPenMask(&self, penmask: u32) -> windows_core::Result<()>;
27961    fn PenPressure(&self, penpressure: *mut u32) -> windows_core::Result<()>;
27962    fn SetPenPressure(&self, penpressure: u32) -> windows_core::Result<()>;
27963    fn PenRotation(&self, penrotation: *mut u32) -> windows_core::Result<()>;
27964    fn SetPenRotation(&self, penrotation: u32) -> windows_core::Result<()>;
27965    fn PenTiltX(&self, pentiltx: *mut i32) -> windows_core::Result<()>;
27966    fn SetPenTiltX(&self, pentiltx: i32) -> windows_core::Result<()>;
27967    fn PenTiltY(&self, pentilty: *mut i32) -> windows_core::Result<()>;
27968    fn SetPenTiltY(&self, pentilty: i32) -> windows_core::Result<()>;
27969    fn TouchFlags(&self, touchflags: *mut u32) -> windows_core::Result<()>;
27970    fn SetTouchFlags(&self, touchflags: u32) -> windows_core::Result<()>;
27971    fn TouchMask(&self, touchmask: *mut u32) -> windows_core::Result<()>;
27972    fn SetTouchMask(&self, touchmask: u32) -> windows_core::Result<()>;
27973    fn TouchContact(
27974        &self,
27975        touchcontact: *mut windows::Win32::Foundation::RECT,
27976    ) -> windows_core::Result<()>;
27977    fn SetTouchContact(
27978        &self,
27979        touchcontact: &windows::Win32::Foundation::RECT,
27980    ) -> windows_core::Result<()>;
27981    fn TouchContactRaw(
27982        &self,
27983        touchcontactraw: *mut windows::Win32::Foundation::RECT,
27984    ) -> windows_core::Result<()>;
27985    fn SetTouchContactRaw(
27986        &self,
27987        touchcontactraw: &windows::Win32::Foundation::RECT,
27988    ) -> windows_core::Result<()>;
27989    fn TouchOrientation(&self, touchorientation: *mut u32) -> windows_core::Result<()>;
27990    fn SetTouchOrientation(&self, touchorientation: u32) -> windows_core::Result<()>;
27991    fn TouchPressure(&self, touchpressure: *mut u32) -> windows_core::Result<()>;
27992    fn SetTouchPressure(&self, touchpressure: u32) -> windows_core::Result<()>;
27993}
27994impl ICoreWebView2PointerInfo_Vtbl {
27995    pub const fn new<Identity: ICoreWebView2PointerInfo_Impl, const OFFSET: isize>() -> Self {
27996        unsafe extern "system" fn PointerKind<
27997            Identity: ICoreWebView2PointerInfo_Impl,
27998            const OFFSET: isize,
27999        >(
28000            this: *mut core::ffi::c_void,
28001            pointerkind: *mut u32,
28002        ) -> windows_core::HRESULT {
28003            unsafe {
28004                let this: &Identity =
28005                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
28006                ICoreWebView2PointerInfo_Impl::PointerKind(
28007                    this,
28008                    core::mem::transmute_copy(&pointerkind),
28009                )
28010                .into()
28011            }
28012        }
28013        unsafe extern "system" fn SetPointerKind<
28014            Identity: ICoreWebView2PointerInfo_Impl,
28015            const OFFSET: isize,
28016        >(
28017            this: *mut core::ffi::c_void,
28018            pointerkind: u32,
28019        ) -> windows_core::HRESULT {
28020            unsafe {
28021                let this: &Identity =
28022                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
28023                ICoreWebView2PointerInfo_Impl::SetPointerKind(
28024                    this,
28025                    core::mem::transmute_copy(&pointerkind),
28026                )
28027                .into()
28028            }
28029        }
28030        unsafe extern "system" fn PointerId<
28031            Identity: ICoreWebView2PointerInfo_Impl,
28032            const OFFSET: isize,
28033        >(
28034            this: *mut core::ffi::c_void,
28035            pointerid: *mut u32,
28036        ) -> windows_core::HRESULT {
28037            unsafe {
28038                let this: &Identity =
28039                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
28040                ICoreWebView2PointerInfo_Impl::PointerId(
28041                    this,
28042                    core::mem::transmute_copy(&pointerid),
28043                )
28044                .into()
28045            }
28046        }
28047        unsafe extern "system" fn SetPointerId<
28048            Identity: ICoreWebView2PointerInfo_Impl,
28049            const OFFSET: isize,
28050        >(
28051            this: *mut core::ffi::c_void,
28052            pointerid: u32,
28053        ) -> windows_core::HRESULT {
28054            unsafe {
28055                let this: &Identity =
28056                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
28057                ICoreWebView2PointerInfo_Impl::SetPointerId(
28058                    this,
28059                    core::mem::transmute_copy(&pointerid),
28060                )
28061                .into()
28062            }
28063        }
28064        unsafe extern "system" fn FrameId<
28065            Identity: ICoreWebView2PointerInfo_Impl,
28066            const OFFSET: isize,
28067        >(
28068            this: *mut core::ffi::c_void,
28069            frameid: *mut u32,
28070        ) -> windows_core::HRESULT {
28071            unsafe {
28072                let this: &Identity =
28073                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
28074                ICoreWebView2PointerInfo_Impl::FrameId(this, core::mem::transmute_copy(&frameid))
28075                    .into()
28076            }
28077        }
28078        unsafe extern "system" fn SetFrameId<
28079            Identity: ICoreWebView2PointerInfo_Impl,
28080            const OFFSET: isize,
28081        >(
28082            this: *mut core::ffi::c_void,
28083            frameid: u32,
28084        ) -> windows_core::HRESULT {
28085            unsafe {
28086                let this: &Identity =
28087                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
28088                ICoreWebView2PointerInfo_Impl::SetFrameId(this, core::mem::transmute_copy(&frameid))
28089                    .into()
28090            }
28091        }
28092        unsafe extern "system" fn PointerFlags<
28093            Identity: ICoreWebView2PointerInfo_Impl,
28094            const OFFSET: isize,
28095        >(
28096            this: *mut core::ffi::c_void,
28097            pointerflags: *mut u32,
28098        ) -> windows_core::HRESULT {
28099            unsafe {
28100                let this: &Identity =
28101                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
28102                ICoreWebView2PointerInfo_Impl::PointerFlags(
28103                    this,
28104                    core::mem::transmute_copy(&pointerflags),
28105                )
28106                .into()
28107            }
28108        }
28109        unsafe extern "system" fn SetPointerFlags<
28110            Identity: ICoreWebView2PointerInfo_Impl,
28111            const OFFSET: isize,
28112        >(
28113            this: *mut core::ffi::c_void,
28114            pointerflags: u32,
28115        ) -> windows_core::HRESULT {
28116            unsafe {
28117                let this: &Identity =
28118                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
28119                ICoreWebView2PointerInfo_Impl::SetPointerFlags(
28120                    this,
28121                    core::mem::transmute_copy(&pointerflags),
28122                )
28123                .into()
28124            }
28125        }
28126        unsafe extern "system" fn PointerDeviceRect<
28127            Identity: ICoreWebView2PointerInfo_Impl,
28128            const OFFSET: isize,
28129        >(
28130            this: *mut core::ffi::c_void,
28131            pointerdevicerect: *mut windows::Win32::Foundation::RECT,
28132        ) -> windows_core::HRESULT {
28133            unsafe {
28134                let this: &Identity =
28135                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
28136                ICoreWebView2PointerInfo_Impl::PointerDeviceRect(
28137                    this,
28138                    core::mem::transmute_copy(&pointerdevicerect),
28139                )
28140                .into()
28141            }
28142        }
28143        unsafe extern "system" fn SetPointerDeviceRect<
28144            Identity: ICoreWebView2PointerInfo_Impl,
28145            const OFFSET: isize,
28146        >(
28147            this: *mut core::ffi::c_void,
28148            pointerdevicerect: windows::Win32::Foundation::RECT,
28149        ) -> windows_core::HRESULT {
28150            unsafe {
28151                let this: &Identity =
28152                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
28153                ICoreWebView2PointerInfo_Impl::SetPointerDeviceRect(
28154                    this,
28155                    core::mem::transmute(&pointerdevicerect),
28156                )
28157                .into()
28158            }
28159        }
28160        unsafe extern "system" fn DisplayRect<
28161            Identity: ICoreWebView2PointerInfo_Impl,
28162            const OFFSET: isize,
28163        >(
28164            this: *mut core::ffi::c_void,
28165            displayrect: *mut windows::Win32::Foundation::RECT,
28166        ) -> windows_core::HRESULT {
28167            unsafe {
28168                let this: &Identity =
28169                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
28170                ICoreWebView2PointerInfo_Impl::DisplayRect(
28171                    this,
28172                    core::mem::transmute_copy(&displayrect),
28173                )
28174                .into()
28175            }
28176        }
28177        unsafe extern "system" fn SetDisplayRect<
28178            Identity: ICoreWebView2PointerInfo_Impl,
28179            const OFFSET: isize,
28180        >(
28181            this: *mut core::ffi::c_void,
28182            displayrect: windows::Win32::Foundation::RECT,
28183        ) -> windows_core::HRESULT {
28184            unsafe {
28185                let this: &Identity =
28186                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
28187                ICoreWebView2PointerInfo_Impl::SetDisplayRect(
28188                    this,
28189                    core::mem::transmute(&displayrect),
28190                )
28191                .into()
28192            }
28193        }
28194        unsafe extern "system" fn PixelLocation<
28195            Identity: ICoreWebView2PointerInfo_Impl,
28196            const OFFSET: isize,
28197        >(
28198            this: *mut core::ffi::c_void,
28199            pixellocation: *mut windows::Win32::Foundation::POINT,
28200        ) -> windows_core::HRESULT {
28201            unsafe {
28202                let this: &Identity =
28203                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
28204                ICoreWebView2PointerInfo_Impl::PixelLocation(
28205                    this,
28206                    core::mem::transmute_copy(&pixellocation),
28207                )
28208                .into()
28209            }
28210        }
28211        unsafe extern "system" fn SetPixelLocation<
28212            Identity: ICoreWebView2PointerInfo_Impl,
28213            const OFFSET: isize,
28214        >(
28215            this: *mut core::ffi::c_void,
28216            pixellocation: windows::Win32::Foundation::POINT,
28217        ) -> windows_core::HRESULT {
28218            unsafe {
28219                let this: &Identity =
28220                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
28221                ICoreWebView2PointerInfo_Impl::SetPixelLocation(
28222                    this,
28223                    core::mem::transmute(&pixellocation),
28224                )
28225                .into()
28226            }
28227        }
28228        unsafe extern "system" fn HimetricLocation<
28229            Identity: ICoreWebView2PointerInfo_Impl,
28230            const OFFSET: isize,
28231        >(
28232            this: *mut core::ffi::c_void,
28233            himetriclocation: *mut windows::Win32::Foundation::POINT,
28234        ) -> windows_core::HRESULT {
28235            unsafe {
28236                let this: &Identity =
28237                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
28238                ICoreWebView2PointerInfo_Impl::HimetricLocation(
28239                    this,
28240                    core::mem::transmute_copy(&himetriclocation),
28241                )
28242                .into()
28243            }
28244        }
28245        unsafe extern "system" fn SetHimetricLocation<
28246            Identity: ICoreWebView2PointerInfo_Impl,
28247            const OFFSET: isize,
28248        >(
28249            this: *mut core::ffi::c_void,
28250            himetriclocation: windows::Win32::Foundation::POINT,
28251        ) -> windows_core::HRESULT {
28252            unsafe {
28253                let this: &Identity =
28254                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
28255                ICoreWebView2PointerInfo_Impl::SetHimetricLocation(
28256                    this,
28257                    core::mem::transmute(&himetriclocation),
28258                )
28259                .into()
28260            }
28261        }
28262        unsafe extern "system" fn PixelLocationRaw<
28263            Identity: ICoreWebView2PointerInfo_Impl,
28264            const OFFSET: isize,
28265        >(
28266            this: *mut core::ffi::c_void,
28267            pixellocationraw: *mut windows::Win32::Foundation::POINT,
28268        ) -> windows_core::HRESULT {
28269            unsafe {
28270                let this: &Identity =
28271                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
28272                ICoreWebView2PointerInfo_Impl::PixelLocationRaw(
28273                    this,
28274                    core::mem::transmute_copy(&pixellocationraw),
28275                )
28276                .into()
28277            }
28278        }
28279        unsafe extern "system" fn SetPixelLocationRaw<
28280            Identity: ICoreWebView2PointerInfo_Impl,
28281            const OFFSET: isize,
28282        >(
28283            this: *mut core::ffi::c_void,
28284            pixellocationraw: windows::Win32::Foundation::POINT,
28285        ) -> windows_core::HRESULT {
28286            unsafe {
28287                let this: &Identity =
28288                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
28289                ICoreWebView2PointerInfo_Impl::SetPixelLocationRaw(
28290                    this,
28291                    core::mem::transmute(&pixellocationraw),
28292                )
28293                .into()
28294            }
28295        }
28296        unsafe extern "system" fn HimetricLocationRaw<
28297            Identity: ICoreWebView2PointerInfo_Impl,
28298            const OFFSET: isize,
28299        >(
28300            this: *mut core::ffi::c_void,
28301            himetriclocationraw: *mut windows::Win32::Foundation::POINT,
28302        ) -> windows_core::HRESULT {
28303            unsafe {
28304                let this: &Identity =
28305                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
28306                ICoreWebView2PointerInfo_Impl::HimetricLocationRaw(
28307                    this,
28308                    core::mem::transmute_copy(&himetriclocationraw),
28309                )
28310                .into()
28311            }
28312        }
28313        unsafe extern "system" fn SetHimetricLocationRaw<
28314            Identity: ICoreWebView2PointerInfo_Impl,
28315            const OFFSET: isize,
28316        >(
28317            this: *mut core::ffi::c_void,
28318            himetriclocationraw: windows::Win32::Foundation::POINT,
28319        ) -> windows_core::HRESULT {
28320            unsafe {
28321                let this: &Identity =
28322                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
28323                ICoreWebView2PointerInfo_Impl::SetHimetricLocationRaw(
28324                    this,
28325                    core::mem::transmute(&himetriclocationraw),
28326                )
28327                .into()
28328            }
28329        }
28330        unsafe extern "system" fn Time<
28331            Identity: ICoreWebView2PointerInfo_Impl,
28332            const OFFSET: isize,
28333        >(
28334            this: *mut core::ffi::c_void,
28335            time: *mut u32,
28336        ) -> windows_core::HRESULT {
28337            unsafe {
28338                let this: &Identity =
28339                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
28340                ICoreWebView2PointerInfo_Impl::Time(this, core::mem::transmute_copy(&time)).into()
28341            }
28342        }
28343        unsafe extern "system" fn SetTime<
28344            Identity: ICoreWebView2PointerInfo_Impl,
28345            const OFFSET: isize,
28346        >(
28347            this: *mut core::ffi::c_void,
28348            time: u32,
28349        ) -> windows_core::HRESULT {
28350            unsafe {
28351                let this: &Identity =
28352                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
28353                ICoreWebView2PointerInfo_Impl::SetTime(this, core::mem::transmute_copy(&time))
28354                    .into()
28355            }
28356        }
28357        unsafe extern "system" fn HistoryCount<
28358            Identity: ICoreWebView2PointerInfo_Impl,
28359            const OFFSET: isize,
28360        >(
28361            this: *mut core::ffi::c_void,
28362            historycount: *mut u32,
28363        ) -> windows_core::HRESULT {
28364            unsafe {
28365                let this: &Identity =
28366                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
28367                ICoreWebView2PointerInfo_Impl::HistoryCount(
28368                    this,
28369                    core::mem::transmute_copy(&historycount),
28370                )
28371                .into()
28372            }
28373        }
28374        unsafe extern "system" fn SetHistoryCount<
28375            Identity: ICoreWebView2PointerInfo_Impl,
28376            const OFFSET: isize,
28377        >(
28378            this: *mut core::ffi::c_void,
28379            historycount: u32,
28380        ) -> windows_core::HRESULT {
28381            unsafe {
28382                let this: &Identity =
28383                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
28384                ICoreWebView2PointerInfo_Impl::SetHistoryCount(
28385                    this,
28386                    core::mem::transmute_copy(&historycount),
28387                )
28388                .into()
28389            }
28390        }
28391        unsafe extern "system" fn InputData<
28392            Identity: ICoreWebView2PointerInfo_Impl,
28393            const OFFSET: isize,
28394        >(
28395            this: *mut core::ffi::c_void,
28396            inputdata: *mut i32,
28397        ) -> windows_core::HRESULT {
28398            unsafe {
28399                let this: &Identity =
28400                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
28401                ICoreWebView2PointerInfo_Impl::InputData(
28402                    this,
28403                    core::mem::transmute_copy(&inputdata),
28404                )
28405                .into()
28406            }
28407        }
28408        unsafe extern "system" fn SetInputData<
28409            Identity: ICoreWebView2PointerInfo_Impl,
28410            const OFFSET: isize,
28411        >(
28412            this: *mut core::ffi::c_void,
28413            inputdata: i32,
28414        ) -> windows_core::HRESULT {
28415            unsafe {
28416                let this: &Identity =
28417                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
28418                ICoreWebView2PointerInfo_Impl::SetInputData(
28419                    this,
28420                    core::mem::transmute_copy(&inputdata),
28421                )
28422                .into()
28423            }
28424        }
28425        unsafe extern "system" fn KeyStates<
28426            Identity: ICoreWebView2PointerInfo_Impl,
28427            const OFFSET: isize,
28428        >(
28429            this: *mut core::ffi::c_void,
28430            keystates: *mut u32,
28431        ) -> windows_core::HRESULT {
28432            unsafe {
28433                let this: &Identity =
28434                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
28435                ICoreWebView2PointerInfo_Impl::KeyStates(
28436                    this,
28437                    core::mem::transmute_copy(&keystates),
28438                )
28439                .into()
28440            }
28441        }
28442        unsafe extern "system" fn SetKeyStates<
28443            Identity: ICoreWebView2PointerInfo_Impl,
28444            const OFFSET: isize,
28445        >(
28446            this: *mut core::ffi::c_void,
28447            keystates: u32,
28448        ) -> windows_core::HRESULT {
28449            unsafe {
28450                let this: &Identity =
28451                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
28452                ICoreWebView2PointerInfo_Impl::SetKeyStates(
28453                    this,
28454                    core::mem::transmute_copy(&keystates),
28455                )
28456                .into()
28457            }
28458        }
28459        unsafe extern "system" fn PerformanceCount<
28460            Identity: ICoreWebView2PointerInfo_Impl,
28461            const OFFSET: isize,
28462        >(
28463            this: *mut core::ffi::c_void,
28464            performancecount: *mut u64,
28465        ) -> windows_core::HRESULT {
28466            unsafe {
28467                let this: &Identity =
28468                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
28469                ICoreWebView2PointerInfo_Impl::PerformanceCount(
28470                    this,
28471                    core::mem::transmute_copy(&performancecount),
28472                )
28473                .into()
28474            }
28475        }
28476        unsafe extern "system" fn SetPerformanceCount<
28477            Identity: ICoreWebView2PointerInfo_Impl,
28478            const OFFSET: isize,
28479        >(
28480            this: *mut core::ffi::c_void,
28481            performancecount: u64,
28482        ) -> windows_core::HRESULT {
28483            unsafe {
28484                let this: &Identity =
28485                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
28486                ICoreWebView2PointerInfo_Impl::SetPerformanceCount(
28487                    this,
28488                    core::mem::transmute_copy(&performancecount),
28489                )
28490                .into()
28491            }
28492        }
28493        unsafe extern "system" fn ButtonChangeKind<
28494            Identity: ICoreWebView2PointerInfo_Impl,
28495            const OFFSET: isize,
28496        >(
28497            this: *mut core::ffi::c_void,
28498            buttonchangekind: *mut i32,
28499        ) -> windows_core::HRESULT {
28500            unsafe {
28501                let this: &Identity =
28502                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
28503                ICoreWebView2PointerInfo_Impl::ButtonChangeKind(
28504                    this,
28505                    core::mem::transmute_copy(&buttonchangekind),
28506                )
28507                .into()
28508            }
28509        }
28510        unsafe extern "system" fn SetButtonChangeKind<
28511            Identity: ICoreWebView2PointerInfo_Impl,
28512            const OFFSET: isize,
28513        >(
28514            this: *mut core::ffi::c_void,
28515            buttonchangekind: i32,
28516        ) -> windows_core::HRESULT {
28517            unsafe {
28518                let this: &Identity =
28519                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
28520                ICoreWebView2PointerInfo_Impl::SetButtonChangeKind(
28521                    this,
28522                    core::mem::transmute_copy(&buttonchangekind),
28523                )
28524                .into()
28525            }
28526        }
28527        unsafe extern "system" fn PenFlags<
28528            Identity: ICoreWebView2PointerInfo_Impl,
28529            const OFFSET: isize,
28530        >(
28531            this: *mut core::ffi::c_void,
28532            penflags: *mut u32,
28533        ) -> windows_core::HRESULT {
28534            unsafe {
28535                let this: &Identity =
28536                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
28537                ICoreWebView2PointerInfo_Impl::PenFlags(this, core::mem::transmute_copy(&penflags))
28538                    .into()
28539            }
28540        }
28541        unsafe extern "system" fn SetPenFlags<
28542            Identity: ICoreWebView2PointerInfo_Impl,
28543            const OFFSET: isize,
28544        >(
28545            this: *mut core::ffi::c_void,
28546            penflags: u32,
28547        ) -> windows_core::HRESULT {
28548            unsafe {
28549                let this: &Identity =
28550                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
28551                ICoreWebView2PointerInfo_Impl::SetPenFlags(
28552                    this,
28553                    core::mem::transmute_copy(&penflags),
28554                )
28555                .into()
28556            }
28557        }
28558        unsafe extern "system" fn PenMask<
28559            Identity: ICoreWebView2PointerInfo_Impl,
28560            const OFFSET: isize,
28561        >(
28562            this: *mut core::ffi::c_void,
28563            penmask: *mut u32,
28564        ) -> windows_core::HRESULT {
28565            unsafe {
28566                let this: &Identity =
28567                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
28568                ICoreWebView2PointerInfo_Impl::PenMask(this, core::mem::transmute_copy(&penmask))
28569                    .into()
28570            }
28571        }
28572        unsafe extern "system" fn SetPenMask<
28573            Identity: ICoreWebView2PointerInfo_Impl,
28574            const OFFSET: isize,
28575        >(
28576            this: *mut core::ffi::c_void,
28577            penmask: u32,
28578        ) -> windows_core::HRESULT {
28579            unsafe {
28580                let this: &Identity =
28581                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
28582                ICoreWebView2PointerInfo_Impl::SetPenMask(this, core::mem::transmute_copy(&penmask))
28583                    .into()
28584            }
28585        }
28586        unsafe extern "system" fn PenPressure<
28587            Identity: ICoreWebView2PointerInfo_Impl,
28588            const OFFSET: isize,
28589        >(
28590            this: *mut core::ffi::c_void,
28591            penpressure: *mut u32,
28592        ) -> windows_core::HRESULT {
28593            unsafe {
28594                let this: &Identity =
28595                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
28596                ICoreWebView2PointerInfo_Impl::PenPressure(
28597                    this,
28598                    core::mem::transmute_copy(&penpressure),
28599                )
28600                .into()
28601            }
28602        }
28603        unsafe extern "system" fn SetPenPressure<
28604            Identity: ICoreWebView2PointerInfo_Impl,
28605            const OFFSET: isize,
28606        >(
28607            this: *mut core::ffi::c_void,
28608            penpressure: u32,
28609        ) -> windows_core::HRESULT {
28610            unsafe {
28611                let this: &Identity =
28612                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
28613                ICoreWebView2PointerInfo_Impl::SetPenPressure(
28614                    this,
28615                    core::mem::transmute_copy(&penpressure),
28616                )
28617                .into()
28618            }
28619        }
28620        unsafe extern "system" fn PenRotation<
28621            Identity: ICoreWebView2PointerInfo_Impl,
28622            const OFFSET: isize,
28623        >(
28624            this: *mut core::ffi::c_void,
28625            penrotation: *mut u32,
28626        ) -> windows_core::HRESULT {
28627            unsafe {
28628                let this: &Identity =
28629                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
28630                ICoreWebView2PointerInfo_Impl::PenRotation(
28631                    this,
28632                    core::mem::transmute_copy(&penrotation),
28633                )
28634                .into()
28635            }
28636        }
28637        unsafe extern "system" fn SetPenRotation<
28638            Identity: ICoreWebView2PointerInfo_Impl,
28639            const OFFSET: isize,
28640        >(
28641            this: *mut core::ffi::c_void,
28642            penrotation: u32,
28643        ) -> windows_core::HRESULT {
28644            unsafe {
28645                let this: &Identity =
28646                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
28647                ICoreWebView2PointerInfo_Impl::SetPenRotation(
28648                    this,
28649                    core::mem::transmute_copy(&penrotation),
28650                )
28651                .into()
28652            }
28653        }
28654        unsafe extern "system" fn PenTiltX<
28655            Identity: ICoreWebView2PointerInfo_Impl,
28656            const OFFSET: isize,
28657        >(
28658            this: *mut core::ffi::c_void,
28659            pentiltx: *mut i32,
28660        ) -> windows_core::HRESULT {
28661            unsafe {
28662                let this: &Identity =
28663                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
28664                ICoreWebView2PointerInfo_Impl::PenTiltX(this, core::mem::transmute_copy(&pentiltx))
28665                    .into()
28666            }
28667        }
28668        unsafe extern "system" fn SetPenTiltX<
28669            Identity: ICoreWebView2PointerInfo_Impl,
28670            const OFFSET: isize,
28671        >(
28672            this: *mut core::ffi::c_void,
28673            pentiltx: i32,
28674        ) -> windows_core::HRESULT {
28675            unsafe {
28676                let this: &Identity =
28677                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
28678                ICoreWebView2PointerInfo_Impl::SetPenTiltX(
28679                    this,
28680                    core::mem::transmute_copy(&pentiltx),
28681                )
28682                .into()
28683            }
28684        }
28685        unsafe extern "system" fn PenTiltY<
28686            Identity: ICoreWebView2PointerInfo_Impl,
28687            const OFFSET: isize,
28688        >(
28689            this: *mut core::ffi::c_void,
28690            pentilty: *mut i32,
28691        ) -> windows_core::HRESULT {
28692            unsafe {
28693                let this: &Identity =
28694                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
28695                ICoreWebView2PointerInfo_Impl::PenTiltY(this, core::mem::transmute_copy(&pentilty))
28696                    .into()
28697            }
28698        }
28699        unsafe extern "system" fn SetPenTiltY<
28700            Identity: ICoreWebView2PointerInfo_Impl,
28701            const OFFSET: isize,
28702        >(
28703            this: *mut core::ffi::c_void,
28704            pentilty: i32,
28705        ) -> windows_core::HRESULT {
28706            unsafe {
28707                let this: &Identity =
28708                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
28709                ICoreWebView2PointerInfo_Impl::SetPenTiltY(
28710                    this,
28711                    core::mem::transmute_copy(&pentilty),
28712                )
28713                .into()
28714            }
28715        }
28716        unsafe extern "system" fn TouchFlags<
28717            Identity: ICoreWebView2PointerInfo_Impl,
28718            const OFFSET: isize,
28719        >(
28720            this: *mut core::ffi::c_void,
28721            touchflags: *mut u32,
28722        ) -> windows_core::HRESULT {
28723            unsafe {
28724                let this: &Identity =
28725                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
28726                ICoreWebView2PointerInfo_Impl::TouchFlags(
28727                    this,
28728                    core::mem::transmute_copy(&touchflags),
28729                )
28730                .into()
28731            }
28732        }
28733        unsafe extern "system" fn SetTouchFlags<
28734            Identity: ICoreWebView2PointerInfo_Impl,
28735            const OFFSET: isize,
28736        >(
28737            this: *mut core::ffi::c_void,
28738            touchflags: u32,
28739        ) -> windows_core::HRESULT {
28740            unsafe {
28741                let this: &Identity =
28742                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
28743                ICoreWebView2PointerInfo_Impl::SetTouchFlags(
28744                    this,
28745                    core::mem::transmute_copy(&touchflags),
28746                )
28747                .into()
28748            }
28749        }
28750        unsafe extern "system" fn TouchMask<
28751            Identity: ICoreWebView2PointerInfo_Impl,
28752            const OFFSET: isize,
28753        >(
28754            this: *mut core::ffi::c_void,
28755            touchmask: *mut u32,
28756        ) -> windows_core::HRESULT {
28757            unsafe {
28758                let this: &Identity =
28759                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
28760                ICoreWebView2PointerInfo_Impl::TouchMask(
28761                    this,
28762                    core::mem::transmute_copy(&touchmask),
28763                )
28764                .into()
28765            }
28766        }
28767        unsafe extern "system" fn SetTouchMask<
28768            Identity: ICoreWebView2PointerInfo_Impl,
28769            const OFFSET: isize,
28770        >(
28771            this: *mut core::ffi::c_void,
28772            touchmask: u32,
28773        ) -> windows_core::HRESULT {
28774            unsafe {
28775                let this: &Identity =
28776                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
28777                ICoreWebView2PointerInfo_Impl::SetTouchMask(
28778                    this,
28779                    core::mem::transmute_copy(&touchmask),
28780                )
28781                .into()
28782            }
28783        }
28784        unsafe extern "system" fn TouchContact<
28785            Identity: ICoreWebView2PointerInfo_Impl,
28786            const OFFSET: isize,
28787        >(
28788            this: *mut core::ffi::c_void,
28789            touchcontact: *mut windows::Win32::Foundation::RECT,
28790        ) -> windows_core::HRESULT {
28791            unsafe {
28792                let this: &Identity =
28793                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
28794                ICoreWebView2PointerInfo_Impl::TouchContact(
28795                    this,
28796                    core::mem::transmute_copy(&touchcontact),
28797                )
28798                .into()
28799            }
28800        }
28801        unsafe extern "system" fn SetTouchContact<
28802            Identity: ICoreWebView2PointerInfo_Impl,
28803            const OFFSET: isize,
28804        >(
28805            this: *mut core::ffi::c_void,
28806            touchcontact: windows::Win32::Foundation::RECT,
28807        ) -> windows_core::HRESULT {
28808            unsafe {
28809                let this: &Identity =
28810                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
28811                ICoreWebView2PointerInfo_Impl::SetTouchContact(
28812                    this,
28813                    core::mem::transmute(&touchcontact),
28814                )
28815                .into()
28816            }
28817        }
28818        unsafe extern "system" fn TouchContactRaw<
28819            Identity: ICoreWebView2PointerInfo_Impl,
28820            const OFFSET: isize,
28821        >(
28822            this: *mut core::ffi::c_void,
28823            touchcontactraw: *mut windows::Win32::Foundation::RECT,
28824        ) -> windows_core::HRESULT {
28825            unsafe {
28826                let this: &Identity =
28827                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
28828                ICoreWebView2PointerInfo_Impl::TouchContactRaw(
28829                    this,
28830                    core::mem::transmute_copy(&touchcontactraw),
28831                )
28832                .into()
28833            }
28834        }
28835        unsafe extern "system" fn SetTouchContactRaw<
28836            Identity: ICoreWebView2PointerInfo_Impl,
28837            const OFFSET: isize,
28838        >(
28839            this: *mut core::ffi::c_void,
28840            touchcontactraw: windows::Win32::Foundation::RECT,
28841        ) -> windows_core::HRESULT {
28842            unsafe {
28843                let this: &Identity =
28844                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
28845                ICoreWebView2PointerInfo_Impl::SetTouchContactRaw(
28846                    this,
28847                    core::mem::transmute(&touchcontactraw),
28848                )
28849                .into()
28850            }
28851        }
28852        unsafe extern "system" fn TouchOrientation<
28853            Identity: ICoreWebView2PointerInfo_Impl,
28854            const OFFSET: isize,
28855        >(
28856            this: *mut core::ffi::c_void,
28857            touchorientation: *mut u32,
28858        ) -> windows_core::HRESULT {
28859            unsafe {
28860                let this: &Identity =
28861                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
28862                ICoreWebView2PointerInfo_Impl::TouchOrientation(
28863                    this,
28864                    core::mem::transmute_copy(&touchorientation),
28865                )
28866                .into()
28867            }
28868        }
28869        unsafe extern "system" fn SetTouchOrientation<
28870            Identity: ICoreWebView2PointerInfo_Impl,
28871            const OFFSET: isize,
28872        >(
28873            this: *mut core::ffi::c_void,
28874            touchorientation: u32,
28875        ) -> windows_core::HRESULT {
28876            unsafe {
28877                let this: &Identity =
28878                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
28879                ICoreWebView2PointerInfo_Impl::SetTouchOrientation(
28880                    this,
28881                    core::mem::transmute_copy(&touchorientation),
28882                )
28883                .into()
28884            }
28885        }
28886        unsafe extern "system" fn TouchPressure<
28887            Identity: ICoreWebView2PointerInfo_Impl,
28888            const OFFSET: isize,
28889        >(
28890            this: *mut core::ffi::c_void,
28891            touchpressure: *mut u32,
28892        ) -> windows_core::HRESULT {
28893            unsafe {
28894                let this: &Identity =
28895                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
28896                ICoreWebView2PointerInfo_Impl::TouchPressure(
28897                    this,
28898                    core::mem::transmute_copy(&touchpressure),
28899                )
28900                .into()
28901            }
28902        }
28903        unsafe extern "system" fn SetTouchPressure<
28904            Identity: ICoreWebView2PointerInfo_Impl,
28905            const OFFSET: isize,
28906        >(
28907            this: *mut core::ffi::c_void,
28908            touchpressure: u32,
28909        ) -> windows_core::HRESULT {
28910            unsafe {
28911                let this: &Identity =
28912                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
28913                ICoreWebView2PointerInfo_Impl::SetTouchPressure(
28914                    this,
28915                    core::mem::transmute_copy(&touchpressure),
28916                )
28917                .into()
28918            }
28919        }
28920        Self {
28921            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
28922            PointerKind: PointerKind::<Identity, OFFSET>,
28923            SetPointerKind: SetPointerKind::<Identity, OFFSET>,
28924            PointerId: PointerId::<Identity, OFFSET>,
28925            SetPointerId: SetPointerId::<Identity, OFFSET>,
28926            FrameId: FrameId::<Identity, OFFSET>,
28927            SetFrameId: SetFrameId::<Identity, OFFSET>,
28928            PointerFlags: PointerFlags::<Identity, OFFSET>,
28929            SetPointerFlags: SetPointerFlags::<Identity, OFFSET>,
28930            PointerDeviceRect: PointerDeviceRect::<Identity, OFFSET>,
28931            SetPointerDeviceRect: SetPointerDeviceRect::<Identity, OFFSET>,
28932            DisplayRect: DisplayRect::<Identity, OFFSET>,
28933            SetDisplayRect: SetDisplayRect::<Identity, OFFSET>,
28934            PixelLocation: PixelLocation::<Identity, OFFSET>,
28935            SetPixelLocation: SetPixelLocation::<Identity, OFFSET>,
28936            HimetricLocation: HimetricLocation::<Identity, OFFSET>,
28937            SetHimetricLocation: SetHimetricLocation::<Identity, OFFSET>,
28938            PixelLocationRaw: PixelLocationRaw::<Identity, OFFSET>,
28939            SetPixelLocationRaw: SetPixelLocationRaw::<Identity, OFFSET>,
28940            HimetricLocationRaw: HimetricLocationRaw::<Identity, OFFSET>,
28941            SetHimetricLocationRaw: SetHimetricLocationRaw::<Identity, OFFSET>,
28942            Time: Time::<Identity, OFFSET>,
28943            SetTime: SetTime::<Identity, OFFSET>,
28944            HistoryCount: HistoryCount::<Identity, OFFSET>,
28945            SetHistoryCount: SetHistoryCount::<Identity, OFFSET>,
28946            InputData: InputData::<Identity, OFFSET>,
28947            SetInputData: SetInputData::<Identity, OFFSET>,
28948            KeyStates: KeyStates::<Identity, OFFSET>,
28949            SetKeyStates: SetKeyStates::<Identity, OFFSET>,
28950            PerformanceCount: PerformanceCount::<Identity, OFFSET>,
28951            SetPerformanceCount: SetPerformanceCount::<Identity, OFFSET>,
28952            ButtonChangeKind: ButtonChangeKind::<Identity, OFFSET>,
28953            SetButtonChangeKind: SetButtonChangeKind::<Identity, OFFSET>,
28954            PenFlags: PenFlags::<Identity, OFFSET>,
28955            SetPenFlags: SetPenFlags::<Identity, OFFSET>,
28956            PenMask: PenMask::<Identity, OFFSET>,
28957            SetPenMask: SetPenMask::<Identity, OFFSET>,
28958            PenPressure: PenPressure::<Identity, OFFSET>,
28959            SetPenPressure: SetPenPressure::<Identity, OFFSET>,
28960            PenRotation: PenRotation::<Identity, OFFSET>,
28961            SetPenRotation: SetPenRotation::<Identity, OFFSET>,
28962            PenTiltX: PenTiltX::<Identity, OFFSET>,
28963            SetPenTiltX: SetPenTiltX::<Identity, OFFSET>,
28964            PenTiltY: PenTiltY::<Identity, OFFSET>,
28965            SetPenTiltY: SetPenTiltY::<Identity, OFFSET>,
28966            TouchFlags: TouchFlags::<Identity, OFFSET>,
28967            SetTouchFlags: SetTouchFlags::<Identity, OFFSET>,
28968            TouchMask: TouchMask::<Identity, OFFSET>,
28969            SetTouchMask: SetTouchMask::<Identity, OFFSET>,
28970            TouchContact: TouchContact::<Identity, OFFSET>,
28971            SetTouchContact: SetTouchContact::<Identity, OFFSET>,
28972            TouchContactRaw: TouchContactRaw::<Identity, OFFSET>,
28973            SetTouchContactRaw: SetTouchContactRaw::<Identity, OFFSET>,
28974            TouchOrientation: TouchOrientation::<Identity, OFFSET>,
28975            SetTouchOrientation: SetTouchOrientation::<Identity, OFFSET>,
28976            TouchPressure: TouchPressure::<Identity, OFFSET>,
28977            SetTouchPressure: SetTouchPressure::<Identity, OFFSET>,
28978        }
28979    }
28980    pub fn matches(iid: &windows_core::GUID) -> bool {
28981        iid == &<ICoreWebView2PointerInfo as windows_core::Interface>::IID
28982    }
28983}
28984impl windows_core::RuntimeName for ICoreWebView2PointerInfo {}
28985windows_core::imp::define_interface!(
28986    ICoreWebView2PrintCompletedHandler,
28987    ICoreWebView2PrintCompletedHandler_Vtbl,
28988    0x8fd80075_ed08_42db_8570_f5d14977461e
28989);
28990windows_core::imp::interface_hierarchy!(ICoreWebView2PrintCompletedHandler, windows_core::IUnknown);
28991impl ICoreWebView2PrintCompletedHandler {
28992    pub unsafe fn Invoke(
28993        &self,
28994        errorcode: windows_core::HRESULT,
28995        result: COREWEBVIEW2_PRINT_STATUS,
28996    ) -> windows_core::Result<()> {
28997        unsafe {
28998            (windows_core::Interface::vtable(self).Invoke)(
28999                windows_core::Interface::as_raw(self),
29000                errorcode,
29001                result,
29002            )
29003            .ok()
29004        }
29005    }
29006}
29007#[repr(C)]
29008#[doc(hidden)]
29009pub struct ICoreWebView2PrintCompletedHandler_Vtbl {
29010    pub base__: windows_core::IUnknown_Vtbl,
29011    pub Invoke: unsafe extern "system" fn(
29012        *mut core::ffi::c_void,
29013        windows_core::HRESULT,
29014        COREWEBVIEW2_PRINT_STATUS,
29015    ) -> windows_core::HRESULT,
29016}
29017pub trait ICoreWebView2PrintCompletedHandler_Impl: windows_core::IUnknownImpl {
29018    fn Invoke(
29019        &self,
29020        errorcode: windows_core::HRESULT,
29021        result: COREWEBVIEW2_PRINT_STATUS,
29022    ) -> windows_core::Result<()>;
29023}
29024impl ICoreWebView2PrintCompletedHandler_Vtbl {
29025    pub const fn new<Identity: ICoreWebView2PrintCompletedHandler_Impl, const OFFSET: isize>(
29026    ) -> Self {
29027        unsafe extern "system" fn Invoke<
29028            Identity: ICoreWebView2PrintCompletedHandler_Impl,
29029            const OFFSET: isize,
29030        >(
29031            this: *mut core::ffi::c_void,
29032            errorcode: windows_core::HRESULT,
29033            result: COREWEBVIEW2_PRINT_STATUS,
29034        ) -> windows_core::HRESULT {
29035            unsafe {
29036                let this: &Identity =
29037                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
29038                ICoreWebView2PrintCompletedHandler_Impl::Invoke(
29039                    this,
29040                    core::mem::transmute_copy(&errorcode),
29041                    core::mem::transmute_copy(&result),
29042                )
29043                .into()
29044            }
29045        }
29046        Self {
29047            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
29048            Invoke: Invoke::<Identity, OFFSET>,
29049        }
29050    }
29051    pub fn matches(iid: &windows_core::GUID) -> bool {
29052        iid == &<ICoreWebView2PrintCompletedHandler as windows_core::Interface>::IID
29053    }
29054}
29055impl windows_core::RuntimeName for ICoreWebView2PrintCompletedHandler {}
29056windows_core::imp::define_interface!(
29057    ICoreWebView2PrintSettings,
29058    ICoreWebView2PrintSettings_Vtbl,
29059    0x377f3721_c74e_48ca_8db1_df68e51d60e2
29060);
29061windows_core::imp::interface_hierarchy!(ICoreWebView2PrintSettings, windows_core::IUnknown);
29062impl ICoreWebView2PrintSettings {
29063    pub unsafe fn Orientation(
29064        &self,
29065        orientation: *mut COREWEBVIEW2_PRINT_ORIENTATION,
29066    ) -> windows_core::Result<()> {
29067        unsafe {
29068            (windows_core::Interface::vtable(self).Orientation)(
29069                windows_core::Interface::as_raw(self),
29070                orientation as _,
29071            )
29072            .ok()
29073        }
29074    }
29075    pub unsafe fn SetOrientation(
29076        &self,
29077        orientation: COREWEBVIEW2_PRINT_ORIENTATION,
29078    ) -> windows_core::Result<()> {
29079        unsafe {
29080            (windows_core::Interface::vtable(self).SetOrientation)(
29081                windows_core::Interface::as_raw(self),
29082                orientation,
29083            )
29084            .ok()
29085        }
29086    }
29087    pub unsafe fn ScaleFactor(&self, scalefactor: *mut f64) -> windows_core::Result<()> {
29088        unsafe {
29089            (windows_core::Interface::vtable(self).ScaleFactor)(
29090                windows_core::Interface::as_raw(self),
29091                scalefactor as _,
29092            )
29093            .ok()
29094        }
29095    }
29096    pub unsafe fn SetScaleFactor(&self, scalefactor: f64) -> windows_core::Result<()> {
29097        unsafe {
29098            (windows_core::Interface::vtable(self).SetScaleFactor)(
29099                windows_core::Interface::as_raw(self),
29100                scalefactor,
29101            )
29102            .ok()
29103        }
29104    }
29105    pub unsafe fn PageWidth(&self, pagewidth: *mut f64) -> windows_core::Result<()> {
29106        unsafe {
29107            (windows_core::Interface::vtable(self).PageWidth)(
29108                windows_core::Interface::as_raw(self),
29109                pagewidth as _,
29110            )
29111            .ok()
29112        }
29113    }
29114    pub unsafe fn SetPageWidth(&self, pagewidth: f64) -> windows_core::Result<()> {
29115        unsafe {
29116            (windows_core::Interface::vtable(self).SetPageWidth)(
29117                windows_core::Interface::as_raw(self),
29118                pagewidth,
29119            )
29120            .ok()
29121        }
29122    }
29123    pub unsafe fn PageHeight(&self, pageheight: *mut f64) -> windows_core::Result<()> {
29124        unsafe {
29125            (windows_core::Interface::vtable(self).PageHeight)(
29126                windows_core::Interface::as_raw(self),
29127                pageheight as _,
29128            )
29129            .ok()
29130        }
29131    }
29132    pub unsafe fn SetPageHeight(&self, pageheight: f64) -> windows_core::Result<()> {
29133        unsafe {
29134            (windows_core::Interface::vtable(self).SetPageHeight)(
29135                windows_core::Interface::as_raw(self),
29136                pageheight,
29137            )
29138            .ok()
29139        }
29140    }
29141    pub unsafe fn MarginTop(&self, margintop: *mut f64) -> windows_core::Result<()> {
29142        unsafe {
29143            (windows_core::Interface::vtable(self).MarginTop)(
29144                windows_core::Interface::as_raw(self),
29145                margintop as _,
29146            )
29147            .ok()
29148        }
29149    }
29150    pub unsafe fn SetMarginTop(&self, margintop: f64) -> windows_core::Result<()> {
29151        unsafe {
29152            (windows_core::Interface::vtable(self).SetMarginTop)(
29153                windows_core::Interface::as_raw(self),
29154                margintop,
29155            )
29156            .ok()
29157        }
29158    }
29159    pub unsafe fn MarginBottom(&self, marginbottom: *mut f64) -> windows_core::Result<()> {
29160        unsafe {
29161            (windows_core::Interface::vtable(self).MarginBottom)(
29162                windows_core::Interface::as_raw(self),
29163                marginbottom as _,
29164            )
29165            .ok()
29166        }
29167    }
29168    pub unsafe fn SetMarginBottom(&self, marginbottom: f64) -> windows_core::Result<()> {
29169        unsafe {
29170            (windows_core::Interface::vtable(self).SetMarginBottom)(
29171                windows_core::Interface::as_raw(self),
29172                marginbottom,
29173            )
29174            .ok()
29175        }
29176    }
29177    pub unsafe fn MarginLeft(&self, marginleft: *mut f64) -> windows_core::Result<()> {
29178        unsafe {
29179            (windows_core::Interface::vtable(self).MarginLeft)(
29180                windows_core::Interface::as_raw(self),
29181                marginleft as _,
29182            )
29183            .ok()
29184        }
29185    }
29186    pub unsafe fn SetMarginLeft(&self, marginleft: f64) -> windows_core::Result<()> {
29187        unsafe {
29188            (windows_core::Interface::vtable(self).SetMarginLeft)(
29189                windows_core::Interface::as_raw(self),
29190                marginleft,
29191            )
29192            .ok()
29193        }
29194    }
29195    pub unsafe fn MarginRight(&self, marginright: *mut f64) -> windows_core::Result<()> {
29196        unsafe {
29197            (windows_core::Interface::vtable(self).MarginRight)(
29198                windows_core::Interface::as_raw(self),
29199                marginright as _,
29200            )
29201            .ok()
29202        }
29203    }
29204    pub unsafe fn SetMarginRight(&self, marginright: f64) -> windows_core::Result<()> {
29205        unsafe {
29206            (windows_core::Interface::vtable(self).SetMarginRight)(
29207                windows_core::Interface::as_raw(self),
29208                marginright,
29209            )
29210            .ok()
29211        }
29212    }
29213    pub unsafe fn ShouldPrintBackgrounds(
29214        &self,
29215        shouldprintbackgrounds: *mut windows_core::BOOL,
29216    ) -> windows_core::Result<()> {
29217        unsafe {
29218            (windows_core::Interface::vtable(self).ShouldPrintBackgrounds)(
29219                windows_core::Interface::as_raw(self),
29220                shouldprintbackgrounds as _,
29221            )
29222            .ok()
29223        }
29224    }
29225    pub unsafe fn SetShouldPrintBackgrounds(
29226        &self,
29227        shouldprintbackgrounds: bool,
29228    ) -> windows_core::Result<()> {
29229        unsafe {
29230            (windows_core::Interface::vtable(self).SetShouldPrintBackgrounds)(
29231                windows_core::Interface::as_raw(self),
29232                shouldprintbackgrounds.into(),
29233            )
29234            .ok()
29235        }
29236    }
29237    pub unsafe fn ShouldPrintSelectionOnly(
29238        &self,
29239        shouldprintselectiononly: *mut windows_core::BOOL,
29240    ) -> windows_core::Result<()> {
29241        unsafe {
29242            (windows_core::Interface::vtable(self).ShouldPrintSelectionOnly)(
29243                windows_core::Interface::as_raw(self),
29244                shouldprintselectiononly as _,
29245            )
29246            .ok()
29247        }
29248    }
29249    pub unsafe fn SetShouldPrintSelectionOnly(
29250        &self,
29251        shouldprintselectiononly: bool,
29252    ) -> windows_core::Result<()> {
29253        unsafe {
29254            (windows_core::Interface::vtable(self).SetShouldPrintSelectionOnly)(
29255                windows_core::Interface::as_raw(self),
29256                shouldprintselectiononly.into(),
29257            )
29258            .ok()
29259        }
29260    }
29261    pub unsafe fn ShouldPrintHeaderAndFooter(
29262        &self,
29263        shouldprintheaderandfooter: *mut windows_core::BOOL,
29264    ) -> windows_core::Result<()> {
29265        unsafe {
29266            (windows_core::Interface::vtable(self).ShouldPrintHeaderAndFooter)(
29267                windows_core::Interface::as_raw(self),
29268                shouldprintheaderandfooter as _,
29269            )
29270            .ok()
29271        }
29272    }
29273    pub unsafe fn SetShouldPrintHeaderAndFooter(
29274        &self,
29275        shouldprintheaderandfooter: bool,
29276    ) -> windows_core::Result<()> {
29277        unsafe {
29278            (windows_core::Interface::vtable(self).SetShouldPrintHeaderAndFooter)(
29279                windows_core::Interface::as_raw(self),
29280                shouldprintheaderandfooter.into(),
29281            )
29282            .ok()
29283        }
29284    }
29285    pub unsafe fn HeaderTitle(
29286        &self,
29287        headertitle: *mut windows_core::PWSTR,
29288    ) -> windows_core::Result<()> {
29289        unsafe {
29290            (windows_core::Interface::vtable(self).HeaderTitle)(
29291                windows_core::Interface::as_raw(self),
29292                headertitle as _,
29293            )
29294            .ok()
29295        }
29296    }
29297    pub unsafe fn SetHeaderTitle<P0>(&self, headertitle: P0) -> windows_core::Result<()>
29298    where
29299        P0: windows_core::Param<windows_core::PCWSTR>,
29300    {
29301        unsafe {
29302            (windows_core::Interface::vtable(self).SetHeaderTitle)(
29303                windows_core::Interface::as_raw(self),
29304                headertitle.param().abi(),
29305            )
29306            .ok()
29307        }
29308    }
29309    pub unsafe fn FooterUri(
29310        &self,
29311        footeruri: *mut windows_core::PWSTR,
29312    ) -> windows_core::Result<()> {
29313        unsafe {
29314            (windows_core::Interface::vtable(self).FooterUri)(
29315                windows_core::Interface::as_raw(self),
29316                footeruri as _,
29317            )
29318            .ok()
29319        }
29320    }
29321    pub unsafe fn SetFooterUri<P0>(&self, footeruri: P0) -> windows_core::Result<()>
29322    where
29323        P0: windows_core::Param<windows_core::PCWSTR>,
29324    {
29325        unsafe {
29326            (windows_core::Interface::vtable(self).SetFooterUri)(
29327                windows_core::Interface::as_raw(self),
29328                footeruri.param().abi(),
29329            )
29330            .ok()
29331        }
29332    }
29333}
29334#[repr(C)]
29335#[doc(hidden)]
29336pub struct ICoreWebView2PrintSettings_Vtbl {
29337    pub base__: windows_core::IUnknown_Vtbl,
29338    pub Orientation: unsafe extern "system" fn(
29339        *mut core::ffi::c_void,
29340        *mut COREWEBVIEW2_PRINT_ORIENTATION,
29341    ) -> windows_core::HRESULT,
29342    pub SetOrientation: unsafe extern "system" fn(
29343        *mut core::ffi::c_void,
29344        COREWEBVIEW2_PRINT_ORIENTATION,
29345    ) -> windows_core::HRESULT,
29346    pub ScaleFactor:
29347        unsafe extern "system" fn(*mut core::ffi::c_void, *mut f64) -> windows_core::HRESULT,
29348    pub SetScaleFactor:
29349        unsafe extern "system" fn(*mut core::ffi::c_void, f64) -> windows_core::HRESULT,
29350    pub PageWidth:
29351        unsafe extern "system" fn(*mut core::ffi::c_void, *mut f64) -> windows_core::HRESULT,
29352    pub SetPageWidth:
29353        unsafe extern "system" fn(*mut core::ffi::c_void, f64) -> windows_core::HRESULT,
29354    pub PageHeight:
29355        unsafe extern "system" fn(*mut core::ffi::c_void, *mut f64) -> windows_core::HRESULT,
29356    pub SetPageHeight:
29357        unsafe extern "system" fn(*mut core::ffi::c_void, f64) -> windows_core::HRESULT,
29358    pub MarginTop:
29359        unsafe extern "system" fn(*mut core::ffi::c_void, *mut f64) -> windows_core::HRESULT,
29360    pub SetMarginTop:
29361        unsafe extern "system" fn(*mut core::ffi::c_void, f64) -> windows_core::HRESULT,
29362    pub MarginBottom:
29363        unsafe extern "system" fn(*mut core::ffi::c_void, *mut f64) -> windows_core::HRESULT,
29364    pub SetMarginBottom:
29365        unsafe extern "system" fn(*mut core::ffi::c_void, f64) -> windows_core::HRESULT,
29366    pub MarginLeft:
29367        unsafe extern "system" fn(*mut core::ffi::c_void, *mut f64) -> windows_core::HRESULT,
29368    pub SetMarginLeft:
29369        unsafe extern "system" fn(*mut core::ffi::c_void, f64) -> windows_core::HRESULT,
29370    pub MarginRight:
29371        unsafe extern "system" fn(*mut core::ffi::c_void, *mut f64) -> windows_core::HRESULT,
29372    pub SetMarginRight:
29373        unsafe extern "system" fn(*mut core::ffi::c_void, f64) -> windows_core::HRESULT,
29374    pub ShouldPrintBackgrounds: unsafe extern "system" fn(
29375        *mut core::ffi::c_void,
29376        *mut windows_core::BOOL,
29377    ) -> windows_core::HRESULT,
29378    pub SetShouldPrintBackgrounds: unsafe extern "system" fn(
29379        *mut core::ffi::c_void,
29380        windows_core::BOOL,
29381    ) -> windows_core::HRESULT,
29382    pub ShouldPrintSelectionOnly: unsafe extern "system" fn(
29383        *mut core::ffi::c_void,
29384        *mut windows_core::BOOL,
29385    ) -> windows_core::HRESULT,
29386    pub SetShouldPrintSelectionOnly: unsafe extern "system" fn(
29387        *mut core::ffi::c_void,
29388        windows_core::BOOL,
29389    ) -> windows_core::HRESULT,
29390    pub ShouldPrintHeaderAndFooter: unsafe extern "system" fn(
29391        *mut core::ffi::c_void,
29392        *mut windows_core::BOOL,
29393    ) -> windows_core::HRESULT,
29394    pub SetShouldPrintHeaderAndFooter: unsafe extern "system" fn(
29395        *mut core::ffi::c_void,
29396        windows_core::BOOL,
29397    ) -> windows_core::HRESULT,
29398    pub HeaderTitle: unsafe extern "system" fn(
29399        *mut core::ffi::c_void,
29400        *mut windows_core::PWSTR,
29401    ) -> windows_core::HRESULT,
29402    pub SetHeaderTitle: unsafe extern "system" fn(
29403        *mut core::ffi::c_void,
29404        windows_core::PCWSTR,
29405    ) -> windows_core::HRESULT,
29406    pub FooterUri: unsafe extern "system" fn(
29407        *mut core::ffi::c_void,
29408        *mut windows_core::PWSTR,
29409    ) -> windows_core::HRESULT,
29410    pub SetFooterUri: unsafe extern "system" fn(
29411        *mut core::ffi::c_void,
29412        windows_core::PCWSTR,
29413    ) -> windows_core::HRESULT,
29414}
29415pub trait ICoreWebView2PrintSettings_Impl: windows_core::IUnknownImpl {
29416    fn Orientation(
29417        &self,
29418        orientation: *mut COREWEBVIEW2_PRINT_ORIENTATION,
29419    ) -> windows_core::Result<()>;
29420    fn SetOrientation(
29421        &self,
29422        orientation: COREWEBVIEW2_PRINT_ORIENTATION,
29423    ) -> windows_core::Result<()>;
29424    fn ScaleFactor(&self, scalefactor: *mut f64) -> windows_core::Result<()>;
29425    fn SetScaleFactor(&self, scalefactor: f64) -> windows_core::Result<()>;
29426    fn PageWidth(&self, pagewidth: *mut f64) -> windows_core::Result<()>;
29427    fn SetPageWidth(&self, pagewidth: f64) -> windows_core::Result<()>;
29428    fn PageHeight(&self, pageheight: *mut f64) -> windows_core::Result<()>;
29429    fn SetPageHeight(&self, pageheight: f64) -> windows_core::Result<()>;
29430    fn MarginTop(&self, margintop: *mut f64) -> windows_core::Result<()>;
29431    fn SetMarginTop(&self, margintop: f64) -> windows_core::Result<()>;
29432    fn MarginBottom(&self, marginbottom: *mut f64) -> windows_core::Result<()>;
29433    fn SetMarginBottom(&self, marginbottom: f64) -> windows_core::Result<()>;
29434    fn MarginLeft(&self, marginleft: *mut f64) -> windows_core::Result<()>;
29435    fn SetMarginLeft(&self, marginleft: f64) -> windows_core::Result<()>;
29436    fn MarginRight(&self, marginright: *mut f64) -> windows_core::Result<()>;
29437    fn SetMarginRight(&self, marginright: f64) -> windows_core::Result<()>;
29438    fn ShouldPrintBackgrounds(
29439        &self,
29440        shouldprintbackgrounds: *mut windows_core::BOOL,
29441    ) -> windows_core::Result<()>;
29442    fn SetShouldPrintBackgrounds(
29443        &self,
29444        shouldprintbackgrounds: windows_core::BOOL,
29445    ) -> windows_core::Result<()>;
29446    fn ShouldPrintSelectionOnly(
29447        &self,
29448        shouldprintselectiononly: *mut windows_core::BOOL,
29449    ) -> windows_core::Result<()>;
29450    fn SetShouldPrintSelectionOnly(
29451        &self,
29452        shouldprintselectiononly: windows_core::BOOL,
29453    ) -> windows_core::Result<()>;
29454    fn ShouldPrintHeaderAndFooter(
29455        &self,
29456        shouldprintheaderandfooter: *mut windows_core::BOOL,
29457    ) -> windows_core::Result<()>;
29458    fn SetShouldPrintHeaderAndFooter(
29459        &self,
29460        shouldprintheaderandfooter: windows_core::BOOL,
29461    ) -> windows_core::Result<()>;
29462    fn HeaderTitle(&self, headertitle: *mut windows_core::PWSTR) -> windows_core::Result<()>;
29463    fn SetHeaderTitle(&self, headertitle: &windows_core::PCWSTR) -> windows_core::Result<()>;
29464    fn FooterUri(&self, footeruri: *mut windows_core::PWSTR) -> windows_core::Result<()>;
29465    fn SetFooterUri(&self, footeruri: &windows_core::PCWSTR) -> windows_core::Result<()>;
29466}
29467impl ICoreWebView2PrintSettings_Vtbl {
29468    pub const fn new<Identity: ICoreWebView2PrintSettings_Impl, const OFFSET: isize>() -> Self {
29469        unsafe extern "system" fn Orientation<
29470            Identity: ICoreWebView2PrintSettings_Impl,
29471            const OFFSET: isize,
29472        >(
29473            this: *mut core::ffi::c_void,
29474            orientation: *mut COREWEBVIEW2_PRINT_ORIENTATION,
29475        ) -> windows_core::HRESULT {
29476            unsafe {
29477                let this: &Identity =
29478                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
29479                ICoreWebView2PrintSettings_Impl::Orientation(
29480                    this,
29481                    core::mem::transmute_copy(&orientation),
29482                )
29483                .into()
29484            }
29485        }
29486        unsafe extern "system" fn SetOrientation<
29487            Identity: ICoreWebView2PrintSettings_Impl,
29488            const OFFSET: isize,
29489        >(
29490            this: *mut core::ffi::c_void,
29491            orientation: COREWEBVIEW2_PRINT_ORIENTATION,
29492        ) -> windows_core::HRESULT {
29493            unsafe {
29494                let this: &Identity =
29495                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
29496                ICoreWebView2PrintSettings_Impl::SetOrientation(
29497                    this,
29498                    core::mem::transmute_copy(&orientation),
29499                )
29500                .into()
29501            }
29502        }
29503        unsafe extern "system" fn ScaleFactor<
29504            Identity: ICoreWebView2PrintSettings_Impl,
29505            const OFFSET: isize,
29506        >(
29507            this: *mut core::ffi::c_void,
29508            scalefactor: *mut f64,
29509        ) -> windows_core::HRESULT {
29510            unsafe {
29511                let this: &Identity =
29512                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
29513                ICoreWebView2PrintSettings_Impl::ScaleFactor(
29514                    this,
29515                    core::mem::transmute_copy(&scalefactor),
29516                )
29517                .into()
29518            }
29519        }
29520        unsafe extern "system" fn SetScaleFactor<
29521            Identity: ICoreWebView2PrintSettings_Impl,
29522            const OFFSET: isize,
29523        >(
29524            this: *mut core::ffi::c_void,
29525            scalefactor: f64,
29526        ) -> windows_core::HRESULT {
29527            unsafe {
29528                let this: &Identity =
29529                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
29530                ICoreWebView2PrintSettings_Impl::SetScaleFactor(
29531                    this,
29532                    core::mem::transmute_copy(&scalefactor),
29533                )
29534                .into()
29535            }
29536        }
29537        unsafe extern "system" fn PageWidth<
29538            Identity: ICoreWebView2PrintSettings_Impl,
29539            const OFFSET: isize,
29540        >(
29541            this: *mut core::ffi::c_void,
29542            pagewidth: *mut f64,
29543        ) -> windows_core::HRESULT {
29544            unsafe {
29545                let this: &Identity =
29546                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
29547                ICoreWebView2PrintSettings_Impl::PageWidth(
29548                    this,
29549                    core::mem::transmute_copy(&pagewidth),
29550                )
29551                .into()
29552            }
29553        }
29554        unsafe extern "system" fn SetPageWidth<
29555            Identity: ICoreWebView2PrintSettings_Impl,
29556            const OFFSET: isize,
29557        >(
29558            this: *mut core::ffi::c_void,
29559            pagewidth: f64,
29560        ) -> windows_core::HRESULT {
29561            unsafe {
29562                let this: &Identity =
29563                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
29564                ICoreWebView2PrintSettings_Impl::SetPageWidth(
29565                    this,
29566                    core::mem::transmute_copy(&pagewidth),
29567                )
29568                .into()
29569            }
29570        }
29571        unsafe extern "system" fn PageHeight<
29572            Identity: ICoreWebView2PrintSettings_Impl,
29573            const OFFSET: isize,
29574        >(
29575            this: *mut core::ffi::c_void,
29576            pageheight: *mut f64,
29577        ) -> windows_core::HRESULT {
29578            unsafe {
29579                let this: &Identity =
29580                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
29581                ICoreWebView2PrintSettings_Impl::PageHeight(
29582                    this,
29583                    core::mem::transmute_copy(&pageheight),
29584                )
29585                .into()
29586            }
29587        }
29588        unsafe extern "system" fn SetPageHeight<
29589            Identity: ICoreWebView2PrintSettings_Impl,
29590            const OFFSET: isize,
29591        >(
29592            this: *mut core::ffi::c_void,
29593            pageheight: f64,
29594        ) -> windows_core::HRESULT {
29595            unsafe {
29596                let this: &Identity =
29597                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
29598                ICoreWebView2PrintSettings_Impl::SetPageHeight(
29599                    this,
29600                    core::mem::transmute_copy(&pageheight),
29601                )
29602                .into()
29603            }
29604        }
29605        unsafe extern "system" fn MarginTop<
29606            Identity: ICoreWebView2PrintSettings_Impl,
29607            const OFFSET: isize,
29608        >(
29609            this: *mut core::ffi::c_void,
29610            margintop: *mut f64,
29611        ) -> windows_core::HRESULT {
29612            unsafe {
29613                let this: &Identity =
29614                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
29615                ICoreWebView2PrintSettings_Impl::MarginTop(
29616                    this,
29617                    core::mem::transmute_copy(&margintop),
29618                )
29619                .into()
29620            }
29621        }
29622        unsafe extern "system" fn SetMarginTop<
29623            Identity: ICoreWebView2PrintSettings_Impl,
29624            const OFFSET: isize,
29625        >(
29626            this: *mut core::ffi::c_void,
29627            margintop: f64,
29628        ) -> windows_core::HRESULT {
29629            unsafe {
29630                let this: &Identity =
29631                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
29632                ICoreWebView2PrintSettings_Impl::SetMarginTop(
29633                    this,
29634                    core::mem::transmute_copy(&margintop),
29635                )
29636                .into()
29637            }
29638        }
29639        unsafe extern "system" fn MarginBottom<
29640            Identity: ICoreWebView2PrintSettings_Impl,
29641            const OFFSET: isize,
29642        >(
29643            this: *mut core::ffi::c_void,
29644            marginbottom: *mut f64,
29645        ) -> windows_core::HRESULT {
29646            unsafe {
29647                let this: &Identity =
29648                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
29649                ICoreWebView2PrintSettings_Impl::MarginBottom(
29650                    this,
29651                    core::mem::transmute_copy(&marginbottom),
29652                )
29653                .into()
29654            }
29655        }
29656        unsafe extern "system" fn SetMarginBottom<
29657            Identity: ICoreWebView2PrintSettings_Impl,
29658            const OFFSET: isize,
29659        >(
29660            this: *mut core::ffi::c_void,
29661            marginbottom: f64,
29662        ) -> windows_core::HRESULT {
29663            unsafe {
29664                let this: &Identity =
29665                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
29666                ICoreWebView2PrintSettings_Impl::SetMarginBottom(
29667                    this,
29668                    core::mem::transmute_copy(&marginbottom),
29669                )
29670                .into()
29671            }
29672        }
29673        unsafe extern "system" fn MarginLeft<
29674            Identity: ICoreWebView2PrintSettings_Impl,
29675            const OFFSET: isize,
29676        >(
29677            this: *mut core::ffi::c_void,
29678            marginleft: *mut f64,
29679        ) -> windows_core::HRESULT {
29680            unsafe {
29681                let this: &Identity =
29682                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
29683                ICoreWebView2PrintSettings_Impl::MarginLeft(
29684                    this,
29685                    core::mem::transmute_copy(&marginleft),
29686                )
29687                .into()
29688            }
29689        }
29690        unsafe extern "system" fn SetMarginLeft<
29691            Identity: ICoreWebView2PrintSettings_Impl,
29692            const OFFSET: isize,
29693        >(
29694            this: *mut core::ffi::c_void,
29695            marginleft: f64,
29696        ) -> windows_core::HRESULT {
29697            unsafe {
29698                let this: &Identity =
29699                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
29700                ICoreWebView2PrintSettings_Impl::SetMarginLeft(
29701                    this,
29702                    core::mem::transmute_copy(&marginleft),
29703                )
29704                .into()
29705            }
29706        }
29707        unsafe extern "system" fn MarginRight<
29708            Identity: ICoreWebView2PrintSettings_Impl,
29709            const OFFSET: isize,
29710        >(
29711            this: *mut core::ffi::c_void,
29712            marginright: *mut f64,
29713        ) -> windows_core::HRESULT {
29714            unsafe {
29715                let this: &Identity =
29716                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
29717                ICoreWebView2PrintSettings_Impl::MarginRight(
29718                    this,
29719                    core::mem::transmute_copy(&marginright),
29720                )
29721                .into()
29722            }
29723        }
29724        unsafe extern "system" fn SetMarginRight<
29725            Identity: ICoreWebView2PrintSettings_Impl,
29726            const OFFSET: isize,
29727        >(
29728            this: *mut core::ffi::c_void,
29729            marginright: f64,
29730        ) -> windows_core::HRESULT {
29731            unsafe {
29732                let this: &Identity =
29733                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
29734                ICoreWebView2PrintSettings_Impl::SetMarginRight(
29735                    this,
29736                    core::mem::transmute_copy(&marginright),
29737                )
29738                .into()
29739            }
29740        }
29741        unsafe extern "system" fn ShouldPrintBackgrounds<
29742            Identity: ICoreWebView2PrintSettings_Impl,
29743            const OFFSET: isize,
29744        >(
29745            this: *mut core::ffi::c_void,
29746            shouldprintbackgrounds: *mut windows_core::BOOL,
29747        ) -> windows_core::HRESULT {
29748            unsafe {
29749                let this: &Identity =
29750                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
29751                ICoreWebView2PrintSettings_Impl::ShouldPrintBackgrounds(
29752                    this,
29753                    core::mem::transmute_copy(&shouldprintbackgrounds),
29754                )
29755                .into()
29756            }
29757        }
29758        unsafe extern "system" fn SetShouldPrintBackgrounds<
29759            Identity: ICoreWebView2PrintSettings_Impl,
29760            const OFFSET: isize,
29761        >(
29762            this: *mut core::ffi::c_void,
29763            shouldprintbackgrounds: windows_core::BOOL,
29764        ) -> windows_core::HRESULT {
29765            unsafe {
29766                let this: &Identity =
29767                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
29768                ICoreWebView2PrintSettings_Impl::SetShouldPrintBackgrounds(
29769                    this,
29770                    core::mem::transmute_copy(&shouldprintbackgrounds),
29771                )
29772                .into()
29773            }
29774        }
29775        unsafe extern "system" fn ShouldPrintSelectionOnly<
29776            Identity: ICoreWebView2PrintSettings_Impl,
29777            const OFFSET: isize,
29778        >(
29779            this: *mut core::ffi::c_void,
29780            shouldprintselectiononly: *mut windows_core::BOOL,
29781        ) -> windows_core::HRESULT {
29782            unsafe {
29783                let this: &Identity =
29784                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
29785                ICoreWebView2PrintSettings_Impl::ShouldPrintSelectionOnly(
29786                    this,
29787                    core::mem::transmute_copy(&shouldprintselectiononly),
29788                )
29789                .into()
29790            }
29791        }
29792        unsafe extern "system" fn SetShouldPrintSelectionOnly<
29793            Identity: ICoreWebView2PrintSettings_Impl,
29794            const OFFSET: isize,
29795        >(
29796            this: *mut core::ffi::c_void,
29797            shouldprintselectiononly: windows_core::BOOL,
29798        ) -> windows_core::HRESULT {
29799            unsafe {
29800                let this: &Identity =
29801                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
29802                ICoreWebView2PrintSettings_Impl::SetShouldPrintSelectionOnly(
29803                    this,
29804                    core::mem::transmute_copy(&shouldprintselectiononly),
29805                )
29806                .into()
29807            }
29808        }
29809        unsafe extern "system" fn ShouldPrintHeaderAndFooter<
29810            Identity: ICoreWebView2PrintSettings_Impl,
29811            const OFFSET: isize,
29812        >(
29813            this: *mut core::ffi::c_void,
29814            shouldprintheaderandfooter: *mut windows_core::BOOL,
29815        ) -> windows_core::HRESULT {
29816            unsafe {
29817                let this: &Identity =
29818                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
29819                ICoreWebView2PrintSettings_Impl::ShouldPrintHeaderAndFooter(
29820                    this,
29821                    core::mem::transmute_copy(&shouldprintheaderandfooter),
29822                )
29823                .into()
29824            }
29825        }
29826        unsafe extern "system" fn SetShouldPrintHeaderAndFooter<
29827            Identity: ICoreWebView2PrintSettings_Impl,
29828            const OFFSET: isize,
29829        >(
29830            this: *mut core::ffi::c_void,
29831            shouldprintheaderandfooter: windows_core::BOOL,
29832        ) -> windows_core::HRESULT {
29833            unsafe {
29834                let this: &Identity =
29835                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
29836                ICoreWebView2PrintSettings_Impl::SetShouldPrintHeaderAndFooter(
29837                    this,
29838                    core::mem::transmute_copy(&shouldprintheaderandfooter),
29839                )
29840                .into()
29841            }
29842        }
29843        unsafe extern "system" fn HeaderTitle<
29844            Identity: ICoreWebView2PrintSettings_Impl,
29845            const OFFSET: isize,
29846        >(
29847            this: *mut core::ffi::c_void,
29848            headertitle: *mut windows_core::PWSTR,
29849        ) -> windows_core::HRESULT {
29850            unsafe {
29851                let this: &Identity =
29852                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
29853                ICoreWebView2PrintSettings_Impl::HeaderTitle(
29854                    this,
29855                    core::mem::transmute_copy(&headertitle),
29856                )
29857                .into()
29858            }
29859        }
29860        unsafe extern "system" fn SetHeaderTitle<
29861            Identity: ICoreWebView2PrintSettings_Impl,
29862            const OFFSET: isize,
29863        >(
29864            this: *mut core::ffi::c_void,
29865            headertitle: windows_core::PCWSTR,
29866        ) -> windows_core::HRESULT {
29867            unsafe {
29868                let this: &Identity =
29869                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
29870                ICoreWebView2PrintSettings_Impl::SetHeaderTitle(
29871                    this,
29872                    core::mem::transmute(&headertitle),
29873                )
29874                .into()
29875            }
29876        }
29877        unsafe extern "system" fn FooterUri<
29878            Identity: ICoreWebView2PrintSettings_Impl,
29879            const OFFSET: isize,
29880        >(
29881            this: *mut core::ffi::c_void,
29882            footeruri: *mut windows_core::PWSTR,
29883        ) -> windows_core::HRESULT {
29884            unsafe {
29885                let this: &Identity =
29886                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
29887                ICoreWebView2PrintSettings_Impl::FooterUri(
29888                    this,
29889                    core::mem::transmute_copy(&footeruri),
29890                )
29891                .into()
29892            }
29893        }
29894        unsafe extern "system" fn SetFooterUri<
29895            Identity: ICoreWebView2PrintSettings_Impl,
29896            const OFFSET: isize,
29897        >(
29898            this: *mut core::ffi::c_void,
29899            footeruri: windows_core::PCWSTR,
29900        ) -> windows_core::HRESULT {
29901            unsafe {
29902                let this: &Identity =
29903                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
29904                ICoreWebView2PrintSettings_Impl::SetFooterUri(
29905                    this,
29906                    core::mem::transmute(&footeruri),
29907                )
29908                .into()
29909            }
29910        }
29911        Self {
29912            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
29913            Orientation: Orientation::<Identity, OFFSET>,
29914            SetOrientation: SetOrientation::<Identity, OFFSET>,
29915            ScaleFactor: ScaleFactor::<Identity, OFFSET>,
29916            SetScaleFactor: SetScaleFactor::<Identity, OFFSET>,
29917            PageWidth: PageWidth::<Identity, OFFSET>,
29918            SetPageWidth: SetPageWidth::<Identity, OFFSET>,
29919            PageHeight: PageHeight::<Identity, OFFSET>,
29920            SetPageHeight: SetPageHeight::<Identity, OFFSET>,
29921            MarginTop: MarginTop::<Identity, OFFSET>,
29922            SetMarginTop: SetMarginTop::<Identity, OFFSET>,
29923            MarginBottom: MarginBottom::<Identity, OFFSET>,
29924            SetMarginBottom: SetMarginBottom::<Identity, OFFSET>,
29925            MarginLeft: MarginLeft::<Identity, OFFSET>,
29926            SetMarginLeft: SetMarginLeft::<Identity, OFFSET>,
29927            MarginRight: MarginRight::<Identity, OFFSET>,
29928            SetMarginRight: SetMarginRight::<Identity, OFFSET>,
29929            ShouldPrintBackgrounds: ShouldPrintBackgrounds::<Identity, OFFSET>,
29930            SetShouldPrintBackgrounds: SetShouldPrintBackgrounds::<Identity, OFFSET>,
29931            ShouldPrintSelectionOnly: ShouldPrintSelectionOnly::<Identity, OFFSET>,
29932            SetShouldPrintSelectionOnly: SetShouldPrintSelectionOnly::<Identity, OFFSET>,
29933            ShouldPrintHeaderAndFooter: ShouldPrintHeaderAndFooter::<Identity, OFFSET>,
29934            SetShouldPrintHeaderAndFooter: SetShouldPrintHeaderAndFooter::<Identity, OFFSET>,
29935            HeaderTitle: HeaderTitle::<Identity, OFFSET>,
29936            SetHeaderTitle: SetHeaderTitle::<Identity, OFFSET>,
29937            FooterUri: FooterUri::<Identity, OFFSET>,
29938            SetFooterUri: SetFooterUri::<Identity, OFFSET>,
29939        }
29940    }
29941    pub fn matches(iid: &windows_core::GUID) -> bool {
29942        iid == &<ICoreWebView2PrintSettings as windows_core::Interface>::IID
29943    }
29944}
29945impl windows_core::RuntimeName for ICoreWebView2PrintSettings {}
29946windows_core::imp::define_interface!(
29947    ICoreWebView2PrintSettings2,
29948    ICoreWebView2PrintSettings2_Vtbl,
29949    0xca7f0e1f_3484_41d1_8c1a_65cd44a63f8d
29950);
29951impl core::ops::Deref for ICoreWebView2PrintSettings2 {
29952    type Target = ICoreWebView2PrintSettings;
29953    fn deref(&self) -> &Self::Target {
29954        unsafe { core::mem::transmute(self) }
29955    }
29956}
29957windows_core::imp::interface_hierarchy!(
29958    ICoreWebView2PrintSettings2,
29959    windows_core::IUnknown,
29960    ICoreWebView2PrintSettings
29961);
29962impl ICoreWebView2PrintSettings2 {
29963    pub unsafe fn PageRanges(&self, value: *mut windows_core::PWSTR) -> windows_core::Result<()> {
29964        unsafe {
29965            (windows_core::Interface::vtable(self).PageRanges)(
29966                windows_core::Interface::as_raw(self),
29967                value as _,
29968            )
29969            .ok()
29970        }
29971    }
29972    pub unsafe fn SetPageRanges<P0>(&self, value: P0) -> windows_core::Result<()>
29973    where
29974        P0: windows_core::Param<windows_core::PCWSTR>,
29975    {
29976        unsafe {
29977            (windows_core::Interface::vtable(self).SetPageRanges)(
29978                windows_core::Interface::as_raw(self),
29979                value.param().abi(),
29980            )
29981            .ok()
29982        }
29983    }
29984    pub unsafe fn PagesPerSide(&self, value: *mut i32) -> windows_core::Result<()> {
29985        unsafe {
29986            (windows_core::Interface::vtable(self).PagesPerSide)(
29987                windows_core::Interface::as_raw(self),
29988                value as _,
29989            )
29990            .ok()
29991        }
29992    }
29993    pub unsafe fn SetPagesPerSide(&self, value: i32) -> windows_core::Result<()> {
29994        unsafe {
29995            (windows_core::Interface::vtable(self).SetPagesPerSide)(
29996                windows_core::Interface::as_raw(self),
29997                value,
29998            )
29999            .ok()
30000        }
30001    }
30002    pub unsafe fn Copies(&self, value: *mut i32) -> windows_core::Result<()> {
30003        unsafe {
30004            (windows_core::Interface::vtable(self).Copies)(
30005                windows_core::Interface::as_raw(self),
30006                value as _,
30007            )
30008            .ok()
30009        }
30010    }
30011    pub unsafe fn SetCopies(&self, value: i32) -> windows_core::Result<()> {
30012        unsafe {
30013            (windows_core::Interface::vtable(self).SetCopies)(
30014                windows_core::Interface::as_raw(self),
30015                value,
30016            )
30017            .ok()
30018        }
30019    }
30020    pub unsafe fn Collation(
30021        &self,
30022        value: *mut COREWEBVIEW2_PRINT_COLLATION,
30023    ) -> windows_core::Result<()> {
30024        unsafe {
30025            (windows_core::Interface::vtable(self).Collation)(
30026                windows_core::Interface::as_raw(self),
30027                value as _,
30028            )
30029            .ok()
30030        }
30031    }
30032    pub unsafe fn SetCollation(
30033        &self,
30034        value: COREWEBVIEW2_PRINT_COLLATION,
30035    ) -> windows_core::Result<()> {
30036        unsafe {
30037            (windows_core::Interface::vtable(self).SetCollation)(
30038                windows_core::Interface::as_raw(self),
30039                value,
30040            )
30041            .ok()
30042        }
30043    }
30044    pub unsafe fn ColorMode(
30045        &self,
30046        value: *mut COREWEBVIEW2_PRINT_COLOR_MODE,
30047    ) -> windows_core::Result<()> {
30048        unsafe {
30049            (windows_core::Interface::vtable(self).ColorMode)(
30050                windows_core::Interface::as_raw(self),
30051                value as _,
30052            )
30053            .ok()
30054        }
30055    }
30056    pub unsafe fn SetColorMode(
30057        &self,
30058        value: COREWEBVIEW2_PRINT_COLOR_MODE,
30059    ) -> windows_core::Result<()> {
30060        unsafe {
30061            (windows_core::Interface::vtable(self).SetColorMode)(
30062                windows_core::Interface::as_raw(self),
30063                value,
30064            )
30065            .ok()
30066        }
30067    }
30068    pub unsafe fn Duplex(&self, value: *mut COREWEBVIEW2_PRINT_DUPLEX) -> windows_core::Result<()> {
30069        unsafe {
30070            (windows_core::Interface::vtable(self).Duplex)(
30071                windows_core::Interface::as_raw(self),
30072                value as _,
30073            )
30074            .ok()
30075        }
30076    }
30077    pub unsafe fn SetDuplex(&self, value: COREWEBVIEW2_PRINT_DUPLEX) -> windows_core::Result<()> {
30078        unsafe {
30079            (windows_core::Interface::vtable(self).SetDuplex)(
30080                windows_core::Interface::as_raw(self),
30081                value,
30082            )
30083            .ok()
30084        }
30085    }
30086    pub unsafe fn MediaSize(
30087        &self,
30088        value: *mut COREWEBVIEW2_PRINT_MEDIA_SIZE,
30089    ) -> windows_core::Result<()> {
30090        unsafe {
30091            (windows_core::Interface::vtable(self).MediaSize)(
30092                windows_core::Interface::as_raw(self),
30093                value as _,
30094            )
30095            .ok()
30096        }
30097    }
30098    pub unsafe fn SetMediaSize(
30099        &self,
30100        value: COREWEBVIEW2_PRINT_MEDIA_SIZE,
30101    ) -> windows_core::Result<()> {
30102        unsafe {
30103            (windows_core::Interface::vtable(self).SetMediaSize)(
30104                windows_core::Interface::as_raw(self),
30105                value,
30106            )
30107            .ok()
30108        }
30109    }
30110    pub unsafe fn PrinterName(&self, value: *mut windows_core::PWSTR) -> windows_core::Result<()> {
30111        unsafe {
30112            (windows_core::Interface::vtable(self).PrinterName)(
30113                windows_core::Interface::as_raw(self),
30114                value as _,
30115            )
30116            .ok()
30117        }
30118    }
30119    pub unsafe fn SetPrinterName<P0>(&self, value: P0) -> windows_core::Result<()>
30120    where
30121        P0: windows_core::Param<windows_core::PCWSTR>,
30122    {
30123        unsafe {
30124            (windows_core::Interface::vtable(self).SetPrinterName)(
30125                windows_core::Interface::as_raw(self),
30126                value.param().abi(),
30127            )
30128            .ok()
30129        }
30130    }
30131}
30132#[repr(C)]
30133#[doc(hidden)]
30134pub struct ICoreWebView2PrintSettings2_Vtbl {
30135    pub base__: ICoreWebView2PrintSettings_Vtbl,
30136    pub PageRanges: unsafe extern "system" fn(
30137        *mut core::ffi::c_void,
30138        *mut windows_core::PWSTR,
30139    ) -> windows_core::HRESULT,
30140    pub SetPageRanges: unsafe extern "system" fn(
30141        *mut core::ffi::c_void,
30142        windows_core::PCWSTR,
30143    ) -> windows_core::HRESULT,
30144    pub PagesPerSide:
30145        unsafe extern "system" fn(*mut core::ffi::c_void, *mut i32) -> windows_core::HRESULT,
30146    pub SetPagesPerSide:
30147        unsafe extern "system" fn(*mut core::ffi::c_void, i32) -> windows_core::HRESULT,
30148    pub Copies:
30149        unsafe extern "system" fn(*mut core::ffi::c_void, *mut i32) -> windows_core::HRESULT,
30150    pub SetCopies: unsafe extern "system" fn(*mut core::ffi::c_void, i32) -> windows_core::HRESULT,
30151    pub Collation: unsafe extern "system" fn(
30152        *mut core::ffi::c_void,
30153        *mut COREWEBVIEW2_PRINT_COLLATION,
30154    ) -> windows_core::HRESULT,
30155    pub SetCollation: unsafe extern "system" fn(
30156        *mut core::ffi::c_void,
30157        COREWEBVIEW2_PRINT_COLLATION,
30158    ) -> windows_core::HRESULT,
30159    pub ColorMode: unsafe extern "system" fn(
30160        *mut core::ffi::c_void,
30161        *mut COREWEBVIEW2_PRINT_COLOR_MODE,
30162    ) -> windows_core::HRESULT,
30163    pub SetColorMode: unsafe extern "system" fn(
30164        *mut core::ffi::c_void,
30165        COREWEBVIEW2_PRINT_COLOR_MODE,
30166    ) -> windows_core::HRESULT,
30167    pub Duplex: unsafe extern "system" fn(
30168        *mut core::ffi::c_void,
30169        *mut COREWEBVIEW2_PRINT_DUPLEX,
30170    ) -> windows_core::HRESULT,
30171    pub SetDuplex: unsafe extern "system" fn(
30172        *mut core::ffi::c_void,
30173        COREWEBVIEW2_PRINT_DUPLEX,
30174    ) -> windows_core::HRESULT,
30175    pub MediaSize: unsafe extern "system" fn(
30176        *mut core::ffi::c_void,
30177        *mut COREWEBVIEW2_PRINT_MEDIA_SIZE,
30178    ) -> windows_core::HRESULT,
30179    pub SetMediaSize: unsafe extern "system" fn(
30180        *mut core::ffi::c_void,
30181        COREWEBVIEW2_PRINT_MEDIA_SIZE,
30182    ) -> windows_core::HRESULT,
30183    pub PrinterName: unsafe extern "system" fn(
30184        *mut core::ffi::c_void,
30185        *mut windows_core::PWSTR,
30186    ) -> windows_core::HRESULT,
30187    pub SetPrinterName: unsafe extern "system" fn(
30188        *mut core::ffi::c_void,
30189        windows_core::PCWSTR,
30190    ) -> windows_core::HRESULT,
30191}
30192pub trait ICoreWebView2PrintSettings2_Impl: ICoreWebView2PrintSettings_Impl {
30193    fn PageRanges(&self, value: *mut windows_core::PWSTR) -> windows_core::Result<()>;
30194    fn SetPageRanges(&self, value: &windows_core::PCWSTR) -> windows_core::Result<()>;
30195    fn PagesPerSide(&self, value: *mut i32) -> windows_core::Result<()>;
30196    fn SetPagesPerSide(&self, value: i32) -> windows_core::Result<()>;
30197    fn Copies(&self, value: *mut i32) -> windows_core::Result<()>;
30198    fn SetCopies(&self, value: i32) -> windows_core::Result<()>;
30199    fn Collation(&self, value: *mut COREWEBVIEW2_PRINT_COLLATION) -> windows_core::Result<()>;
30200    fn SetCollation(&self, value: COREWEBVIEW2_PRINT_COLLATION) -> windows_core::Result<()>;
30201    fn ColorMode(&self, value: *mut COREWEBVIEW2_PRINT_COLOR_MODE) -> windows_core::Result<()>;
30202    fn SetColorMode(&self, value: COREWEBVIEW2_PRINT_COLOR_MODE) -> windows_core::Result<()>;
30203    fn Duplex(&self, value: *mut COREWEBVIEW2_PRINT_DUPLEX) -> windows_core::Result<()>;
30204    fn SetDuplex(&self, value: COREWEBVIEW2_PRINT_DUPLEX) -> windows_core::Result<()>;
30205    fn MediaSize(&self, value: *mut COREWEBVIEW2_PRINT_MEDIA_SIZE) -> windows_core::Result<()>;
30206    fn SetMediaSize(&self, value: COREWEBVIEW2_PRINT_MEDIA_SIZE) -> windows_core::Result<()>;
30207    fn PrinterName(&self, value: *mut windows_core::PWSTR) -> windows_core::Result<()>;
30208    fn SetPrinterName(&self, value: &windows_core::PCWSTR) -> windows_core::Result<()>;
30209}
30210impl ICoreWebView2PrintSettings2_Vtbl {
30211    pub const fn new<Identity: ICoreWebView2PrintSettings2_Impl, const OFFSET: isize>() -> Self {
30212        unsafe extern "system" fn PageRanges<
30213            Identity: ICoreWebView2PrintSettings2_Impl,
30214            const OFFSET: isize,
30215        >(
30216            this: *mut core::ffi::c_void,
30217            value: *mut windows_core::PWSTR,
30218        ) -> windows_core::HRESULT {
30219            unsafe {
30220                let this: &Identity =
30221                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
30222                ICoreWebView2PrintSettings2_Impl::PageRanges(
30223                    this,
30224                    core::mem::transmute_copy(&value),
30225                )
30226                .into()
30227            }
30228        }
30229        unsafe extern "system" fn SetPageRanges<
30230            Identity: ICoreWebView2PrintSettings2_Impl,
30231            const OFFSET: isize,
30232        >(
30233            this: *mut core::ffi::c_void,
30234            value: windows_core::PCWSTR,
30235        ) -> windows_core::HRESULT {
30236            unsafe {
30237                let this: &Identity =
30238                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
30239                ICoreWebView2PrintSettings2_Impl::SetPageRanges(this, core::mem::transmute(&value))
30240                    .into()
30241            }
30242        }
30243        unsafe extern "system" fn PagesPerSide<
30244            Identity: ICoreWebView2PrintSettings2_Impl,
30245            const OFFSET: isize,
30246        >(
30247            this: *mut core::ffi::c_void,
30248            value: *mut i32,
30249        ) -> windows_core::HRESULT {
30250            unsafe {
30251                let this: &Identity =
30252                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
30253                ICoreWebView2PrintSettings2_Impl::PagesPerSide(
30254                    this,
30255                    core::mem::transmute_copy(&value),
30256                )
30257                .into()
30258            }
30259        }
30260        unsafe extern "system" fn SetPagesPerSide<
30261            Identity: ICoreWebView2PrintSettings2_Impl,
30262            const OFFSET: isize,
30263        >(
30264            this: *mut core::ffi::c_void,
30265            value: i32,
30266        ) -> windows_core::HRESULT {
30267            unsafe {
30268                let this: &Identity =
30269                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
30270                ICoreWebView2PrintSettings2_Impl::SetPagesPerSide(
30271                    this,
30272                    core::mem::transmute_copy(&value),
30273                )
30274                .into()
30275            }
30276        }
30277        unsafe extern "system" fn Copies<
30278            Identity: ICoreWebView2PrintSettings2_Impl,
30279            const OFFSET: isize,
30280        >(
30281            this: *mut core::ffi::c_void,
30282            value: *mut i32,
30283        ) -> windows_core::HRESULT {
30284            unsafe {
30285                let this: &Identity =
30286                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
30287                ICoreWebView2PrintSettings2_Impl::Copies(this, core::mem::transmute_copy(&value))
30288                    .into()
30289            }
30290        }
30291        unsafe extern "system" fn SetCopies<
30292            Identity: ICoreWebView2PrintSettings2_Impl,
30293            const OFFSET: isize,
30294        >(
30295            this: *mut core::ffi::c_void,
30296            value: i32,
30297        ) -> windows_core::HRESULT {
30298            unsafe {
30299                let this: &Identity =
30300                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
30301                ICoreWebView2PrintSettings2_Impl::SetCopies(this, core::mem::transmute_copy(&value))
30302                    .into()
30303            }
30304        }
30305        unsafe extern "system" fn Collation<
30306            Identity: ICoreWebView2PrintSettings2_Impl,
30307            const OFFSET: isize,
30308        >(
30309            this: *mut core::ffi::c_void,
30310            value: *mut COREWEBVIEW2_PRINT_COLLATION,
30311        ) -> windows_core::HRESULT {
30312            unsafe {
30313                let this: &Identity =
30314                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
30315                ICoreWebView2PrintSettings2_Impl::Collation(this, core::mem::transmute_copy(&value))
30316                    .into()
30317            }
30318        }
30319        unsafe extern "system" fn SetCollation<
30320            Identity: ICoreWebView2PrintSettings2_Impl,
30321            const OFFSET: isize,
30322        >(
30323            this: *mut core::ffi::c_void,
30324            value: COREWEBVIEW2_PRINT_COLLATION,
30325        ) -> windows_core::HRESULT {
30326            unsafe {
30327                let this: &Identity =
30328                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
30329                ICoreWebView2PrintSettings2_Impl::SetCollation(
30330                    this,
30331                    core::mem::transmute_copy(&value),
30332                )
30333                .into()
30334            }
30335        }
30336        unsafe extern "system" fn ColorMode<
30337            Identity: ICoreWebView2PrintSettings2_Impl,
30338            const OFFSET: isize,
30339        >(
30340            this: *mut core::ffi::c_void,
30341            value: *mut COREWEBVIEW2_PRINT_COLOR_MODE,
30342        ) -> windows_core::HRESULT {
30343            unsafe {
30344                let this: &Identity =
30345                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
30346                ICoreWebView2PrintSettings2_Impl::ColorMode(this, core::mem::transmute_copy(&value))
30347                    .into()
30348            }
30349        }
30350        unsafe extern "system" fn SetColorMode<
30351            Identity: ICoreWebView2PrintSettings2_Impl,
30352            const OFFSET: isize,
30353        >(
30354            this: *mut core::ffi::c_void,
30355            value: COREWEBVIEW2_PRINT_COLOR_MODE,
30356        ) -> windows_core::HRESULT {
30357            unsafe {
30358                let this: &Identity =
30359                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
30360                ICoreWebView2PrintSettings2_Impl::SetColorMode(
30361                    this,
30362                    core::mem::transmute_copy(&value),
30363                )
30364                .into()
30365            }
30366        }
30367        unsafe extern "system" fn Duplex<
30368            Identity: ICoreWebView2PrintSettings2_Impl,
30369            const OFFSET: isize,
30370        >(
30371            this: *mut core::ffi::c_void,
30372            value: *mut COREWEBVIEW2_PRINT_DUPLEX,
30373        ) -> windows_core::HRESULT {
30374            unsafe {
30375                let this: &Identity =
30376                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
30377                ICoreWebView2PrintSettings2_Impl::Duplex(this, core::mem::transmute_copy(&value))
30378                    .into()
30379            }
30380        }
30381        unsafe extern "system" fn SetDuplex<
30382            Identity: ICoreWebView2PrintSettings2_Impl,
30383            const OFFSET: isize,
30384        >(
30385            this: *mut core::ffi::c_void,
30386            value: COREWEBVIEW2_PRINT_DUPLEX,
30387        ) -> windows_core::HRESULT {
30388            unsafe {
30389                let this: &Identity =
30390                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
30391                ICoreWebView2PrintSettings2_Impl::SetDuplex(this, core::mem::transmute_copy(&value))
30392                    .into()
30393            }
30394        }
30395        unsafe extern "system" fn MediaSize<
30396            Identity: ICoreWebView2PrintSettings2_Impl,
30397            const OFFSET: isize,
30398        >(
30399            this: *mut core::ffi::c_void,
30400            value: *mut COREWEBVIEW2_PRINT_MEDIA_SIZE,
30401        ) -> windows_core::HRESULT {
30402            unsafe {
30403                let this: &Identity =
30404                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
30405                ICoreWebView2PrintSettings2_Impl::MediaSize(this, core::mem::transmute_copy(&value))
30406                    .into()
30407            }
30408        }
30409        unsafe extern "system" fn SetMediaSize<
30410            Identity: ICoreWebView2PrintSettings2_Impl,
30411            const OFFSET: isize,
30412        >(
30413            this: *mut core::ffi::c_void,
30414            value: COREWEBVIEW2_PRINT_MEDIA_SIZE,
30415        ) -> windows_core::HRESULT {
30416            unsafe {
30417                let this: &Identity =
30418                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
30419                ICoreWebView2PrintSettings2_Impl::SetMediaSize(
30420                    this,
30421                    core::mem::transmute_copy(&value),
30422                )
30423                .into()
30424            }
30425        }
30426        unsafe extern "system" fn PrinterName<
30427            Identity: ICoreWebView2PrintSettings2_Impl,
30428            const OFFSET: isize,
30429        >(
30430            this: *mut core::ffi::c_void,
30431            value: *mut windows_core::PWSTR,
30432        ) -> windows_core::HRESULT {
30433            unsafe {
30434                let this: &Identity =
30435                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
30436                ICoreWebView2PrintSettings2_Impl::PrinterName(
30437                    this,
30438                    core::mem::transmute_copy(&value),
30439                )
30440                .into()
30441            }
30442        }
30443        unsafe extern "system" fn SetPrinterName<
30444            Identity: ICoreWebView2PrintSettings2_Impl,
30445            const OFFSET: isize,
30446        >(
30447            this: *mut core::ffi::c_void,
30448            value: windows_core::PCWSTR,
30449        ) -> windows_core::HRESULT {
30450            unsafe {
30451                let this: &Identity =
30452                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
30453                ICoreWebView2PrintSettings2_Impl::SetPrinterName(this, core::mem::transmute(&value))
30454                    .into()
30455            }
30456        }
30457        Self {
30458            base__: ICoreWebView2PrintSettings_Vtbl::new::<Identity, OFFSET>(),
30459            PageRanges: PageRanges::<Identity, OFFSET>,
30460            SetPageRanges: SetPageRanges::<Identity, OFFSET>,
30461            PagesPerSide: PagesPerSide::<Identity, OFFSET>,
30462            SetPagesPerSide: SetPagesPerSide::<Identity, OFFSET>,
30463            Copies: Copies::<Identity, OFFSET>,
30464            SetCopies: SetCopies::<Identity, OFFSET>,
30465            Collation: Collation::<Identity, OFFSET>,
30466            SetCollation: SetCollation::<Identity, OFFSET>,
30467            ColorMode: ColorMode::<Identity, OFFSET>,
30468            SetColorMode: SetColorMode::<Identity, OFFSET>,
30469            Duplex: Duplex::<Identity, OFFSET>,
30470            SetDuplex: SetDuplex::<Identity, OFFSET>,
30471            MediaSize: MediaSize::<Identity, OFFSET>,
30472            SetMediaSize: SetMediaSize::<Identity, OFFSET>,
30473            PrinterName: PrinterName::<Identity, OFFSET>,
30474            SetPrinterName: SetPrinterName::<Identity, OFFSET>,
30475        }
30476    }
30477    pub fn matches(iid: &windows_core::GUID) -> bool {
30478        iid == &<ICoreWebView2PrintSettings2 as windows_core::Interface>::IID
30479            || iid == &<ICoreWebView2PrintSettings as windows_core::Interface>::IID
30480    }
30481}
30482impl windows_core::RuntimeName for ICoreWebView2PrintSettings2 {}
30483windows_core::imp::define_interface!(
30484    ICoreWebView2PrintToPdfCompletedHandler,
30485    ICoreWebView2PrintToPdfCompletedHandler_Vtbl,
30486    0xccf1ef04_fd8e_4d5f_b2de_0983e41b8c36
30487);
30488windows_core::imp::interface_hierarchy!(
30489    ICoreWebView2PrintToPdfCompletedHandler,
30490    windows_core::IUnknown
30491);
30492impl ICoreWebView2PrintToPdfCompletedHandler {
30493    pub unsafe fn Invoke(
30494        &self,
30495        errorcode: windows_core::HRESULT,
30496        result: bool,
30497    ) -> windows_core::Result<()> {
30498        unsafe {
30499            (windows_core::Interface::vtable(self).Invoke)(
30500                windows_core::Interface::as_raw(self),
30501                errorcode,
30502                result.into(),
30503            )
30504            .ok()
30505        }
30506    }
30507}
30508#[repr(C)]
30509#[doc(hidden)]
30510pub struct ICoreWebView2PrintToPdfCompletedHandler_Vtbl {
30511    pub base__: windows_core::IUnknown_Vtbl,
30512    pub Invoke: unsafe extern "system" fn(
30513        *mut core::ffi::c_void,
30514        windows_core::HRESULT,
30515        windows_core::BOOL,
30516    ) -> windows_core::HRESULT,
30517}
30518pub trait ICoreWebView2PrintToPdfCompletedHandler_Impl: windows_core::IUnknownImpl {
30519    fn Invoke(
30520        &self,
30521        errorcode: windows_core::HRESULT,
30522        result: windows_core::BOOL,
30523    ) -> windows_core::Result<()>;
30524}
30525impl ICoreWebView2PrintToPdfCompletedHandler_Vtbl {
30526    pub const fn new<
30527        Identity: ICoreWebView2PrintToPdfCompletedHandler_Impl,
30528        const OFFSET: isize,
30529    >() -> Self {
30530        unsafe extern "system" fn Invoke<
30531            Identity: ICoreWebView2PrintToPdfCompletedHandler_Impl,
30532            const OFFSET: isize,
30533        >(
30534            this: *mut core::ffi::c_void,
30535            errorcode: windows_core::HRESULT,
30536            result: windows_core::BOOL,
30537        ) -> windows_core::HRESULT {
30538            unsafe {
30539                let this: &Identity =
30540                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
30541                ICoreWebView2PrintToPdfCompletedHandler_Impl::Invoke(
30542                    this,
30543                    core::mem::transmute_copy(&errorcode),
30544                    core::mem::transmute_copy(&result),
30545                )
30546                .into()
30547            }
30548        }
30549        Self {
30550            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
30551            Invoke: Invoke::<Identity, OFFSET>,
30552        }
30553    }
30554    pub fn matches(iid: &windows_core::GUID) -> bool {
30555        iid == &<ICoreWebView2PrintToPdfCompletedHandler as windows_core::Interface>::IID
30556    }
30557}
30558impl windows_core::RuntimeName for ICoreWebView2PrintToPdfCompletedHandler {}
30559windows_core::imp::define_interface!(
30560    ICoreWebView2PrintToPdfStreamCompletedHandler,
30561    ICoreWebView2PrintToPdfStreamCompletedHandler_Vtbl,
30562    0x4c9f8229_8f93_444f_a711_2c0dfd6359d5
30563);
30564windows_core::imp::interface_hierarchy!(
30565    ICoreWebView2PrintToPdfStreamCompletedHandler,
30566    windows_core::IUnknown
30567);
30568impl ICoreWebView2PrintToPdfStreamCompletedHandler {
30569    pub unsafe fn Invoke<P1>(
30570        &self,
30571        errorcode: windows_core::HRESULT,
30572        result: P1,
30573    ) -> windows_core::Result<()>
30574    where
30575        P1: windows_core::Param<windows::Win32::System::Com::IStream>,
30576    {
30577        unsafe {
30578            (windows_core::Interface::vtable(self).Invoke)(
30579                windows_core::Interface::as_raw(self),
30580                errorcode,
30581                result.param().abi(),
30582            )
30583            .ok()
30584        }
30585    }
30586}
30587#[repr(C)]
30588#[doc(hidden)]
30589pub struct ICoreWebView2PrintToPdfStreamCompletedHandler_Vtbl {
30590    pub base__: windows_core::IUnknown_Vtbl,
30591    pub Invoke: unsafe extern "system" fn(
30592        *mut core::ffi::c_void,
30593        windows_core::HRESULT,
30594        *mut core::ffi::c_void,
30595    ) -> windows_core::HRESULT,
30596}
30597pub trait ICoreWebView2PrintToPdfStreamCompletedHandler_Impl: windows_core::IUnknownImpl {
30598    fn Invoke(
30599        &self,
30600        errorcode: windows_core::HRESULT,
30601        result: windows_core::Ref<windows::Win32::System::Com::IStream>,
30602    ) -> windows_core::Result<()>;
30603}
30604impl ICoreWebView2PrintToPdfStreamCompletedHandler_Vtbl {
30605    pub const fn new<
30606        Identity: ICoreWebView2PrintToPdfStreamCompletedHandler_Impl,
30607        const OFFSET: isize,
30608    >() -> Self {
30609        unsafe extern "system" fn Invoke<
30610            Identity: ICoreWebView2PrintToPdfStreamCompletedHandler_Impl,
30611            const OFFSET: isize,
30612        >(
30613            this: *mut core::ffi::c_void,
30614            errorcode: windows_core::HRESULT,
30615            result: *mut core::ffi::c_void,
30616        ) -> windows_core::HRESULT {
30617            unsafe {
30618                let this: &Identity =
30619                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
30620                ICoreWebView2PrintToPdfStreamCompletedHandler_Impl::Invoke(
30621                    this,
30622                    core::mem::transmute_copy(&errorcode),
30623                    core::mem::transmute_copy(&result),
30624                )
30625                .into()
30626            }
30627        }
30628        Self {
30629            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
30630            Invoke: Invoke::<Identity, OFFSET>,
30631        }
30632    }
30633    pub fn matches(iid: &windows_core::GUID) -> bool {
30634        iid == &<ICoreWebView2PrintToPdfStreamCompletedHandler as windows_core::Interface>::IID
30635    }
30636}
30637impl windows_core::RuntimeName for ICoreWebView2PrintToPdfStreamCompletedHandler {}
30638windows_core::imp::define_interface!(
30639    ICoreWebView2ProcessExtendedInfo,
30640    ICoreWebView2ProcessExtendedInfo_Vtbl,
30641    0xaf4c4c2e_45db_11ee_be56_0242ac120002
30642);
30643windows_core::imp::interface_hierarchy!(ICoreWebView2ProcessExtendedInfo, windows_core::IUnknown);
30644impl ICoreWebView2ProcessExtendedInfo {
30645    pub unsafe fn ProcessInfo(&self) -> windows_core::Result<ICoreWebView2ProcessInfo> {
30646        unsafe {
30647            let mut result__ = core::mem::zeroed();
30648            (windows_core::Interface::vtable(self).ProcessInfo)(
30649                windows_core::Interface::as_raw(self),
30650                &mut result__,
30651            )
30652            .and_then(|| windows_core::Type::from_abi(result__))
30653        }
30654    }
30655    pub unsafe fn AssociatedFrameInfos(
30656        &self,
30657    ) -> windows_core::Result<ICoreWebView2FrameInfoCollection> {
30658        unsafe {
30659            let mut result__ = core::mem::zeroed();
30660            (windows_core::Interface::vtable(self).AssociatedFrameInfos)(
30661                windows_core::Interface::as_raw(self),
30662                &mut result__,
30663            )
30664            .and_then(|| windows_core::Type::from_abi(result__))
30665        }
30666    }
30667}
30668#[repr(C)]
30669#[doc(hidden)]
30670pub struct ICoreWebView2ProcessExtendedInfo_Vtbl {
30671    pub base__: windows_core::IUnknown_Vtbl,
30672    pub ProcessInfo: unsafe extern "system" fn(
30673        *mut core::ffi::c_void,
30674        *mut *mut core::ffi::c_void,
30675    ) -> windows_core::HRESULT,
30676    pub AssociatedFrameInfos: unsafe extern "system" fn(
30677        *mut core::ffi::c_void,
30678        *mut *mut core::ffi::c_void,
30679    ) -> windows_core::HRESULT,
30680}
30681pub trait ICoreWebView2ProcessExtendedInfo_Impl: windows_core::IUnknownImpl {
30682    fn ProcessInfo(&self) -> windows_core::Result<ICoreWebView2ProcessInfo>;
30683    fn AssociatedFrameInfos(&self) -> windows_core::Result<ICoreWebView2FrameInfoCollection>;
30684}
30685impl ICoreWebView2ProcessExtendedInfo_Vtbl {
30686    pub const fn new<Identity: ICoreWebView2ProcessExtendedInfo_Impl, const OFFSET: isize>() -> Self
30687    {
30688        unsafe extern "system" fn ProcessInfo<
30689            Identity: ICoreWebView2ProcessExtendedInfo_Impl,
30690            const OFFSET: isize,
30691        >(
30692            this: *mut core::ffi::c_void,
30693            processinfo: *mut *mut core::ffi::c_void,
30694        ) -> windows_core::HRESULT {
30695            unsafe {
30696                let this: &Identity =
30697                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
30698                match ICoreWebView2ProcessExtendedInfo_Impl::ProcessInfo(this) {
30699                    Ok(ok__) => {
30700                        processinfo.write(core::mem::transmute(ok__));
30701                        windows_core::HRESULT(0)
30702                    }
30703                    Err(err) => err.into(),
30704                }
30705            }
30706        }
30707        unsafe extern "system" fn AssociatedFrameInfos<
30708            Identity: ICoreWebView2ProcessExtendedInfo_Impl,
30709            const OFFSET: isize,
30710        >(
30711            this: *mut core::ffi::c_void,
30712            frames: *mut *mut core::ffi::c_void,
30713        ) -> windows_core::HRESULT {
30714            unsafe {
30715                let this: &Identity =
30716                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
30717                match ICoreWebView2ProcessExtendedInfo_Impl::AssociatedFrameInfos(this) {
30718                    Ok(ok__) => {
30719                        frames.write(core::mem::transmute(ok__));
30720                        windows_core::HRESULT(0)
30721                    }
30722                    Err(err) => err.into(),
30723                }
30724            }
30725        }
30726        Self {
30727            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
30728            ProcessInfo: ProcessInfo::<Identity, OFFSET>,
30729            AssociatedFrameInfos: AssociatedFrameInfos::<Identity, OFFSET>,
30730        }
30731    }
30732    pub fn matches(iid: &windows_core::GUID) -> bool {
30733        iid == &<ICoreWebView2ProcessExtendedInfo as windows_core::Interface>::IID
30734    }
30735}
30736impl windows_core::RuntimeName for ICoreWebView2ProcessExtendedInfo {}
30737windows_core::imp::define_interface!(
30738    ICoreWebView2ProcessExtendedInfoCollection,
30739    ICoreWebView2ProcessExtendedInfoCollection_Vtbl,
30740    0x32efa696_407a_11ee_be56_0242ac120002
30741);
30742windows_core::imp::interface_hierarchy!(
30743    ICoreWebView2ProcessExtendedInfoCollection,
30744    windows_core::IUnknown
30745);
30746impl ICoreWebView2ProcessExtendedInfoCollection {
30747    pub unsafe fn Count(&self, value: *mut u32) -> windows_core::Result<()> {
30748        unsafe {
30749            (windows_core::Interface::vtable(self).Count)(
30750                windows_core::Interface::as_raw(self),
30751                value as _,
30752            )
30753            .ok()
30754        }
30755    }
30756    pub unsafe fn GetValueAtIndex(
30757        &self,
30758        index: u32,
30759    ) -> windows_core::Result<ICoreWebView2ProcessExtendedInfo> {
30760        unsafe {
30761            let mut result__ = core::mem::zeroed();
30762            (windows_core::Interface::vtable(self).GetValueAtIndex)(
30763                windows_core::Interface::as_raw(self),
30764                index,
30765                &mut result__,
30766            )
30767            .and_then(|| windows_core::Type::from_abi(result__))
30768        }
30769    }
30770}
30771#[repr(C)]
30772#[doc(hidden)]
30773pub struct ICoreWebView2ProcessExtendedInfoCollection_Vtbl {
30774    pub base__: windows_core::IUnknown_Vtbl,
30775    pub Count: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
30776    pub GetValueAtIndex: unsafe extern "system" fn(
30777        *mut core::ffi::c_void,
30778        u32,
30779        *mut *mut core::ffi::c_void,
30780    ) -> windows_core::HRESULT,
30781}
30782pub trait ICoreWebView2ProcessExtendedInfoCollection_Impl: windows_core::IUnknownImpl {
30783    fn Count(&self, value: *mut u32) -> windows_core::Result<()>;
30784    fn GetValueAtIndex(&self, index: u32)
30785        -> windows_core::Result<ICoreWebView2ProcessExtendedInfo>;
30786}
30787impl ICoreWebView2ProcessExtendedInfoCollection_Vtbl {
30788    pub const fn new<
30789        Identity: ICoreWebView2ProcessExtendedInfoCollection_Impl,
30790        const OFFSET: isize,
30791    >() -> Self {
30792        unsafe extern "system" fn Count<
30793            Identity: ICoreWebView2ProcessExtendedInfoCollection_Impl,
30794            const OFFSET: isize,
30795        >(
30796            this: *mut core::ffi::c_void,
30797            value: *mut u32,
30798        ) -> windows_core::HRESULT {
30799            unsafe {
30800                let this: &Identity =
30801                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
30802                ICoreWebView2ProcessExtendedInfoCollection_Impl::Count(
30803                    this,
30804                    core::mem::transmute_copy(&value),
30805                )
30806                .into()
30807            }
30808        }
30809        unsafe extern "system" fn GetValueAtIndex<
30810            Identity: ICoreWebView2ProcessExtendedInfoCollection_Impl,
30811            const OFFSET: isize,
30812        >(
30813            this: *mut core::ffi::c_void,
30814            index: u32,
30815            value: *mut *mut core::ffi::c_void,
30816        ) -> windows_core::HRESULT {
30817            unsafe {
30818                let this: &Identity =
30819                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
30820                match ICoreWebView2ProcessExtendedInfoCollection_Impl::GetValueAtIndex(
30821                    this,
30822                    core::mem::transmute_copy(&index),
30823                ) {
30824                    Ok(ok__) => {
30825                        value.write(core::mem::transmute(ok__));
30826                        windows_core::HRESULT(0)
30827                    }
30828                    Err(err) => err.into(),
30829                }
30830            }
30831        }
30832        Self {
30833            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
30834            Count: Count::<Identity, OFFSET>,
30835            GetValueAtIndex: GetValueAtIndex::<Identity, OFFSET>,
30836        }
30837    }
30838    pub fn matches(iid: &windows_core::GUID) -> bool {
30839        iid == &<ICoreWebView2ProcessExtendedInfoCollection as windows_core::Interface>::IID
30840    }
30841}
30842impl windows_core::RuntimeName for ICoreWebView2ProcessExtendedInfoCollection {}
30843windows_core::imp::define_interface!(
30844    ICoreWebView2ProcessFailedEventArgs,
30845    ICoreWebView2ProcessFailedEventArgs_Vtbl,
30846    0x8155a9a4_1474_4a86_8cae_151b0fa6b8ca
30847);
30848windows_core::imp::interface_hierarchy!(
30849    ICoreWebView2ProcessFailedEventArgs,
30850    windows_core::IUnknown
30851);
30852impl ICoreWebView2ProcessFailedEventArgs {
30853    pub unsafe fn ProcessFailedKind(
30854        &self,
30855        value: *mut COREWEBVIEW2_PROCESS_FAILED_KIND,
30856    ) -> windows_core::Result<()> {
30857        unsafe {
30858            (windows_core::Interface::vtable(self).ProcessFailedKind)(
30859                windows_core::Interface::as_raw(self),
30860                value as _,
30861            )
30862            .ok()
30863        }
30864    }
30865}
30866#[repr(C)]
30867#[doc(hidden)]
30868pub struct ICoreWebView2ProcessFailedEventArgs_Vtbl {
30869    pub base__: windows_core::IUnknown_Vtbl,
30870    pub ProcessFailedKind: unsafe extern "system" fn(
30871        *mut core::ffi::c_void,
30872        *mut COREWEBVIEW2_PROCESS_FAILED_KIND,
30873    ) -> windows_core::HRESULT,
30874}
30875pub trait ICoreWebView2ProcessFailedEventArgs_Impl: windows_core::IUnknownImpl {
30876    fn ProcessFailedKind(
30877        &self,
30878        value: *mut COREWEBVIEW2_PROCESS_FAILED_KIND,
30879    ) -> windows_core::Result<()>;
30880}
30881impl ICoreWebView2ProcessFailedEventArgs_Vtbl {
30882    pub const fn new<Identity: ICoreWebView2ProcessFailedEventArgs_Impl, const OFFSET: isize>(
30883    ) -> Self {
30884        unsafe extern "system" fn ProcessFailedKind<
30885            Identity: ICoreWebView2ProcessFailedEventArgs_Impl,
30886            const OFFSET: isize,
30887        >(
30888            this: *mut core::ffi::c_void,
30889            value: *mut COREWEBVIEW2_PROCESS_FAILED_KIND,
30890        ) -> windows_core::HRESULT {
30891            unsafe {
30892                let this: &Identity =
30893                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
30894                ICoreWebView2ProcessFailedEventArgs_Impl::ProcessFailedKind(
30895                    this,
30896                    core::mem::transmute_copy(&value),
30897                )
30898                .into()
30899            }
30900        }
30901        Self {
30902            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
30903            ProcessFailedKind: ProcessFailedKind::<Identity, OFFSET>,
30904        }
30905    }
30906    pub fn matches(iid: &windows_core::GUID) -> bool {
30907        iid == &<ICoreWebView2ProcessFailedEventArgs as windows_core::Interface>::IID
30908    }
30909}
30910impl windows_core::RuntimeName for ICoreWebView2ProcessFailedEventArgs {}
30911windows_core::imp::define_interface!(
30912    ICoreWebView2ProcessFailedEventArgs2,
30913    ICoreWebView2ProcessFailedEventArgs2_Vtbl,
30914    0x4dab9422_46fa_4c3e_a5d2_41d2071d3680
30915);
30916impl core::ops::Deref for ICoreWebView2ProcessFailedEventArgs2 {
30917    type Target = ICoreWebView2ProcessFailedEventArgs;
30918    fn deref(&self) -> &Self::Target {
30919        unsafe { core::mem::transmute(self) }
30920    }
30921}
30922windows_core::imp::interface_hierarchy!(
30923    ICoreWebView2ProcessFailedEventArgs2,
30924    windows_core::IUnknown,
30925    ICoreWebView2ProcessFailedEventArgs
30926);
30927impl ICoreWebView2ProcessFailedEventArgs2 {
30928    pub unsafe fn Reason(
30929        &self,
30930        reason: *mut COREWEBVIEW2_PROCESS_FAILED_REASON,
30931    ) -> windows_core::Result<()> {
30932        unsafe {
30933            (windows_core::Interface::vtable(self).Reason)(
30934                windows_core::Interface::as_raw(self),
30935                reason as _,
30936            )
30937            .ok()
30938        }
30939    }
30940    pub unsafe fn ExitCode(&self, exitcode: *mut i32) -> windows_core::Result<()> {
30941        unsafe {
30942            (windows_core::Interface::vtable(self).ExitCode)(
30943                windows_core::Interface::as_raw(self),
30944                exitcode as _,
30945            )
30946            .ok()
30947        }
30948    }
30949    pub unsafe fn ProcessDescription(
30950        &self,
30951        processdescription: *mut windows_core::PWSTR,
30952    ) -> windows_core::Result<()> {
30953        unsafe {
30954            (windows_core::Interface::vtable(self).ProcessDescription)(
30955                windows_core::Interface::as_raw(self),
30956                processdescription as _,
30957            )
30958            .ok()
30959        }
30960    }
30961    pub unsafe fn FrameInfosForFailedProcess(
30962        &self,
30963    ) -> windows_core::Result<ICoreWebView2FrameInfoCollection> {
30964        unsafe {
30965            let mut result__ = core::mem::zeroed();
30966            (windows_core::Interface::vtable(self).FrameInfosForFailedProcess)(
30967                windows_core::Interface::as_raw(self),
30968                &mut result__,
30969            )
30970            .and_then(|| windows_core::Type::from_abi(result__))
30971        }
30972    }
30973}
30974#[repr(C)]
30975#[doc(hidden)]
30976pub struct ICoreWebView2ProcessFailedEventArgs2_Vtbl {
30977    pub base__: ICoreWebView2ProcessFailedEventArgs_Vtbl,
30978    pub Reason: unsafe extern "system" fn(
30979        *mut core::ffi::c_void,
30980        *mut COREWEBVIEW2_PROCESS_FAILED_REASON,
30981    ) -> windows_core::HRESULT,
30982    pub ExitCode:
30983        unsafe extern "system" fn(*mut core::ffi::c_void, *mut i32) -> windows_core::HRESULT,
30984    pub ProcessDescription: unsafe extern "system" fn(
30985        *mut core::ffi::c_void,
30986        *mut windows_core::PWSTR,
30987    ) -> windows_core::HRESULT,
30988    pub FrameInfosForFailedProcess: unsafe extern "system" fn(
30989        *mut core::ffi::c_void,
30990        *mut *mut core::ffi::c_void,
30991    ) -> windows_core::HRESULT,
30992}
30993pub trait ICoreWebView2ProcessFailedEventArgs2_Impl:
30994    ICoreWebView2ProcessFailedEventArgs_Impl
30995{
30996    fn Reason(&self, reason: *mut COREWEBVIEW2_PROCESS_FAILED_REASON) -> windows_core::Result<()>;
30997    fn ExitCode(&self, exitcode: *mut i32) -> windows_core::Result<()>;
30998    fn ProcessDescription(
30999        &self,
31000        processdescription: *mut windows_core::PWSTR,
31001    ) -> windows_core::Result<()>;
31002    fn FrameInfosForFailedProcess(&self) -> windows_core::Result<ICoreWebView2FrameInfoCollection>;
31003}
31004impl ICoreWebView2ProcessFailedEventArgs2_Vtbl {
31005    pub const fn new<Identity: ICoreWebView2ProcessFailedEventArgs2_Impl, const OFFSET: isize>(
31006    ) -> Self {
31007        unsafe extern "system" fn Reason<
31008            Identity: ICoreWebView2ProcessFailedEventArgs2_Impl,
31009            const OFFSET: isize,
31010        >(
31011            this: *mut core::ffi::c_void,
31012            reason: *mut COREWEBVIEW2_PROCESS_FAILED_REASON,
31013        ) -> windows_core::HRESULT {
31014            unsafe {
31015                let this: &Identity =
31016                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
31017                ICoreWebView2ProcessFailedEventArgs2_Impl::Reason(
31018                    this,
31019                    core::mem::transmute_copy(&reason),
31020                )
31021                .into()
31022            }
31023        }
31024        unsafe extern "system" fn ExitCode<
31025            Identity: ICoreWebView2ProcessFailedEventArgs2_Impl,
31026            const OFFSET: isize,
31027        >(
31028            this: *mut core::ffi::c_void,
31029            exitcode: *mut i32,
31030        ) -> windows_core::HRESULT {
31031            unsafe {
31032                let this: &Identity =
31033                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
31034                ICoreWebView2ProcessFailedEventArgs2_Impl::ExitCode(
31035                    this,
31036                    core::mem::transmute_copy(&exitcode),
31037                )
31038                .into()
31039            }
31040        }
31041        unsafe extern "system" fn ProcessDescription<
31042            Identity: ICoreWebView2ProcessFailedEventArgs2_Impl,
31043            const OFFSET: isize,
31044        >(
31045            this: *mut core::ffi::c_void,
31046            processdescription: *mut windows_core::PWSTR,
31047        ) -> windows_core::HRESULT {
31048            unsafe {
31049                let this: &Identity =
31050                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
31051                ICoreWebView2ProcessFailedEventArgs2_Impl::ProcessDescription(
31052                    this,
31053                    core::mem::transmute_copy(&processdescription),
31054                )
31055                .into()
31056            }
31057        }
31058        unsafe extern "system" fn FrameInfosForFailedProcess<
31059            Identity: ICoreWebView2ProcessFailedEventArgs2_Impl,
31060            const OFFSET: isize,
31061        >(
31062            this: *mut core::ffi::c_void,
31063            frames: *mut *mut core::ffi::c_void,
31064        ) -> windows_core::HRESULT {
31065            unsafe {
31066                let this: &Identity =
31067                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
31068                match ICoreWebView2ProcessFailedEventArgs2_Impl::FrameInfosForFailedProcess(this) {
31069                    Ok(ok__) => {
31070                        frames.write(core::mem::transmute(ok__));
31071                        windows_core::HRESULT(0)
31072                    }
31073                    Err(err) => err.into(),
31074                }
31075            }
31076        }
31077        Self {
31078            base__: ICoreWebView2ProcessFailedEventArgs_Vtbl::new::<Identity, OFFSET>(),
31079            Reason: Reason::<Identity, OFFSET>,
31080            ExitCode: ExitCode::<Identity, OFFSET>,
31081            ProcessDescription: ProcessDescription::<Identity, OFFSET>,
31082            FrameInfosForFailedProcess: FrameInfosForFailedProcess::<Identity, OFFSET>,
31083        }
31084    }
31085    pub fn matches(iid: &windows_core::GUID) -> bool {
31086        iid == &<ICoreWebView2ProcessFailedEventArgs2 as windows_core::Interface>::IID
31087            || iid == &<ICoreWebView2ProcessFailedEventArgs as windows_core::Interface>::IID
31088    }
31089}
31090impl windows_core::RuntimeName for ICoreWebView2ProcessFailedEventArgs2 {}
31091windows_core::imp::define_interface!(
31092    ICoreWebView2ProcessFailedEventArgs3,
31093    ICoreWebView2ProcessFailedEventArgs3_Vtbl,
31094    0xab667428_094d_5fd1_b480_8b4c0fdbdf2f
31095);
31096impl core::ops::Deref for ICoreWebView2ProcessFailedEventArgs3 {
31097    type Target = ICoreWebView2ProcessFailedEventArgs2;
31098    fn deref(&self) -> &Self::Target {
31099        unsafe { core::mem::transmute(self) }
31100    }
31101}
31102windows_core::imp::interface_hierarchy!(
31103    ICoreWebView2ProcessFailedEventArgs3,
31104    windows_core::IUnknown,
31105    ICoreWebView2ProcessFailedEventArgs,
31106    ICoreWebView2ProcessFailedEventArgs2
31107);
31108impl ICoreWebView2ProcessFailedEventArgs3 {
31109    pub unsafe fn FailureSourceModulePath(
31110        &self,
31111        value: *mut windows_core::PWSTR,
31112    ) -> windows_core::Result<()> {
31113        unsafe {
31114            (windows_core::Interface::vtable(self).FailureSourceModulePath)(
31115                windows_core::Interface::as_raw(self),
31116                value as _,
31117            )
31118            .ok()
31119        }
31120    }
31121}
31122#[repr(C)]
31123#[doc(hidden)]
31124pub struct ICoreWebView2ProcessFailedEventArgs3_Vtbl {
31125    pub base__: ICoreWebView2ProcessFailedEventArgs2_Vtbl,
31126    pub FailureSourceModulePath: unsafe extern "system" fn(
31127        *mut core::ffi::c_void,
31128        *mut windows_core::PWSTR,
31129    ) -> windows_core::HRESULT,
31130}
31131pub trait ICoreWebView2ProcessFailedEventArgs3_Impl:
31132    ICoreWebView2ProcessFailedEventArgs2_Impl
31133{
31134    fn FailureSourceModulePath(&self, value: *mut windows_core::PWSTR) -> windows_core::Result<()>;
31135}
31136impl ICoreWebView2ProcessFailedEventArgs3_Vtbl {
31137    pub const fn new<Identity: ICoreWebView2ProcessFailedEventArgs3_Impl, const OFFSET: isize>(
31138    ) -> Self {
31139        unsafe extern "system" fn FailureSourceModulePath<
31140            Identity: ICoreWebView2ProcessFailedEventArgs3_Impl,
31141            const OFFSET: isize,
31142        >(
31143            this: *mut core::ffi::c_void,
31144            value: *mut windows_core::PWSTR,
31145        ) -> windows_core::HRESULT {
31146            unsafe {
31147                let this: &Identity =
31148                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
31149                ICoreWebView2ProcessFailedEventArgs3_Impl::FailureSourceModulePath(
31150                    this,
31151                    core::mem::transmute_copy(&value),
31152                )
31153                .into()
31154            }
31155        }
31156        Self {
31157            base__: ICoreWebView2ProcessFailedEventArgs2_Vtbl::new::<Identity, OFFSET>(),
31158            FailureSourceModulePath: FailureSourceModulePath::<Identity, OFFSET>,
31159        }
31160    }
31161    pub fn matches(iid: &windows_core::GUID) -> bool {
31162        iid == &<ICoreWebView2ProcessFailedEventArgs3 as windows_core::Interface>::IID
31163            || iid == &<ICoreWebView2ProcessFailedEventArgs as windows_core::Interface>::IID
31164            || iid == &<ICoreWebView2ProcessFailedEventArgs2 as windows_core::Interface>::IID
31165    }
31166}
31167impl windows_core::RuntimeName for ICoreWebView2ProcessFailedEventArgs3 {}
31168windows_core::imp::define_interface!(
31169    ICoreWebView2ProcessFailedEventHandler,
31170    ICoreWebView2ProcessFailedEventHandler_Vtbl,
31171    0x79e0aea4_990b_42d9_aa1d_0fcc2e5bc7f1
31172);
31173windows_core::imp::interface_hierarchy!(
31174    ICoreWebView2ProcessFailedEventHandler,
31175    windows_core::IUnknown
31176);
31177impl ICoreWebView2ProcessFailedEventHandler {
31178    pub unsafe fn Invoke<P0, P1>(&self, sender: P0, args: P1) -> windows_core::Result<()>
31179    where
31180        P0: windows_core::Param<ICoreWebView2>,
31181        P1: windows_core::Param<ICoreWebView2ProcessFailedEventArgs>,
31182    {
31183        unsafe {
31184            (windows_core::Interface::vtable(self).Invoke)(
31185                windows_core::Interface::as_raw(self),
31186                sender.param().abi(),
31187                args.param().abi(),
31188            )
31189            .ok()
31190        }
31191    }
31192}
31193#[repr(C)]
31194#[doc(hidden)]
31195pub struct ICoreWebView2ProcessFailedEventHandler_Vtbl {
31196    pub base__: windows_core::IUnknown_Vtbl,
31197    pub Invoke: unsafe extern "system" fn(
31198        *mut core::ffi::c_void,
31199        *mut core::ffi::c_void,
31200        *mut core::ffi::c_void,
31201    ) -> windows_core::HRESULT,
31202}
31203pub trait ICoreWebView2ProcessFailedEventHandler_Impl: windows_core::IUnknownImpl {
31204    fn Invoke(
31205        &self,
31206        sender: windows_core::Ref<ICoreWebView2>,
31207        args: windows_core::Ref<ICoreWebView2ProcessFailedEventArgs>,
31208    ) -> windows_core::Result<()>;
31209}
31210impl ICoreWebView2ProcessFailedEventHandler_Vtbl {
31211    pub const fn new<Identity: ICoreWebView2ProcessFailedEventHandler_Impl, const OFFSET: isize>(
31212    ) -> Self {
31213        unsafe extern "system" fn Invoke<
31214            Identity: ICoreWebView2ProcessFailedEventHandler_Impl,
31215            const OFFSET: isize,
31216        >(
31217            this: *mut core::ffi::c_void,
31218            sender: *mut core::ffi::c_void,
31219            args: *mut core::ffi::c_void,
31220        ) -> windows_core::HRESULT {
31221            unsafe {
31222                let this: &Identity =
31223                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
31224                ICoreWebView2ProcessFailedEventHandler_Impl::Invoke(
31225                    this,
31226                    core::mem::transmute_copy(&sender),
31227                    core::mem::transmute_copy(&args),
31228                )
31229                .into()
31230            }
31231        }
31232        Self {
31233            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
31234            Invoke: Invoke::<Identity, OFFSET>,
31235        }
31236    }
31237    pub fn matches(iid: &windows_core::GUID) -> bool {
31238        iid == &<ICoreWebView2ProcessFailedEventHandler as windows_core::Interface>::IID
31239    }
31240}
31241impl windows_core::RuntimeName for ICoreWebView2ProcessFailedEventHandler {}
31242windows_core::imp::define_interface!(
31243    ICoreWebView2ProcessInfo,
31244    ICoreWebView2ProcessInfo_Vtbl,
31245    0x84fa7612_3f3d_4fbf_889d_fad000492d72
31246);
31247windows_core::imp::interface_hierarchy!(ICoreWebView2ProcessInfo, windows_core::IUnknown);
31248impl ICoreWebView2ProcessInfo {
31249    pub unsafe fn ProcessId(&self, value: *mut i32) -> windows_core::Result<()> {
31250        unsafe {
31251            (windows_core::Interface::vtable(self).ProcessId)(
31252                windows_core::Interface::as_raw(self),
31253                value as _,
31254            )
31255            .ok()
31256        }
31257    }
31258    pub unsafe fn Kind(&self, kind: *mut COREWEBVIEW2_PROCESS_KIND) -> windows_core::Result<()> {
31259        unsafe {
31260            (windows_core::Interface::vtable(self).Kind)(
31261                windows_core::Interface::as_raw(self),
31262                kind as _,
31263            )
31264            .ok()
31265        }
31266    }
31267}
31268#[repr(C)]
31269#[doc(hidden)]
31270pub struct ICoreWebView2ProcessInfo_Vtbl {
31271    pub base__: windows_core::IUnknown_Vtbl,
31272    pub ProcessId:
31273        unsafe extern "system" fn(*mut core::ffi::c_void, *mut i32) -> windows_core::HRESULT,
31274    pub Kind: unsafe extern "system" fn(
31275        *mut core::ffi::c_void,
31276        *mut COREWEBVIEW2_PROCESS_KIND,
31277    ) -> windows_core::HRESULT,
31278}
31279pub trait ICoreWebView2ProcessInfo_Impl: windows_core::IUnknownImpl {
31280    fn ProcessId(&self, value: *mut i32) -> windows_core::Result<()>;
31281    fn Kind(&self, kind: *mut COREWEBVIEW2_PROCESS_KIND) -> windows_core::Result<()>;
31282}
31283impl ICoreWebView2ProcessInfo_Vtbl {
31284    pub const fn new<Identity: ICoreWebView2ProcessInfo_Impl, const OFFSET: isize>() -> Self {
31285        unsafe extern "system" fn ProcessId<
31286            Identity: ICoreWebView2ProcessInfo_Impl,
31287            const OFFSET: isize,
31288        >(
31289            this: *mut core::ffi::c_void,
31290            value: *mut i32,
31291        ) -> windows_core::HRESULT {
31292            unsafe {
31293                let this: &Identity =
31294                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
31295                ICoreWebView2ProcessInfo_Impl::ProcessId(this, core::mem::transmute_copy(&value))
31296                    .into()
31297            }
31298        }
31299        unsafe extern "system" fn Kind<
31300            Identity: ICoreWebView2ProcessInfo_Impl,
31301            const OFFSET: isize,
31302        >(
31303            this: *mut core::ffi::c_void,
31304            kind: *mut COREWEBVIEW2_PROCESS_KIND,
31305        ) -> windows_core::HRESULT {
31306            unsafe {
31307                let this: &Identity =
31308                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
31309                ICoreWebView2ProcessInfo_Impl::Kind(this, core::mem::transmute_copy(&kind)).into()
31310            }
31311        }
31312        Self {
31313            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
31314            ProcessId: ProcessId::<Identity, OFFSET>,
31315            Kind: Kind::<Identity, OFFSET>,
31316        }
31317    }
31318    pub fn matches(iid: &windows_core::GUID) -> bool {
31319        iid == &<ICoreWebView2ProcessInfo as windows_core::Interface>::IID
31320    }
31321}
31322impl windows_core::RuntimeName for ICoreWebView2ProcessInfo {}
31323windows_core::imp::define_interface!(
31324    ICoreWebView2ProcessInfoCollection,
31325    ICoreWebView2ProcessInfoCollection_Vtbl,
31326    0x402b99cd_a0cc_4fa5_b7a5_51d86a1d2339
31327);
31328windows_core::imp::interface_hierarchy!(ICoreWebView2ProcessInfoCollection, windows_core::IUnknown);
31329impl ICoreWebView2ProcessInfoCollection {
31330    pub unsafe fn Count(&self, value: *mut u32) -> windows_core::Result<()> {
31331        unsafe {
31332            (windows_core::Interface::vtable(self).Count)(
31333                windows_core::Interface::as_raw(self),
31334                value as _,
31335            )
31336            .ok()
31337        }
31338    }
31339    pub unsafe fn GetValueAtIndex(
31340        &self,
31341        index: u32,
31342    ) -> windows_core::Result<ICoreWebView2ProcessInfo> {
31343        unsafe {
31344            let mut result__ = core::mem::zeroed();
31345            (windows_core::Interface::vtable(self).GetValueAtIndex)(
31346                windows_core::Interface::as_raw(self),
31347                index,
31348                &mut result__,
31349            )
31350            .and_then(|| windows_core::Type::from_abi(result__))
31351        }
31352    }
31353}
31354#[repr(C)]
31355#[doc(hidden)]
31356pub struct ICoreWebView2ProcessInfoCollection_Vtbl {
31357    pub base__: windows_core::IUnknown_Vtbl,
31358    pub Count: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
31359    pub GetValueAtIndex: unsafe extern "system" fn(
31360        *mut core::ffi::c_void,
31361        u32,
31362        *mut *mut core::ffi::c_void,
31363    ) -> windows_core::HRESULT,
31364}
31365pub trait ICoreWebView2ProcessInfoCollection_Impl: windows_core::IUnknownImpl {
31366    fn Count(&self, value: *mut u32) -> windows_core::Result<()>;
31367    fn GetValueAtIndex(&self, index: u32) -> windows_core::Result<ICoreWebView2ProcessInfo>;
31368}
31369impl ICoreWebView2ProcessInfoCollection_Vtbl {
31370    pub const fn new<Identity: ICoreWebView2ProcessInfoCollection_Impl, const OFFSET: isize>(
31371    ) -> Self {
31372        unsafe extern "system" fn Count<
31373            Identity: ICoreWebView2ProcessInfoCollection_Impl,
31374            const OFFSET: isize,
31375        >(
31376            this: *mut core::ffi::c_void,
31377            value: *mut u32,
31378        ) -> windows_core::HRESULT {
31379            unsafe {
31380                let this: &Identity =
31381                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
31382                ICoreWebView2ProcessInfoCollection_Impl::Count(
31383                    this,
31384                    core::mem::transmute_copy(&value),
31385                )
31386                .into()
31387            }
31388        }
31389        unsafe extern "system" fn GetValueAtIndex<
31390            Identity: ICoreWebView2ProcessInfoCollection_Impl,
31391            const OFFSET: isize,
31392        >(
31393            this: *mut core::ffi::c_void,
31394            index: u32,
31395            value: *mut *mut core::ffi::c_void,
31396        ) -> windows_core::HRESULT {
31397            unsafe {
31398                let this: &Identity =
31399                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
31400                match ICoreWebView2ProcessInfoCollection_Impl::GetValueAtIndex(
31401                    this,
31402                    core::mem::transmute_copy(&index),
31403                ) {
31404                    Ok(ok__) => {
31405                        value.write(core::mem::transmute(ok__));
31406                        windows_core::HRESULT(0)
31407                    }
31408                    Err(err) => err.into(),
31409                }
31410            }
31411        }
31412        Self {
31413            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
31414            Count: Count::<Identity, OFFSET>,
31415            GetValueAtIndex: GetValueAtIndex::<Identity, OFFSET>,
31416        }
31417    }
31418    pub fn matches(iid: &windows_core::GUID) -> bool {
31419        iid == &<ICoreWebView2ProcessInfoCollection as windows_core::Interface>::IID
31420    }
31421}
31422impl windows_core::RuntimeName for ICoreWebView2ProcessInfoCollection {}
31423windows_core::imp::define_interface!(
31424    ICoreWebView2ProcessInfosChangedEventHandler,
31425    ICoreWebView2ProcessInfosChangedEventHandler_Vtbl,
31426    0xf4af0c39_44b9_40e9_8b11_0484cfb9e0a1
31427);
31428windows_core::imp::interface_hierarchy!(
31429    ICoreWebView2ProcessInfosChangedEventHandler,
31430    windows_core::IUnknown
31431);
31432impl ICoreWebView2ProcessInfosChangedEventHandler {
31433    pub unsafe fn Invoke<P0, P1>(&self, sender: P0, args: P1) -> windows_core::Result<()>
31434    where
31435        P0: windows_core::Param<ICoreWebView2Environment>,
31436        P1: windows_core::Param<windows_core::IUnknown>,
31437    {
31438        unsafe {
31439            (windows_core::Interface::vtable(self).Invoke)(
31440                windows_core::Interface::as_raw(self),
31441                sender.param().abi(),
31442                args.param().abi(),
31443            )
31444            .ok()
31445        }
31446    }
31447}
31448#[repr(C)]
31449#[doc(hidden)]
31450pub struct ICoreWebView2ProcessInfosChangedEventHandler_Vtbl {
31451    pub base__: windows_core::IUnknown_Vtbl,
31452    pub Invoke: unsafe extern "system" fn(
31453        *mut core::ffi::c_void,
31454        *mut core::ffi::c_void,
31455        *mut core::ffi::c_void,
31456    ) -> windows_core::HRESULT,
31457}
31458pub trait ICoreWebView2ProcessInfosChangedEventHandler_Impl: windows_core::IUnknownImpl {
31459    fn Invoke(
31460        &self,
31461        sender: windows_core::Ref<ICoreWebView2Environment>,
31462        args: windows_core::Ref<windows_core::IUnknown>,
31463    ) -> windows_core::Result<()>;
31464}
31465impl ICoreWebView2ProcessInfosChangedEventHandler_Vtbl {
31466    pub const fn new<
31467        Identity: ICoreWebView2ProcessInfosChangedEventHandler_Impl,
31468        const OFFSET: isize,
31469    >() -> Self {
31470        unsafe extern "system" fn Invoke<
31471            Identity: ICoreWebView2ProcessInfosChangedEventHandler_Impl,
31472            const OFFSET: isize,
31473        >(
31474            this: *mut core::ffi::c_void,
31475            sender: *mut core::ffi::c_void,
31476            args: *mut core::ffi::c_void,
31477        ) -> windows_core::HRESULT {
31478            unsafe {
31479                let this: &Identity =
31480                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
31481                ICoreWebView2ProcessInfosChangedEventHandler_Impl::Invoke(
31482                    this,
31483                    core::mem::transmute_copy(&sender),
31484                    core::mem::transmute_copy(&args),
31485                )
31486                .into()
31487            }
31488        }
31489        Self {
31490            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
31491            Invoke: Invoke::<Identity, OFFSET>,
31492        }
31493    }
31494    pub fn matches(iid: &windows_core::GUID) -> bool {
31495        iid == &<ICoreWebView2ProcessInfosChangedEventHandler as windows_core::Interface>::IID
31496    }
31497}
31498impl windows_core::RuntimeName for ICoreWebView2ProcessInfosChangedEventHandler {}
31499windows_core::imp::define_interface!(
31500    ICoreWebView2Profile,
31501    ICoreWebView2Profile_Vtbl,
31502    0x79110ad3_cd5d_4373_8bc3_c60658f17a5f
31503);
31504windows_core::imp::interface_hierarchy!(ICoreWebView2Profile, windows_core::IUnknown);
31505impl ICoreWebView2Profile {
31506    pub unsafe fn ProfileName(&self, value: *mut windows_core::PWSTR) -> windows_core::Result<()> {
31507        unsafe {
31508            (windows_core::Interface::vtable(self).ProfileName)(
31509                windows_core::Interface::as_raw(self),
31510                value as _,
31511            )
31512            .ok()
31513        }
31514    }
31515    pub unsafe fn IsInPrivateModeEnabled(
31516        &self,
31517        value: *mut windows_core::BOOL,
31518    ) -> windows_core::Result<()> {
31519        unsafe {
31520            (windows_core::Interface::vtable(self).IsInPrivateModeEnabled)(
31521                windows_core::Interface::as_raw(self),
31522                value as _,
31523            )
31524            .ok()
31525        }
31526    }
31527    pub unsafe fn ProfilePath(&self, value: *mut windows_core::PWSTR) -> windows_core::Result<()> {
31528        unsafe {
31529            (windows_core::Interface::vtable(self).ProfilePath)(
31530                windows_core::Interface::as_raw(self),
31531                value as _,
31532            )
31533            .ok()
31534        }
31535    }
31536    pub unsafe fn DefaultDownloadFolderPath(
31537        &self,
31538        value: *mut windows_core::PWSTR,
31539    ) -> windows_core::Result<()> {
31540        unsafe {
31541            (windows_core::Interface::vtable(self).DefaultDownloadFolderPath)(
31542                windows_core::Interface::as_raw(self),
31543                value as _,
31544            )
31545            .ok()
31546        }
31547    }
31548    pub unsafe fn SetDefaultDownloadFolderPath<P0>(&self, value: P0) -> windows_core::Result<()>
31549    where
31550        P0: windows_core::Param<windows_core::PCWSTR>,
31551    {
31552        unsafe {
31553            (windows_core::Interface::vtable(self).SetDefaultDownloadFolderPath)(
31554                windows_core::Interface::as_raw(self),
31555                value.param().abi(),
31556            )
31557            .ok()
31558        }
31559    }
31560    pub unsafe fn PreferredColorScheme(
31561        &self,
31562        value: *mut COREWEBVIEW2_PREFERRED_COLOR_SCHEME,
31563    ) -> windows_core::Result<()> {
31564        unsafe {
31565            (windows_core::Interface::vtable(self).PreferredColorScheme)(
31566                windows_core::Interface::as_raw(self),
31567                value as _,
31568            )
31569            .ok()
31570        }
31571    }
31572    pub unsafe fn SetPreferredColorScheme(
31573        &self,
31574        value: COREWEBVIEW2_PREFERRED_COLOR_SCHEME,
31575    ) -> windows_core::Result<()> {
31576        unsafe {
31577            (windows_core::Interface::vtable(self).SetPreferredColorScheme)(
31578                windows_core::Interface::as_raw(self),
31579                value,
31580            )
31581            .ok()
31582        }
31583    }
31584}
31585#[repr(C)]
31586#[doc(hidden)]
31587pub struct ICoreWebView2Profile_Vtbl {
31588    pub base__: windows_core::IUnknown_Vtbl,
31589    pub ProfileName: unsafe extern "system" fn(
31590        *mut core::ffi::c_void,
31591        *mut windows_core::PWSTR,
31592    ) -> windows_core::HRESULT,
31593    pub IsInPrivateModeEnabled: unsafe extern "system" fn(
31594        *mut core::ffi::c_void,
31595        *mut windows_core::BOOL,
31596    ) -> windows_core::HRESULT,
31597    pub ProfilePath: unsafe extern "system" fn(
31598        *mut core::ffi::c_void,
31599        *mut windows_core::PWSTR,
31600    ) -> windows_core::HRESULT,
31601    pub DefaultDownloadFolderPath: unsafe extern "system" fn(
31602        *mut core::ffi::c_void,
31603        *mut windows_core::PWSTR,
31604    ) -> windows_core::HRESULT,
31605    pub SetDefaultDownloadFolderPath: unsafe extern "system" fn(
31606        *mut core::ffi::c_void,
31607        windows_core::PCWSTR,
31608    ) -> windows_core::HRESULT,
31609    pub PreferredColorScheme: unsafe extern "system" fn(
31610        *mut core::ffi::c_void,
31611        *mut COREWEBVIEW2_PREFERRED_COLOR_SCHEME,
31612    ) -> windows_core::HRESULT,
31613    pub SetPreferredColorScheme: unsafe extern "system" fn(
31614        *mut core::ffi::c_void,
31615        COREWEBVIEW2_PREFERRED_COLOR_SCHEME,
31616    ) -> windows_core::HRESULT,
31617}
31618pub trait ICoreWebView2Profile_Impl: windows_core::IUnknownImpl {
31619    fn ProfileName(&self, value: *mut windows_core::PWSTR) -> windows_core::Result<()>;
31620    fn IsInPrivateModeEnabled(&self, value: *mut windows_core::BOOL) -> windows_core::Result<()>;
31621    fn ProfilePath(&self, value: *mut windows_core::PWSTR) -> windows_core::Result<()>;
31622    fn DefaultDownloadFolderPath(
31623        &self,
31624        value: *mut windows_core::PWSTR,
31625    ) -> windows_core::Result<()>;
31626    fn SetDefaultDownloadFolderPath(
31627        &self,
31628        value: &windows_core::PCWSTR,
31629    ) -> windows_core::Result<()>;
31630    fn PreferredColorScheme(
31631        &self,
31632        value: *mut COREWEBVIEW2_PREFERRED_COLOR_SCHEME,
31633    ) -> windows_core::Result<()>;
31634    fn SetPreferredColorScheme(
31635        &self,
31636        value: COREWEBVIEW2_PREFERRED_COLOR_SCHEME,
31637    ) -> windows_core::Result<()>;
31638}
31639impl ICoreWebView2Profile_Vtbl {
31640    pub const fn new<Identity: ICoreWebView2Profile_Impl, const OFFSET: isize>() -> Self {
31641        unsafe extern "system" fn ProfileName<
31642            Identity: ICoreWebView2Profile_Impl,
31643            const OFFSET: isize,
31644        >(
31645            this: *mut core::ffi::c_void,
31646            value: *mut windows_core::PWSTR,
31647        ) -> windows_core::HRESULT {
31648            unsafe {
31649                let this: &Identity =
31650                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
31651                ICoreWebView2Profile_Impl::ProfileName(this, core::mem::transmute_copy(&value))
31652                    .into()
31653            }
31654        }
31655        unsafe extern "system" fn IsInPrivateModeEnabled<
31656            Identity: ICoreWebView2Profile_Impl,
31657            const OFFSET: isize,
31658        >(
31659            this: *mut core::ffi::c_void,
31660            value: *mut windows_core::BOOL,
31661        ) -> windows_core::HRESULT {
31662            unsafe {
31663                let this: &Identity =
31664                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
31665                ICoreWebView2Profile_Impl::IsInPrivateModeEnabled(
31666                    this,
31667                    core::mem::transmute_copy(&value),
31668                )
31669                .into()
31670            }
31671        }
31672        unsafe extern "system" fn ProfilePath<
31673            Identity: ICoreWebView2Profile_Impl,
31674            const OFFSET: isize,
31675        >(
31676            this: *mut core::ffi::c_void,
31677            value: *mut windows_core::PWSTR,
31678        ) -> windows_core::HRESULT {
31679            unsafe {
31680                let this: &Identity =
31681                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
31682                ICoreWebView2Profile_Impl::ProfilePath(this, core::mem::transmute_copy(&value))
31683                    .into()
31684            }
31685        }
31686        unsafe extern "system" fn DefaultDownloadFolderPath<
31687            Identity: ICoreWebView2Profile_Impl,
31688            const OFFSET: isize,
31689        >(
31690            this: *mut core::ffi::c_void,
31691            value: *mut windows_core::PWSTR,
31692        ) -> windows_core::HRESULT {
31693            unsafe {
31694                let this: &Identity =
31695                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
31696                ICoreWebView2Profile_Impl::DefaultDownloadFolderPath(
31697                    this,
31698                    core::mem::transmute_copy(&value),
31699                )
31700                .into()
31701            }
31702        }
31703        unsafe extern "system" fn SetDefaultDownloadFolderPath<
31704            Identity: ICoreWebView2Profile_Impl,
31705            const OFFSET: isize,
31706        >(
31707            this: *mut core::ffi::c_void,
31708            value: windows_core::PCWSTR,
31709        ) -> windows_core::HRESULT {
31710            unsafe {
31711                let this: &Identity =
31712                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
31713                ICoreWebView2Profile_Impl::SetDefaultDownloadFolderPath(
31714                    this,
31715                    core::mem::transmute(&value),
31716                )
31717                .into()
31718            }
31719        }
31720        unsafe extern "system" fn PreferredColorScheme<
31721            Identity: ICoreWebView2Profile_Impl,
31722            const OFFSET: isize,
31723        >(
31724            this: *mut core::ffi::c_void,
31725            value: *mut COREWEBVIEW2_PREFERRED_COLOR_SCHEME,
31726        ) -> windows_core::HRESULT {
31727            unsafe {
31728                let this: &Identity =
31729                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
31730                ICoreWebView2Profile_Impl::PreferredColorScheme(
31731                    this,
31732                    core::mem::transmute_copy(&value),
31733                )
31734                .into()
31735            }
31736        }
31737        unsafe extern "system" fn SetPreferredColorScheme<
31738            Identity: ICoreWebView2Profile_Impl,
31739            const OFFSET: isize,
31740        >(
31741            this: *mut core::ffi::c_void,
31742            value: COREWEBVIEW2_PREFERRED_COLOR_SCHEME,
31743        ) -> windows_core::HRESULT {
31744            unsafe {
31745                let this: &Identity =
31746                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
31747                ICoreWebView2Profile_Impl::SetPreferredColorScheme(
31748                    this,
31749                    core::mem::transmute_copy(&value),
31750                )
31751                .into()
31752            }
31753        }
31754        Self {
31755            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
31756            ProfileName: ProfileName::<Identity, OFFSET>,
31757            IsInPrivateModeEnabled: IsInPrivateModeEnabled::<Identity, OFFSET>,
31758            ProfilePath: ProfilePath::<Identity, OFFSET>,
31759            DefaultDownloadFolderPath: DefaultDownloadFolderPath::<Identity, OFFSET>,
31760            SetDefaultDownloadFolderPath: SetDefaultDownloadFolderPath::<Identity, OFFSET>,
31761            PreferredColorScheme: PreferredColorScheme::<Identity, OFFSET>,
31762            SetPreferredColorScheme: SetPreferredColorScheme::<Identity, OFFSET>,
31763        }
31764    }
31765    pub fn matches(iid: &windows_core::GUID) -> bool {
31766        iid == &<ICoreWebView2Profile as windows_core::Interface>::IID
31767    }
31768}
31769impl windows_core::RuntimeName for ICoreWebView2Profile {}
31770windows_core::imp::define_interface!(
31771    ICoreWebView2Profile2,
31772    ICoreWebView2Profile2_Vtbl,
31773    0xfa740d4b_5eae_4344_a8ad_74be31925397
31774);
31775impl core::ops::Deref for ICoreWebView2Profile2 {
31776    type Target = ICoreWebView2Profile;
31777    fn deref(&self) -> &Self::Target {
31778        unsafe { core::mem::transmute(self) }
31779    }
31780}
31781windows_core::imp::interface_hierarchy!(
31782    ICoreWebView2Profile2,
31783    windows_core::IUnknown,
31784    ICoreWebView2Profile
31785);
31786impl ICoreWebView2Profile2 {
31787    pub unsafe fn ClearBrowsingData<P1>(
31788        &self,
31789        datakinds: COREWEBVIEW2_BROWSING_DATA_KINDS,
31790        handler: P1,
31791    ) -> windows_core::Result<()>
31792    where
31793        P1: windows_core::Param<ICoreWebView2ClearBrowsingDataCompletedHandler>,
31794    {
31795        unsafe {
31796            (windows_core::Interface::vtable(self).ClearBrowsingData)(
31797                windows_core::Interface::as_raw(self),
31798                datakinds,
31799                handler.param().abi(),
31800            )
31801            .ok()
31802        }
31803    }
31804    pub unsafe fn ClearBrowsingDataInTimeRange<P3>(
31805        &self,
31806        datakinds: COREWEBVIEW2_BROWSING_DATA_KINDS,
31807        starttime: f64,
31808        endtime: f64,
31809        handler: P3,
31810    ) -> windows_core::Result<()>
31811    where
31812        P3: windows_core::Param<ICoreWebView2ClearBrowsingDataCompletedHandler>,
31813    {
31814        unsafe {
31815            (windows_core::Interface::vtable(self).ClearBrowsingDataInTimeRange)(
31816                windows_core::Interface::as_raw(self),
31817                datakinds,
31818                starttime,
31819                endtime,
31820                handler.param().abi(),
31821            )
31822            .ok()
31823        }
31824    }
31825    pub unsafe fn ClearBrowsingDataAll<P0>(&self, handler: P0) -> windows_core::Result<()>
31826    where
31827        P0: windows_core::Param<ICoreWebView2ClearBrowsingDataCompletedHandler>,
31828    {
31829        unsafe {
31830            (windows_core::Interface::vtable(self).ClearBrowsingDataAll)(
31831                windows_core::Interface::as_raw(self),
31832                handler.param().abi(),
31833            )
31834            .ok()
31835        }
31836    }
31837}
31838#[repr(C)]
31839#[doc(hidden)]
31840pub struct ICoreWebView2Profile2_Vtbl {
31841    pub base__: ICoreWebView2Profile_Vtbl,
31842    pub ClearBrowsingData: unsafe extern "system" fn(
31843        *mut core::ffi::c_void,
31844        COREWEBVIEW2_BROWSING_DATA_KINDS,
31845        *mut core::ffi::c_void,
31846    ) -> windows_core::HRESULT,
31847    pub ClearBrowsingDataInTimeRange: unsafe extern "system" fn(
31848        *mut core::ffi::c_void,
31849        COREWEBVIEW2_BROWSING_DATA_KINDS,
31850        f64,
31851        f64,
31852        *mut core::ffi::c_void,
31853    ) -> windows_core::HRESULT,
31854    pub ClearBrowsingDataAll: unsafe extern "system" fn(
31855        *mut core::ffi::c_void,
31856        *mut core::ffi::c_void,
31857    ) -> windows_core::HRESULT,
31858}
31859pub trait ICoreWebView2Profile2_Impl: ICoreWebView2Profile_Impl {
31860    fn ClearBrowsingData(
31861        &self,
31862        datakinds: COREWEBVIEW2_BROWSING_DATA_KINDS,
31863        handler: windows_core::Ref<ICoreWebView2ClearBrowsingDataCompletedHandler>,
31864    ) -> windows_core::Result<()>;
31865    fn ClearBrowsingDataInTimeRange(
31866        &self,
31867        datakinds: COREWEBVIEW2_BROWSING_DATA_KINDS,
31868        starttime: f64,
31869        endtime: f64,
31870        handler: windows_core::Ref<ICoreWebView2ClearBrowsingDataCompletedHandler>,
31871    ) -> windows_core::Result<()>;
31872    fn ClearBrowsingDataAll(
31873        &self,
31874        handler: windows_core::Ref<ICoreWebView2ClearBrowsingDataCompletedHandler>,
31875    ) -> windows_core::Result<()>;
31876}
31877impl ICoreWebView2Profile2_Vtbl {
31878    pub const fn new<Identity: ICoreWebView2Profile2_Impl, const OFFSET: isize>() -> Self {
31879        unsafe extern "system" fn ClearBrowsingData<
31880            Identity: ICoreWebView2Profile2_Impl,
31881            const OFFSET: isize,
31882        >(
31883            this: *mut core::ffi::c_void,
31884            datakinds: COREWEBVIEW2_BROWSING_DATA_KINDS,
31885            handler: *mut core::ffi::c_void,
31886        ) -> windows_core::HRESULT {
31887            unsafe {
31888                let this: &Identity =
31889                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
31890                ICoreWebView2Profile2_Impl::ClearBrowsingData(
31891                    this,
31892                    core::mem::transmute_copy(&datakinds),
31893                    core::mem::transmute_copy(&handler),
31894                )
31895                .into()
31896            }
31897        }
31898        unsafe extern "system" fn ClearBrowsingDataInTimeRange<
31899            Identity: ICoreWebView2Profile2_Impl,
31900            const OFFSET: isize,
31901        >(
31902            this: *mut core::ffi::c_void,
31903            datakinds: COREWEBVIEW2_BROWSING_DATA_KINDS,
31904            starttime: f64,
31905            endtime: f64,
31906            handler: *mut core::ffi::c_void,
31907        ) -> windows_core::HRESULT {
31908            unsafe {
31909                let this: &Identity =
31910                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
31911                ICoreWebView2Profile2_Impl::ClearBrowsingDataInTimeRange(
31912                    this,
31913                    core::mem::transmute_copy(&datakinds),
31914                    core::mem::transmute_copy(&starttime),
31915                    core::mem::transmute_copy(&endtime),
31916                    core::mem::transmute_copy(&handler),
31917                )
31918                .into()
31919            }
31920        }
31921        unsafe extern "system" fn ClearBrowsingDataAll<
31922            Identity: ICoreWebView2Profile2_Impl,
31923            const OFFSET: isize,
31924        >(
31925            this: *mut core::ffi::c_void,
31926            handler: *mut core::ffi::c_void,
31927        ) -> windows_core::HRESULT {
31928            unsafe {
31929                let this: &Identity =
31930                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
31931                ICoreWebView2Profile2_Impl::ClearBrowsingDataAll(
31932                    this,
31933                    core::mem::transmute_copy(&handler),
31934                )
31935                .into()
31936            }
31937        }
31938        Self {
31939            base__: ICoreWebView2Profile_Vtbl::new::<Identity, OFFSET>(),
31940            ClearBrowsingData: ClearBrowsingData::<Identity, OFFSET>,
31941            ClearBrowsingDataInTimeRange: ClearBrowsingDataInTimeRange::<Identity, OFFSET>,
31942            ClearBrowsingDataAll: ClearBrowsingDataAll::<Identity, OFFSET>,
31943        }
31944    }
31945    pub fn matches(iid: &windows_core::GUID) -> bool {
31946        iid == &<ICoreWebView2Profile2 as windows_core::Interface>::IID
31947            || iid == &<ICoreWebView2Profile as windows_core::Interface>::IID
31948    }
31949}
31950impl windows_core::RuntimeName for ICoreWebView2Profile2 {}
31951windows_core::imp::define_interface!(
31952    ICoreWebView2Profile3,
31953    ICoreWebView2Profile3_Vtbl,
31954    0xb188e659_5685_4e05_bdba_fc640e0f1992
31955);
31956impl core::ops::Deref for ICoreWebView2Profile3 {
31957    type Target = ICoreWebView2Profile2;
31958    fn deref(&self) -> &Self::Target {
31959        unsafe { core::mem::transmute(self) }
31960    }
31961}
31962windows_core::imp::interface_hierarchy!(
31963    ICoreWebView2Profile3,
31964    windows_core::IUnknown,
31965    ICoreWebView2Profile,
31966    ICoreWebView2Profile2
31967);
31968impl ICoreWebView2Profile3 {
31969    pub unsafe fn PreferredTrackingPreventionLevel(
31970        &self,
31971        value: *mut COREWEBVIEW2_TRACKING_PREVENTION_LEVEL,
31972    ) -> windows_core::Result<()> {
31973        unsafe {
31974            (windows_core::Interface::vtable(self).PreferredTrackingPreventionLevel)(
31975                windows_core::Interface::as_raw(self),
31976                value as _,
31977            )
31978            .ok()
31979        }
31980    }
31981    pub unsafe fn SetPreferredTrackingPreventionLevel(
31982        &self,
31983        value: COREWEBVIEW2_TRACKING_PREVENTION_LEVEL,
31984    ) -> windows_core::Result<()> {
31985        unsafe {
31986            (windows_core::Interface::vtable(self).SetPreferredTrackingPreventionLevel)(
31987                windows_core::Interface::as_raw(self),
31988                value,
31989            )
31990            .ok()
31991        }
31992    }
31993}
31994#[repr(C)]
31995#[doc(hidden)]
31996pub struct ICoreWebView2Profile3_Vtbl {
31997    pub base__: ICoreWebView2Profile2_Vtbl,
31998    pub PreferredTrackingPreventionLevel: unsafe extern "system" fn(
31999        *mut core::ffi::c_void,
32000        *mut COREWEBVIEW2_TRACKING_PREVENTION_LEVEL,
32001    ) -> windows_core::HRESULT,
32002    pub SetPreferredTrackingPreventionLevel: unsafe extern "system" fn(
32003        *mut core::ffi::c_void,
32004        COREWEBVIEW2_TRACKING_PREVENTION_LEVEL,
32005    )
32006        -> windows_core::HRESULT,
32007}
32008pub trait ICoreWebView2Profile3_Impl: ICoreWebView2Profile2_Impl {
32009    fn PreferredTrackingPreventionLevel(
32010        &self,
32011        value: *mut COREWEBVIEW2_TRACKING_PREVENTION_LEVEL,
32012    ) -> windows_core::Result<()>;
32013    fn SetPreferredTrackingPreventionLevel(
32014        &self,
32015        value: COREWEBVIEW2_TRACKING_PREVENTION_LEVEL,
32016    ) -> windows_core::Result<()>;
32017}
32018impl ICoreWebView2Profile3_Vtbl {
32019    pub const fn new<Identity: ICoreWebView2Profile3_Impl, const OFFSET: isize>() -> Self {
32020        unsafe extern "system" fn PreferredTrackingPreventionLevel<
32021            Identity: ICoreWebView2Profile3_Impl,
32022            const OFFSET: isize,
32023        >(
32024            this: *mut core::ffi::c_void,
32025            value: *mut COREWEBVIEW2_TRACKING_PREVENTION_LEVEL,
32026        ) -> windows_core::HRESULT {
32027            unsafe {
32028                let this: &Identity =
32029                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
32030                ICoreWebView2Profile3_Impl::PreferredTrackingPreventionLevel(
32031                    this,
32032                    core::mem::transmute_copy(&value),
32033                )
32034                .into()
32035            }
32036        }
32037        unsafe extern "system" fn SetPreferredTrackingPreventionLevel<
32038            Identity: ICoreWebView2Profile3_Impl,
32039            const OFFSET: isize,
32040        >(
32041            this: *mut core::ffi::c_void,
32042            value: COREWEBVIEW2_TRACKING_PREVENTION_LEVEL,
32043        ) -> windows_core::HRESULT {
32044            unsafe {
32045                let this: &Identity =
32046                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
32047                ICoreWebView2Profile3_Impl::SetPreferredTrackingPreventionLevel(
32048                    this,
32049                    core::mem::transmute_copy(&value),
32050                )
32051                .into()
32052            }
32053        }
32054        Self {
32055            base__: ICoreWebView2Profile2_Vtbl::new::<Identity, OFFSET>(),
32056            PreferredTrackingPreventionLevel: PreferredTrackingPreventionLevel::<Identity, OFFSET>,
32057            SetPreferredTrackingPreventionLevel: SetPreferredTrackingPreventionLevel::<
32058                Identity,
32059                OFFSET,
32060            >,
32061        }
32062    }
32063    pub fn matches(iid: &windows_core::GUID) -> bool {
32064        iid == &<ICoreWebView2Profile3 as windows_core::Interface>::IID
32065            || iid == &<ICoreWebView2Profile as windows_core::Interface>::IID
32066            || iid == &<ICoreWebView2Profile2 as windows_core::Interface>::IID
32067    }
32068}
32069impl windows_core::RuntimeName for ICoreWebView2Profile3 {}
32070windows_core::imp::define_interface!(
32071    ICoreWebView2Profile4,
32072    ICoreWebView2Profile4_Vtbl,
32073    0x8f4ae680_192e_4ec8_833a_21cfadaef628
32074);
32075impl core::ops::Deref for ICoreWebView2Profile4 {
32076    type Target = ICoreWebView2Profile3;
32077    fn deref(&self) -> &Self::Target {
32078        unsafe { core::mem::transmute(self) }
32079    }
32080}
32081windows_core::imp::interface_hierarchy!(
32082    ICoreWebView2Profile4,
32083    windows_core::IUnknown,
32084    ICoreWebView2Profile,
32085    ICoreWebView2Profile2,
32086    ICoreWebView2Profile3
32087);
32088impl ICoreWebView2Profile4 {
32089    pub unsafe fn SetPermissionState<P1, P3>(
32090        &self,
32091        permissionkind: COREWEBVIEW2_PERMISSION_KIND,
32092        origin: P1,
32093        state: COREWEBVIEW2_PERMISSION_STATE,
32094        handler: P3,
32095    ) -> windows_core::Result<()>
32096    where
32097        P1: windows_core::Param<windows_core::PCWSTR>,
32098        P3: windows_core::Param<ICoreWebView2SetPermissionStateCompletedHandler>,
32099    {
32100        unsafe {
32101            (windows_core::Interface::vtable(self).SetPermissionState)(
32102                windows_core::Interface::as_raw(self),
32103                permissionkind,
32104                origin.param().abi(),
32105                state,
32106                handler.param().abi(),
32107            )
32108            .ok()
32109        }
32110    }
32111    pub unsafe fn GetNonDefaultPermissionSettings<P0>(
32112        &self,
32113        handler: P0,
32114    ) -> windows_core::Result<()>
32115    where
32116        P0: windows_core::Param<ICoreWebView2GetNonDefaultPermissionSettingsCompletedHandler>,
32117    {
32118        unsafe {
32119            (windows_core::Interface::vtable(self).GetNonDefaultPermissionSettings)(
32120                windows_core::Interface::as_raw(self),
32121                handler.param().abi(),
32122            )
32123            .ok()
32124        }
32125    }
32126}
32127#[repr(C)]
32128#[doc(hidden)]
32129pub struct ICoreWebView2Profile4_Vtbl {
32130    pub base__: ICoreWebView2Profile3_Vtbl,
32131    pub SetPermissionState: unsafe extern "system" fn(
32132        *mut core::ffi::c_void,
32133        COREWEBVIEW2_PERMISSION_KIND,
32134        windows_core::PCWSTR,
32135        COREWEBVIEW2_PERMISSION_STATE,
32136        *mut core::ffi::c_void,
32137    ) -> windows_core::HRESULT,
32138    pub GetNonDefaultPermissionSettings: unsafe extern "system" fn(
32139        *mut core::ffi::c_void,
32140        *mut core::ffi::c_void,
32141    ) -> windows_core::HRESULT,
32142}
32143pub trait ICoreWebView2Profile4_Impl: ICoreWebView2Profile3_Impl {
32144    fn SetPermissionState(
32145        &self,
32146        permissionkind: COREWEBVIEW2_PERMISSION_KIND,
32147        origin: &windows_core::PCWSTR,
32148        state: COREWEBVIEW2_PERMISSION_STATE,
32149        handler: windows_core::Ref<ICoreWebView2SetPermissionStateCompletedHandler>,
32150    ) -> windows_core::Result<()>;
32151    fn GetNonDefaultPermissionSettings(
32152        &self,
32153        handler: windows_core::Ref<ICoreWebView2GetNonDefaultPermissionSettingsCompletedHandler>,
32154    ) -> windows_core::Result<()>;
32155}
32156impl ICoreWebView2Profile4_Vtbl {
32157    pub const fn new<Identity: ICoreWebView2Profile4_Impl, const OFFSET: isize>() -> Self {
32158        unsafe extern "system" fn SetPermissionState<
32159            Identity: ICoreWebView2Profile4_Impl,
32160            const OFFSET: isize,
32161        >(
32162            this: *mut core::ffi::c_void,
32163            permissionkind: COREWEBVIEW2_PERMISSION_KIND,
32164            origin: windows_core::PCWSTR,
32165            state: COREWEBVIEW2_PERMISSION_STATE,
32166            handler: *mut core::ffi::c_void,
32167        ) -> windows_core::HRESULT {
32168            unsafe {
32169                let this: &Identity =
32170                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
32171                ICoreWebView2Profile4_Impl::SetPermissionState(
32172                    this,
32173                    core::mem::transmute_copy(&permissionkind),
32174                    core::mem::transmute(&origin),
32175                    core::mem::transmute_copy(&state),
32176                    core::mem::transmute_copy(&handler),
32177                )
32178                .into()
32179            }
32180        }
32181        unsafe extern "system" fn GetNonDefaultPermissionSettings<
32182            Identity: ICoreWebView2Profile4_Impl,
32183            const OFFSET: isize,
32184        >(
32185            this: *mut core::ffi::c_void,
32186            handler: *mut core::ffi::c_void,
32187        ) -> windows_core::HRESULT {
32188            unsafe {
32189                let this: &Identity =
32190                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
32191                ICoreWebView2Profile4_Impl::GetNonDefaultPermissionSettings(
32192                    this,
32193                    core::mem::transmute_copy(&handler),
32194                )
32195                .into()
32196            }
32197        }
32198        Self {
32199            base__: ICoreWebView2Profile3_Vtbl::new::<Identity, OFFSET>(),
32200            SetPermissionState: SetPermissionState::<Identity, OFFSET>,
32201            GetNonDefaultPermissionSettings: GetNonDefaultPermissionSettings::<Identity, OFFSET>,
32202        }
32203    }
32204    pub fn matches(iid: &windows_core::GUID) -> bool {
32205        iid == &<ICoreWebView2Profile4 as windows_core::Interface>::IID
32206            || iid == &<ICoreWebView2Profile as windows_core::Interface>::IID
32207            || iid == &<ICoreWebView2Profile2 as windows_core::Interface>::IID
32208            || iid == &<ICoreWebView2Profile3 as windows_core::Interface>::IID
32209    }
32210}
32211impl windows_core::RuntimeName for ICoreWebView2Profile4 {}
32212windows_core::imp::define_interface!(
32213    ICoreWebView2Profile5,
32214    ICoreWebView2Profile5_Vtbl,
32215    0x2ee5b76e_6e80_4df2_bcd3_d4ec3340a01b
32216);
32217impl core::ops::Deref for ICoreWebView2Profile5 {
32218    type Target = ICoreWebView2Profile4;
32219    fn deref(&self) -> &Self::Target {
32220        unsafe { core::mem::transmute(self) }
32221    }
32222}
32223windows_core::imp::interface_hierarchy!(
32224    ICoreWebView2Profile5,
32225    windows_core::IUnknown,
32226    ICoreWebView2Profile,
32227    ICoreWebView2Profile2,
32228    ICoreWebView2Profile3,
32229    ICoreWebView2Profile4
32230);
32231impl ICoreWebView2Profile5 {
32232    pub unsafe fn CookieManager(&self) -> windows_core::Result<ICoreWebView2CookieManager> {
32233        unsafe {
32234            let mut result__ = core::mem::zeroed();
32235            (windows_core::Interface::vtable(self).CookieManager)(
32236                windows_core::Interface::as_raw(self),
32237                &mut result__,
32238            )
32239            .and_then(|| windows_core::Type::from_abi(result__))
32240        }
32241    }
32242}
32243#[repr(C)]
32244#[doc(hidden)]
32245pub struct ICoreWebView2Profile5_Vtbl {
32246    pub base__: ICoreWebView2Profile4_Vtbl,
32247    pub CookieManager: unsafe extern "system" fn(
32248        *mut core::ffi::c_void,
32249        *mut *mut core::ffi::c_void,
32250    ) -> windows_core::HRESULT,
32251}
32252pub trait ICoreWebView2Profile5_Impl: ICoreWebView2Profile4_Impl {
32253    fn CookieManager(&self) -> windows_core::Result<ICoreWebView2CookieManager>;
32254}
32255impl ICoreWebView2Profile5_Vtbl {
32256    pub const fn new<Identity: ICoreWebView2Profile5_Impl, const OFFSET: isize>() -> Self {
32257        unsafe extern "system" fn CookieManager<
32258            Identity: ICoreWebView2Profile5_Impl,
32259            const OFFSET: isize,
32260        >(
32261            this: *mut core::ffi::c_void,
32262            value: *mut *mut core::ffi::c_void,
32263        ) -> windows_core::HRESULT {
32264            unsafe {
32265                let this: &Identity =
32266                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
32267                match ICoreWebView2Profile5_Impl::CookieManager(this) {
32268                    Ok(ok__) => {
32269                        value.write(core::mem::transmute(ok__));
32270                        windows_core::HRESULT(0)
32271                    }
32272                    Err(err) => err.into(),
32273                }
32274            }
32275        }
32276        Self {
32277            base__: ICoreWebView2Profile4_Vtbl::new::<Identity, OFFSET>(),
32278            CookieManager: CookieManager::<Identity, OFFSET>,
32279        }
32280    }
32281    pub fn matches(iid: &windows_core::GUID) -> bool {
32282        iid == &<ICoreWebView2Profile5 as windows_core::Interface>::IID
32283            || iid == &<ICoreWebView2Profile as windows_core::Interface>::IID
32284            || iid == &<ICoreWebView2Profile2 as windows_core::Interface>::IID
32285            || iid == &<ICoreWebView2Profile3 as windows_core::Interface>::IID
32286            || iid == &<ICoreWebView2Profile4 as windows_core::Interface>::IID
32287    }
32288}
32289impl windows_core::RuntimeName for ICoreWebView2Profile5 {}
32290windows_core::imp::define_interface!(
32291    ICoreWebView2Profile6,
32292    ICoreWebView2Profile6_Vtbl,
32293    0xbd82fa6a_1d65_4c33_b2b4_0393020cc61b
32294);
32295impl core::ops::Deref for ICoreWebView2Profile6 {
32296    type Target = ICoreWebView2Profile5;
32297    fn deref(&self) -> &Self::Target {
32298        unsafe { core::mem::transmute(self) }
32299    }
32300}
32301windows_core::imp::interface_hierarchy!(
32302    ICoreWebView2Profile6,
32303    windows_core::IUnknown,
32304    ICoreWebView2Profile,
32305    ICoreWebView2Profile2,
32306    ICoreWebView2Profile3,
32307    ICoreWebView2Profile4,
32308    ICoreWebView2Profile5
32309);
32310impl ICoreWebView2Profile6 {
32311    pub unsafe fn IsPasswordAutosaveEnabled(
32312        &self,
32313        value: *mut windows_core::BOOL,
32314    ) -> windows_core::Result<()> {
32315        unsafe {
32316            (windows_core::Interface::vtable(self).IsPasswordAutosaveEnabled)(
32317                windows_core::Interface::as_raw(self),
32318                value as _,
32319            )
32320            .ok()
32321        }
32322    }
32323    pub unsafe fn SetIsPasswordAutosaveEnabled(&self, value: bool) -> windows_core::Result<()> {
32324        unsafe {
32325            (windows_core::Interface::vtable(self).SetIsPasswordAutosaveEnabled)(
32326                windows_core::Interface::as_raw(self),
32327                value.into(),
32328            )
32329            .ok()
32330        }
32331    }
32332    pub unsafe fn IsGeneralAutofillEnabled(
32333        &self,
32334        value: *mut windows_core::BOOL,
32335    ) -> windows_core::Result<()> {
32336        unsafe {
32337            (windows_core::Interface::vtable(self).IsGeneralAutofillEnabled)(
32338                windows_core::Interface::as_raw(self),
32339                value as _,
32340            )
32341            .ok()
32342        }
32343    }
32344    pub unsafe fn SetIsGeneralAutofillEnabled(&self, value: bool) -> windows_core::Result<()> {
32345        unsafe {
32346            (windows_core::Interface::vtable(self).SetIsGeneralAutofillEnabled)(
32347                windows_core::Interface::as_raw(self),
32348                value.into(),
32349            )
32350            .ok()
32351        }
32352    }
32353}
32354#[repr(C)]
32355#[doc(hidden)]
32356pub struct ICoreWebView2Profile6_Vtbl {
32357    pub base__: ICoreWebView2Profile5_Vtbl,
32358    pub IsPasswordAutosaveEnabled: unsafe extern "system" fn(
32359        *mut core::ffi::c_void,
32360        *mut windows_core::BOOL,
32361    ) -> windows_core::HRESULT,
32362    pub SetIsPasswordAutosaveEnabled: unsafe extern "system" fn(
32363        *mut core::ffi::c_void,
32364        windows_core::BOOL,
32365    ) -> windows_core::HRESULT,
32366    pub IsGeneralAutofillEnabled: unsafe extern "system" fn(
32367        *mut core::ffi::c_void,
32368        *mut windows_core::BOOL,
32369    ) -> windows_core::HRESULT,
32370    pub SetIsGeneralAutofillEnabled: unsafe extern "system" fn(
32371        *mut core::ffi::c_void,
32372        windows_core::BOOL,
32373    ) -> windows_core::HRESULT,
32374}
32375pub trait ICoreWebView2Profile6_Impl: ICoreWebView2Profile5_Impl {
32376    fn IsPasswordAutosaveEnabled(&self, value: *mut windows_core::BOOL)
32377        -> windows_core::Result<()>;
32378    fn SetIsPasswordAutosaveEnabled(&self, value: windows_core::BOOL) -> windows_core::Result<()>;
32379    fn IsGeneralAutofillEnabled(&self, value: *mut windows_core::BOOL) -> windows_core::Result<()>;
32380    fn SetIsGeneralAutofillEnabled(&self, value: windows_core::BOOL) -> windows_core::Result<()>;
32381}
32382impl ICoreWebView2Profile6_Vtbl {
32383    pub const fn new<Identity: ICoreWebView2Profile6_Impl, const OFFSET: isize>() -> Self {
32384        unsafe extern "system" fn IsPasswordAutosaveEnabled<
32385            Identity: ICoreWebView2Profile6_Impl,
32386            const OFFSET: isize,
32387        >(
32388            this: *mut core::ffi::c_void,
32389            value: *mut windows_core::BOOL,
32390        ) -> windows_core::HRESULT {
32391            unsafe {
32392                let this: &Identity =
32393                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
32394                ICoreWebView2Profile6_Impl::IsPasswordAutosaveEnabled(
32395                    this,
32396                    core::mem::transmute_copy(&value),
32397                )
32398                .into()
32399            }
32400        }
32401        unsafe extern "system" fn SetIsPasswordAutosaveEnabled<
32402            Identity: ICoreWebView2Profile6_Impl,
32403            const OFFSET: isize,
32404        >(
32405            this: *mut core::ffi::c_void,
32406            value: windows_core::BOOL,
32407        ) -> windows_core::HRESULT {
32408            unsafe {
32409                let this: &Identity =
32410                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
32411                ICoreWebView2Profile6_Impl::SetIsPasswordAutosaveEnabled(
32412                    this,
32413                    core::mem::transmute_copy(&value),
32414                )
32415                .into()
32416            }
32417        }
32418        unsafe extern "system" fn IsGeneralAutofillEnabled<
32419            Identity: ICoreWebView2Profile6_Impl,
32420            const OFFSET: isize,
32421        >(
32422            this: *mut core::ffi::c_void,
32423            value: *mut windows_core::BOOL,
32424        ) -> windows_core::HRESULT {
32425            unsafe {
32426                let this: &Identity =
32427                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
32428                ICoreWebView2Profile6_Impl::IsGeneralAutofillEnabled(
32429                    this,
32430                    core::mem::transmute_copy(&value),
32431                )
32432                .into()
32433            }
32434        }
32435        unsafe extern "system" fn SetIsGeneralAutofillEnabled<
32436            Identity: ICoreWebView2Profile6_Impl,
32437            const OFFSET: isize,
32438        >(
32439            this: *mut core::ffi::c_void,
32440            value: windows_core::BOOL,
32441        ) -> windows_core::HRESULT {
32442            unsafe {
32443                let this: &Identity =
32444                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
32445                ICoreWebView2Profile6_Impl::SetIsGeneralAutofillEnabled(
32446                    this,
32447                    core::mem::transmute_copy(&value),
32448                )
32449                .into()
32450            }
32451        }
32452        Self {
32453            base__: ICoreWebView2Profile5_Vtbl::new::<Identity, OFFSET>(),
32454            IsPasswordAutosaveEnabled: IsPasswordAutosaveEnabled::<Identity, OFFSET>,
32455            SetIsPasswordAutosaveEnabled: SetIsPasswordAutosaveEnabled::<Identity, OFFSET>,
32456            IsGeneralAutofillEnabled: IsGeneralAutofillEnabled::<Identity, OFFSET>,
32457            SetIsGeneralAutofillEnabled: SetIsGeneralAutofillEnabled::<Identity, OFFSET>,
32458        }
32459    }
32460    pub fn matches(iid: &windows_core::GUID) -> bool {
32461        iid == &<ICoreWebView2Profile6 as windows_core::Interface>::IID
32462            || iid == &<ICoreWebView2Profile as windows_core::Interface>::IID
32463            || iid == &<ICoreWebView2Profile2 as windows_core::Interface>::IID
32464            || iid == &<ICoreWebView2Profile3 as windows_core::Interface>::IID
32465            || iid == &<ICoreWebView2Profile4 as windows_core::Interface>::IID
32466            || iid == &<ICoreWebView2Profile5 as windows_core::Interface>::IID
32467    }
32468}
32469impl windows_core::RuntimeName for ICoreWebView2Profile6 {}
32470windows_core::imp::define_interface!(
32471    ICoreWebView2Profile7,
32472    ICoreWebView2Profile7_Vtbl,
32473    0x7b4c7906_a1aa_4cb4_b723_db09f813d541
32474);
32475impl core::ops::Deref for ICoreWebView2Profile7 {
32476    type Target = ICoreWebView2Profile6;
32477    fn deref(&self) -> &Self::Target {
32478        unsafe { core::mem::transmute(self) }
32479    }
32480}
32481windows_core::imp::interface_hierarchy!(
32482    ICoreWebView2Profile7,
32483    windows_core::IUnknown,
32484    ICoreWebView2Profile,
32485    ICoreWebView2Profile2,
32486    ICoreWebView2Profile3,
32487    ICoreWebView2Profile4,
32488    ICoreWebView2Profile5,
32489    ICoreWebView2Profile6
32490);
32491impl ICoreWebView2Profile7 {
32492    pub unsafe fn AddBrowserExtension<P0, P1>(
32493        &self,
32494        extensionfolderpath: P0,
32495        handler: P1,
32496    ) -> windows_core::Result<()>
32497    where
32498        P0: windows_core::Param<windows_core::PCWSTR>,
32499        P1: windows_core::Param<ICoreWebView2ProfileAddBrowserExtensionCompletedHandler>,
32500    {
32501        unsafe {
32502            (windows_core::Interface::vtable(self).AddBrowserExtension)(
32503                windows_core::Interface::as_raw(self),
32504                extensionfolderpath.param().abi(),
32505                handler.param().abi(),
32506            )
32507            .ok()
32508        }
32509    }
32510    pub unsafe fn GetBrowserExtensions<P0>(&self, handler: P0) -> windows_core::Result<()>
32511    where
32512        P0: windows_core::Param<ICoreWebView2ProfileGetBrowserExtensionsCompletedHandler>,
32513    {
32514        unsafe {
32515            (windows_core::Interface::vtable(self).GetBrowserExtensions)(
32516                windows_core::Interface::as_raw(self),
32517                handler.param().abi(),
32518            )
32519            .ok()
32520        }
32521    }
32522}
32523#[repr(C)]
32524#[doc(hidden)]
32525pub struct ICoreWebView2Profile7_Vtbl {
32526    pub base__: ICoreWebView2Profile6_Vtbl,
32527    pub AddBrowserExtension: unsafe extern "system" fn(
32528        *mut core::ffi::c_void,
32529        windows_core::PCWSTR,
32530        *mut core::ffi::c_void,
32531    ) -> windows_core::HRESULT,
32532    pub GetBrowserExtensions: unsafe extern "system" fn(
32533        *mut core::ffi::c_void,
32534        *mut core::ffi::c_void,
32535    ) -> windows_core::HRESULT,
32536}
32537pub trait ICoreWebView2Profile7_Impl: ICoreWebView2Profile6_Impl {
32538    fn AddBrowserExtension(
32539        &self,
32540        extensionfolderpath: &windows_core::PCWSTR,
32541        handler: windows_core::Ref<ICoreWebView2ProfileAddBrowserExtensionCompletedHandler>,
32542    ) -> windows_core::Result<()>;
32543    fn GetBrowserExtensions(
32544        &self,
32545        handler: windows_core::Ref<ICoreWebView2ProfileGetBrowserExtensionsCompletedHandler>,
32546    ) -> windows_core::Result<()>;
32547}
32548impl ICoreWebView2Profile7_Vtbl {
32549    pub const fn new<Identity: ICoreWebView2Profile7_Impl, const OFFSET: isize>() -> Self {
32550        unsafe extern "system" fn AddBrowserExtension<
32551            Identity: ICoreWebView2Profile7_Impl,
32552            const OFFSET: isize,
32553        >(
32554            this: *mut core::ffi::c_void,
32555            extensionfolderpath: windows_core::PCWSTR,
32556            handler: *mut core::ffi::c_void,
32557        ) -> windows_core::HRESULT {
32558            unsafe {
32559                let this: &Identity =
32560                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
32561                ICoreWebView2Profile7_Impl::AddBrowserExtension(
32562                    this,
32563                    core::mem::transmute(&extensionfolderpath),
32564                    core::mem::transmute_copy(&handler),
32565                )
32566                .into()
32567            }
32568        }
32569        unsafe extern "system" fn GetBrowserExtensions<
32570            Identity: ICoreWebView2Profile7_Impl,
32571            const OFFSET: isize,
32572        >(
32573            this: *mut core::ffi::c_void,
32574            handler: *mut core::ffi::c_void,
32575        ) -> windows_core::HRESULT {
32576            unsafe {
32577                let this: &Identity =
32578                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
32579                ICoreWebView2Profile7_Impl::GetBrowserExtensions(
32580                    this,
32581                    core::mem::transmute_copy(&handler),
32582                )
32583                .into()
32584            }
32585        }
32586        Self {
32587            base__: ICoreWebView2Profile6_Vtbl::new::<Identity, OFFSET>(),
32588            AddBrowserExtension: AddBrowserExtension::<Identity, OFFSET>,
32589            GetBrowserExtensions: GetBrowserExtensions::<Identity, OFFSET>,
32590        }
32591    }
32592    pub fn matches(iid: &windows_core::GUID) -> bool {
32593        iid == &<ICoreWebView2Profile7 as windows_core::Interface>::IID
32594            || iid == &<ICoreWebView2Profile as windows_core::Interface>::IID
32595            || iid == &<ICoreWebView2Profile2 as windows_core::Interface>::IID
32596            || iid == &<ICoreWebView2Profile3 as windows_core::Interface>::IID
32597            || iid == &<ICoreWebView2Profile4 as windows_core::Interface>::IID
32598            || iid == &<ICoreWebView2Profile5 as windows_core::Interface>::IID
32599            || iid == &<ICoreWebView2Profile6 as windows_core::Interface>::IID
32600    }
32601}
32602impl windows_core::RuntimeName for ICoreWebView2Profile7 {}
32603windows_core::imp::define_interface!(
32604    ICoreWebView2Profile8,
32605    ICoreWebView2Profile8_Vtbl,
32606    0xfbf70c2f_eb1f_4383_85a0_163e92044011
32607);
32608impl core::ops::Deref for ICoreWebView2Profile8 {
32609    type Target = ICoreWebView2Profile7;
32610    fn deref(&self) -> &Self::Target {
32611        unsafe { core::mem::transmute(self) }
32612    }
32613}
32614windows_core::imp::interface_hierarchy!(
32615    ICoreWebView2Profile8,
32616    windows_core::IUnknown,
32617    ICoreWebView2Profile,
32618    ICoreWebView2Profile2,
32619    ICoreWebView2Profile3,
32620    ICoreWebView2Profile4,
32621    ICoreWebView2Profile5,
32622    ICoreWebView2Profile6,
32623    ICoreWebView2Profile7
32624);
32625impl ICoreWebView2Profile8 {
32626    pub unsafe fn Delete(&self) -> windows_core::Result<()> {
32627        unsafe {
32628            (windows_core::Interface::vtable(self).Delete)(windows_core::Interface::as_raw(self))
32629                .ok()
32630        }
32631    }
32632    pub unsafe fn add_Deleted<P0>(
32633        &self,
32634        eventhandler: P0,
32635        token: *mut i64,
32636    ) -> windows_core::Result<()>
32637    where
32638        P0: windows_core::Param<ICoreWebView2ProfileDeletedEventHandler>,
32639    {
32640        unsafe {
32641            (windows_core::Interface::vtable(self).add_Deleted)(
32642                windows_core::Interface::as_raw(self),
32643                eventhandler.param().abi(),
32644                token as _,
32645            )
32646            .ok()
32647        }
32648    }
32649    pub unsafe fn remove_Deleted(&self, token: i64) -> windows_core::Result<()> {
32650        unsafe {
32651            (windows_core::Interface::vtable(self).remove_Deleted)(
32652                windows_core::Interface::as_raw(self),
32653                token,
32654            )
32655            .ok()
32656        }
32657    }
32658}
32659#[repr(C)]
32660#[doc(hidden)]
32661pub struct ICoreWebView2Profile8_Vtbl {
32662    pub base__: ICoreWebView2Profile7_Vtbl,
32663    pub Delete: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
32664    pub add_Deleted: unsafe extern "system" fn(
32665        *mut core::ffi::c_void,
32666        *mut core::ffi::c_void,
32667        *mut i64,
32668    ) -> windows_core::HRESULT,
32669    pub remove_Deleted:
32670        unsafe extern "system" fn(*mut core::ffi::c_void, i64) -> windows_core::HRESULT,
32671}
32672pub trait ICoreWebView2Profile8_Impl: ICoreWebView2Profile7_Impl {
32673    fn Delete(&self) -> windows_core::Result<()>;
32674    fn add_Deleted(
32675        &self,
32676        eventhandler: windows_core::Ref<ICoreWebView2ProfileDeletedEventHandler>,
32677        token: *mut i64,
32678    ) -> windows_core::Result<()>;
32679    fn remove_Deleted(&self, token: i64) -> windows_core::Result<()>;
32680}
32681impl ICoreWebView2Profile8_Vtbl {
32682    pub const fn new<Identity: ICoreWebView2Profile8_Impl, const OFFSET: isize>() -> Self {
32683        unsafe extern "system" fn Delete<
32684            Identity: ICoreWebView2Profile8_Impl,
32685            const OFFSET: isize,
32686        >(
32687            this: *mut core::ffi::c_void,
32688        ) -> windows_core::HRESULT {
32689            unsafe {
32690                let this: &Identity =
32691                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
32692                ICoreWebView2Profile8_Impl::Delete(this).into()
32693            }
32694        }
32695        unsafe extern "system" fn add_Deleted<
32696            Identity: ICoreWebView2Profile8_Impl,
32697            const OFFSET: isize,
32698        >(
32699            this: *mut core::ffi::c_void,
32700            eventhandler: *mut core::ffi::c_void,
32701            token: *mut i64,
32702        ) -> windows_core::HRESULT {
32703            unsafe {
32704                let this: &Identity =
32705                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
32706                ICoreWebView2Profile8_Impl::add_Deleted(
32707                    this,
32708                    core::mem::transmute_copy(&eventhandler),
32709                    core::mem::transmute_copy(&token),
32710                )
32711                .into()
32712            }
32713        }
32714        unsafe extern "system" fn remove_Deleted<
32715            Identity: ICoreWebView2Profile8_Impl,
32716            const OFFSET: isize,
32717        >(
32718            this: *mut core::ffi::c_void,
32719            token: i64,
32720        ) -> windows_core::HRESULT {
32721            unsafe {
32722                let this: &Identity =
32723                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
32724                ICoreWebView2Profile8_Impl::remove_Deleted(this, core::mem::transmute_copy(&token))
32725                    .into()
32726            }
32727        }
32728        Self {
32729            base__: ICoreWebView2Profile7_Vtbl::new::<Identity, OFFSET>(),
32730            Delete: Delete::<Identity, OFFSET>,
32731            add_Deleted: add_Deleted::<Identity, OFFSET>,
32732            remove_Deleted: remove_Deleted::<Identity, OFFSET>,
32733        }
32734    }
32735    pub fn matches(iid: &windows_core::GUID) -> bool {
32736        iid == &<ICoreWebView2Profile8 as windows_core::Interface>::IID
32737            || iid == &<ICoreWebView2Profile as windows_core::Interface>::IID
32738            || iid == &<ICoreWebView2Profile2 as windows_core::Interface>::IID
32739            || iid == &<ICoreWebView2Profile3 as windows_core::Interface>::IID
32740            || iid == &<ICoreWebView2Profile4 as windows_core::Interface>::IID
32741            || iid == &<ICoreWebView2Profile5 as windows_core::Interface>::IID
32742            || iid == &<ICoreWebView2Profile6 as windows_core::Interface>::IID
32743            || iid == &<ICoreWebView2Profile7 as windows_core::Interface>::IID
32744    }
32745}
32746impl windows_core::RuntimeName for ICoreWebView2Profile8 {}
32747windows_core::imp::define_interface!(
32748    ICoreWebView2ProfileAddBrowserExtensionCompletedHandler,
32749    ICoreWebView2ProfileAddBrowserExtensionCompletedHandler_Vtbl,
32750    0xdf1aab27_82b9_4ab6_aae8_017a49398c14
32751);
32752windows_core::imp::interface_hierarchy!(
32753    ICoreWebView2ProfileAddBrowserExtensionCompletedHandler,
32754    windows_core::IUnknown
32755);
32756impl ICoreWebView2ProfileAddBrowserExtensionCompletedHandler {
32757    pub unsafe fn Invoke<P1>(
32758        &self,
32759        errorcode: windows_core::HRESULT,
32760        result: P1,
32761    ) -> windows_core::Result<()>
32762    where
32763        P1: windows_core::Param<ICoreWebView2BrowserExtension>,
32764    {
32765        unsafe {
32766            (windows_core::Interface::vtable(self).Invoke)(
32767                windows_core::Interface::as_raw(self),
32768                errorcode,
32769                result.param().abi(),
32770            )
32771            .ok()
32772        }
32773    }
32774}
32775#[repr(C)]
32776#[doc(hidden)]
32777pub struct ICoreWebView2ProfileAddBrowserExtensionCompletedHandler_Vtbl {
32778    pub base__: windows_core::IUnknown_Vtbl,
32779    pub Invoke: unsafe extern "system" fn(
32780        *mut core::ffi::c_void,
32781        windows_core::HRESULT,
32782        *mut core::ffi::c_void,
32783    ) -> windows_core::HRESULT,
32784}
32785pub trait ICoreWebView2ProfileAddBrowserExtensionCompletedHandler_Impl:
32786    windows_core::IUnknownImpl
32787{
32788    fn Invoke(
32789        &self,
32790        errorcode: windows_core::HRESULT,
32791        result: windows_core::Ref<ICoreWebView2BrowserExtension>,
32792    ) -> windows_core::Result<()>;
32793}
32794impl ICoreWebView2ProfileAddBrowserExtensionCompletedHandler_Vtbl {
32795    pub const fn new<
32796        Identity: ICoreWebView2ProfileAddBrowserExtensionCompletedHandler_Impl,
32797        const OFFSET: isize,
32798    >() -> Self {
32799        unsafe extern "system" fn Invoke<
32800            Identity: ICoreWebView2ProfileAddBrowserExtensionCompletedHandler_Impl,
32801            const OFFSET: isize,
32802        >(
32803            this: *mut core::ffi::c_void,
32804            errorcode: windows_core::HRESULT,
32805            result: *mut core::ffi::c_void,
32806        ) -> windows_core::HRESULT {
32807            unsafe {
32808                let this: &Identity =
32809                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
32810                ICoreWebView2ProfileAddBrowserExtensionCompletedHandler_Impl::Invoke(
32811                    this,
32812                    core::mem::transmute_copy(&errorcode),
32813                    core::mem::transmute_copy(&result),
32814                )
32815                .into()
32816            }
32817        }
32818        Self {
32819            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
32820            Invoke: Invoke::<Identity, OFFSET>,
32821        }
32822    }
32823    pub fn matches(iid: &windows_core::GUID) -> bool {
32824        iid == & < ICoreWebView2ProfileAddBrowserExtensionCompletedHandler as windows_core::Interface >::IID
32825    }
32826}
32827impl windows_core::RuntimeName for ICoreWebView2ProfileAddBrowserExtensionCompletedHandler {}
32828windows_core::imp::define_interface!(
32829    ICoreWebView2ProfileDeletedEventHandler,
32830    ICoreWebView2ProfileDeletedEventHandler_Vtbl,
32831    0xdf35055d_772e_4dbe_b743_5fbf74a2b258
32832);
32833windows_core::imp::interface_hierarchy!(
32834    ICoreWebView2ProfileDeletedEventHandler,
32835    windows_core::IUnknown
32836);
32837impl ICoreWebView2ProfileDeletedEventHandler {
32838    pub unsafe fn Invoke<P0, P1>(&self, sender: P0, args: P1) -> windows_core::Result<()>
32839    where
32840        P0: windows_core::Param<ICoreWebView2Profile>,
32841        P1: windows_core::Param<windows_core::IUnknown>,
32842    {
32843        unsafe {
32844            (windows_core::Interface::vtable(self).Invoke)(
32845                windows_core::Interface::as_raw(self),
32846                sender.param().abi(),
32847                args.param().abi(),
32848            )
32849            .ok()
32850        }
32851    }
32852}
32853#[repr(C)]
32854#[doc(hidden)]
32855pub struct ICoreWebView2ProfileDeletedEventHandler_Vtbl {
32856    pub base__: windows_core::IUnknown_Vtbl,
32857    pub Invoke: unsafe extern "system" fn(
32858        *mut core::ffi::c_void,
32859        *mut core::ffi::c_void,
32860        *mut core::ffi::c_void,
32861    ) -> windows_core::HRESULT,
32862}
32863pub trait ICoreWebView2ProfileDeletedEventHandler_Impl: windows_core::IUnknownImpl {
32864    fn Invoke(
32865        &self,
32866        sender: windows_core::Ref<ICoreWebView2Profile>,
32867        args: windows_core::Ref<windows_core::IUnknown>,
32868    ) -> windows_core::Result<()>;
32869}
32870impl ICoreWebView2ProfileDeletedEventHandler_Vtbl {
32871    pub const fn new<
32872        Identity: ICoreWebView2ProfileDeletedEventHandler_Impl,
32873        const OFFSET: isize,
32874    >() -> Self {
32875        unsafe extern "system" fn Invoke<
32876            Identity: ICoreWebView2ProfileDeletedEventHandler_Impl,
32877            const OFFSET: isize,
32878        >(
32879            this: *mut core::ffi::c_void,
32880            sender: *mut core::ffi::c_void,
32881            args: *mut core::ffi::c_void,
32882        ) -> windows_core::HRESULT {
32883            unsafe {
32884                let this: &Identity =
32885                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
32886                ICoreWebView2ProfileDeletedEventHandler_Impl::Invoke(
32887                    this,
32888                    core::mem::transmute_copy(&sender),
32889                    core::mem::transmute_copy(&args),
32890                )
32891                .into()
32892            }
32893        }
32894        Self {
32895            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
32896            Invoke: Invoke::<Identity, OFFSET>,
32897        }
32898    }
32899    pub fn matches(iid: &windows_core::GUID) -> bool {
32900        iid == &<ICoreWebView2ProfileDeletedEventHandler as windows_core::Interface>::IID
32901    }
32902}
32903impl windows_core::RuntimeName for ICoreWebView2ProfileDeletedEventHandler {}
32904windows_core::imp::define_interface!(
32905    ICoreWebView2ProfileGetBrowserExtensionsCompletedHandler,
32906    ICoreWebView2ProfileGetBrowserExtensionsCompletedHandler_Vtbl,
32907    0xfce16a1c_f107_4601_8b75_fc4940ae25d0
32908);
32909windows_core::imp::interface_hierarchy!(
32910    ICoreWebView2ProfileGetBrowserExtensionsCompletedHandler,
32911    windows_core::IUnknown
32912);
32913impl ICoreWebView2ProfileGetBrowserExtensionsCompletedHandler {
32914    pub unsafe fn Invoke<P1>(
32915        &self,
32916        errorcode: windows_core::HRESULT,
32917        result: P1,
32918    ) -> windows_core::Result<()>
32919    where
32920        P1: windows_core::Param<ICoreWebView2BrowserExtensionList>,
32921    {
32922        unsafe {
32923            (windows_core::Interface::vtable(self).Invoke)(
32924                windows_core::Interface::as_raw(self),
32925                errorcode,
32926                result.param().abi(),
32927            )
32928            .ok()
32929        }
32930    }
32931}
32932#[repr(C)]
32933#[doc(hidden)]
32934pub struct ICoreWebView2ProfileGetBrowserExtensionsCompletedHandler_Vtbl {
32935    pub base__: windows_core::IUnknown_Vtbl,
32936    pub Invoke: unsafe extern "system" fn(
32937        *mut core::ffi::c_void,
32938        windows_core::HRESULT,
32939        *mut core::ffi::c_void,
32940    ) -> windows_core::HRESULT,
32941}
32942pub trait ICoreWebView2ProfileGetBrowserExtensionsCompletedHandler_Impl:
32943    windows_core::IUnknownImpl
32944{
32945    fn Invoke(
32946        &self,
32947        errorcode: windows_core::HRESULT,
32948        result: windows_core::Ref<ICoreWebView2BrowserExtensionList>,
32949    ) -> windows_core::Result<()>;
32950}
32951impl ICoreWebView2ProfileGetBrowserExtensionsCompletedHandler_Vtbl {
32952    pub const fn new<
32953        Identity: ICoreWebView2ProfileGetBrowserExtensionsCompletedHandler_Impl,
32954        const OFFSET: isize,
32955    >() -> Self {
32956        unsafe extern "system" fn Invoke<
32957            Identity: ICoreWebView2ProfileGetBrowserExtensionsCompletedHandler_Impl,
32958            const OFFSET: isize,
32959        >(
32960            this: *mut core::ffi::c_void,
32961            errorcode: windows_core::HRESULT,
32962            result: *mut core::ffi::c_void,
32963        ) -> windows_core::HRESULT {
32964            unsafe {
32965                let this: &Identity =
32966                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
32967                ICoreWebView2ProfileGetBrowserExtensionsCompletedHandler_Impl::Invoke(
32968                    this,
32969                    core::mem::transmute_copy(&errorcode),
32970                    core::mem::transmute_copy(&result),
32971                )
32972                .into()
32973            }
32974        }
32975        Self {
32976            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
32977            Invoke: Invoke::<Identity, OFFSET>,
32978        }
32979    }
32980    pub fn matches(iid: &windows_core::GUID) -> bool {
32981        iid == & < ICoreWebView2ProfileGetBrowserExtensionsCompletedHandler as windows_core::Interface >::IID
32982    }
32983}
32984impl windows_core::RuntimeName for ICoreWebView2ProfileGetBrowserExtensionsCompletedHandler {}
32985windows_core::imp::define_interface!(
32986    ICoreWebView2RasterizationScaleChangedEventHandler,
32987    ICoreWebView2RasterizationScaleChangedEventHandler_Vtbl,
32988    0x9c98c8b1_ac53_427e_a345_3049b5524bbe
32989);
32990windows_core::imp::interface_hierarchy!(
32991    ICoreWebView2RasterizationScaleChangedEventHandler,
32992    windows_core::IUnknown
32993);
32994impl ICoreWebView2RasterizationScaleChangedEventHandler {
32995    pub unsafe fn Invoke<P0, P1>(&self, sender: P0, args: P1) -> windows_core::Result<()>
32996    where
32997        P0: windows_core::Param<ICoreWebView2Controller>,
32998        P1: windows_core::Param<windows_core::IUnknown>,
32999    {
33000        unsafe {
33001            (windows_core::Interface::vtable(self).Invoke)(
33002                windows_core::Interface::as_raw(self),
33003                sender.param().abi(),
33004                args.param().abi(),
33005            )
33006            .ok()
33007        }
33008    }
33009}
33010#[repr(C)]
33011#[doc(hidden)]
33012pub struct ICoreWebView2RasterizationScaleChangedEventHandler_Vtbl {
33013    pub base__: windows_core::IUnknown_Vtbl,
33014    pub Invoke: unsafe extern "system" fn(
33015        *mut core::ffi::c_void,
33016        *mut core::ffi::c_void,
33017        *mut core::ffi::c_void,
33018    ) -> windows_core::HRESULT,
33019}
33020pub trait ICoreWebView2RasterizationScaleChangedEventHandler_Impl:
33021    windows_core::IUnknownImpl
33022{
33023    fn Invoke(
33024        &self,
33025        sender: windows_core::Ref<ICoreWebView2Controller>,
33026        args: windows_core::Ref<windows_core::IUnknown>,
33027    ) -> windows_core::Result<()>;
33028}
33029impl ICoreWebView2RasterizationScaleChangedEventHandler_Vtbl {
33030    pub const fn new<
33031        Identity: ICoreWebView2RasterizationScaleChangedEventHandler_Impl,
33032        const OFFSET: isize,
33033    >() -> Self {
33034        unsafe extern "system" fn Invoke<
33035            Identity: ICoreWebView2RasterizationScaleChangedEventHandler_Impl,
33036            const OFFSET: isize,
33037        >(
33038            this: *mut core::ffi::c_void,
33039            sender: *mut core::ffi::c_void,
33040            args: *mut core::ffi::c_void,
33041        ) -> windows_core::HRESULT {
33042            unsafe {
33043                let this: &Identity =
33044                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
33045                ICoreWebView2RasterizationScaleChangedEventHandler_Impl::Invoke(
33046                    this,
33047                    core::mem::transmute_copy(&sender),
33048                    core::mem::transmute_copy(&args),
33049                )
33050                .into()
33051            }
33052        }
33053        Self {
33054            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
33055            Invoke: Invoke::<Identity, OFFSET>,
33056        }
33057    }
33058    pub fn matches(iid: &windows_core::GUID) -> bool {
33059        iid == &<ICoreWebView2RasterizationScaleChangedEventHandler as windows_core::Interface>::IID
33060    }
33061}
33062impl windows_core::RuntimeName for ICoreWebView2RasterizationScaleChangedEventHandler {}
33063windows_core::imp::define_interface!(
33064    ICoreWebView2RegionRectCollectionView,
33065    ICoreWebView2RegionRectCollectionView_Vtbl,
33066    0x333353b8_48bf_4449_8fcc_22697faf5753
33067);
33068windows_core::imp::interface_hierarchy!(
33069    ICoreWebView2RegionRectCollectionView,
33070    windows_core::IUnknown
33071);
33072impl ICoreWebView2RegionRectCollectionView {
33073    pub unsafe fn Count(&self, value: *mut u32) -> windows_core::Result<()> {
33074        unsafe {
33075            (windows_core::Interface::vtable(self).Count)(
33076                windows_core::Interface::as_raw(self),
33077                value as _,
33078            )
33079            .ok()
33080        }
33081    }
33082    pub unsafe fn GetValueAtIndex(
33083        &self,
33084        index: u32,
33085        value: *mut windows::Win32::Foundation::RECT,
33086    ) -> windows_core::Result<()> {
33087        unsafe {
33088            (windows_core::Interface::vtable(self).GetValueAtIndex)(
33089                windows_core::Interface::as_raw(self),
33090                index,
33091                value as _,
33092            )
33093            .ok()
33094        }
33095    }
33096}
33097#[repr(C)]
33098#[doc(hidden)]
33099pub struct ICoreWebView2RegionRectCollectionView_Vtbl {
33100    pub base__: windows_core::IUnknown_Vtbl,
33101    pub Count: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
33102    pub GetValueAtIndex: unsafe extern "system" fn(
33103        *mut core::ffi::c_void,
33104        u32,
33105        *mut windows::Win32::Foundation::RECT,
33106    ) -> windows_core::HRESULT,
33107}
33108pub trait ICoreWebView2RegionRectCollectionView_Impl: windows_core::IUnknownImpl {
33109    fn Count(&self, value: *mut u32) -> windows_core::Result<()>;
33110    fn GetValueAtIndex(
33111        &self,
33112        index: u32,
33113        value: *mut windows::Win32::Foundation::RECT,
33114    ) -> windows_core::Result<()>;
33115}
33116impl ICoreWebView2RegionRectCollectionView_Vtbl {
33117    pub const fn new<Identity: ICoreWebView2RegionRectCollectionView_Impl, const OFFSET: isize>(
33118    ) -> Self {
33119        unsafe extern "system" fn Count<
33120            Identity: ICoreWebView2RegionRectCollectionView_Impl,
33121            const OFFSET: isize,
33122        >(
33123            this: *mut core::ffi::c_void,
33124            value: *mut u32,
33125        ) -> windows_core::HRESULT {
33126            unsafe {
33127                let this: &Identity =
33128                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
33129                ICoreWebView2RegionRectCollectionView_Impl::Count(
33130                    this,
33131                    core::mem::transmute_copy(&value),
33132                )
33133                .into()
33134            }
33135        }
33136        unsafe extern "system" fn GetValueAtIndex<
33137            Identity: ICoreWebView2RegionRectCollectionView_Impl,
33138            const OFFSET: isize,
33139        >(
33140            this: *mut core::ffi::c_void,
33141            index: u32,
33142            value: *mut windows::Win32::Foundation::RECT,
33143        ) -> windows_core::HRESULT {
33144            unsafe {
33145                let this: &Identity =
33146                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
33147                ICoreWebView2RegionRectCollectionView_Impl::GetValueAtIndex(
33148                    this,
33149                    core::mem::transmute_copy(&index),
33150                    core::mem::transmute_copy(&value),
33151                )
33152                .into()
33153            }
33154        }
33155        Self {
33156            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
33157            Count: Count::<Identity, OFFSET>,
33158            GetValueAtIndex: GetValueAtIndex::<Identity, OFFSET>,
33159        }
33160    }
33161    pub fn matches(iid: &windows_core::GUID) -> bool {
33162        iid == &<ICoreWebView2RegionRectCollectionView as windows_core::Interface>::IID
33163    }
33164}
33165impl windows_core::RuntimeName for ICoreWebView2RegionRectCollectionView {}
33166windows_core::imp::define_interface!(
33167    ICoreWebView2SaveAsUIShowingEventArgs,
33168    ICoreWebView2SaveAsUIShowingEventArgs_Vtbl,
33169    0x55902952_0e0d_5aaa_a7d0_e833cdb34f62
33170);
33171windows_core::imp::interface_hierarchy!(
33172    ICoreWebView2SaveAsUIShowingEventArgs,
33173    windows_core::IUnknown
33174);
33175impl ICoreWebView2SaveAsUIShowingEventArgs {
33176    pub unsafe fn ContentMimeType(
33177        &self,
33178        value: *mut windows_core::PWSTR,
33179    ) -> windows_core::Result<()> {
33180        unsafe {
33181            (windows_core::Interface::vtable(self).ContentMimeType)(
33182                windows_core::Interface::as_raw(self),
33183                value as _,
33184            )
33185            .ok()
33186        }
33187    }
33188    pub unsafe fn SetCancel(&self, value: bool) -> windows_core::Result<()> {
33189        unsafe {
33190            (windows_core::Interface::vtable(self).SetCancel)(
33191                windows_core::Interface::as_raw(self),
33192                value.into(),
33193            )
33194            .ok()
33195        }
33196    }
33197    pub unsafe fn Cancel(&self, value: *mut windows_core::BOOL) -> windows_core::Result<()> {
33198        unsafe {
33199            (windows_core::Interface::vtable(self).Cancel)(
33200                windows_core::Interface::as_raw(self),
33201                value as _,
33202            )
33203            .ok()
33204        }
33205    }
33206    pub unsafe fn SetSuppressDefaultDialog(&self, value: bool) -> windows_core::Result<()> {
33207        unsafe {
33208            (windows_core::Interface::vtable(self).SetSuppressDefaultDialog)(
33209                windows_core::Interface::as_raw(self),
33210                value.into(),
33211            )
33212            .ok()
33213        }
33214    }
33215    pub unsafe fn SuppressDefaultDialog(
33216        &self,
33217        value: *mut windows_core::BOOL,
33218    ) -> windows_core::Result<()> {
33219        unsafe {
33220            (windows_core::Interface::vtable(self).SuppressDefaultDialog)(
33221                windows_core::Interface::as_raw(self),
33222                value as _,
33223            )
33224            .ok()
33225        }
33226    }
33227    pub unsafe fn GetDeferral(&self) -> windows_core::Result<ICoreWebView2Deferral> {
33228        unsafe {
33229            let mut result__ = core::mem::zeroed();
33230            (windows_core::Interface::vtable(self).GetDeferral)(
33231                windows_core::Interface::as_raw(self),
33232                &mut result__,
33233            )
33234            .and_then(|| windows_core::Type::from_abi(result__))
33235        }
33236    }
33237    pub unsafe fn SetSaveAsFilePath<P0>(&self, value: P0) -> windows_core::Result<()>
33238    where
33239        P0: windows_core::Param<windows_core::PCWSTR>,
33240    {
33241        unsafe {
33242            (windows_core::Interface::vtable(self).SetSaveAsFilePath)(
33243                windows_core::Interface::as_raw(self),
33244                value.param().abi(),
33245            )
33246            .ok()
33247        }
33248    }
33249    pub unsafe fn SaveAsFilePath(
33250        &self,
33251        value: *mut windows_core::PWSTR,
33252    ) -> windows_core::Result<()> {
33253        unsafe {
33254            (windows_core::Interface::vtable(self).SaveAsFilePath)(
33255                windows_core::Interface::as_raw(self),
33256                value as _,
33257            )
33258            .ok()
33259        }
33260    }
33261    pub unsafe fn SetAllowReplace(&self, value: bool) -> windows_core::Result<()> {
33262        unsafe {
33263            (windows_core::Interface::vtable(self).SetAllowReplace)(
33264                windows_core::Interface::as_raw(self),
33265                value.into(),
33266            )
33267            .ok()
33268        }
33269    }
33270    pub unsafe fn AllowReplace(&self, value: *mut windows_core::BOOL) -> windows_core::Result<()> {
33271        unsafe {
33272            (windows_core::Interface::vtable(self).AllowReplace)(
33273                windows_core::Interface::as_raw(self),
33274                value as _,
33275            )
33276            .ok()
33277        }
33278    }
33279    pub unsafe fn SetKind(&self, value: COREWEBVIEW2_SAVE_AS_KIND) -> windows_core::Result<()> {
33280        unsafe {
33281            (windows_core::Interface::vtable(self).SetKind)(
33282                windows_core::Interface::as_raw(self),
33283                value,
33284            )
33285            .ok()
33286        }
33287    }
33288    pub unsafe fn Kind(&self, value: *mut COREWEBVIEW2_SAVE_AS_KIND) -> windows_core::Result<()> {
33289        unsafe {
33290            (windows_core::Interface::vtable(self).Kind)(
33291                windows_core::Interface::as_raw(self),
33292                value as _,
33293            )
33294            .ok()
33295        }
33296    }
33297}
33298#[repr(C)]
33299#[doc(hidden)]
33300pub struct ICoreWebView2SaveAsUIShowingEventArgs_Vtbl {
33301    pub base__: windows_core::IUnknown_Vtbl,
33302    pub ContentMimeType: unsafe extern "system" fn(
33303        *mut core::ffi::c_void,
33304        *mut windows_core::PWSTR,
33305    ) -> windows_core::HRESULT,
33306    pub SetCancel: unsafe extern "system" fn(
33307        *mut core::ffi::c_void,
33308        windows_core::BOOL,
33309    ) -> windows_core::HRESULT,
33310    pub Cancel: unsafe extern "system" fn(
33311        *mut core::ffi::c_void,
33312        *mut windows_core::BOOL,
33313    ) -> windows_core::HRESULT,
33314    pub SetSuppressDefaultDialog: unsafe extern "system" fn(
33315        *mut core::ffi::c_void,
33316        windows_core::BOOL,
33317    ) -> windows_core::HRESULT,
33318    pub SuppressDefaultDialog: unsafe extern "system" fn(
33319        *mut core::ffi::c_void,
33320        *mut windows_core::BOOL,
33321    ) -> windows_core::HRESULT,
33322    pub GetDeferral: unsafe extern "system" fn(
33323        *mut core::ffi::c_void,
33324        *mut *mut core::ffi::c_void,
33325    ) -> windows_core::HRESULT,
33326    pub SetSaveAsFilePath: unsafe extern "system" fn(
33327        *mut core::ffi::c_void,
33328        windows_core::PCWSTR,
33329    ) -> windows_core::HRESULT,
33330    pub SaveAsFilePath: unsafe extern "system" fn(
33331        *mut core::ffi::c_void,
33332        *mut windows_core::PWSTR,
33333    ) -> windows_core::HRESULT,
33334    pub SetAllowReplace: unsafe extern "system" fn(
33335        *mut core::ffi::c_void,
33336        windows_core::BOOL,
33337    ) -> windows_core::HRESULT,
33338    pub AllowReplace: unsafe extern "system" fn(
33339        *mut core::ffi::c_void,
33340        *mut windows_core::BOOL,
33341    ) -> windows_core::HRESULT,
33342    pub SetKind: unsafe extern "system" fn(
33343        *mut core::ffi::c_void,
33344        COREWEBVIEW2_SAVE_AS_KIND,
33345    ) -> windows_core::HRESULT,
33346    pub Kind: unsafe extern "system" fn(
33347        *mut core::ffi::c_void,
33348        *mut COREWEBVIEW2_SAVE_AS_KIND,
33349    ) -> windows_core::HRESULT,
33350}
33351pub trait ICoreWebView2SaveAsUIShowingEventArgs_Impl: windows_core::IUnknownImpl {
33352    fn ContentMimeType(&self, value: *mut windows_core::PWSTR) -> windows_core::Result<()>;
33353    fn SetCancel(&self, value: windows_core::BOOL) -> windows_core::Result<()>;
33354    fn Cancel(&self, value: *mut windows_core::BOOL) -> windows_core::Result<()>;
33355    fn SetSuppressDefaultDialog(&self, value: windows_core::BOOL) -> windows_core::Result<()>;
33356    fn SuppressDefaultDialog(&self, value: *mut windows_core::BOOL) -> windows_core::Result<()>;
33357    fn GetDeferral(&self) -> windows_core::Result<ICoreWebView2Deferral>;
33358    fn SetSaveAsFilePath(&self, value: &windows_core::PCWSTR) -> windows_core::Result<()>;
33359    fn SaveAsFilePath(&self, value: *mut windows_core::PWSTR) -> windows_core::Result<()>;
33360    fn SetAllowReplace(&self, value: windows_core::BOOL) -> windows_core::Result<()>;
33361    fn AllowReplace(&self, value: *mut windows_core::BOOL) -> windows_core::Result<()>;
33362    fn SetKind(&self, value: COREWEBVIEW2_SAVE_AS_KIND) -> windows_core::Result<()>;
33363    fn Kind(&self, value: *mut COREWEBVIEW2_SAVE_AS_KIND) -> windows_core::Result<()>;
33364}
33365impl ICoreWebView2SaveAsUIShowingEventArgs_Vtbl {
33366    pub const fn new<Identity: ICoreWebView2SaveAsUIShowingEventArgs_Impl, const OFFSET: isize>(
33367    ) -> Self {
33368        unsafe extern "system" fn ContentMimeType<
33369            Identity: ICoreWebView2SaveAsUIShowingEventArgs_Impl,
33370            const OFFSET: isize,
33371        >(
33372            this: *mut core::ffi::c_void,
33373            value: *mut windows_core::PWSTR,
33374        ) -> windows_core::HRESULT {
33375            unsafe {
33376                let this: &Identity =
33377                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
33378                ICoreWebView2SaveAsUIShowingEventArgs_Impl::ContentMimeType(
33379                    this,
33380                    core::mem::transmute_copy(&value),
33381                )
33382                .into()
33383            }
33384        }
33385        unsafe extern "system" fn SetCancel<
33386            Identity: ICoreWebView2SaveAsUIShowingEventArgs_Impl,
33387            const OFFSET: isize,
33388        >(
33389            this: *mut core::ffi::c_void,
33390            value: windows_core::BOOL,
33391        ) -> windows_core::HRESULT {
33392            unsafe {
33393                let this: &Identity =
33394                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
33395                ICoreWebView2SaveAsUIShowingEventArgs_Impl::SetCancel(
33396                    this,
33397                    core::mem::transmute_copy(&value),
33398                )
33399                .into()
33400            }
33401        }
33402        unsafe extern "system" fn Cancel<
33403            Identity: ICoreWebView2SaveAsUIShowingEventArgs_Impl,
33404            const OFFSET: isize,
33405        >(
33406            this: *mut core::ffi::c_void,
33407            value: *mut windows_core::BOOL,
33408        ) -> windows_core::HRESULT {
33409            unsafe {
33410                let this: &Identity =
33411                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
33412                ICoreWebView2SaveAsUIShowingEventArgs_Impl::Cancel(
33413                    this,
33414                    core::mem::transmute_copy(&value),
33415                )
33416                .into()
33417            }
33418        }
33419        unsafe extern "system" fn SetSuppressDefaultDialog<
33420            Identity: ICoreWebView2SaveAsUIShowingEventArgs_Impl,
33421            const OFFSET: isize,
33422        >(
33423            this: *mut core::ffi::c_void,
33424            value: windows_core::BOOL,
33425        ) -> windows_core::HRESULT {
33426            unsafe {
33427                let this: &Identity =
33428                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
33429                ICoreWebView2SaveAsUIShowingEventArgs_Impl::SetSuppressDefaultDialog(
33430                    this,
33431                    core::mem::transmute_copy(&value),
33432                )
33433                .into()
33434            }
33435        }
33436        unsafe extern "system" fn SuppressDefaultDialog<
33437            Identity: ICoreWebView2SaveAsUIShowingEventArgs_Impl,
33438            const OFFSET: isize,
33439        >(
33440            this: *mut core::ffi::c_void,
33441            value: *mut windows_core::BOOL,
33442        ) -> windows_core::HRESULT {
33443            unsafe {
33444                let this: &Identity =
33445                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
33446                ICoreWebView2SaveAsUIShowingEventArgs_Impl::SuppressDefaultDialog(
33447                    this,
33448                    core::mem::transmute_copy(&value),
33449                )
33450                .into()
33451            }
33452        }
33453        unsafe extern "system" fn GetDeferral<
33454            Identity: ICoreWebView2SaveAsUIShowingEventArgs_Impl,
33455            const OFFSET: isize,
33456        >(
33457            this: *mut core::ffi::c_void,
33458            value: *mut *mut core::ffi::c_void,
33459        ) -> windows_core::HRESULT {
33460            unsafe {
33461                let this: &Identity =
33462                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
33463                match ICoreWebView2SaveAsUIShowingEventArgs_Impl::GetDeferral(this) {
33464                    Ok(ok__) => {
33465                        value.write(core::mem::transmute(ok__));
33466                        windows_core::HRESULT(0)
33467                    }
33468                    Err(err) => err.into(),
33469                }
33470            }
33471        }
33472        unsafe extern "system" fn SetSaveAsFilePath<
33473            Identity: ICoreWebView2SaveAsUIShowingEventArgs_Impl,
33474            const OFFSET: isize,
33475        >(
33476            this: *mut core::ffi::c_void,
33477            value: windows_core::PCWSTR,
33478        ) -> windows_core::HRESULT {
33479            unsafe {
33480                let this: &Identity =
33481                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
33482                ICoreWebView2SaveAsUIShowingEventArgs_Impl::SetSaveAsFilePath(
33483                    this,
33484                    core::mem::transmute(&value),
33485                )
33486                .into()
33487            }
33488        }
33489        unsafe extern "system" fn SaveAsFilePath<
33490            Identity: ICoreWebView2SaveAsUIShowingEventArgs_Impl,
33491            const OFFSET: isize,
33492        >(
33493            this: *mut core::ffi::c_void,
33494            value: *mut windows_core::PWSTR,
33495        ) -> windows_core::HRESULT {
33496            unsafe {
33497                let this: &Identity =
33498                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
33499                ICoreWebView2SaveAsUIShowingEventArgs_Impl::SaveAsFilePath(
33500                    this,
33501                    core::mem::transmute_copy(&value),
33502                )
33503                .into()
33504            }
33505        }
33506        unsafe extern "system" fn SetAllowReplace<
33507            Identity: ICoreWebView2SaveAsUIShowingEventArgs_Impl,
33508            const OFFSET: isize,
33509        >(
33510            this: *mut core::ffi::c_void,
33511            value: windows_core::BOOL,
33512        ) -> windows_core::HRESULT {
33513            unsafe {
33514                let this: &Identity =
33515                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
33516                ICoreWebView2SaveAsUIShowingEventArgs_Impl::SetAllowReplace(
33517                    this,
33518                    core::mem::transmute_copy(&value),
33519                )
33520                .into()
33521            }
33522        }
33523        unsafe extern "system" fn AllowReplace<
33524            Identity: ICoreWebView2SaveAsUIShowingEventArgs_Impl,
33525            const OFFSET: isize,
33526        >(
33527            this: *mut core::ffi::c_void,
33528            value: *mut windows_core::BOOL,
33529        ) -> windows_core::HRESULT {
33530            unsafe {
33531                let this: &Identity =
33532                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
33533                ICoreWebView2SaveAsUIShowingEventArgs_Impl::AllowReplace(
33534                    this,
33535                    core::mem::transmute_copy(&value),
33536                )
33537                .into()
33538            }
33539        }
33540        unsafe extern "system" fn SetKind<
33541            Identity: ICoreWebView2SaveAsUIShowingEventArgs_Impl,
33542            const OFFSET: isize,
33543        >(
33544            this: *mut core::ffi::c_void,
33545            value: COREWEBVIEW2_SAVE_AS_KIND,
33546        ) -> windows_core::HRESULT {
33547            unsafe {
33548                let this: &Identity =
33549                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
33550                ICoreWebView2SaveAsUIShowingEventArgs_Impl::SetKind(
33551                    this,
33552                    core::mem::transmute_copy(&value),
33553                )
33554                .into()
33555            }
33556        }
33557        unsafe extern "system" fn Kind<
33558            Identity: ICoreWebView2SaveAsUIShowingEventArgs_Impl,
33559            const OFFSET: isize,
33560        >(
33561            this: *mut core::ffi::c_void,
33562            value: *mut COREWEBVIEW2_SAVE_AS_KIND,
33563        ) -> windows_core::HRESULT {
33564            unsafe {
33565                let this: &Identity =
33566                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
33567                ICoreWebView2SaveAsUIShowingEventArgs_Impl::Kind(
33568                    this,
33569                    core::mem::transmute_copy(&value),
33570                )
33571                .into()
33572            }
33573        }
33574        Self {
33575            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
33576            ContentMimeType: ContentMimeType::<Identity, OFFSET>,
33577            SetCancel: SetCancel::<Identity, OFFSET>,
33578            Cancel: Cancel::<Identity, OFFSET>,
33579            SetSuppressDefaultDialog: SetSuppressDefaultDialog::<Identity, OFFSET>,
33580            SuppressDefaultDialog: SuppressDefaultDialog::<Identity, OFFSET>,
33581            GetDeferral: GetDeferral::<Identity, OFFSET>,
33582            SetSaveAsFilePath: SetSaveAsFilePath::<Identity, OFFSET>,
33583            SaveAsFilePath: SaveAsFilePath::<Identity, OFFSET>,
33584            SetAllowReplace: SetAllowReplace::<Identity, OFFSET>,
33585            AllowReplace: AllowReplace::<Identity, OFFSET>,
33586            SetKind: SetKind::<Identity, OFFSET>,
33587            Kind: Kind::<Identity, OFFSET>,
33588        }
33589    }
33590    pub fn matches(iid: &windows_core::GUID) -> bool {
33591        iid == &<ICoreWebView2SaveAsUIShowingEventArgs as windows_core::Interface>::IID
33592    }
33593}
33594impl windows_core::RuntimeName for ICoreWebView2SaveAsUIShowingEventArgs {}
33595windows_core::imp::define_interface!(
33596    ICoreWebView2SaveAsUIShowingEventHandler,
33597    ICoreWebView2SaveAsUIShowingEventHandler_Vtbl,
33598    0x6baa177e_3a2e_5ccf_9a13_fad676cd0522
33599);
33600windows_core::imp::interface_hierarchy!(
33601    ICoreWebView2SaveAsUIShowingEventHandler,
33602    windows_core::IUnknown
33603);
33604impl ICoreWebView2SaveAsUIShowingEventHandler {
33605    pub unsafe fn Invoke<P0, P1>(&self, sender: P0, args: P1) -> windows_core::Result<()>
33606    where
33607        P0: windows_core::Param<ICoreWebView2>,
33608        P1: windows_core::Param<ICoreWebView2SaveAsUIShowingEventArgs>,
33609    {
33610        unsafe {
33611            (windows_core::Interface::vtable(self).Invoke)(
33612                windows_core::Interface::as_raw(self),
33613                sender.param().abi(),
33614                args.param().abi(),
33615            )
33616            .ok()
33617        }
33618    }
33619}
33620#[repr(C)]
33621#[doc(hidden)]
33622pub struct ICoreWebView2SaveAsUIShowingEventHandler_Vtbl {
33623    pub base__: windows_core::IUnknown_Vtbl,
33624    pub Invoke: unsafe extern "system" fn(
33625        *mut core::ffi::c_void,
33626        *mut core::ffi::c_void,
33627        *mut core::ffi::c_void,
33628    ) -> windows_core::HRESULT,
33629}
33630pub trait ICoreWebView2SaveAsUIShowingEventHandler_Impl: windows_core::IUnknownImpl {
33631    fn Invoke(
33632        &self,
33633        sender: windows_core::Ref<ICoreWebView2>,
33634        args: windows_core::Ref<ICoreWebView2SaveAsUIShowingEventArgs>,
33635    ) -> windows_core::Result<()>;
33636}
33637impl ICoreWebView2SaveAsUIShowingEventHandler_Vtbl {
33638    pub const fn new<
33639        Identity: ICoreWebView2SaveAsUIShowingEventHandler_Impl,
33640        const OFFSET: isize,
33641    >() -> Self {
33642        unsafe extern "system" fn Invoke<
33643            Identity: ICoreWebView2SaveAsUIShowingEventHandler_Impl,
33644            const OFFSET: isize,
33645        >(
33646            this: *mut core::ffi::c_void,
33647            sender: *mut core::ffi::c_void,
33648            args: *mut core::ffi::c_void,
33649        ) -> windows_core::HRESULT {
33650            unsafe {
33651                let this: &Identity =
33652                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
33653                ICoreWebView2SaveAsUIShowingEventHandler_Impl::Invoke(
33654                    this,
33655                    core::mem::transmute_copy(&sender),
33656                    core::mem::transmute_copy(&args),
33657                )
33658                .into()
33659            }
33660        }
33661        Self {
33662            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
33663            Invoke: Invoke::<Identity, OFFSET>,
33664        }
33665    }
33666    pub fn matches(iid: &windows_core::GUID) -> bool {
33667        iid == &<ICoreWebView2SaveAsUIShowingEventHandler as windows_core::Interface>::IID
33668    }
33669}
33670impl windows_core::RuntimeName for ICoreWebView2SaveAsUIShowingEventHandler {}
33671windows_core::imp::define_interface!(
33672    ICoreWebView2SaveFileSecurityCheckStartingEventArgs,
33673    ICoreWebView2SaveFileSecurityCheckStartingEventArgs_Vtbl,
33674    0xcf4ff1d1_5a67_5660_8d63_ef699881ea65
33675);
33676windows_core::imp::interface_hierarchy!(
33677    ICoreWebView2SaveFileSecurityCheckStartingEventArgs,
33678    windows_core::IUnknown
33679);
33680impl ICoreWebView2SaveFileSecurityCheckStartingEventArgs {
33681    pub unsafe fn CancelSave(&self, value: *mut windows_core::BOOL) -> windows_core::Result<()> {
33682        unsafe {
33683            (windows_core::Interface::vtable(self).CancelSave)(
33684                windows_core::Interface::as_raw(self),
33685                value as _,
33686            )
33687            .ok()
33688        }
33689    }
33690    pub unsafe fn SetCancelSave(&self, value: bool) -> windows_core::Result<()> {
33691        unsafe {
33692            (windows_core::Interface::vtable(self).SetCancelSave)(
33693                windows_core::Interface::as_raw(self),
33694                value.into(),
33695            )
33696            .ok()
33697        }
33698    }
33699    pub unsafe fn DocumentOriginUri(
33700        &self,
33701        value: *mut windows_core::PWSTR,
33702    ) -> windows_core::Result<()> {
33703        unsafe {
33704            (windows_core::Interface::vtable(self).DocumentOriginUri)(
33705                windows_core::Interface::as_raw(self),
33706                value as _,
33707            )
33708            .ok()
33709        }
33710    }
33711    pub unsafe fn FileExtension(
33712        &self,
33713        value: *mut windows_core::PWSTR,
33714    ) -> windows_core::Result<()> {
33715        unsafe {
33716            (windows_core::Interface::vtable(self).FileExtension)(
33717                windows_core::Interface::as_raw(self),
33718                value as _,
33719            )
33720            .ok()
33721        }
33722    }
33723    pub unsafe fn FilePath(&self, value: *mut windows_core::PWSTR) -> windows_core::Result<()> {
33724        unsafe {
33725            (windows_core::Interface::vtable(self).FilePath)(
33726                windows_core::Interface::as_raw(self),
33727                value as _,
33728            )
33729            .ok()
33730        }
33731    }
33732    pub unsafe fn SuppressDefaultPolicy(
33733        &self,
33734        value: *mut windows_core::BOOL,
33735    ) -> windows_core::Result<()> {
33736        unsafe {
33737            (windows_core::Interface::vtable(self).SuppressDefaultPolicy)(
33738                windows_core::Interface::as_raw(self),
33739                value as _,
33740            )
33741            .ok()
33742        }
33743    }
33744    pub unsafe fn SetSuppressDefaultPolicy(&self, value: bool) -> windows_core::Result<()> {
33745        unsafe {
33746            (windows_core::Interface::vtable(self).SetSuppressDefaultPolicy)(
33747                windows_core::Interface::as_raw(self),
33748                value.into(),
33749            )
33750            .ok()
33751        }
33752    }
33753    pub unsafe fn GetDeferral(&self) -> windows_core::Result<ICoreWebView2Deferral> {
33754        unsafe {
33755            let mut result__ = core::mem::zeroed();
33756            (windows_core::Interface::vtable(self).GetDeferral)(
33757                windows_core::Interface::as_raw(self),
33758                &mut result__,
33759            )
33760            .and_then(|| windows_core::Type::from_abi(result__))
33761        }
33762    }
33763}
33764#[repr(C)]
33765#[doc(hidden)]
33766pub struct ICoreWebView2SaveFileSecurityCheckStartingEventArgs_Vtbl {
33767    pub base__: windows_core::IUnknown_Vtbl,
33768    pub CancelSave: unsafe extern "system" fn(
33769        *mut core::ffi::c_void,
33770        *mut windows_core::BOOL,
33771    ) -> windows_core::HRESULT,
33772    pub SetCancelSave: unsafe extern "system" fn(
33773        *mut core::ffi::c_void,
33774        windows_core::BOOL,
33775    ) -> windows_core::HRESULT,
33776    pub DocumentOriginUri: unsafe extern "system" fn(
33777        *mut core::ffi::c_void,
33778        *mut windows_core::PWSTR,
33779    ) -> windows_core::HRESULT,
33780    pub FileExtension: unsafe extern "system" fn(
33781        *mut core::ffi::c_void,
33782        *mut windows_core::PWSTR,
33783    ) -> windows_core::HRESULT,
33784    pub FilePath: unsafe extern "system" fn(
33785        *mut core::ffi::c_void,
33786        *mut windows_core::PWSTR,
33787    ) -> windows_core::HRESULT,
33788    pub SuppressDefaultPolicy: unsafe extern "system" fn(
33789        *mut core::ffi::c_void,
33790        *mut windows_core::BOOL,
33791    ) -> windows_core::HRESULT,
33792    pub SetSuppressDefaultPolicy: unsafe extern "system" fn(
33793        *mut core::ffi::c_void,
33794        windows_core::BOOL,
33795    ) -> windows_core::HRESULT,
33796    pub GetDeferral: unsafe extern "system" fn(
33797        *mut core::ffi::c_void,
33798        *mut *mut core::ffi::c_void,
33799    ) -> windows_core::HRESULT,
33800}
33801pub trait ICoreWebView2SaveFileSecurityCheckStartingEventArgs_Impl:
33802    windows_core::IUnknownImpl
33803{
33804    fn CancelSave(&self, value: *mut windows_core::BOOL) -> windows_core::Result<()>;
33805    fn SetCancelSave(&self, value: windows_core::BOOL) -> windows_core::Result<()>;
33806    fn DocumentOriginUri(&self, value: *mut windows_core::PWSTR) -> windows_core::Result<()>;
33807    fn FileExtension(&self, value: *mut windows_core::PWSTR) -> windows_core::Result<()>;
33808    fn FilePath(&self, value: *mut windows_core::PWSTR) -> windows_core::Result<()>;
33809    fn SuppressDefaultPolicy(&self, value: *mut windows_core::BOOL) -> windows_core::Result<()>;
33810    fn SetSuppressDefaultPolicy(&self, value: windows_core::BOOL) -> windows_core::Result<()>;
33811    fn GetDeferral(&self) -> windows_core::Result<ICoreWebView2Deferral>;
33812}
33813impl ICoreWebView2SaveFileSecurityCheckStartingEventArgs_Vtbl {
33814    pub const fn new<
33815        Identity: ICoreWebView2SaveFileSecurityCheckStartingEventArgs_Impl,
33816        const OFFSET: isize,
33817    >() -> Self {
33818        unsafe extern "system" fn CancelSave<
33819            Identity: ICoreWebView2SaveFileSecurityCheckStartingEventArgs_Impl,
33820            const OFFSET: isize,
33821        >(
33822            this: *mut core::ffi::c_void,
33823            value: *mut windows_core::BOOL,
33824        ) -> windows_core::HRESULT {
33825            unsafe {
33826                let this: &Identity =
33827                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
33828                ICoreWebView2SaveFileSecurityCheckStartingEventArgs_Impl::CancelSave(
33829                    this,
33830                    core::mem::transmute_copy(&value),
33831                )
33832                .into()
33833            }
33834        }
33835        unsafe extern "system" fn SetCancelSave<
33836            Identity: ICoreWebView2SaveFileSecurityCheckStartingEventArgs_Impl,
33837            const OFFSET: isize,
33838        >(
33839            this: *mut core::ffi::c_void,
33840            value: windows_core::BOOL,
33841        ) -> windows_core::HRESULT {
33842            unsafe {
33843                let this: &Identity =
33844                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
33845                ICoreWebView2SaveFileSecurityCheckStartingEventArgs_Impl::SetCancelSave(
33846                    this,
33847                    core::mem::transmute_copy(&value),
33848                )
33849                .into()
33850            }
33851        }
33852        unsafe extern "system" fn DocumentOriginUri<
33853            Identity: ICoreWebView2SaveFileSecurityCheckStartingEventArgs_Impl,
33854            const OFFSET: isize,
33855        >(
33856            this: *mut core::ffi::c_void,
33857            value: *mut windows_core::PWSTR,
33858        ) -> windows_core::HRESULT {
33859            unsafe {
33860                let this: &Identity =
33861                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
33862                ICoreWebView2SaveFileSecurityCheckStartingEventArgs_Impl::DocumentOriginUri(
33863                    this,
33864                    core::mem::transmute_copy(&value),
33865                )
33866                .into()
33867            }
33868        }
33869        unsafe extern "system" fn FileExtension<
33870            Identity: ICoreWebView2SaveFileSecurityCheckStartingEventArgs_Impl,
33871            const OFFSET: isize,
33872        >(
33873            this: *mut core::ffi::c_void,
33874            value: *mut windows_core::PWSTR,
33875        ) -> windows_core::HRESULT {
33876            unsafe {
33877                let this: &Identity =
33878                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
33879                ICoreWebView2SaveFileSecurityCheckStartingEventArgs_Impl::FileExtension(
33880                    this,
33881                    core::mem::transmute_copy(&value),
33882                )
33883                .into()
33884            }
33885        }
33886        unsafe extern "system" fn FilePath<
33887            Identity: ICoreWebView2SaveFileSecurityCheckStartingEventArgs_Impl,
33888            const OFFSET: isize,
33889        >(
33890            this: *mut core::ffi::c_void,
33891            value: *mut windows_core::PWSTR,
33892        ) -> windows_core::HRESULT {
33893            unsafe {
33894                let this: &Identity =
33895                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
33896                ICoreWebView2SaveFileSecurityCheckStartingEventArgs_Impl::FilePath(
33897                    this,
33898                    core::mem::transmute_copy(&value),
33899                )
33900                .into()
33901            }
33902        }
33903        unsafe extern "system" fn SuppressDefaultPolicy<
33904            Identity: ICoreWebView2SaveFileSecurityCheckStartingEventArgs_Impl,
33905            const OFFSET: isize,
33906        >(
33907            this: *mut core::ffi::c_void,
33908            value: *mut windows_core::BOOL,
33909        ) -> windows_core::HRESULT {
33910            unsafe {
33911                let this: &Identity =
33912                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
33913                ICoreWebView2SaveFileSecurityCheckStartingEventArgs_Impl::SuppressDefaultPolicy(
33914                    this,
33915                    core::mem::transmute_copy(&value),
33916                )
33917                .into()
33918            }
33919        }
33920        unsafe extern "system" fn SetSuppressDefaultPolicy<
33921            Identity: ICoreWebView2SaveFileSecurityCheckStartingEventArgs_Impl,
33922            const OFFSET: isize,
33923        >(
33924            this: *mut core::ffi::c_void,
33925            value: windows_core::BOOL,
33926        ) -> windows_core::HRESULT {
33927            unsafe {
33928                let this: &Identity =
33929                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
33930                ICoreWebView2SaveFileSecurityCheckStartingEventArgs_Impl::SetSuppressDefaultPolicy(
33931                    this,
33932                    core::mem::transmute_copy(&value),
33933                )
33934                .into()
33935            }
33936        }
33937        unsafe extern "system" fn GetDeferral<
33938            Identity: ICoreWebView2SaveFileSecurityCheckStartingEventArgs_Impl,
33939            const OFFSET: isize,
33940        >(
33941            this: *mut core::ffi::c_void,
33942            value: *mut *mut core::ffi::c_void,
33943        ) -> windows_core::HRESULT {
33944            unsafe {
33945                let this: &Identity =
33946                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
33947                match ICoreWebView2SaveFileSecurityCheckStartingEventArgs_Impl::GetDeferral(this) {
33948                    Ok(ok__) => {
33949                        value.write(core::mem::transmute(ok__));
33950                        windows_core::HRESULT(0)
33951                    }
33952                    Err(err) => err.into(),
33953                }
33954            }
33955        }
33956        Self {
33957            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
33958            CancelSave: CancelSave::<Identity, OFFSET>,
33959            SetCancelSave: SetCancelSave::<Identity, OFFSET>,
33960            DocumentOriginUri: DocumentOriginUri::<Identity, OFFSET>,
33961            FileExtension: FileExtension::<Identity, OFFSET>,
33962            FilePath: FilePath::<Identity, OFFSET>,
33963            SuppressDefaultPolicy: SuppressDefaultPolicy::<Identity, OFFSET>,
33964            SetSuppressDefaultPolicy: SetSuppressDefaultPolicy::<Identity, OFFSET>,
33965            GetDeferral: GetDeferral::<Identity, OFFSET>,
33966        }
33967    }
33968    pub fn matches(iid: &windows_core::GUID) -> bool {
33969        iid == & < ICoreWebView2SaveFileSecurityCheckStartingEventArgs as windows_core::Interface >::IID
33970    }
33971}
33972impl windows_core::RuntimeName for ICoreWebView2SaveFileSecurityCheckStartingEventArgs {}
33973windows_core::imp::define_interface!(
33974    ICoreWebView2SaveFileSecurityCheckStartingEventHandler,
33975    ICoreWebView2SaveFileSecurityCheckStartingEventHandler_Vtbl,
33976    0x7899576c_19e3_57c8_b7d1_55808292de57
33977);
33978windows_core::imp::interface_hierarchy!(
33979    ICoreWebView2SaveFileSecurityCheckStartingEventHandler,
33980    windows_core::IUnknown
33981);
33982impl ICoreWebView2SaveFileSecurityCheckStartingEventHandler {
33983    pub unsafe fn Invoke<P0, P1>(&self, sender: P0, args: P1) -> windows_core::Result<()>
33984    where
33985        P0: windows_core::Param<ICoreWebView2>,
33986        P1: windows_core::Param<ICoreWebView2SaveFileSecurityCheckStartingEventArgs>,
33987    {
33988        unsafe {
33989            (windows_core::Interface::vtable(self).Invoke)(
33990                windows_core::Interface::as_raw(self),
33991                sender.param().abi(),
33992                args.param().abi(),
33993            )
33994            .ok()
33995        }
33996    }
33997}
33998#[repr(C)]
33999#[doc(hidden)]
34000pub struct ICoreWebView2SaveFileSecurityCheckStartingEventHandler_Vtbl {
34001    pub base__: windows_core::IUnknown_Vtbl,
34002    pub Invoke: unsafe extern "system" fn(
34003        *mut core::ffi::c_void,
34004        *mut core::ffi::c_void,
34005        *mut core::ffi::c_void,
34006    ) -> windows_core::HRESULT,
34007}
34008pub trait ICoreWebView2SaveFileSecurityCheckStartingEventHandler_Impl:
34009    windows_core::IUnknownImpl
34010{
34011    fn Invoke(
34012        &self,
34013        sender: windows_core::Ref<ICoreWebView2>,
34014        args: windows_core::Ref<ICoreWebView2SaveFileSecurityCheckStartingEventArgs>,
34015    ) -> windows_core::Result<()>;
34016}
34017impl ICoreWebView2SaveFileSecurityCheckStartingEventHandler_Vtbl {
34018    pub const fn new<
34019        Identity: ICoreWebView2SaveFileSecurityCheckStartingEventHandler_Impl,
34020        const OFFSET: isize,
34021    >() -> Self {
34022        unsafe extern "system" fn Invoke<
34023            Identity: ICoreWebView2SaveFileSecurityCheckStartingEventHandler_Impl,
34024            const OFFSET: isize,
34025        >(
34026            this: *mut core::ffi::c_void,
34027            sender: *mut core::ffi::c_void,
34028            args: *mut core::ffi::c_void,
34029        ) -> windows_core::HRESULT {
34030            unsafe {
34031                let this: &Identity =
34032                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
34033                ICoreWebView2SaveFileSecurityCheckStartingEventHandler_Impl::Invoke(
34034                    this,
34035                    core::mem::transmute_copy(&sender),
34036                    core::mem::transmute_copy(&args),
34037                )
34038                .into()
34039            }
34040        }
34041        Self {
34042            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
34043            Invoke: Invoke::<Identity, OFFSET>,
34044        }
34045    }
34046    pub fn matches(iid: &windows_core::GUID) -> bool {
34047        iid == & < ICoreWebView2SaveFileSecurityCheckStartingEventHandler as windows_core::Interface >::IID
34048    }
34049}
34050impl windows_core::RuntimeName for ICoreWebView2SaveFileSecurityCheckStartingEventHandler {}
34051windows_core::imp::define_interface!(
34052    ICoreWebView2ScreenCaptureStartingEventArgs,
34053    ICoreWebView2ScreenCaptureStartingEventArgs_Vtbl,
34054    0x892c03fd_aee3_5eba_a1fa_6fd2f6484b2b
34055);
34056windows_core::imp::interface_hierarchy!(
34057    ICoreWebView2ScreenCaptureStartingEventArgs,
34058    windows_core::IUnknown
34059);
34060impl ICoreWebView2ScreenCaptureStartingEventArgs {
34061    pub unsafe fn Cancel(&self, value: *mut windows_core::BOOL) -> windows_core::Result<()> {
34062        unsafe {
34063            (windows_core::Interface::vtable(self).Cancel)(
34064                windows_core::Interface::as_raw(self),
34065                value as _,
34066            )
34067            .ok()
34068        }
34069    }
34070    pub unsafe fn SetCancel(&self, value: bool) -> windows_core::Result<()> {
34071        unsafe {
34072            (windows_core::Interface::vtable(self).SetCancel)(
34073                windows_core::Interface::as_raw(self),
34074                value.into(),
34075            )
34076            .ok()
34077        }
34078    }
34079    pub unsafe fn Handled(&self, value: *mut windows_core::BOOL) -> windows_core::Result<()> {
34080        unsafe {
34081            (windows_core::Interface::vtable(self).Handled)(
34082                windows_core::Interface::as_raw(self),
34083                value as _,
34084            )
34085            .ok()
34086        }
34087    }
34088    pub unsafe fn SetHandled(&self, value: bool) -> windows_core::Result<()> {
34089        unsafe {
34090            (windows_core::Interface::vtable(self).SetHandled)(
34091                windows_core::Interface::as_raw(self),
34092                value.into(),
34093            )
34094            .ok()
34095        }
34096    }
34097    pub unsafe fn OriginalSourceFrameInfo(&self) -> windows_core::Result<ICoreWebView2FrameInfo> {
34098        unsafe {
34099            let mut result__ = core::mem::zeroed();
34100            (windows_core::Interface::vtable(self).OriginalSourceFrameInfo)(
34101                windows_core::Interface::as_raw(self),
34102                &mut result__,
34103            )
34104            .and_then(|| windows_core::Type::from_abi(result__))
34105        }
34106    }
34107    pub unsafe fn GetDeferral(&self) -> windows_core::Result<ICoreWebView2Deferral> {
34108        unsafe {
34109            let mut result__ = core::mem::zeroed();
34110            (windows_core::Interface::vtable(self).GetDeferral)(
34111                windows_core::Interface::as_raw(self),
34112                &mut result__,
34113            )
34114            .and_then(|| windows_core::Type::from_abi(result__))
34115        }
34116    }
34117}
34118#[repr(C)]
34119#[doc(hidden)]
34120pub struct ICoreWebView2ScreenCaptureStartingEventArgs_Vtbl {
34121    pub base__: windows_core::IUnknown_Vtbl,
34122    pub Cancel: unsafe extern "system" fn(
34123        *mut core::ffi::c_void,
34124        *mut windows_core::BOOL,
34125    ) -> windows_core::HRESULT,
34126    pub SetCancel: unsafe extern "system" fn(
34127        *mut core::ffi::c_void,
34128        windows_core::BOOL,
34129    ) -> windows_core::HRESULT,
34130    pub Handled: unsafe extern "system" fn(
34131        *mut core::ffi::c_void,
34132        *mut windows_core::BOOL,
34133    ) -> windows_core::HRESULT,
34134    pub SetHandled: unsafe extern "system" fn(
34135        *mut core::ffi::c_void,
34136        windows_core::BOOL,
34137    ) -> windows_core::HRESULT,
34138    pub OriginalSourceFrameInfo: unsafe extern "system" fn(
34139        *mut core::ffi::c_void,
34140        *mut *mut core::ffi::c_void,
34141    ) -> windows_core::HRESULT,
34142    pub GetDeferral: unsafe extern "system" fn(
34143        *mut core::ffi::c_void,
34144        *mut *mut core::ffi::c_void,
34145    ) -> windows_core::HRESULT,
34146}
34147pub trait ICoreWebView2ScreenCaptureStartingEventArgs_Impl: windows_core::IUnknownImpl {
34148    fn Cancel(&self, value: *mut windows_core::BOOL) -> windows_core::Result<()>;
34149    fn SetCancel(&self, value: windows_core::BOOL) -> windows_core::Result<()>;
34150    fn Handled(&self, value: *mut windows_core::BOOL) -> windows_core::Result<()>;
34151    fn SetHandled(&self, value: windows_core::BOOL) -> windows_core::Result<()>;
34152    fn OriginalSourceFrameInfo(&self) -> windows_core::Result<ICoreWebView2FrameInfo>;
34153    fn GetDeferral(&self) -> windows_core::Result<ICoreWebView2Deferral>;
34154}
34155impl ICoreWebView2ScreenCaptureStartingEventArgs_Vtbl {
34156    pub const fn new<
34157        Identity: ICoreWebView2ScreenCaptureStartingEventArgs_Impl,
34158        const OFFSET: isize,
34159    >() -> Self {
34160        unsafe extern "system" fn Cancel<
34161            Identity: ICoreWebView2ScreenCaptureStartingEventArgs_Impl,
34162            const OFFSET: isize,
34163        >(
34164            this: *mut core::ffi::c_void,
34165            value: *mut windows_core::BOOL,
34166        ) -> windows_core::HRESULT {
34167            unsafe {
34168                let this: &Identity =
34169                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
34170                ICoreWebView2ScreenCaptureStartingEventArgs_Impl::Cancel(
34171                    this,
34172                    core::mem::transmute_copy(&value),
34173                )
34174                .into()
34175            }
34176        }
34177        unsafe extern "system" fn SetCancel<
34178            Identity: ICoreWebView2ScreenCaptureStartingEventArgs_Impl,
34179            const OFFSET: isize,
34180        >(
34181            this: *mut core::ffi::c_void,
34182            value: windows_core::BOOL,
34183        ) -> windows_core::HRESULT {
34184            unsafe {
34185                let this: &Identity =
34186                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
34187                ICoreWebView2ScreenCaptureStartingEventArgs_Impl::SetCancel(
34188                    this,
34189                    core::mem::transmute_copy(&value),
34190                )
34191                .into()
34192            }
34193        }
34194        unsafe extern "system" fn Handled<
34195            Identity: ICoreWebView2ScreenCaptureStartingEventArgs_Impl,
34196            const OFFSET: isize,
34197        >(
34198            this: *mut core::ffi::c_void,
34199            value: *mut windows_core::BOOL,
34200        ) -> windows_core::HRESULT {
34201            unsafe {
34202                let this: &Identity =
34203                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
34204                ICoreWebView2ScreenCaptureStartingEventArgs_Impl::Handled(
34205                    this,
34206                    core::mem::transmute_copy(&value),
34207                )
34208                .into()
34209            }
34210        }
34211        unsafe extern "system" fn SetHandled<
34212            Identity: ICoreWebView2ScreenCaptureStartingEventArgs_Impl,
34213            const OFFSET: isize,
34214        >(
34215            this: *mut core::ffi::c_void,
34216            value: windows_core::BOOL,
34217        ) -> windows_core::HRESULT {
34218            unsafe {
34219                let this: &Identity =
34220                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
34221                ICoreWebView2ScreenCaptureStartingEventArgs_Impl::SetHandled(
34222                    this,
34223                    core::mem::transmute_copy(&value),
34224                )
34225                .into()
34226            }
34227        }
34228        unsafe extern "system" fn OriginalSourceFrameInfo<
34229            Identity: ICoreWebView2ScreenCaptureStartingEventArgs_Impl,
34230            const OFFSET: isize,
34231        >(
34232            this: *mut core::ffi::c_void,
34233            value: *mut *mut core::ffi::c_void,
34234        ) -> windows_core::HRESULT {
34235            unsafe {
34236                let this: &Identity =
34237                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
34238                match ICoreWebView2ScreenCaptureStartingEventArgs_Impl::OriginalSourceFrameInfo(
34239                    this,
34240                ) {
34241                    Ok(ok__) => {
34242                        value.write(core::mem::transmute(ok__));
34243                        windows_core::HRESULT(0)
34244                    }
34245                    Err(err) => err.into(),
34246                }
34247            }
34248        }
34249        unsafe extern "system" fn GetDeferral<
34250            Identity: ICoreWebView2ScreenCaptureStartingEventArgs_Impl,
34251            const OFFSET: isize,
34252        >(
34253            this: *mut core::ffi::c_void,
34254            value: *mut *mut core::ffi::c_void,
34255        ) -> windows_core::HRESULT {
34256            unsafe {
34257                let this: &Identity =
34258                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
34259                match ICoreWebView2ScreenCaptureStartingEventArgs_Impl::GetDeferral(this) {
34260                    Ok(ok__) => {
34261                        value.write(core::mem::transmute(ok__));
34262                        windows_core::HRESULT(0)
34263                    }
34264                    Err(err) => err.into(),
34265                }
34266            }
34267        }
34268        Self {
34269            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
34270            Cancel: Cancel::<Identity, OFFSET>,
34271            SetCancel: SetCancel::<Identity, OFFSET>,
34272            Handled: Handled::<Identity, OFFSET>,
34273            SetHandled: SetHandled::<Identity, OFFSET>,
34274            OriginalSourceFrameInfo: OriginalSourceFrameInfo::<Identity, OFFSET>,
34275            GetDeferral: GetDeferral::<Identity, OFFSET>,
34276        }
34277    }
34278    pub fn matches(iid: &windows_core::GUID) -> bool {
34279        iid == &<ICoreWebView2ScreenCaptureStartingEventArgs as windows_core::Interface>::IID
34280    }
34281}
34282impl windows_core::RuntimeName for ICoreWebView2ScreenCaptureStartingEventArgs {}
34283windows_core::imp::define_interface!(
34284    ICoreWebView2ScreenCaptureStartingEventHandler,
34285    ICoreWebView2ScreenCaptureStartingEventHandler_Vtbl,
34286    0xe24ff05a_1db5_59d9_89f3_3c864268db4a
34287);
34288windows_core::imp::interface_hierarchy!(
34289    ICoreWebView2ScreenCaptureStartingEventHandler,
34290    windows_core::IUnknown
34291);
34292impl ICoreWebView2ScreenCaptureStartingEventHandler {
34293    pub unsafe fn Invoke<P0, P1>(&self, sender: P0, args: P1) -> windows_core::Result<()>
34294    where
34295        P0: windows_core::Param<ICoreWebView2>,
34296        P1: windows_core::Param<ICoreWebView2ScreenCaptureStartingEventArgs>,
34297    {
34298        unsafe {
34299            (windows_core::Interface::vtable(self).Invoke)(
34300                windows_core::Interface::as_raw(self),
34301                sender.param().abi(),
34302                args.param().abi(),
34303            )
34304            .ok()
34305        }
34306    }
34307}
34308#[repr(C)]
34309#[doc(hidden)]
34310pub struct ICoreWebView2ScreenCaptureStartingEventHandler_Vtbl {
34311    pub base__: windows_core::IUnknown_Vtbl,
34312    pub Invoke: unsafe extern "system" fn(
34313        *mut core::ffi::c_void,
34314        *mut core::ffi::c_void,
34315        *mut core::ffi::c_void,
34316    ) -> windows_core::HRESULT,
34317}
34318pub trait ICoreWebView2ScreenCaptureStartingEventHandler_Impl: windows_core::IUnknownImpl {
34319    fn Invoke(
34320        &self,
34321        sender: windows_core::Ref<ICoreWebView2>,
34322        args: windows_core::Ref<ICoreWebView2ScreenCaptureStartingEventArgs>,
34323    ) -> windows_core::Result<()>;
34324}
34325impl ICoreWebView2ScreenCaptureStartingEventHandler_Vtbl {
34326    pub const fn new<
34327        Identity: ICoreWebView2ScreenCaptureStartingEventHandler_Impl,
34328        const OFFSET: isize,
34329    >() -> Self {
34330        unsafe extern "system" fn Invoke<
34331            Identity: ICoreWebView2ScreenCaptureStartingEventHandler_Impl,
34332            const OFFSET: isize,
34333        >(
34334            this: *mut core::ffi::c_void,
34335            sender: *mut core::ffi::c_void,
34336            args: *mut core::ffi::c_void,
34337        ) -> windows_core::HRESULT {
34338            unsafe {
34339                let this: &Identity =
34340                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
34341                ICoreWebView2ScreenCaptureStartingEventHandler_Impl::Invoke(
34342                    this,
34343                    core::mem::transmute_copy(&sender),
34344                    core::mem::transmute_copy(&args),
34345                )
34346                .into()
34347            }
34348        }
34349        Self {
34350            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
34351            Invoke: Invoke::<Identity, OFFSET>,
34352        }
34353    }
34354    pub fn matches(iid: &windows_core::GUID) -> bool {
34355        iid == &<ICoreWebView2ScreenCaptureStartingEventHandler as windows_core::Interface>::IID
34356    }
34357}
34358impl windows_core::RuntimeName for ICoreWebView2ScreenCaptureStartingEventHandler {}
34359windows_core::imp::define_interface!(
34360    ICoreWebView2ScriptDialogOpeningEventArgs,
34361    ICoreWebView2ScriptDialogOpeningEventArgs_Vtbl,
34362    0x7390bb70_abe0_4843_9529_f143b31b03d6
34363);
34364windows_core::imp::interface_hierarchy!(
34365    ICoreWebView2ScriptDialogOpeningEventArgs,
34366    windows_core::IUnknown
34367);
34368impl ICoreWebView2ScriptDialogOpeningEventArgs {
34369    pub unsafe fn Uri(&self, uri: *mut windows_core::PWSTR) -> windows_core::Result<()> {
34370        unsafe {
34371            (windows_core::Interface::vtable(self).Uri)(
34372                windows_core::Interface::as_raw(self),
34373                uri as _,
34374            )
34375            .ok()
34376        }
34377    }
34378    pub unsafe fn Kind(
34379        &self,
34380        kind: *mut COREWEBVIEW2_SCRIPT_DIALOG_KIND,
34381    ) -> windows_core::Result<()> {
34382        unsafe {
34383            (windows_core::Interface::vtable(self).Kind)(
34384                windows_core::Interface::as_raw(self),
34385                kind as _,
34386            )
34387            .ok()
34388        }
34389    }
34390    pub unsafe fn Message(&self, message: *mut windows_core::PWSTR) -> windows_core::Result<()> {
34391        unsafe {
34392            (windows_core::Interface::vtable(self).Message)(
34393                windows_core::Interface::as_raw(self),
34394                message as _,
34395            )
34396            .ok()
34397        }
34398    }
34399    pub unsafe fn Accept(&self) -> windows_core::Result<()> {
34400        unsafe {
34401            (windows_core::Interface::vtable(self).Accept)(windows_core::Interface::as_raw(self))
34402                .ok()
34403        }
34404    }
34405    pub unsafe fn DefaultText(
34406        &self,
34407        defaulttext: *mut windows_core::PWSTR,
34408    ) -> windows_core::Result<()> {
34409        unsafe {
34410            (windows_core::Interface::vtable(self).DefaultText)(
34411                windows_core::Interface::as_raw(self),
34412                defaulttext as _,
34413            )
34414            .ok()
34415        }
34416    }
34417    pub unsafe fn ResultText(
34418        &self,
34419        resulttext: *mut windows_core::PWSTR,
34420    ) -> windows_core::Result<()> {
34421        unsafe {
34422            (windows_core::Interface::vtable(self).ResultText)(
34423                windows_core::Interface::as_raw(self),
34424                resulttext as _,
34425            )
34426            .ok()
34427        }
34428    }
34429    pub unsafe fn SetResultText<P0>(&self, resulttext: P0) -> windows_core::Result<()>
34430    where
34431        P0: windows_core::Param<windows_core::PCWSTR>,
34432    {
34433        unsafe {
34434            (windows_core::Interface::vtable(self).SetResultText)(
34435                windows_core::Interface::as_raw(self),
34436                resulttext.param().abi(),
34437            )
34438            .ok()
34439        }
34440    }
34441    pub unsafe fn GetDeferral(&self) -> windows_core::Result<ICoreWebView2Deferral> {
34442        unsafe {
34443            let mut result__ = core::mem::zeroed();
34444            (windows_core::Interface::vtable(self).GetDeferral)(
34445                windows_core::Interface::as_raw(self),
34446                &mut result__,
34447            )
34448            .and_then(|| windows_core::Type::from_abi(result__))
34449        }
34450    }
34451}
34452#[repr(C)]
34453#[doc(hidden)]
34454pub struct ICoreWebView2ScriptDialogOpeningEventArgs_Vtbl {
34455    pub base__: windows_core::IUnknown_Vtbl,
34456    pub Uri: unsafe extern "system" fn(
34457        *mut core::ffi::c_void,
34458        *mut windows_core::PWSTR,
34459    ) -> windows_core::HRESULT,
34460    pub Kind: unsafe extern "system" fn(
34461        *mut core::ffi::c_void,
34462        *mut COREWEBVIEW2_SCRIPT_DIALOG_KIND,
34463    ) -> windows_core::HRESULT,
34464    pub Message: unsafe extern "system" fn(
34465        *mut core::ffi::c_void,
34466        *mut windows_core::PWSTR,
34467    ) -> windows_core::HRESULT,
34468    pub Accept: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
34469    pub DefaultText: unsafe extern "system" fn(
34470        *mut core::ffi::c_void,
34471        *mut windows_core::PWSTR,
34472    ) -> windows_core::HRESULT,
34473    pub ResultText: unsafe extern "system" fn(
34474        *mut core::ffi::c_void,
34475        *mut windows_core::PWSTR,
34476    ) -> windows_core::HRESULT,
34477    pub SetResultText: unsafe extern "system" fn(
34478        *mut core::ffi::c_void,
34479        windows_core::PCWSTR,
34480    ) -> windows_core::HRESULT,
34481    pub GetDeferral: unsafe extern "system" fn(
34482        *mut core::ffi::c_void,
34483        *mut *mut core::ffi::c_void,
34484    ) -> windows_core::HRESULT,
34485}
34486pub trait ICoreWebView2ScriptDialogOpeningEventArgs_Impl: windows_core::IUnknownImpl {
34487    fn Uri(&self, uri: *mut windows_core::PWSTR) -> windows_core::Result<()>;
34488    fn Kind(&self, kind: *mut COREWEBVIEW2_SCRIPT_DIALOG_KIND) -> windows_core::Result<()>;
34489    fn Message(&self, message: *mut windows_core::PWSTR) -> windows_core::Result<()>;
34490    fn Accept(&self) -> windows_core::Result<()>;
34491    fn DefaultText(&self, defaulttext: *mut windows_core::PWSTR) -> windows_core::Result<()>;
34492    fn ResultText(&self, resulttext: *mut windows_core::PWSTR) -> windows_core::Result<()>;
34493    fn SetResultText(&self, resulttext: &windows_core::PCWSTR) -> windows_core::Result<()>;
34494    fn GetDeferral(&self) -> windows_core::Result<ICoreWebView2Deferral>;
34495}
34496impl ICoreWebView2ScriptDialogOpeningEventArgs_Vtbl {
34497    pub const fn new<
34498        Identity: ICoreWebView2ScriptDialogOpeningEventArgs_Impl,
34499        const OFFSET: isize,
34500    >() -> Self {
34501        unsafe extern "system" fn Uri<
34502            Identity: ICoreWebView2ScriptDialogOpeningEventArgs_Impl,
34503            const OFFSET: isize,
34504        >(
34505            this: *mut core::ffi::c_void,
34506            uri: *mut windows_core::PWSTR,
34507        ) -> windows_core::HRESULT {
34508            unsafe {
34509                let this: &Identity =
34510                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
34511                ICoreWebView2ScriptDialogOpeningEventArgs_Impl::Uri(
34512                    this,
34513                    core::mem::transmute_copy(&uri),
34514                )
34515                .into()
34516            }
34517        }
34518        unsafe extern "system" fn Kind<
34519            Identity: ICoreWebView2ScriptDialogOpeningEventArgs_Impl,
34520            const OFFSET: isize,
34521        >(
34522            this: *mut core::ffi::c_void,
34523            kind: *mut COREWEBVIEW2_SCRIPT_DIALOG_KIND,
34524        ) -> windows_core::HRESULT {
34525            unsafe {
34526                let this: &Identity =
34527                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
34528                ICoreWebView2ScriptDialogOpeningEventArgs_Impl::Kind(
34529                    this,
34530                    core::mem::transmute_copy(&kind),
34531                )
34532                .into()
34533            }
34534        }
34535        unsafe extern "system" fn Message<
34536            Identity: ICoreWebView2ScriptDialogOpeningEventArgs_Impl,
34537            const OFFSET: isize,
34538        >(
34539            this: *mut core::ffi::c_void,
34540            message: *mut windows_core::PWSTR,
34541        ) -> windows_core::HRESULT {
34542            unsafe {
34543                let this: &Identity =
34544                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
34545                ICoreWebView2ScriptDialogOpeningEventArgs_Impl::Message(
34546                    this,
34547                    core::mem::transmute_copy(&message),
34548                )
34549                .into()
34550            }
34551        }
34552        unsafe extern "system" fn Accept<
34553            Identity: ICoreWebView2ScriptDialogOpeningEventArgs_Impl,
34554            const OFFSET: isize,
34555        >(
34556            this: *mut core::ffi::c_void,
34557        ) -> windows_core::HRESULT {
34558            unsafe {
34559                let this: &Identity =
34560                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
34561                ICoreWebView2ScriptDialogOpeningEventArgs_Impl::Accept(this).into()
34562            }
34563        }
34564        unsafe extern "system" fn DefaultText<
34565            Identity: ICoreWebView2ScriptDialogOpeningEventArgs_Impl,
34566            const OFFSET: isize,
34567        >(
34568            this: *mut core::ffi::c_void,
34569            defaulttext: *mut windows_core::PWSTR,
34570        ) -> windows_core::HRESULT {
34571            unsafe {
34572                let this: &Identity =
34573                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
34574                ICoreWebView2ScriptDialogOpeningEventArgs_Impl::DefaultText(
34575                    this,
34576                    core::mem::transmute_copy(&defaulttext),
34577                )
34578                .into()
34579            }
34580        }
34581        unsafe extern "system" fn ResultText<
34582            Identity: ICoreWebView2ScriptDialogOpeningEventArgs_Impl,
34583            const OFFSET: isize,
34584        >(
34585            this: *mut core::ffi::c_void,
34586            resulttext: *mut windows_core::PWSTR,
34587        ) -> windows_core::HRESULT {
34588            unsafe {
34589                let this: &Identity =
34590                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
34591                ICoreWebView2ScriptDialogOpeningEventArgs_Impl::ResultText(
34592                    this,
34593                    core::mem::transmute_copy(&resulttext),
34594                )
34595                .into()
34596            }
34597        }
34598        unsafe extern "system" fn SetResultText<
34599            Identity: ICoreWebView2ScriptDialogOpeningEventArgs_Impl,
34600            const OFFSET: isize,
34601        >(
34602            this: *mut core::ffi::c_void,
34603            resulttext: windows_core::PCWSTR,
34604        ) -> windows_core::HRESULT {
34605            unsafe {
34606                let this: &Identity =
34607                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
34608                ICoreWebView2ScriptDialogOpeningEventArgs_Impl::SetResultText(
34609                    this,
34610                    core::mem::transmute(&resulttext),
34611                )
34612                .into()
34613            }
34614        }
34615        unsafe extern "system" fn GetDeferral<
34616            Identity: ICoreWebView2ScriptDialogOpeningEventArgs_Impl,
34617            const OFFSET: isize,
34618        >(
34619            this: *mut core::ffi::c_void,
34620            deferral: *mut *mut core::ffi::c_void,
34621        ) -> windows_core::HRESULT {
34622            unsafe {
34623                let this: &Identity =
34624                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
34625                match ICoreWebView2ScriptDialogOpeningEventArgs_Impl::GetDeferral(this) {
34626                    Ok(ok__) => {
34627                        deferral.write(core::mem::transmute(ok__));
34628                        windows_core::HRESULT(0)
34629                    }
34630                    Err(err) => err.into(),
34631                }
34632            }
34633        }
34634        Self {
34635            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
34636            Uri: Uri::<Identity, OFFSET>,
34637            Kind: Kind::<Identity, OFFSET>,
34638            Message: Message::<Identity, OFFSET>,
34639            Accept: Accept::<Identity, OFFSET>,
34640            DefaultText: DefaultText::<Identity, OFFSET>,
34641            ResultText: ResultText::<Identity, OFFSET>,
34642            SetResultText: SetResultText::<Identity, OFFSET>,
34643            GetDeferral: GetDeferral::<Identity, OFFSET>,
34644        }
34645    }
34646    pub fn matches(iid: &windows_core::GUID) -> bool {
34647        iid == &<ICoreWebView2ScriptDialogOpeningEventArgs as windows_core::Interface>::IID
34648    }
34649}
34650impl windows_core::RuntimeName for ICoreWebView2ScriptDialogOpeningEventArgs {}
34651windows_core::imp::define_interface!(
34652    ICoreWebView2ScriptDialogOpeningEventHandler,
34653    ICoreWebView2ScriptDialogOpeningEventHandler_Vtbl,
34654    0xef381bf9_afa8_4e37_91c4_8ac48524bdfb
34655);
34656windows_core::imp::interface_hierarchy!(
34657    ICoreWebView2ScriptDialogOpeningEventHandler,
34658    windows_core::IUnknown
34659);
34660impl ICoreWebView2ScriptDialogOpeningEventHandler {
34661    pub unsafe fn Invoke<P0, P1>(&self, sender: P0, args: P1) -> windows_core::Result<()>
34662    where
34663        P0: windows_core::Param<ICoreWebView2>,
34664        P1: windows_core::Param<ICoreWebView2ScriptDialogOpeningEventArgs>,
34665    {
34666        unsafe {
34667            (windows_core::Interface::vtable(self).Invoke)(
34668                windows_core::Interface::as_raw(self),
34669                sender.param().abi(),
34670                args.param().abi(),
34671            )
34672            .ok()
34673        }
34674    }
34675}
34676#[repr(C)]
34677#[doc(hidden)]
34678pub struct ICoreWebView2ScriptDialogOpeningEventHandler_Vtbl {
34679    pub base__: windows_core::IUnknown_Vtbl,
34680    pub Invoke: unsafe extern "system" fn(
34681        *mut core::ffi::c_void,
34682        *mut core::ffi::c_void,
34683        *mut core::ffi::c_void,
34684    ) -> windows_core::HRESULT,
34685}
34686pub trait ICoreWebView2ScriptDialogOpeningEventHandler_Impl: windows_core::IUnknownImpl {
34687    fn Invoke(
34688        &self,
34689        sender: windows_core::Ref<ICoreWebView2>,
34690        args: windows_core::Ref<ICoreWebView2ScriptDialogOpeningEventArgs>,
34691    ) -> windows_core::Result<()>;
34692}
34693impl ICoreWebView2ScriptDialogOpeningEventHandler_Vtbl {
34694    pub const fn new<
34695        Identity: ICoreWebView2ScriptDialogOpeningEventHandler_Impl,
34696        const OFFSET: isize,
34697    >() -> Self {
34698        unsafe extern "system" fn Invoke<
34699            Identity: ICoreWebView2ScriptDialogOpeningEventHandler_Impl,
34700            const OFFSET: isize,
34701        >(
34702            this: *mut core::ffi::c_void,
34703            sender: *mut core::ffi::c_void,
34704            args: *mut core::ffi::c_void,
34705        ) -> windows_core::HRESULT {
34706            unsafe {
34707                let this: &Identity =
34708                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
34709                ICoreWebView2ScriptDialogOpeningEventHandler_Impl::Invoke(
34710                    this,
34711                    core::mem::transmute_copy(&sender),
34712                    core::mem::transmute_copy(&args),
34713                )
34714                .into()
34715            }
34716        }
34717        Self {
34718            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
34719            Invoke: Invoke::<Identity, OFFSET>,
34720        }
34721    }
34722    pub fn matches(iid: &windows_core::GUID) -> bool {
34723        iid == &<ICoreWebView2ScriptDialogOpeningEventHandler as windows_core::Interface>::IID
34724    }
34725}
34726impl windows_core::RuntimeName for ICoreWebView2ScriptDialogOpeningEventHandler {}
34727windows_core::imp::define_interface!(
34728    ICoreWebView2ScriptException,
34729    ICoreWebView2ScriptException_Vtbl,
34730    0x054dae00_84a3_49ff_bc17_4012a90bc9fd
34731);
34732windows_core::imp::interface_hierarchy!(ICoreWebView2ScriptException, windows_core::IUnknown);
34733impl ICoreWebView2ScriptException {
34734    pub unsafe fn LineNumber(&self, value: *mut u32) -> windows_core::Result<()> {
34735        unsafe {
34736            (windows_core::Interface::vtable(self).LineNumber)(
34737                windows_core::Interface::as_raw(self),
34738                value as _,
34739            )
34740            .ok()
34741        }
34742    }
34743    pub unsafe fn ColumnNumber(&self, value: *mut u32) -> windows_core::Result<()> {
34744        unsafe {
34745            (windows_core::Interface::vtable(self).ColumnNumber)(
34746                windows_core::Interface::as_raw(self),
34747                value as _,
34748            )
34749            .ok()
34750        }
34751    }
34752    pub unsafe fn Name(&self, value: *mut windows_core::PWSTR) -> windows_core::Result<()> {
34753        unsafe {
34754            (windows_core::Interface::vtable(self).Name)(
34755                windows_core::Interface::as_raw(self),
34756                value as _,
34757            )
34758            .ok()
34759        }
34760    }
34761    pub unsafe fn Message(&self, value: *mut windows_core::PWSTR) -> windows_core::Result<()> {
34762        unsafe {
34763            (windows_core::Interface::vtable(self).Message)(
34764                windows_core::Interface::as_raw(self),
34765                value as _,
34766            )
34767            .ok()
34768        }
34769    }
34770    pub unsafe fn ToJson(&self, value: *mut windows_core::PWSTR) -> windows_core::Result<()> {
34771        unsafe {
34772            (windows_core::Interface::vtable(self).ToJson)(
34773                windows_core::Interface::as_raw(self),
34774                value as _,
34775            )
34776            .ok()
34777        }
34778    }
34779}
34780#[repr(C)]
34781#[doc(hidden)]
34782pub struct ICoreWebView2ScriptException_Vtbl {
34783    pub base__: windows_core::IUnknown_Vtbl,
34784    pub LineNumber:
34785        unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
34786    pub ColumnNumber:
34787        unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
34788    pub Name: unsafe extern "system" fn(
34789        *mut core::ffi::c_void,
34790        *mut windows_core::PWSTR,
34791    ) -> windows_core::HRESULT,
34792    pub Message: unsafe extern "system" fn(
34793        *mut core::ffi::c_void,
34794        *mut windows_core::PWSTR,
34795    ) -> windows_core::HRESULT,
34796    pub ToJson: unsafe extern "system" fn(
34797        *mut core::ffi::c_void,
34798        *mut windows_core::PWSTR,
34799    ) -> windows_core::HRESULT,
34800}
34801pub trait ICoreWebView2ScriptException_Impl: windows_core::IUnknownImpl {
34802    fn LineNumber(&self, value: *mut u32) -> windows_core::Result<()>;
34803    fn ColumnNumber(&self, value: *mut u32) -> windows_core::Result<()>;
34804    fn Name(&self, value: *mut windows_core::PWSTR) -> windows_core::Result<()>;
34805    fn Message(&self, value: *mut windows_core::PWSTR) -> windows_core::Result<()>;
34806    fn ToJson(&self, value: *mut windows_core::PWSTR) -> windows_core::Result<()>;
34807}
34808impl ICoreWebView2ScriptException_Vtbl {
34809    pub const fn new<Identity: ICoreWebView2ScriptException_Impl, const OFFSET: isize>() -> Self {
34810        unsafe extern "system" fn LineNumber<
34811            Identity: ICoreWebView2ScriptException_Impl,
34812            const OFFSET: isize,
34813        >(
34814            this: *mut core::ffi::c_void,
34815            value: *mut u32,
34816        ) -> windows_core::HRESULT {
34817            unsafe {
34818                let this: &Identity =
34819                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
34820                ICoreWebView2ScriptException_Impl::LineNumber(
34821                    this,
34822                    core::mem::transmute_copy(&value),
34823                )
34824                .into()
34825            }
34826        }
34827        unsafe extern "system" fn ColumnNumber<
34828            Identity: ICoreWebView2ScriptException_Impl,
34829            const OFFSET: isize,
34830        >(
34831            this: *mut core::ffi::c_void,
34832            value: *mut u32,
34833        ) -> windows_core::HRESULT {
34834            unsafe {
34835                let this: &Identity =
34836                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
34837                ICoreWebView2ScriptException_Impl::ColumnNumber(
34838                    this,
34839                    core::mem::transmute_copy(&value),
34840                )
34841                .into()
34842            }
34843        }
34844        unsafe extern "system" fn Name<
34845            Identity: ICoreWebView2ScriptException_Impl,
34846            const OFFSET: isize,
34847        >(
34848            this: *mut core::ffi::c_void,
34849            value: *mut windows_core::PWSTR,
34850        ) -> windows_core::HRESULT {
34851            unsafe {
34852                let this: &Identity =
34853                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
34854                ICoreWebView2ScriptException_Impl::Name(this, core::mem::transmute_copy(&value))
34855                    .into()
34856            }
34857        }
34858        unsafe extern "system" fn Message<
34859            Identity: ICoreWebView2ScriptException_Impl,
34860            const OFFSET: isize,
34861        >(
34862            this: *mut core::ffi::c_void,
34863            value: *mut windows_core::PWSTR,
34864        ) -> windows_core::HRESULT {
34865            unsafe {
34866                let this: &Identity =
34867                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
34868                ICoreWebView2ScriptException_Impl::Message(this, core::mem::transmute_copy(&value))
34869                    .into()
34870            }
34871        }
34872        unsafe extern "system" fn ToJson<
34873            Identity: ICoreWebView2ScriptException_Impl,
34874            const OFFSET: isize,
34875        >(
34876            this: *mut core::ffi::c_void,
34877            value: *mut windows_core::PWSTR,
34878        ) -> windows_core::HRESULT {
34879            unsafe {
34880                let this: &Identity =
34881                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
34882                ICoreWebView2ScriptException_Impl::ToJson(this, core::mem::transmute_copy(&value))
34883                    .into()
34884            }
34885        }
34886        Self {
34887            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
34888            LineNumber: LineNumber::<Identity, OFFSET>,
34889            ColumnNumber: ColumnNumber::<Identity, OFFSET>,
34890            Name: Name::<Identity, OFFSET>,
34891            Message: Message::<Identity, OFFSET>,
34892            ToJson: ToJson::<Identity, OFFSET>,
34893        }
34894    }
34895    pub fn matches(iid: &windows_core::GUID) -> bool {
34896        iid == &<ICoreWebView2ScriptException as windows_core::Interface>::IID
34897    }
34898}
34899impl windows_core::RuntimeName for ICoreWebView2ScriptException {}
34900windows_core::imp::define_interface!(
34901    ICoreWebView2ServerCertificateErrorDetectedEventArgs,
34902    ICoreWebView2ServerCertificateErrorDetectedEventArgs_Vtbl,
34903    0x012193ed_7c13_48ff_969d_a84c1f432a14
34904);
34905windows_core::imp::interface_hierarchy!(
34906    ICoreWebView2ServerCertificateErrorDetectedEventArgs,
34907    windows_core::IUnknown
34908);
34909impl ICoreWebView2ServerCertificateErrorDetectedEventArgs {
34910    pub unsafe fn ErrorStatus(
34911        &self,
34912        value: *mut COREWEBVIEW2_WEB_ERROR_STATUS,
34913    ) -> windows_core::Result<()> {
34914        unsafe {
34915            (windows_core::Interface::vtable(self).ErrorStatus)(
34916                windows_core::Interface::as_raw(self),
34917                value as _,
34918            )
34919            .ok()
34920        }
34921    }
34922    pub unsafe fn RequestUri(&self, value: *mut windows_core::PWSTR) -> windows_core::Result<()> {
34923        unsafe {
34924            (windows_core::Interface::vtable(self).RequestUri)(
34925                windows_core::Interface::as_raw(self),
34926                value as _,
34927            )
34928            .ok()
34929        }
34930    }
34931    pub unsafe fn ServerCertificate(&self) -> windows_core::Result<ICoreWebView2Certificate> {
34932        unsafe {
34933            let mut result__ = core::mem::zeroed();
34934            (windows_core::Interface::vtable(self).ServerCertificate)(
34935                windows_core::Interface::as_raw(self),
34936                &mut result__,
34937            )
34938            .and_then(|| windows_core::Type::from_abi(result__))
34939        }
34940    }
34941    pub unsafe fn Action(
34942        &self,
34943        value: *mut COREWEBVIEW2_SERVER_CERTIFICATE_ERROR_ACTION,
34944    ) -> windows_core::Result<()> {
34945        unsafe {
34946            (windows_core::Interface::vtable(self).Action)(
34947                windows_core::Interface::as_raw(self),
34948                value as _,
34949            )
34950            .ok()
34951        }
34952    }
34953    pub unsafe fn SetAction(
34954        &self,
34955        value: COREWEBVIEW2_SERVER_CERTIFICATE_ERROR_ACTION,
34956    ) -> windows_core::Result<()> {
34957        unsafe {
34958            (windows_core::Interface::vtable(self).SetAction)(
34959                windows_core::Interface::as_raw(self),
34960                value,
34961            )
34962            .ok()
34963        }
34964    }
34965    pub unsafe fn GetDeferral(&self) -> windows_core::Result<ICoreWebView2Deferral> {
34966        unsafe {
34967            let mut result__ = core::mem::zeroed();
34968            (windows_core::Interface::vtable(self).GetDeferral)(
34969                windows_core::Interface::as_raw(self),
34970                &mut result__,
34971            )
34972            .and_then(|| windows_core::Type::from_abi(result__))
34973        }
34974    }
34975}
34976#[repr(C)]
34977#[doc(hidden)]
34978pub struct ICoreWebView2ServerCertificateErrorDetectedEventArgs_Vtbl {
34979    pub base__: windows_core::IUnknown_Vtbl,
34980    pub ErrorStatus: unsafe extern "system" fn(
34981        *mut core::ffi::c_void,
34982        *mut COREWEBVIEW2_WEB_ERROR_STATUS,
34983    ) -> windows_core::HRESULT,
34984    pub RequestUri: unsafe extern "system" fn(
34985        *mut core::ffi::c_void,
34986        *mut windows_core::PWSTR,
34987    ) -> windows_core::HRESULT,
34988    pub ServerCertificate: unsafe extern "system" fn(
34989        *mut core::ffi::c_void,
34990        *mut *mut core::ffi::c_void,
34991    ) -> windows_core::HRESULT,
34992    pub Action: unsafe extern "system" fn(
34993        *mut core::ffi::c_void,
34994        *mut COREWEBVIEW2_SERVER_CERTIFICATE_ERROR_ACTION,
34995    ) -> windows_core::HRESULT,
34996    pub SetAction: unsafe extern "system" fn(
34997        *mut core::ffi::c_void,
34998        COREWEBVIEW2_SERVER_CERTIFICATE_ERROR_ACTION,
34999    ) -> windows_core::HRESULT,
35000    pub GetDeferral: unsafe extern "system" fn(
35001        *mut core::ffi::c_void,
35002        *mut *mut core::ffi::c_void,
35003    ) -> windows_core::HRESULT,
35004}
35005pub trait ICoreWebView2ServerCertificateErrorDetectedEventArgs_Impl:
35006    windows_core::IUnknownImpl
35007{
35008    fn ErrorStatus(&self, value: *mut COREWEBVIEW2_WEB_ERROR_STATUS) -> windows_core::Result<()>;
35009    fn RequestUri(&self, value: *mut windows_core::PWSTR) -> windows_core::Result<()>;
35010    fn ServerCertificate(&self) -> windows_core::Result<ICoreWebView2Certificate>;
35011    fn Action(
35012        &self,
35013        value: *mut COREWEBVIEW2_SERVER_CERTIFICATE_ERROR_ACTION,
35014    ) -> windows_core::Result<()>;
35015    fn SetAction(
35016        &self,
35017        value: COREWEBVIEW2_SERVER_CERTIFICATE_ERROR_ACTION,
35018    ) -> windows_core::Result<()>;
35019    fn GetDeferral(&self) -> windows_core::Result<ICoreWebView2Deferral>;
35020}
35021impl ICoreWebView2ServerCertificateErrorDetectedEventArgs_Vtbl {
35022    pub const fn new<
35023        Identity: ICoreWebView2ServerCertificateErrorDetectedEventArgs_Impl,
35024        const OFFSET: isize,
35025    >() -> Self {
35026        unsafe extern "system" fn ErrorStatus<
35027            Identity: ICoreWebView2ServerCertificateErrorDetectedEventArgs_Impl,
35028            const OFFSET: isize,
35029        >(
35030            this: *mut core::ffi::c_void,
35031            value: *mut COREWEBVIEW2_WEB_ERROR_STATUS,
35032        ) -> windows_core::HRESULT {
35033            unsafe {
35034                let this: &Identity =
35035                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
35036                ICoreWebView2ServerCertificateErrorDetectedEventArgs_Impl::ErrorStatus(
35037                    this,
35038                    core::mem::transmute_copy(&value),
35039                )
35040                .into()
35041            }
35042        }
35043        unsafe extern "system" fn RequestUri<
35044            Identity: ICoreWebView2ServerCertificateErrorDetectedEventArgs_Impl,
35045            const OFFSET: isize,
35046        >(
35047            this: *mut core::ffi::c_void,
35048            value: *mut windows_core::PWSTR,
35049        ) -> windows_core::HRESULT {
35050            unsafe {
35051                let this: &Identity =
35052                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
35053                ICoreWebView2ServerCertificateErrorDetectedEventArgs_Impl::RequestUri(
35054                    this,
35055                    core::mem::transmute_copy(&value),
35056                )
35057                .into()
35058            }
35059        }
35060        unsafe extern "system" fn ServerCertificate<
35061            Identity: ICoreWebView2ServerCertificateErrorDetectedEventArgs_Impl,
35062            const OFFSET: isize,
35063        >(
35064            this: *mut core::ffi::c_void,
35065            value: *mut *mut core::ffi::c_void,
35066        ) -> windows_core::HRESULT {
35067            unsafe {
35068                let this: &Identity =
35069                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
35070                match ICoreWebView2ServerCertificateErrorDetectedEventArgs_Impl::ServerCertificate(
35071                    this,
35072                ) {
35073                    Ok(ok__) => {
35074                        value.write(core::mem::transmute(ok__));
35075                        windows_core::HRESULT(0)
35076                    }
35077                    Err(err) => err.into(),
35078                }
35079            }
35080        }
35081        unsafe extern "system" fn Action<
35082            Identity: ICoreWebView2ServerCertificateErrorDetectedEventArgs_Impl,
35083            const OFFSET: isize,
35084        >(
35085            this: *mut core::ffi::c_void,
35086            value: *mut COREWEBVIEW2_SERVER_CERTIFICATE_ERROR_ACTION,
35087        ) -> windows_core::HRESULT {
35088            unsafe {
35089                let this: &Identity =
35090                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
35091                ICoreWebView2ServerCertificateErrorDetectedEventArgs_Impl::Action(
35092                    this,
35093                    core::mem::transmute_copy(&value),
35094                )
35095                .into()
35096            }
35097        }
35098        unsafe extern "system" fn SetAction<
35099            Identity: ICoreWebView2ServerCertificateErrorDetectedEventArgs_Impl,
35100            const OFFSET: isize,
35101        >(
35102            this: *mut core::ffi::c_void,
35103            value: COREWEBVIEW2_SERVER_CERTIFICATE_ERROR_ACTION,
35104        ) -> windows_core::HRESULT {
35105            unsafe {
35106                let this: &Identity =
35107                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
35108                ICoreWebView2ServerCertificateErrorDetectedEventArgs_Impl::SetAction(
35109                    this,
35110                    core::mem::transmute_copy(&value),
35111                )
35112                .into()
35113            }
35114        }
35115        unsafe extern "system" fn GetDeferral<
35116            Identity: ICoreWebView2ServerCertificateErrorDetectedEventArgs_Impl,
35117            const OFFSET: isize,
35118        >(
35119            this: *mut core::ffi::c_void,
35120            deferral: *mut *mut core::ffi::c_void,
35121        ) -> windows_core::HRESULT {
35122            unsafe {
35123                let this: &Identity =
35124                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
35125                match ICoreWebView2ServerCertificateErrorDetectedEventArgs_Impl::GetDeferral(this) {
35126                    Ok(ok__) => {
35127                        deferral.write(core::mem::transmute(ok__));
35128                        windows_core::HRESULT(0)
35129                    }
35130                    Err(err) => err.into(),
35131                }
35132            }
35133        }
35134        Self {
35135            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
35136            ErrorStatus: ErrorStatus::<Identity, OFFSET>,
35137            RequestUri: RequestUri::<Identity, OFFSET>,
35138            ServerCertificate: ServerCertificate::<Identity, OFFSET>,
35139            Action: Action::<Identity, OFFSET>,
35140            SetAction: SetAction::<Identity, OFFSET>,
35141            GetDeferral: GetDeferral::<Identity, OFFSET>,
35142        }
35143    }
35144    pub fn matches(iid: &windows_core::GUID) -> bool {
35145        iid == & < ICoreWebView2ServerCertificateErrorDetectedEventArgs as windows_core::Interface >::IID
35146    }
35147}
35148impl windows_core::RuntimeName for ICoreWebView2ServerCertificateErrorDetectedEventArgs {}
35149windows_core::imp::define_interface!(
35150    ICoreWebView2ServerCertificateErrorDetectedEventHandler,
35151    ICoreWebView2ServerCertificateErrorDetectedEventHandler_Vtbl,
35152    0x969b3a26_d85e_4795_8199_fef57344da22
35153);
35154windows_core::imp::interface_hierarchy!(
35155    ICoreWebView2ServerCertificateErrorDetectedEventHandler,
35156    windows_core::IUnknown
35157);
35158impl ICoreWebView2ServerCertificateErrorDetectedEventHandler {
35159    pub unsafe fn Invoke<P0, P1>(&self, sender: P0, args: P1) -> windows_core::Result<()>
35160    where
35161        P0: windows_core::Param<ICoreWebView2>,
35162        P1: windows_core::Param<ICoreWebView2ServerCertificateErrorDetectedEventArgs>,
35163    {
35164        unsafe {
35165            (windows_core::Interface::vtable(self).Invoke)(
35166                windows_core::Interface::as_raw(self),
35167                sender.param().abi(),
35168                args.param().abi(),
35169            )
35170            .ok()
35171        }
35172    }
35173}
35174#[repr(C)]
35175#[doc(hidden)]
35176pub struct ICoreWebView2ServerCertificateErrorDetectedEventHandler_Vtbl {
35177    pub base__: windows_core::IUnknown_Vtbl,
35178    pub Invoke: unsafe extern "system" fn(
35179        *mut core::ffi::c_void,
35180        *mut core::ffi::c_void,
35181        *mut core::ffi::c_void,
35182    ) -> windows_core::HRESULT,
35183}
35184pub trait ICoreWebView2ServerCertificateErrorDetectedEventHandler_Impl:
35185    windows_core::IUnknownImpl
35186{
35187    fn Invoke(
35188        &self,
35189        sender: windows_core::Ref<ICoreWebView2>,
35190        args: windows_core::Ref<ICoreWebView2ServerCertificateErrorDetectedEventArgs>,
35191    ) -> windows_core::Result<()>;
35192}
35193impl ICoreWebView2ServerCertificateErrorDetectedEventHandler_Vtbl {
35194    pub const fn new<
35195        Identity: ICoreWebView2ServerCertificateErrorDetectedEventHandler_Impl,
35196        const OFFSET: isize,
35197    >() -> Self {
35198        unsafe extern "system" fn Invoke<
35199            Identity: ICoreWebView2ServerCertificateErrorDetectedEventHandler_Impl,
35200            const OFFSET: isize,
35201        >(
35202            this: *mut core::ffi::c_void,
35203            sender: *mut core::ffi::c_void,
35204            args: *mut core::ffi::c_void,
35205        ) -> windows_core::HRESULT {
35206            unsafe {
35207                let this: &Identity =
35208                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
35209                ICoreWebView2ServerCertificateErrorDetectedEventHandler_Impl::Invoke(
35210                    this,
35211                    core::mem::transmute_copy(&sender),
35212                    core::mem::transmute_copy(&args),
35213                )
35214                .into()
35215            }
35216        }
35217        Self {
35218            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
35219            Invoke: Invoke::<Identity, OFFSET>,
35220        }
35221    }
35222    pub fn matches(iid: &windows_core::GUID) -> bool {
35223        iid == & < ICoreWebView2ServerCertificateErrorDetectedEventHandler as windows_core::Interface >::IID
35224    }
35225}
35226impl windows_core::RuntimeName for ICoreWebView2ServerCertificateErrorDetectedEventHandler {}
35227windows_core::imp::define_interface!(
35228    ICoreWebView2SetPermissionStateCompletedHandler,
35229    ICoreWebView2SetPermissionStateCompletedHandler_Vtbl,
35230    0xfc77fb30_9c9e_4076_b8c7_7644a703ca1b
35231);
35232windows_core::imp::interface_hierarchy!(
35233    ICoreWebView2SetPermissionStateCompletedHandler,
35234    windows_core::IUnknown
35235);
35236impl ICoreWebView2SetPermissionStateCompletedHandler {
35237    pub unsafe fn Invoke(&self, errorcode: windows_core::HRESULT) -> windows_core::Result<()> {
35238        unsafe {
35239            (windows_core::Interface::vtable(self).Invoke)(
35240                windows_core::Interface::as_raw(self),
35241                errorcode,
35242            )
35243            .ok()
35244        }
35245    }
35246}
35247#[repr(C)]
35248#[doc(hidden)]
35249pub struct ICoreWebView2SetPermissionStateCompletedHandler_Vtbl {
35250    pub base__: windows_core::IUnknown_Vtbl,
35251    pub Invoke: unsafe extern "system" fn(
35252        *mut core::ffi::c_void,
35253        windows_core::HRESULT,
35254    ) -> windows_core::HRESULT,
35255}
35256pub trait ICoreWebView2SetPermissionStateCompletedHandler_Impl: windows_core::IUnknownImpl {
35257    fn Invoke(&self, errorcode: windows_core::HRESULT) -> windows_core::Result<()>;
35258}
35259impl ICoreWebView2SetPermissionStateCompletedHandler_Vtbl {
35260    pub const fn new<
35261        Identity: ICoreWebView2SetPermissionStateCompletedHandler_Impl,
35262        const OFFSET: isize,
35263    >() -> Self {
35264        unsafe extern "system" fn Invoke<
35265            Identity: ICoreWebView2SetPermissionStateCompletedHandler_Impl,
35266            const OFFSET: isize,
35267        >(
35268            this: *mut core::ffi::c_void,
35269            errorcode: windows_core::HRESULT,
35270        ) -> windows_core::HRESULT {
35271            unsafe {
35272                let this: &Identity =
35273                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
35274                ICoreWebView2SetPermissionStateCompletedHandler_Impl::Invoke(
35275                    this,
35276                    core::mem::transmute_copy(&errorcode),
35277                )
35278                .into()
35279            }
35280        }
35281        Self {
35282            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
35283            Invoke: Invoke::<Identity, OFFSET>,
35284        }
35285    }
35286    pub fn matches(iid: &windows_core::GUID) -> bool {
35287        iid == &<ICoreWebView2SetPermissionStateCompletedHandler as windows_core::Interface>::IID
35288    }
35289}
35290impl windows_core::RuntimeName for ICoreWebView2SetPermissionStateCompletedHandler {}
35291windows_core::imp::define_interface!(
35292    ICoreWebView2Settings,
35293    ICoreWebView2Settings_Vtbl,
35294    0xe562e4f0_d7fa_43ac_8d71_c05150499f00
35295);
35296windows_core::imp::interface_hierarchy!(ICoreWebView2Settings, windows_core::IUnknown);
35297impl ICoreWebView2Settings {
35298    pub unsafe fn IsScriptEnabled(
35299        &self,
35300        isscriptenabled: *mut windows_core::BOOL,
35301    ) -> windows_core::Result<()> {
35302        unsafe {
35303            (windows_core::Interface::vtable(self).IsScriptEnabled)(
35304                windows_core::Interface::as_raw(self),
35305                isscriptenabled as _,
35306            )
35307            .ok()
35308        }
35309    }
35310    pub unsafe fn SetIsScriptEnabled(&self, isscriptenabled: bool) -> windows_core::Result<()> {
35311        unsafe {
35312            (windows_core::Interface::vtable(self).SetIsScriptEnabled)(
35313                windows_core::Interface::as_raw(self),
35314                isscriptenabled.into(),
35315            )
35316            .ok()
35317        }
35318    }
35319    pub unsafe fn IsWebMessageEnabled(
35320        &self,
35321        iswebmessageenabled: *mut windows_core::BOOL,
35322    ) -> windows_core::Result<()> {
35323        unsafe {
35324            (windows_core::Interface::vtable(self).IsWebMessageEnabled)(
35325                windows_core::Interface::as_raw(self),
35326                iswebmessageenabled as _,
35327            )
35328            .ok()
35329        }
35330    }
35331    pub unsafe fn SetIsWebMessageEnabled(
35332        &self,
35333        iswebmessageenabled: bool,
35334    ) -> windows_core::Result<()> {
35335        unsafe {
35336            (windows_core::Interface::vtable(self).SetIsWebMessageEnabled)(
35337                windows_core::Interface::as_raw(self),
35338                iswebmessageenabled.into(),
35339            )
35340            .ok()
35341        }
35342    }
35343    pub unsafe fn AreDefaultScriptDialogsEnabled(
35344        &self,
35345        aredefaultscriptdialogsenabled: *mut windows_core::BOOL,
35346    ) -> windows_core::Result<()> {
35347        unsafe {
35348            (windows_core::Interface::vtable(self).AreDefaultScriptDialogsEnabled)(
35349                windows_core::Interface::as_raw(self),
35350                aredefaultscriptdialogsenabled as _,
35351            )
35352            .ok()
35353        }
35354    }
35355    pub unsafe fn SetAreDefaultScriptDialogsEnabled(
35356        &self,
35357        aredefaultscriptdialogsenabled: bool,
35358    ) -> windows_core::Result<()> {
35359        unsafe {
35360            (windows_core::Interface::vtable(self).SetAreDefaultScriptDialogsEnabled)(
35361                windows_core::Interface::as_raw(self),
35362                aredefaultscriptdialogsenabled.into(),
35363            )
35364            .ok()
35365        }
35366    }
35367    pub unsafe fn IsStatusBarEnabled(
35368        &self,
35369        isstatusbarenabled: *mut windows_core::BOOL,
35370    ) -> windows_core::Result<()> {
35371        unsafe {
35372            (windows_core::Interface::vtable(self).IsStatusBarEnabled)(
35373                windows_core::Interface::as_raw(self),
35374                isstatusbarenabled as _,
35375            )
35376            .ok()
35377        }
35378    }
35379    pub unsafe fn SetIsStatusBarEnabled(
35380        &self,
35381        isstatusbarenabled: bool,
35382    ) -> windows_core::Result<()> {
35383        unsafe {
35384            (windows_core::Interface::vtable(self).SetIsStatusBarEnabled)(
35385                windows_core::Interface::as_raw(self),
35386                isstatusbarenabled.into(),
35387            )
35388            .ok()
35389        }
35390    }
35391    pub unsafe fn AreDevToolsEnabled(
35392        &self,
35393        aredevtoolsenabled: *mut windows_core::BOOL,
35394    ) -> windows_core::Result<()> {
35395        unsafe {
35396            (windows_core::Interface::vtable(self).AreDevToolsEnabled)(
35397                windows_core::Interface::as_raw(self),
35398                aredevtoolsenabled as _,
35399            )
35400            .ok()
35401        }
35402    }
35403    pub unsafe fn SetAreDevToolsEnabled(
35404        &self,
35405        aredevtoolsenabled: bool,
35406    ) -> windows_core::Result<()> {
35407        unsafe {
35408            (windows_core::Interface::vtable(self).SetAreDevToolsEnabled)(
35409                windows_core::Interface::as_raw(self),
35410                aredevtoolsenabled.into(),
35411            )
35412            .ok()
35413        }
35414    }
35415    pub unsafe fn AreDefaultContextMenusEnabled(
35416        &self,
35417        enabled: *mut windows_core::BOOL,
35418    ) -> windows_core::Result<()> {
35419        unsafe {
35420            (windows_core::Interface::vtable(self).AreDefaultContextMenusEnabled)(
35421                windows_core::Interface::as_raw(self),
35422                enabled as _,
35423            )
35424            .ok()
35425        }
35426    }
35427    pub unsafe fn SetAreDefaultContextMenusEnabled(
35428        &self,
35429        enabled: bool,
35430    ) -> windows_core::Result<()> {
35431        unsafe {
35432            (windows_core::Interface::vtable(self).SetAreDefaultContextMenusEnabled)(
35433                windows_core::Interface::as_raw(self),
35434                enabled.into(),
35435            )
35436            .ok()
35437        }
35438    }
35439    pub unsafe fn AreHostObjectsAllowed(
35440        &self,
35441        allowed: *mut windows_core::BOOL,
35442    ) -> windows_core::Result<()> {
35443        unsafe {
35444            (windows_core::Interface::vtable(self).AreHostObjectsAllowed)(
35445                windows_core::Interface::as_raw(self),
35446                allowed as _,
35447            )
35448            .ok()
35449        }
35450    }
35451    pub unsafe fn SetAreHostObjectsAllowed(&self, allowed: bool) -> windows_core::Result<()> {
35452        unsafe {
35453            (windows_core::Interface::vtable(self).SetAreHostObjectsAllowed)(
35454                windows_core::Interface::as_raw(self),
35455                allowed.into(),
35456            )
35457            .ok()
35458        }
35459    }
35460    pub unsafe fn IsZoomControlEnabled(
35461        &self,
35462        enabled: *mut windows_core::BOOL,
35463    ) -> windows_core::Result<()> {
35464        unsafe {
35465            (windows_core::Interface::vtable(self).IsZoomControlEnabled)(
35466                windows_core::Interface::as_raw(self),
35467                enabled as _,
35468            )
35469            .ok()
35470        }
35471    }
35472    pub unsafe fn SetIsZoomControlEnabled(&self, enabled: bool) -> windows_core::Result<()> {
35473        unsafe {
35474            (windows_core::Interface::vtable(self).SetIsZoomControlEnabled)(
35475                windows_core::Interface::as_raw(self),
35476                enabled.into(),
35477            )
35478            .ok()
35479        }
35480    }
35481    pub unsafe fn IsBuiltInErrorPageEnabled(
35482        &self,
35483        enabled: *mut windows_core::BOOL,
35484    ) -> windows_core::Result<()> {
35485        unsafe {
35486            (windows_core::Interface::vtable(self).IsBuiltInErrorPageEnabled)(
35487                windows_core::Interface::as_raw(self),
35488                enabled as _,
35489            )
35490            .ok()
35491        }
35492    }
35493    pub unsafe fn SetIsBuiltInErrorPageEnabled(&self, enabled: bool) -> windows_core::Result<()> {
35494        unsafe {
35495            (windows_core::Interface::vtable(self).SetIsBuiltInErrorPageEnabled)(
35496                windows_core::Interface::as_raw(self),
35497                enabled.into(),
35498            )
35499            .ok()
35500        }
35501    }
35502}
35503#[repr(C)]
35504#[doc(hidden)]
35505pub struct ICoreWebView2Settings_Vtbl {
35506    pub base__: windows_core::IUnknown_Vtbl,
35507    pub IsScriptEnabled: unsafe extern "system" fn(
35508        *mut core::ffi::c_void,
35509        *mut windows_core::BOOL,
35510    ) -> windows_core::HRESULT,
35511    pub SetIsScriptEnabled: unsafe extern "system" fn(
35512        *mut core::ffi::c_void,
35513        windows_core::BOOL,
35514    ) -> windows_core::HRESULT,
35515    pub IsWebMessageEnabled: unsafe extern "system" fn(
35516        *mut core::ffi::c_void,
35517        *mut windows_core::BOOL,
35518    ) -> windows_core::HRESULT,
35519    pub SetIsWebMessageEnabled: unsafe extern "system" fn(
35520        *mut core::ffi::c_void,
35521        windows_core::BOOL,
35522    ) -> windows_core::HRESULT,
35523    pub AreDefaultScriptDialogsEnabled: unsafe extern "system" fn(
35524        *mut core::ffi::c_void,
35525        *mut windows_core::BOOL,
35526    ) -> windows_core::HRESULT,
35527    pub SetAreDefaultScriptDialogsEnabled: unsafe extern "system" fn(
35528        *mut core::ffi::c_void,
35529        windows_core::BOOL,
35530    ) -> windows_core::HRESULT,
35531    pub IsStatusBarEnabled: unsafe extern "system" fn(
35532        *mut core::ffi::c_void,
35533        *mut windows_core::BOOL,
35534    ) -> windows_core::HRESULT,
35535    pub SetIsStatusBarEnabled: unsafe extern "system" fn(
35536        *mut core::ffi::c_void,
35537        windows_core::BOOL,
35538    ) -> windows_core::HRESULT,
35539    pub AreDevToolsEnabled: unsafe extern "system" fn(
35540        *mut core::ffi::c_void,
35541        *mut windows_core::BOOL,
35542    ) -> windows_core::HRESULT,
35543    pub SetAreDevToolsEnabled: unsafe extern "system" fn(
35544        *mut core::ffi::c_void,
35545        windows_core::BOOL,
35546    ) -> windows_core::HRESULT,
35547    pub AreDefaultContextMenusEnabled: unsafe extern "system" fn(
35548        *mut core::ffi::c_void,
35549        *mut windows_core::BOOL,
35550    ) -> windows_core::HRESULT,
35551    pub SetAreDefaultContextMenusEnabled: unsafe extern "system" fn(
35552        *mut core::ffi::c_void,
35553        windows_core::BOOL,
35554    ) -> windows_core::HRESULT,
35555    pub AreHostObjectsAllowed: unsafe extern "system" fn(
35556        *mut core::ffi::c_void,
35557        *mut windows_core::BOOL,
35558    ) -> windows_core::HRESULT,
35559    pub SetAreHostObjectsAllowed: unsafe extern "system" fn(
35560        *mut core::ffi::c_void,
35561        windows_core::BOOL,
35562    ) -> windows_core::HRESULT,
35563    pub IsZoomControlEnabled: unsafe extern "system" fn(
35564        *mut core::ffi::c_void,
35565        *mut windows_core::BOOL,
35566    ) -> windows_core::HRESULT,
35567    pub SetIsZoomControlEnabled: unsafe extern "system" fn(
35568        *mut core::ffi::c_void,
35569        windows_core::BOOL,
35570    ) -> windows_core::HRESULT,
35571    pub IsBuiltInErrorPageEnabled: unsafe extern "system" fn(
35572        *mut core::ffi::c_void,
35573        *mut windows_core::BOOL,
35574    ) -> windows_core::HRESULT,
35575    pub SetIsBuiltInErrorPageEnabled: unsafe extern "system" fn(
35576        *mut core::ffi::c_void,
35577        windows_core::BOOL,
35578    ) -> windows_core::HRESULT,
35579}
35580pub trait ICoreWebView2Settings_Impl: windows_core::IUnknownImpl {
35581    fn IsScriptEnabled(&self, isscriptenabled: *mut windows_core::BOOL)
35582        -> windows_core::Result<()>;
35583    fn SetIsScriptEnabled(&self, isscriptenabled: windows_core::BOOL) -> windows_core::Result<()>;
35584    fn IsWebMessageEnabled(
35585        &self,
35586        iswebmessageenabled: *mut windows_core::BOOL,
35587    ) -> windows_core::Result<()>;
35588    fn SetIsWebMessageEnabled(
35589        &self,
35590        iswebmessageenabled: windows_core::BOOL,
35591    ) -> windows_core::Result<()>;
35592    fn AreDefaultScriptDialogsEnabled(
35593        &self,
35594        aredefaultscriptdialogsenabled: *mut windows_core::BOOL,
35595    ) -> windows_core::Result<()>;
35596    fn SetAreDefaultScriptDialogsEnabled(
35597        &self,
35598        aredefaultscriptdialogsenabled: windows_core::BOOL,
35599    ) -> windows_core::Result<()>;
35600    fn IsStatusBarEnabled(
35601        &self,
35602        isstatusbarenabled: *mut windows_core::BOOL,
35603    ) -> windows_core::Result<()>;
35604    fn SetIsStatusBarEnabled(
35605        &self,
35606        isstatusbarenabled: windows_core::BOOL,
35607    ) -> windows_core::Result<()>;
35608    fn AreDevToolsEnabled(
35609        &self,
35610        aredevtoolsenabled: *mut windows_core::BOOL,
35611    ) -> windows_core::Result<()>;
35612    fn SetAreDevToolsEnabled(
35613        &self,
35614        aredevtoolsenabled: windows_core::BOOL,
35615    ) -> windows_core::Result<()>;
35616    fn AreDefaultContextMenusEnabled(
35617        &self,
35618        enabled: *mut windows_core::BOOL,
35619    ) -> windows_core::Result<()>;
35620    fn SetAreDefaultContextMenusEnabled(
35621        &self,
35622        enabled: windows_core::BOOL,
35623    ) -> windows_core::Result<()>;
35624    fn AreHostObjectsAllowed(&self, allowed: *mut windows_core::BOOL) -> windows_core::Result<()>;
35625    fn SetAreHostObjectsAllowed(&self, allowed: windows_core::BOOL) -> windows_core::Result<()>;
35626    fn IsZoomControlEnabled(&self, enabled: *mut windows_core::BOOL) -> windows_core::Result<()>;
35627    fn SetIsZoomControlEnabled(&self, enabled: windows_core::BOOL) -> windows_core::Result<()>;
35628    fn IsBuiltInErrorPageEnabled(
35629        &self,
35630        enabled: *mut windows_core::BOOL,
35631    ) -> windows_core::Result<()>;
35632    fn SetIsBuiltInErrorPageEnabled(&self, enabled: windows_core::BOOL)
35633        -> windows_core::Result<()>;
35634}
35635impl ICoreWebView2Settings_Vtbl {
35636    pub const fn new<Identity: ICoreWebView2Settings_Impl, const OFFSET: isize>() -> Self {
35637        unsafe extern "system" fn IsScriptEnabled<
35638            Identity: ICoreWebView2Settings_Impl,
35639            const OFFSET: isize,
35640        >(
35641            this: *mut core::ffi::c_void,
35642            isscriptenabled: *mut windows_core::BOOL,
35643        ) -> windows_core::HRESULT {
35644            unsafe {
35645                let this: &Identity =
35646                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
35647                ICoreWebView2Settings_Impl::IsScriptEnabled(
35648                    this,
35649                    core::mem::transmute_copy(&isscriptenabled),
35650                )
35651                .into()
35652            }
35653        }
35654        unsafe extern "system" fn SetIsScriptEnabled<
35655            Identity: ICoreWebView2Settings_Impl,
35656            const OFFSET: isize,
35657        >(
35658            this: *mut core::ffi::c_void,
35659            isscriptenabled: windows_core::BOOL,
35660        ) -> windows_core::HRESULT {
35661            unsafe {
35662                let this: &Identity =
35663                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
35664                ICoreWebView2Settings_Impl::SetIsScriptEnabled(
35665                    this,
35666                    core::mem::transmute_copy(&isscriptenabled),
35667                )
35668                .into()
35669            }
35670        }
35671        unsafe extern "system" fn IsWebMessageEnabled<
35672            Identity: ICoreWebView2Settings_Impl,
35673            const OFFSET: isize,
35674        >(
35675            this: *mut core::ffi::c_void,
35676            iswebmessageenabled: *mut windows_core::BOOL,
35677        ) -> windows_core::HRESULT {
35678            unsafe {
35679                let this: &Identity =
35680                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
35681                ICoreWebView2Settings_Impl::IsWebMessageEnabled(
35682                    this,
35683                    core::mem::transmute_copy(&iswebmessageenabled),
35684                )
35685                .into()
35686            }
35687        }
35688        unsafe extern "system" fn SetIsWebMessageEnabled<
35689            Identity: ICoreWebView2Settings_Impl,
35690            const OFFSET: isize,
35691        >(
35692            this: *mut core::ffi::c_void,
35693            iswebmessageenabled: windows_core::BOOL,
35694        ) -> windows_core::HRESULT {
35695            unsafe {
35696                let this: &Identity =
35697                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
35698                ICoreWebView2Settings_Impl::SetIsWebMessageEnabled(
35699                    this,
35700                    core::mem::transmute_copy(&iswebmessageenabled),
35701                )
35702                .into()
35703            }
35704        }
35705        unsafe extern "system" fn AreDefaultScriptDialogsEnabled<
35706            Identity: ICoreWebView2Settings_Impl,
35707            const OFFSET: isize,
35708        >(
35709            this: *mut core::ffi::c_void,
35710            aredefaultscriptdialogsenabled: *mut windows_core::BOOL,
35711        ) -> windows_core::HRESULT {
35712            unsafe {
35713                let this: &Identity =
35714                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
35715                ICoreWebView2Settings_Impl::AreDefaultScriptDialogsEnabled(
35716                    this,
35717                    core::mem::transmute_copy(&aredefaultscriptdialogsenabled),
35718                )
35719                .into()
35720            }
35721        }
35722        unsafe extern "system" fn SetAreDefaultScriptDialogsEnabled<
35723            Identity: ICoreWebView2Settings_Impl,
35724            const OFFSET: isize,
35725        >(
35726            this: *mut core::ffi::c_void,
35727            aredefaultscriptdialogsenabled: windows_core::BOOL,
35728        ) -> windows_core::HRESULT {
35729            unsafe {
35730                let this: &Identity =
35731                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
35732                ICoreWebView2Settings_Impl::SetAreDefaultScriptDialogsEnabled(
35733                    this,
35734                    core::mem::transmute_copy(&aredefaultscriptdialogsenabled),
35735                )
35736                .into()
35737            }
35738        }
35739        unsafe extern "system" fn IsStatusBarEnabled<
35740            Identity: ICoreWebView2Settings_Impl,
35741            const OFFSET: isize,
35742        >(
35743            this: *mut core::ffi::c_void,
35744            isstatusbarenabled: *mut windows_core::BOOL,
35745        ) -> windows_core::HRESULT {
35746            unsafe {
35747                let this: &Identity =
35748                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
35749                ICoreWebView2Settings_Impl::IsStatusBarEnabled(
35750                    this,
35751                    core::mem::transmute_copy(&isstatusbarenabled),
35752                )
35753                .into()
35754            }
35755        }
35756        unsafe extern "system" fn SetIsStatusBarEnabled<
35757            Identity: ICoreWebView2Settings_Impl,
35758            const OFFSET: isize,
35759        >(
35760            this: *mut core::ffi::c_void,
35761            isstatusbarenabled: windows_core::BOOL,
35762        ) -> windows_core::HRESULT {
35763            unsafe {
35764                let this: &Identity =
35765                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
35766                ICoreWebView2Settings_Impl::SetIsStatusBarEnabled(
35767                    this,
35768                    core::mem::transmute_copy(&isstatusbarenabled),
35769                )
35770                .into()
35771            }
35772        }
35773        unsafe extern "system" fn AreDevToolsEnabled<
35774            Identity: ICoreWebView2Settings_Impl,
35775            const OFFSET: isize,
35776        >(
35777            this: *mut core::ffi::c_void,
35778            aredevtoolsenabled: *mut windows_core::BOOL,
35779        ) -> windows_core::HRESULT {
35780            unsafe {
35781                let this: &Identity =
35782                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
35783                ICoreWebView2Settings_Impl::AreDevToolsEnabled(
35784                    this,
35785                    core::mem::transmute_copy(&aredevtoolsenabled),
35786                )
35787                .into()
35788            }
35789        }
35790        unsafe extern "system" fn SetAreDevToolsEnabled<
35791            Identity: ICoreWebView2Settings_Impl,
35792            const OFFSET: isize,
35793        >(
35794            this: *mut core::ffi::c_void,
35795            aredevtoolsenabled: windows_core::BOOL,
35796        ) -> windows_core::HRESULT {
35797            unsafe {
35798                let this: &Identity =
35799                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
35800                ICoreWebView2Settings_Impl::SetAreDevToolsEnabled(
35801                    this,
35802                    core::mem::transmute_copy(&aredevtoolsenabled),
35803                )
35804                .into()
35805            }
35806        }
35807        unsafe extern "system" fn AreDefaultContextMenusEnabled<
35808            Identity: ICoreWebView2Settings_Impl,
35809            const OFFSET: isize,
35810        >(
35811            this: *mut core::ffi::c_void,
35812            enabled: *mut windows_core::BOOL,
35813        ) -> windows_core::HRESULT {
35814            unsafe {
35815                let this: &Identity =
35816                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
35817                ICoreWebView2Settings_Impl::AreDefaultContextMenusEnabled(
35818                    this,
35819                    core::mem::transmute_copy(&enabled),
35820                )
35821                .into()
35822            }
35823        }
35824        unsafe extern "system" fn SetAreDefaultContextMenusEnabled<
35825            Identity: ICoreWebView2Settings_Impl,
35826            const OFFSET: isize,
35827        >(
35828            this: *mut core::ffi::c_void,
35829            enabled: windows_core::BOOL,
35830        ) -> windows_core::HRESULT {
35831            unsafe {
35832                let this: &Identity =
35833                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
35834                ICoreWebView2Settings_Impl::SetAreDefaultContextMenusEnabled(
35835                    this,
35836                    core::mem::transmute_copy(&enabled),
35837                )
35838                .into()
35839            }
35840        }
35841        unsafe extern "system" fn AreHostObjectsAllowed<
35842            Identity: ICoreWebView2Settings_Impl,
35843            const OFFSET: isize,
35844        >(
35845            this: *mut core::ffi::c_void,
35846            allowed: *mut windows_core::BOOL,
35847        ) -> windows_core::HRESULT {
35848            unsafe {
35849                let this: &Identity =
35850                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
35851                ICoreWebView2Settings_Impl::AreHostObjectsAllowed(
35852                    this,
35853                    core::mem::transmute_copy(&allowed),
35854                )
35855                .into()
35856            }
35857        }
35858        unsafe extern "system" fn SetAreHostObjectsAllowed<
35859            Identity: ICoreWebView2Settings_Impl,
35860            const OFFSET: isize,
35861        >(
35862            this: *mut core::ffi::c_void,
35863            allowed: windows_core::BOOL,
35864        ) -> windows_core::HRESULT {
35865            unsafe {
35866                let this: &Identity =
35867                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
35868                ICoreWebView2Settings_Impl::SetAreHostObjectsAllowed(
35869                    this,
35870                    core::mem::transmute_copy(&allowed),
35871                )
35872                .into()
35873            }
35874        }
35875        unsafe extern "system" fn IsZoomControlEnabled<
35876            Identity: ICoreWebView2Settings_Impl,
35877            const OFFSET: isize,
35878        >(
35879            this: *mut core::ffi::c_void,
35880            enabled: *mut windows_core::BOOL,
35881        ) -> windows_core::HRESULT {
35882            unsafe {
35883                let this: &Identity =
35884                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
35885                ICoreWebView2Settings_Impl::IsZoomControlEnabled(
35886                    this,
35887                    core::mem::transmute_copy(&enabled),
35888                )
35889                .into()
35890            }
35891        }
35892        unsafe extern "system" fn SetIsZoomControlEnabled<
35893            Identity: ICoreWebView2Settings_Impl,
35894            const OFFSET: isize,
35895        >(
35896            this: *mut core::ffi::c_void,
35897            enabled: windows_core::BOOL,
35898        ) -> windows_core::HRESULT {
35899            unsafe {
35900                let this: &Identity =
35901                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
35902                ICoreWebView2Settings_Impl::SetIsZoomControlEnabled(
35903                    this,
35904                    core::mem::transmute_copy(&enabled),
35905                )
35906                .into()
35907            }
35908        }
35909        unsafe extern "system" fn IsBuiltInErrorPageEnabled<
35910            Identity: ICoreWebView2Settings_Impl,
35911            const OFFSET: isize,
35912        >(
35913            this: *mut core::ffi::c_void,
35914            enabled: *mut windows_core::BOOL,
35915        ) -> windows_core::HRESULT {
35916            unsafe {
35917                let this: &Identity =
35918                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
35919                ICoreWebView2Settings_Impl::IsBuiltInErrorPageEnabled(
35920                    this,
35921                    core::mem::transmute_copy(&enabled),
35922                )
35923                .into()
35924            }
35925        }
35926        unsafe extern "system" fn SetIsBuiltInErrorPageEnabled<
35927            Identity: ICoreWebView2Settings_Impl,
35928            const OFFSET: isize,
35929        >(
35930            this: *mut core::ffi::c_void,
35931            enabled: windows_core::BOOL,
35932        ) -> windows_core::HRESULT {
35933            unsafe {
35934                let this: &Identity =
35935                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
35936                ICoreWebView2Settings_Impl::SetIsBuiltInErrorPageEnabled(
35937                    this,
35938                    core::mem::transmute_copy(&enabled),
35939                )
35940                .into()
35941            }
35942        }
35943        Self {
35944            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
35945            IsScriptEnabled: IsScriptEnabled::<Identity, OFFSET>,
35946            SetIsScriptEnabled: SetIsScriptEnabled::<Identity, OFFSET>,
35947            IsWebMessageEnabled: IsWebMessageEnabled::<Identity, OFFSET>,
35948            SetIsWebMessageEnabled: SetIsWebMessageEnabled::<Identity, OFFSET>,
35949            AreDefaultScriptDialogsEnabled: AreDefaultScriptDialogsEnabled::<Identity, OFFSET>,
35950            SetAreDefaultScriptDialogsEnabled: SetAreDefaultScriptDialogsEnabled::<Identity, OFFSET>,
35951            IsStatusBarEnabled: IsStatusBarEnabled::<Identity, OFFSET>,
35952            SetIsStatusBarEnabled: SetIsStatusBarEnabled::<Identity, OFFSET>,
35953            AreDevToolsEnabled: AreDevToolsEnabled::<Identity, OFFSET>,
35954            SetAreDevToolsEnabled: SetAreDevToolsEnabled::<Identity, OFFSET>,
35955            AreDefaultContextMenusEnabled: AreDefaultContextMenusEnabled::<Identity, OFFSET>,
35956            SetAreDefaultContextMenusEnabled: SetAreDefaultContextMenusEnabled::<Identity, OFFSET>,
35957            AreHostObjectsAllowed: AreHostObjectsAllowed::<Identity, OFFSET>,
35958            SetAreHostObjectsAllowed: SetAreHostObjectsAllowed::<Identity, OFFSET>,
35959            IsZoomControlEnabled: IsZoomControlEnabled::<Identity, OFFSET>,
35960            SetIsZoomControlEnabled: SetIsZoomControlEnabled::<Identity, OFFSET>,
35961            IsBuiltInErrorPageEnabled: IsBuiltInErrorPageEnabled::<Identity, OFFSET>,
35962            SetIsBuiltInErrorPageEnabled: SetIsBuiltInErrorPageEnabled::<Identity, OFFSET>,
35963        }
35964    }
35965    pub fn matches(iid: &windows_core::GUID) -> bool {
35966        iid == &<ICoreWebView2Settings as windows_core::Interface>::IID
35967    }
35968}
35969impl windows_core::RuntimeName for ICoreWebView2Settings {}
35970windows_core::imp::define_interface!(
35971    ICoreWebView2Settings2,
35972    ICoreWebView2Settings2_Vtbl,
35973    0xee9a0f68_f46c_4e32_ac23_ef8cac224d2a
35974);
35975impl core::ops::Deref for ICoreWebView2Settings2 {
35976    type Target = ICoreWebView2Settings;
35977    fn deref(&self) -> &Self::Target {
35978        unsafe { core::mem::transmute(self) }
35979    }
35980}
35981windows_core::imp::interface_hierarchy!(
35982    ICoreWebView2Settings2,
35983    windows_core::IUnknown,
35984    ICoreWebView2Settings
35985);
35986impl ICoreWebView2Settings2 {
35987    pub unsafe fn UserAgent(&self, value: *mut windows_core::PWSTR) -> windows_core::Result<()> {
35988        unsafe {
35989            (windows_core::Interface::vtable(self).UserAgent)(
35990                windows_core::Interface::as_raw(self),
35991                value as _,
35992            )
35993            .ok()
35994        }
35995    }
35996    pub unsafe fn SetUserAgent<P0>(&self, value: P0) -> windows_core::Result<()>
35997    where
35998        P0: windows_core::Param<windows_core::PCWSTR>,
35999    {
36000        unsafe {
36001            (windows_core::Interface::vtable(self).SetUserAgent)(
36002                windows_core::Interface::as_raw(self),
36003                value.param().abi(),
36004            )
36005            .ok()
36006        }
36007    }
36008}
36009#[repr(C)]
36010#[doc(hidden)]
36011pub struct ICoreWebView2Settings2_Vtbl {
36012    pub base__: ICoreWebView2Settings_Vtbl,
36013    pub UserAgent: unsafe extern "system" fn(
36014        *mut core::ffi::c_void,
36015        *mut windows_core::PWSTR,
36016    ) -> windows_core::HRESULT,
36017    pub SetUserAgent: unsafe extern "system" fn(
36018        *mut core::ffi::c_void,
36019        windows_core::PCWSTR,
36020    ) -> windows_core::HRESULT,
36021}
36022pub trait ICoreWebView2Settings2_Impl: ICoreWebView2Settings_Impl {
36023    fn UserAgent(&self, value: *mut windows_core::PWSTR) -> windows_core::Result<()>;
36024    fn SetUserAgent(&self, value: &windows_core::PCWSTR) -> windows_core::Result<()>;
36025}
36026impl ICoreWebView2Settings2_Vtbl {
36027    pub const fn new<Identity: ICoreWebView2Settings2_Impl, const OFFSET: isize>() -> Self {
36028        unsafe extern "system" fn UserAgent<
36029            Identity: ICoreWebView2Settings2_Impl,
36030            const OFFSET: isize,
36031        >(
36032            this: *mut core::ffi::c_void,
36033            value: *mut windows_core::PWSTR,
36034        ) -> windows_core::HRESULT {
36035            unsafe {
36036                let this: &Identity =
36037                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
36038                ICoreWebView2Settings2_Impl::UserAgent(this, core::mem::transmute_copy(&value))
36039                    .into()
36040            }
36041        }
36042        unsafe extern "system" fn SetUserAgent<
36043            Identity: ICoreWebView2Settings2_Impl,
36044            const OFFSET: isize,
36045        >(
36046            this: *mut core::ffi::c_void,
36047            value: windows_core::PCWSTR,
36048        ) -> windows_core::HRESULT {
36049            unsafe {
36050                let this: &Identity =
36051                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
36052                ICoreWebView2Settings2_Impl::SetUserAgent(this, core::mem::transmute(&value)).into()
36053            }
36054        }
36055        Self {
36056            base__: ICoreWebView2Settings_Vtbl::new::<Identity, OFFSET>(),
36057            UserAgent: UserAgent::<Identity, OFFSET>,
36058            SetUserAgent: SetUserAgent::<Identity, OFFSET>,
36059        }
36060    }
36061    pub fn matches(iid: &windows_core::GUID) -> bool {
36062        iid == &<ICoreWebView2Settings2 as windows_core::Interface>::IID
36063            || iid == &<ICoreWebView2Settings as windows_core::Interface>::IID
36064    }
36065}
36066impl windows_core::RuntimeName for ICoreWebView2Settings2 {}
36067windows_core::imp::define_interface!(
36068    ICoreWebView2Settings3,
36069    ICoreWebView2Settings3_Vtbl,
36070    0xfdb5ab74_af33_4854_84f0_0a631deb5eba
36071);
36072impl core::ops::Deref for ICoreWebView2Settings3 {
36073    type Target = ICoreWebView2Settings2;
36074    fn deref(&self) -> &Self::Target {
36075        unsafe { core::mem::transmute(self) }
36076    }
36077}
36078windows_core::imp::interface_hierarchy!(
36079    ICoreWebView2Settings3,
36080    windows_core::IUnknown,
36081    ICoreWebView2Settings,
36082    ICoreWebView2Settings2
36083);
36084impl ICoreWebView2Settings3 {
36085    pub unsafe fn AreBrowserAcceleratorKeysEnabled(
36086        &self,
36087        value: *mut windows_core::BOOL,
36088    ) -> windows_core::Result<()> {
36089        unsafe {
36090            (windows_core::Interface::vtable(self).AreBrowserAcceleratorKeysEnabled)(
36091                windows_core::Interface::as_raw(self),
36092                value as _,
36093            )
36094            .ok()
36095        }
36096    }
36097    pub unsafe fn SetAreBrowserAcceleratorKeysEnabled(
36098        &self,
36099        value: bool,
36100    ) -> windows_core::Result<()> {
36101        unsafe {
36102            (windows_core::Interface::vtable(self).SetAreBrowserAcceleratorKeysEnabled)(
36103                windows_core::Interface::as_raw(self),
36104                value.into(),
36105            )
36106            .ok()
36107        }
36108    }
36109}
36110#[repr(C)]
36111#[doc(hidden)]
36112pub struct ICoreWebView2Settings3_Vtbl {
36113    pub base__: ICoreWebView2Settings2_Vtbl,
36114    pub AreBrowserAcceleratorKeysEnabled: unsafe extern "system" fn(
36115        *mut core::ffi::c_void,
36116        *mut windows_core::BOOL,
36117    ) -> windows_core::HRESULT,
36118    pub SetAreBrowserAcceleratorKeysEnabled: unsafe extern "system" fn(
36119        *mut core::ffi::c_void,
36120        windows_core::BOOL,
36121    )
36122        -> windows_core::HRESULT,
36123}
36124pub trait ICoreWebView2Settings3_Impl: ICoreWebView2Settings2_Impl {
36125    fn AreBrowserAcceleratorKeysEnabled(
36126        &self,
36127        value: *mut windows_core::BOOL,
36128    ) -> windows_core::Result<()>;
36129    fn SetAreBrowserAcceleratorKeysEnabled(
36130        &self,
36131        value: windows_core::BOOL,
36132    ) -> windows_core::Result<()>;
36133}
36134impl ICoreWebView2Settings3_Vtbl {
36135    pub const fn new<Identity: ICoreWebView2Settings3_Impl, const OFFSET: isize>() -> Self {
36136        unsafe extern "system" fn AreBrowserAcceleratorKeysEnabled<
36137            Identity: ICoreWebView2Settings3_Impl,
36138            const OFFSET: isize,
36139        >(
36140            this: *mut core::ffi::c_void,
36141            value: *mut windows_core::BOOL,
36142        ) -> windows_core::HRESULT {
36143            unsafe {
36144                let this: &Identity =
36145                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
36146                ICoreWebView2Settings3_Impl::AreBrowserAcceleratorKeysEnabled(
36147                    this,
36148                    core::mem::transmute_copy(&value),
36149                )
36150                .into()
36151            }
36152        }
36153        unsafe extern "system" fn SetAreBrowserAcceleratorKeysEnabled<
36154            Identity: ICoreWebView2Settings3_Impl,
36155            const OFFSET: isize,
36156        >(
36157            this: *mut core::ffi::c_void,
36158            value: windows_core::BOOL,
36159        ) -> windows_core::HRESULT {
36160            unsafe {
36161                let this: &Identity =
36162                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
36163                ICoreWebView2Settings3_Impl::SetAreBrowserAcceleratorKeysEnabled(
36164                    this,
36165                    core::mem::transmute_copy(&value),
36166                )
36167                .into()
36168            }
36169        }
36170        Self {
36171            base__: ICoreWebView2Settings2_Vtbl::new::<Identity, OFFSET>(),
36172            AreBrowserAcceleratorKeysEnabled: AreBrowserAcceleratorKeysEnabled::<Identity, OFFSET>,
36173            SetAreBrowserAcceleratorKeysEnabled: SetAreBrowserAcceleratorKeysEnabled::<
36174                Identity,
36175                OFFSET,
36176            >,
36177        }
36178    }
36179    pub fn matches(iid: &windows_core::GUID) -> bool {
36180        iid == &<ICoreWebView2Settings3 as windows_core::Interface>::IID
36181            || iid == &<ICoreWebView2Settings as windows_core::Interface>::IID
36182            || iid == &<ICoreWebView2Settings2 as windows_core::Interface>::IID
36183    }
36184}
36185impl windows_core::RuntimeName for ICoreWebView2Settings3 {}
36186windows_core::imp::define_interface!(
36187    ICoreWebView2Settings4,
36188    ICoreWebView2Settings4_Vtbl,
36189    0xcb56846c_4168_4d53_b04f_03b6d6796ff2
36190);
36191impl core::ops::Deref for ICoreWebView2Settings4 {
36192    type Target = ICoreWebView2Settings3;
36193    fn deref(&self) -> &Self::Target {
36194        unsafe { core::mem::transmute(self) }
36195    }
36196}
36197windows_core::imp::interface_hierarchy!(
36198    ICoreWebView2Settings4,
36199    windows_core::IUnknown,
36200    ICoreWebView2Settings,
36201    ICoreWebView2Settings2,
36202    ICoreWebView2Settings3
36203);
36204impl ICoreWebView2Settings4 {
36205    pub unsafe fn IsPasswordAutosaveEnabled(
36206        &self,
36207        value: *mut windows_core::BOOL,
36208    ) -> windows_core::Result<()> {
36209        unsafe {
36210            (windows_core::Interface::vtable(self).IsPasswordAutosaveEnabled)(
36211                windows_core::Interface::as_raw(self),
36212                value as _,
36213            )
36214            .ok()
36215        }
36216    }
36217    pub unsafe fn SetIsPasswordAutosaveEnabled(&self, value: bool) -> windows_core::Result<()> {
36218        unsafe {
36219            (windows_core::Interface::vtable(self).SetIsPasswordAutosaveEnabled)(
36220                windows_core::Interface::as_raw(self),
36221                value.into(),
36222            )
36223            .ok()
36224        }
36225    }
36226    pub unsafe fn IsGeneralAutofillEnabled(
36227        &self,
36228        value: *mut windows_core::BOOL,
36229    ) -> windows_core::Result<()> {
36230        unsafe {
36231            (windows_core::Interface::vtable(self).IsGeneralAutofillEnabled)(
36232                windows_core::Interface::as_raw(self),
36233                value as _,
36234            )
36235            .ok()
36236        }
36237    }
36238    pub unsafe fn SetIsGeneralAutofillEnabled(&self, value: bool) -> windows_core::Result<()> {
36239        unsafe {
36240            (windows_core::Interface::vtable(self).SetIsGeneralAutofillEnabled)(
36241                windows_core::Interface::as_raw(self),
36242                value.into(),
36243            )
36244            .ok()
36245        }
36246    }
36247}
36248#[repr(C)]
36249#[doc(hidden)]
36250pub struct ICoreWebView2Settings4_Vtbl {
36251    pub base__: ICoreWebView2Settings3_Vtbl,
36252    pub IsPasswordAutosaveEnabled: unsafe extern "system" fn(
36253        *mut core::ffi::c_void,
36254        *mut windows_core::BOOL,
36255    ) -> windows_core::HRESULT,
36256    pub SetIsPasswordAutosaveEnabled: unsafe extern "system" fn(
36257        *mut core::ffi::c_void,
36258        windows_core::BOOL,
36259    ) -> windows_core::HRESULT,
36260    pub IsGeneralAutofillEnabled: unsafe extern "system" fn(
36261        *mut core::ffi::c_void,
36262        *mut windows_core::BOOL,
36263    ) -> windows_core::HRESULT,
36264    pub SetIsGeneralAutofillEnabled: unsafe extern "system" fn(
36265        *mut core::ffi::c_void,
36266        windows_core::BOOL,
36267    ) -> windows_core::HRESULT,
36268}
36269pub trait ICoreWebView2Settings4_Impl: ICoreWebView2Settings3_Impl {
36270    fn IsPasswordAutosaveEnabled(&self, value: *mut windows_core::BOOL)
36271        -> windows_core::Result<()>;
36272    fn SetIsPasswordAutosaveEnabled(&self, value: windows_core::BOOL) -> windows_core::Result<()>;
36273    fn IsGeneralAutofillEnabled(&self, value: *mut windows_core::BOOL) -> windows_core::Result<()>;
36274    fn SetIsGeneralAutofillEnabled(&self, value: windows_core::BOOL) -> windows_core::Result<()>;
36275}
36276impl ICoreWebView2Settings4_Vtbl {
36277    pub const fn new<Identity: ICoreWebView2Settings4_Impl, const OFFSET: isize>() -> Self {
36278        unsafe extern "system" fn IsPasswordAutosaveEnabled<
36279            Identity: ICoreWebView2Settings4_Impl,
36280            const OFFSET: isize,
36281        >(
36282            this: *mut core::ffi::c_void,
36283            value: *mut windows_core::BOOL,
36284        ) -> windows_core::HRESULT {
36285            unsafe {
36286                let this: &Identity =
36287                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
36288                ICoreWebView2Settings4_Impl::IsPasswordAutosaveEnabled(
36289                    this,
36290                    core::mem::transmute_copy(&value),
36291                )
36292                .into()
36293            }
36294        }
36295        unsafe extern "system" fn SetIsPasswordAutosaveEnabled<
36296            Identity: ICoreWebView2Settings4_Impl,
36297            const OFFSET: isize,
36298        >(
36299            this: *mut core::ffi::c_void,
36300            value: windows_core::BOOL,
36301        ) -> windows_core::HRESULT {
36302            unsafe {
36303                let this: &Identity =
36304                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
36305                ICoreWebView2Settings4_Impl::SetIsPasswordAutosaveEnabled(
36306                    this,
36307                    core::mem::transmute_copy(&value),
36308                )
36309                .into()
36310            }
36311        }
36312        unsafe extern "system" fn IsGeneralAutofillEnabled<
36313            Identity: ICoreWebView2Settings4_Impl,
36314            const OFFSET: isize,
36315        >(
36316            this: *mut core::ffi::c_void,
36317            value: *mut windows_core::BOOL,
36318        ) -> windows_core::HRESULT {
36319            unsafe {
36320                let this: &Identity =
36321                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
36322                ICoreWebView2Settings4_Impl::IsGeneralAutofillEnabled(
36323                    this,
36324                    core::mem::transmute_copy(&value),
36325                )
36326                .into()
36327            }
36328        }
36329        unsafe extern "system" fn SetIsGeneralAutofillEnabled<
36330            Identity: ICoreWebView2Settings4_Impl,
36331            const OFFSET: isize,
36332        >(
36333            this: *mut core::ffi::c_void,
36334            value: windows_core::BOOL,
36335        ) -> windows_core::HRESULT {
36336            unsafe {
36337                let this: &Identity =
36338                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
36339                ICoreWebView2Settings4_Impl::SetIsGeneralAutofillEnabled(
36340                    this,
36341                    core::mem::transmute_copy(&value),
36342                )
36343                .into()
36344            }
36345        }
36346        Self {
36347            base__: ICoreWebView2Settings3_Vtbl::new::<Identity, OFFSET>(),
36348            IsPasswordAutosaveEnabled: IsPasswordAutosaveEnabled::<Identity, OFFSET>,
36349            SetIsPasswordAutosaveEnabled: SetIsPasswordAutosaveEnabled::<Identity, OFFSET>,
36350            IsGeneralAutofillEnabled: IsGeneralAutofillEnabled::<Identity, OFFSET>,
36351            SetIsGeneralAutofillEnabled: SetIsGeneralAutofillEnabled::<Identity, OFFSET>,
36352        }
36353    }
36354    pub fn matches(iid: &windows_core::GUID) -> bool {
36355        iid == &<ICoreWebView2Settings4 as windows_core::Interface>::IID
36356            || iid == &<ICoreWebView2Settings as windows_core::Interface>::IID
36357            || iid == &<ICoreWebView2Settings2 as windows_core::Interface>::IID
36358            || iid == &<ICoreWebView2Settings3 as windows_core::Interface>::IID
36359    }
36360}
36361impl windows_core::RuntimeName for ICoreWebView2Settings4 {}
36362windows_core::imp::define_interface!(
36363    ICoreWebView2Settings5,
36364    ICoreWebView2Settings5_Vtbl,
36365    0x183e7052_1d03_43a0_ab99_98e043b66b39
36366);
36367impl core::ops::Deref for ICoreWebView2Settings5 {
36368    type Target = ICoreWebView2Settings4;
36369    fn deref(&self) -> &Self::Target {
36370        unsafe { core::mem::transmute(self) }
36371    }
36372}
36373windows_core::imp::interface_hierarchy!(
36374    ICoreWebView2Settings5,
36375    windows_core::IUnknown,
36376    ICoreWebView2Settings,
36377    ICoreWebView2Settings2,
36378    ICoreWebView2Settings3,
36379    ICoreWebView2Settings4
36380);
36381impl ICoreWebView2Settings5 {
36382    pub unsafe fn IsPinchZoomEnabled(
36383        &self,
36384        value: *mut windows_core::BOOL,
36385    ) -> windows_core::Result<()> {
36386        unsafe {
36387            (windows_core::Interface::vtable(self).IsPinchZoomEnabled)(
36388                windows_core::Interface::as_raw(self),
36389                value as _,
36390            )
36391            .ok()
36392        }
36393    }
36394    pub unsafe fn SetIsPinchZoomEnabled(&self, value: bool) -> windows_core::Result<()> {
36395        unsafe {
36396            (windows_core::Interface::vtable(self).SetIsPinchZoomEnabled)(
36397                windows_core::Interface::as_raw(self),
36398                value.into(),
36399            )
36400            .ok()
36401        }
36402    }
36403}
36404#[repr(C)]
36405#[doc(hidden)]
36406pub struct ICoreWebView2Settings5_Vtbl {
36407    pub base__: ICoreWebView2Settings4_Vtbl,
36408    pub IsPinchZoomEnabled: unsafe extern "system" fn(
36409        *mut core::ffi::c_void,
36410        *mut windows_core::BOOL,
36411    ) -> windows_core::HRESULT,
36412    pub SetIsPinchZoomEnabled: unsafe extern "system" fn(
36413        *mut core::ffi::c_void,
36414        windows_core::BOOL,
36415    ) -> windows_core::HRESULT,
36416}
36417pub trait ICoreWebView2Settings5_Impl: ICoreWebView2Settings4_Impl {
36418    fn IsPinchZoomEnabled(&self, value: *mut windows_core::BOOL) -> windows_core::Result<()>;
36419    fn SetIsPinchZoomEnabled(&self, value: windows_core::BOOL) -> windows_core::Result<()>;
36420}
36421impl ICoreWebView2Settings5_Vtbl {
36422    pub const fn new<Identity: ICoreWebView2Settings5_Impl, const OFFSET: isize>() -> Self {
36423        unsafe extern "system" fn IsPinchZoomEnabled<
36424            Identity: ICoreWebView2Settings5_Impl,
36425            const OFFSET: isize,
36426        >(
36427            this: *mut core::ffi::c_void,
36428            value: *mut windows_core::BOOL,
36429        ) -> windows_core::HRESULT {
36430            unsafe {
36431                let this: &Identity =
36432                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
36433                ICoreWebView2Settings5_Impl::IsPinchZoomEnabled(
36434                    this,
36435                    core::mem::transmute_copy(&value),
36436                )
36437                .into()
36438            }
36439        }
36440        unsafe extern "system" fn SetIsPinchZoomEnabled<
36441            Identity: ICoreWebView2Settings5_Impl,
36442            const OFFSET: isize,
36443        >(
36444            this: *mut core::ffi::c_void,
36445            value: windows_core::BOOL,
36446        ) -> windows_core::HRESULT {
36447            unsafe {
36448                let this: &Identity =
36449                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
36450                ICoreWebView2Settings5_Impl::SetIsPinchZoomEnabled(
36451                    this,
36452                    core::mem::transmute_copy(&value),
36453                )
36454                .into()
36455            }
36456        }
36457        Self {
36458            base__: ICoreWebView2Settings4_Vtbl::new::<Identity, OFFSET>(),
36459            IsPinchZoomEnabled: IsPinchZoomEnabled::<Identity, OFFSET>,
36460            SetIsPinchZoomEnabled: SetIsPinchZoomEnabled::<Identity, OFFSET>,
36461        }
36462    }
36463    pub fn matches(iid: &windows_core::GUID) -> bool {
36464        iid == &<ICoreWebView2Settings5 as windows_core::Interface>::IID
36465            || iid == &<ICoreWebView2Settings as windows_core::Interface>::IID
36466            || iid == &<ICoreWebView2Settings2 as windows_core::Interface>::IID
36467            || iid == &<ICoreWebView2Settings3 as windows_core::Interface>::IID
36468            || iid == &<ICoreWebView2Settings4 as windows_core::Interface>::IID
36469    }
36470}
36471impl windows_core::RuntimeName for ICoreWebView2Settings5 {}
36472windows_core::imp::define_interface!(
36473    ICoreWebView2Settings6,
36474    ICoreWebView2Settings6_Vtbl,
36475    0x11cb3acd_9bc8_43b8_83bf_f40753714f87
36476);
36477impl core::ops::Deref for ICoreWebView2Settings6 {
36478    type Target = ICoreWebView2Settings5;
36479    fn deref(&self) -> &Self::Target {
36480        unsafe { core::mem::transmute(self) }
36481    }
36482}
36483windows_core::imp::interface_hierarchy!(
36484    ICoreWebView2Settings6,
36485    windows_core::IUnknown,
36486    ICoreWebView2Settings,
36487    ICoreWebView2Settings2,
36488    ICoreWebView2Settings3,
36489    ICoreWebView2Settings4,
36490    ICoreWebView2Settings5
36491);
36492impl ICoreWebView2Settings6 {
36493    pub unsafe fn IsSwipeNavigationEnabled(
36494        &self,
36495        value: *mut windows_core::BOOL,
36496    ) -> windows_core::Result<()> {
36497        unsafe {
36498            (windows_core::Interface::vtable(self).IsSwipeNavigationEnabled)(
36499                windows_core::Interface::as_raw(self),
36500                value as _,
36501            )
36502            .ok()
36503        }
36504    }
36505    pub unsafe fn SetIsSwipeNavigationEnabled(&self, value: bool) -> windows_core::Result<()> {
36506        unsafe {
36507            (windows_core::Interface::vtable(self).SetIsSwipeNavigationEnabled)(
36508                windows_core::Interface::as_raw(self),
36509                value.into(),
36510            )
36511            .ok()
36512        }
36513    }
36514}
36515#[repr(C)]
36516#[doc(hidden)]
36517pub struct ICoreWebView2Settings6_Vtbl {
36518    pub base__: ICoreWebView2Settings5_Vtbl,
36519    pub IsSwipeNavigationEnabled: unsafe extern "system" fn(
36520        *mut core::ffi::c_void,
36521        *mut windows_core::BOOL,
36522    ) -> windows_core::HRESULT,
36523    pub SetIsSwipeNavigationEnabled: unsafe extern "system" fn(
36524        *mut core::ffi::c_void,
36525        windows_core::BOOL,
36526    ) -> windows_core::HRESULT,
36527}
36528pub trait ICoreWebView2Settings6_Impl: ICoreWebView2Settings5_Impl {
36529    fn IsSwipeNavigationEnabled(&self, value: *mut windows_core::BOOL) -> windows_core::Result<()>;
36530    fn SetIsSwipeNavigationEnabled(&self, value: windows_core::BOOL) -> windows_core::Result<()>;
36531}
36532impl ICoreWebView2Settings6_Vtbl {
36533    pub const fn new<Identity: ICoreWebView2Settings6_Impl, const OFFSET: isize>() -> Self {
36534        unsafe extern "system" fn IsSwipeNavigationEnabled<
36535            Identity: ICoreWebView2Settings6_Impl,
36536            const OFFSET: isize,
36537        >(
36538            this: *mut core::ffi::c_void,
36539            value: *mut windows_core::BOOL,
36540        ) -> windows_core::HRESULT {
36541            unsafe {
36542                let this: &Identity =
36543                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
36544                ICoreWebView2Settings6_Impl::IsSwipeNavigationEnabled(
36545                    this,
36546                    core::mem::transmute_copy(&value),
36547                )
36548                .into()
36549            }
36550        }
36551        unsafe extern "system" fn SetIsSwipeNavigationEnabled<
36552            Identity: ICoreWebView2Settings6_Impl,
36553            const OFFSET: isize,
36554        >(
36555            this: *mut core::ffi::c_void,
36556            value: windows_core::BOOL,
36557        ) -> windows_core::HRESULT {
36558            unsafe {
36559                let this: &Identity =
36560                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
36561                ICoreWebView2Settings6_Impl::SetIsSwipeNavigationEnabled(
36562                    this,
36563                    core::mem::transmute_copy(&value),
36564                )
36565                .into()
36566            }
36567        }
36568        Self {
36569            base__: ICoreWebView2Settings5_Vtbl::new::<Identity, OFFSET>(),
36570            IsSwipeNavigationEnabled: IsSwipeNavigationEnabled::<Identity, OFFSET>,
36571            SetIsSwipeNavigationEnabled: SetIsSwipeNavigationEnabled::<Identity, OFFSET>,
36572        }
36573    }
36574    pub fn matches(iid: &windows_core::GUID) -> bool {
36575        iid == &<ICoreWebView2Settings6 as windows_core::Interface>::IID
36576            || iid == &<ICoreWebView2Settings as windows_core::Interface>::IID
36577            || iid == &<ICoreWebView2Settings2 as windows_core::Interface>::IID
36578            || iid == &<ICoreWebView2Settings3 as windows_core::Interface>::IID
36579            || iid == &<ICoreWebView2Settings4 as windows_core::Interface>::IID
36580            || iid == &<ICoreWebView2Settings5 as windows_core::Interface>::IID
36581    }
36582}
36583impl windows_core::RuntimeName for ICoreWebView2Settings6 {}
36584windows_core::imp::define_interface!(
36585    ICoreWebView2Settings7,
36586    ICoreWebView2Settings7_Vtbl,
36587    0x488dc902_35ef_42d2_bc7d_94b65c4bc49c
36588);
36589impl core::ops::Deref for ICoreWebView2Settings7 {
36590    type Target = ICoreWebView2Settings6;
36591    fn deref(&self) -> &Self::Target {
36592        unsafe { core::mem::transmute(self) }
36593    }
36594}
36595windows_core::imp::interface_hierarchy!(
36596    ICoreWebView2Settings7,
36597    windows_core::IUnknown,
36598    ICoreWebView2Settings,
36599    ICoreWebView2Settings2,
36600    ICoreWebView2Settings3,
36601    ICoreWebView2Settings4,
36602    ICoreWebView2Settings5,
36603    ICoreWebView2Settings6
36604);
36605impl ICoreWebView2Settings7 {
36606    pub unsafe fn HiddenPdfToolbarItems(
36607        &self,
36608        value: *mut COREWEBVIEW2_PDF_TOOLBAR_ITEMS,
36609    ) -> windows_core::Result<()> {
36610        unsafe {
36611            (windows_core::Interface::vtable(self).HiddenPdfToolbarItems)(
36612                windows_core::Interface::as_raw(self),
36613                value as _,
36614            )
36615            .ok()
36616        }
36617    }
36618    pub unsafe fn SetHiddenPdfToolbarItems(
36619        &self,
36620        value: COREWEBVIEW2_PDF_TOOLBAR_ITEMS,
36621    ) -> windows_core::Result<()> {
36622        unsafe {
36623            (windows_core::Interface::vtable(self).SetHiddenPdfToolbarItems)(
36624                windows_core::Interface::as_raw(self),
36625                value,
36626            )
36627            .ok()
36628        }
36629    }
36630}
36631#[repr(C)]
36632#[doc(hidden)]
36633pub struct ICoreWebView2Settings7_Vtbl {
36634    pub base__: ICoreWebView2Settings6_Vtbl,
36635    pub HiddenPdfToolbarItems: unsafe extern "system" fn(
36636        *mut core::ffi::c_void,
36637        *mut COREWEBVIEW2_PDF_TOOLBAR_ITEMS,
36638    ) -> windows_core::HRESULT,
36639    pub SetHiddenPdfToolbarItems: unsafe extern "system" fn(
36640        *mut core::ffi::c_void,
36641        COREWEBVIEW2_PDF_TOOLBAR_ITEMS,
36642    ) -> windows_core::HRESULT,
36643}
36644pub trait ICoreWebView2Settings7_Impl: ICoreWebView2Settings6_Impl {
36645    fn HiddenPdfToolbarItems(
36646        &self,
36647        value: *mut COREWEBVIEW2_PDF_TOOLBAR_ITEMS,
36648    ) -> windows_core::Result<()>;
36649    fn SetHiddenPdfToolbarItems(
36650        &self,
36651        value: COREWEBVIEW2_PDF_TOOLBAR_ITEMS,
36652    ) -> windows_core::Result<()>;
36653}
36654impl ICoreWebView2Settings7_Vtbl {
36655    pub const fn new<Identity: ICoreWebView2Settings7_Impl, const OFFSET: isize>() -> Self {
36656        unsafe extern "system" fn HiddenPdfToolbarItems<
36657            Identity: ICoreWebView2Settings7_Impl,
36658            const OFFSET: isize,
36659        >(
36660            this: *mut core::ffi::c_void,
36661            value: *mut COREWEBVIEW2_PDF_TOOLBAR_ITEMS,
36662        ) -> windows_core::HRESULT {
36663            unsafe {
36664                let this: &Identity =
36665                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
36666                ICoreWebView2Settings7_Impl::HiddenPdfToolbarItems(
36667                    this,
36668                    core::mem::transmute_copy(&value),
36669                )
36670                .into()
36671            }
36672        }
36673        unsafe extern "system" fn SetHiddenPdfToolbarItems<
36674            Identity: ICoreWebView2Settings7_Impl,
36675            const OFFSET: isize,
36676        >(
36677            this: *mut core::ffi::c_void,
36678            value: COREWEBVIEW2_PDF_TOOLBAR_ITEMS,
36679        ) -> windows_core::HRESULT {
36680            unsafe {
36681                let this: &Identity =
36682                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
36683                ICoreWebView2Settings7_Impl::SetHiddenPdfToolbarItems(
36684                    this,
36685                    core::mem::transmute_copy(&value),
36686                )
36687                .into()
36688            }
36689        }
36690        Self {
36691            base__: ICoreWebView2Settings6_Vtbl::new::<Identity, OFFSET>(),
36692            HiddenPdfToolbarItems: HiddenPdfToolbarItems::<Identity, OFFSET>,
36693            SetHiddenPdfToolbarItems: SetHiddenPdfToolbarItems::<Identity, OFFSET>,
36694        }
36695    }
36696    pub fn matches(iid: &windows_core::GUID) -> bool {
36697        iid == &<ICoreWebView2Settings7 as windows_core::Interface>::IID
36698            || iid == &<ICoreWebView2Settings as windows_core::Interface>::IID
36699            || iid == &<ICoreWebView2Settings2 as windows_core::Interface>::IID
36700            || iid == &<ICoreWebView2Settings3 as windows_core::Interface>::IID
36701            || iid == &<ICoreWebView2Settings4 as windows_core::Interface>::IID
36702            || iid == &<ICoreWebView2Settings5 as windows_core::Interface>::IID
36703            || iid == &<ICoreWebView2Settings6 as windows_core::Interface>::IID
36704    }
36705}
36706impl windows_core::RuntimeName for ICoreWebView2Settings7 {}
36707windows_core::imp::define_interface!(
36708    ICoreWebView2Settings8,
36709    ICoreWebView2Settings8_Vtbl,
36710    0x9e6b0e8f_86ad_4e81_8147_a9b5edb68650
36711);
36712impl core::ops::Deref for ICoreWebView2Settings8 {
36713    type Target = ICoreWebView2Settings7;
36714    fn deref(&self) -> &Self::Target {
36715        unsafe { core::mem::transmute(self) }
36716    }
36717}
36718windows_core::imp::interface_hierarchy!(
36719    ICoreWebView2Settings8,
36720    windows_core::IUnknown,
36721    ICoreWebView2Settings,
36722    ICoreWebView2Settings2,
36723    ICoreWebView2Settings3,
36724    ICoreWebView2Settings4,
36725    ICoreWebView2Settings5,
36726    ICoreWebView2Settings6,
36727    ICoreWebView2Settings7
36728);
36729impl ICoreWebView2Settings8 {
36730    pub unsafe fn IsReputationCheckingRequired(
36731        &self,
36732        value: *mut windows_core::BOOL,
36733    ) -> windows_core::Result<()> {
36734        unsafe {
36735            (windows_core::Interface::vtable(self).IsReputationCheckingRequired)(
36736                windows_core::Interface::as_raw(self),
36737                value as _,
36738            )
36739            .ok()
36740        }
36741    }
36742    pub unsafe fn SetIsReputationCheckingRequired(&self, value: bool) -> windows_core::Result<()> {
36743        unsafe {
36744            (windows_core::Interface::vtable(self).SetIsReputationCheckingRequired)(
36745                windows_core::Interface::as_raw(self),
36746                value.into(),
36747            )
36748            .ok()
36749        }
36750    }
36751}
36752#[repr(C)]
36753#[doc(hidden)]
36754pub struct ICoreWebView2Settings8_Vtbl {
36755    pub base__: ICoreWebView2Settings7_Vtbl,
36756    pub IsReputationCheckingRequired: unsafe extern "system" fn(
36757        *mut core::ffi::c_void,
36758        *mut windows_core::BOOL,
36759    ) -> windows_core::HRESULT,
36760    pub SetIsReputationCheckingRequired: unsafe extern "system" fn(
36761        *mut core::ffi::c_void,
36762        windows_core::BOOL,
36763    ) -> windows_core::HRESULT,
36764}
36765pub trait ICoreWebView2Settings8_Impl: ICoreWebView2Settings7_Impl {
36766    fn IsReputationCheckingRequired(
36767        &self,
36768        value: *mut windows_core::BOOL,
36769    ) -> windows_core::Result<()>;
36770    fn SetIsReputationCheckingRequired(
36771        &self,
36772        value: windows_core::BOOL,
36773    ) -> windows_core::Result<()>;
36774}
36775impl ICoreWebView2Settings8_Vtbl {
36776    pub const fn new<Identity: ICoreWebView2Settings8_Impl, const OFFSET: isize>() -> Self {
36777        unsafe extern "system" fn IsReputationCheckingRequired<
36778            Identity: ICoreWebView2Settings8_Impl,
36779            const OFFSET: isize,
36780        >(
36781            this: *mut core::ffi::c_void,
36782            value: *mut windows_core::BOOL,
36783        ) -> windows_core::HRESULT {
36784            unsafe {
36785                let this: &Identity =
36786                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
36787                ICoreWebView2Settings8_Impl::IsReputationCheckingRequired(
36788                    this,
36789                    core::mem::transmute_copy(&value),
36790                )
36791                .into()
36792            }
36793        }
36794        unsafe extern "system" fn SetIsReputationCheckingRequired<
36795            Identity: ICoreWebView2Settings8_Impl,
36796            const OFFSET: isize,
36797        >(
36798            this: *mut core::ffi::c_void,
36799            value: windows_core::BOOL,
36800        ) -> windows_core::HRESULT {
36801            unsafe {
36802                let this: &Identity =
36803                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
36804                ICoreWebView2Settings8_Impl::SetIsReputationCheckingRequired(
36805                    this,
36806                    core::mem::transmute_copy(&value),
36807                )
36808                .into()
36809            }
36810        }
36811        Self {
36812            base__: ICoreWebView2Settings7_Vtbl::new::<Identity, OFFSET>(),
36813            IsReputationCheckingRequired: IsReputationCheckingRequired::<Identity, OFFSET>,
36814            SetIsReputationCheckingRequired: SetIsReputationCheckingRequired::<Identity, OFFSET>,
36815        }
36816    }
36817    pub fn matches(iid: &windows_core::GUID) -> bool {
36818        iid == &<ICoreWebView2Settings8 as windows_core::Interface>::IID
36819            || iid == &<ICoreWebView2Settings as windows_core::Interface>::IID
36820            || iid == &<ICoreWebView2Settings2 as windows_core::Interface>::IID
36821            || iid == &<ICoreWebView2Settings3 as windows_core::Interface>::IID
36822            || iid == &<ICoreWebView2Settings4 as windows_core::Interface>::IID
36823            || iid == &<ICoreWebView2Settings5 as windows_core::Interface>::IID
36824            || iid == &<ICoreWebView2Settings6 as windows_core::Interface>::IID
36825            || iid == &<ICoreWebView2Settings7 as windows_core::Interface>::IID
36826    }
36827}
36828impl windows_core::RuntimeName for ICoreWebView2Settings8 {}
36829windows_core::imp::define_interface!(
36830    ICoreWebView2Settings9,
36831    ICoreWebView2Settings9_Vtbl,
36832    0x0528a73b_e92d_49f4_927a_e547dddaa37d
36833);
36834impl core::ops::Deref for ICoreWebView2Settings9 {
36835    type Target = ICoreWebView2Settings8;
36836    fn deref(&self) -> &Self::Target {
36837        unsafe { core::mem::transmute(self) }
36838    }
36839}
36840windows_core::imp::interface_hierarchy!(
36841    ICoreWebView2Settings9,
36842    windows_core::IUnknown,
36843    ICoreWebView2Settings,
36844    ICoreWebView2Settings2,
36845    ICoreWebView2Settings3,
36846    ICoreWebView2Settings4,
36847    ICoreWebView2Settings5,
36848    ICoreWebView2Settings6,
36849    ICoreWebView2Settings7,
36850    ICoreWebView2Settings8
36851);
36852impl ICoreWebView2Settings9 {
36853    pub unsafe fn IsNonClientRegionSupportEnabled(
36854        &self,
36855        value: *mut windows_core::BOOL,
36856    ) -> windows_core::Result<()> {
36857        unsafe {
36858            (windows_core::Interface::vtable(self).IsNonClientRegionSupportEnabled)(
36859                windows_core::Interface::as_raw(self),
36860                value as _,
36861            )
36862            .ok()
36863        }
36864    }
36865    pub unsafe fn SetIsNonClientRegionSupportEnabled(
36866        &self,
36867        value: bool,
36868    ) -> windows_core::Result<()> {
36869        unsafe {
36870            (windows_core::Interface::vtable(self).SetIsNonClientRegionSupportEnabled)(
36871                windows_core::Interface::as_raw(self),
36872                value.into(),
36873            )
36874            .ok()
36875        }
36876    }
36877}
36878#[repr(C)]
36879#[doc(hidden)]
36880pub struct ICoreWebView2Settings9_Vtbl {
36881    pub base__: ICoreWebView2Settings8_Vtbl,
36882    pub IsNonClientRegionSupportEnabled: unsafe extern "system" fn(
36883        *mut core::ffi::c_void,
36884        *mut windows_core::BOOL,
36885    ) -> windows_core::HRESULT,
36886    pub SetIsNonClientRegionSupportEnabled: unsafe extern "system" fn(
36887        *mut core::ffi::c_void,
36888        windows_core::BOOL,
36889    ) -> windows_core::HRESULT,
36890}
36891pub trait ICoreWebView2Settings9_Impl: ICoreWebView2Settings8_Impl {
36892    fn IsNonClientRegionSupportEnabled(
36893        &self,
36894        value: *mut windows_core::BOOL,
36895    ) -> windows_core::Result<()>;
36896    fn SetIsNonClientRegionSupportEnabled(
36897        &self,
36898        value: windows_core::BOOL,
36899    ) -> windows_core::Result<()>;
36900}
36901impl ICoreWebView2Settings9_Vtbl {
36902    pub const fn new<Identity: ICoreWebView2Settings9_Impl, const OFFSET: isize>() -> Self {
36903        unsafe extern "system" fn IsNonClientRegionSupportEnabled<
36904            Identity: ICoreWebView2Settings9_Impl,
36905            const OFFSET: isize,
36906        >(
36907            this: *mut core::ffi::c_void,
36908            value: *mut windows_core::BOOL,
36909        ) -> windows_core::HRESULT {
36910            unsafe {
36911                let this: &Identity =
36912                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
36913                ICoreWebView2Settings9_Impl::IsNonClientRegionSupportEnabled(
36914                    this,
36915                    core::mem::transmute_copy(&value),
36916                )
36917                .into()
36918            }
36919        }
36920        unsafe extern "system" fn SetIsNonClientRegionSupportEnabled<
36921            Identity: ICoreWebView2Settings9_Impl,
36922            const OFFSET: isize,
36923        >(
36924            this: *mut core::ffi::c_void,
36925            value: windows_core::BOOL,
36926        ) -> windows_core::HRESULT {
36927            unsafe {
36928                let this: &Identity =
36929                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
36930                ICoreWebView2Settings9_Impl::SetIsNonClientRegionSupportEnabled(
36931                    this,
36932                    core::mem::transmute_copy(&value),
36933                )
36934                .into()
36935            }
36936        }
36937        Self {
36938            base__: ICoreWebView2Settings8_Vtbl::new::<Identity, OFFSET>(),
36939            IsNonClientRegionSupportEnabled: IsNonClientRegionSupportEnabled::<Identity, OFFSET>,
36940            SetIsNonClientRegionSupportEnabled: SetIsNonClientRegionSupportEnabled::<
36941                Identity,
36942                OFFSET,
36943            >,
36944        }
36945    }
36946    pub fn matches(iid: &windows_core::GUID) -> bool {
36947        iid == &<ICoreWebView2Settings9 as windows_core::Interface>::IID
36948            || iid == &<ICoreWebView2Settings as windows_core::Interface>::IID
36949            || iid == &<ICoreWebView2Settings2 as windows_core::Interface>::IID
36950            || iid == &<ICoreWebView2Settings3 as windows_core::Interface>::IID
36951            || iid == &<ICoreWebView2Settings4 as windows_core::Interface>::IID
36952            || iid == &<ICoreWebView2Settings5 as windows_core::Interface>::IID
36953            || iid == &<ICoreWebView2Settings6 as windows_core::Interface>::IID
36954            || iid == &<ICoreWebView2Settings7 as windows_core::Interface>::IID
36955            || iid == &<ICoreWebView2Settings8 as windows_core::Interface>::IID
36956    }
36957}
36958impl windows_core::RuntimeName for ICoreWebView2Settings9 {}
36959windows_core::imp::define_interface!(
36960    ICoreWebView2SharedBuffer,
36961    ICoreWebView2SharedBuffer_Vtbl,
36962    0xb747a495_0c6f_449e_97b8_2f81e9d6ab43
36963);
36964windows_core::imp::interface_hierarchy!(ICoreWebView2SharedBuffer, windows_core::IUnknown);
36965impl ICoreWebView2SharedBuffer {
36966    pub unsafe fn Size(&self, value: *mut u64) -> windows_core::Result<()> {
36967        unsafe {
36968            (windows_core::Interface::vtable(self).Size)(
36969                windows_core::Interface::as_raw(self),
36970                value as _,
36971            )
36972            .ok()
36973        }
36974    }
36975    pub unsafe fn Buffer(&self, value: *mut *mut u8) -> windows_core::Result<()> {
36976        unsafe {
36977            (windows_core::Interface::vtable(self).Buffer)(
36978                windows_core::Interface::as_raw(self),
36979                value as _,
36980            )
36981            .ok()
36982        }
36983    }
36984    pub unsafe fn OpenStream(&self) -> windows_core::Result<windows::Win32::System::Com::IStream> {
36985        unsafe {
36986            let mut result__ = core::mem::zeroed();
36987            (windows_core::Interface::vtable(self).OpenStream)(
36988                windows_core::Interface::as_raw(self),
36989                &mut result__,
36990            )
36991            .and_then(|| windows_core::Type::from_abi(result__))
36992        }
36993    }
36994    pub unsafe fn FileMappingHandle(
36995        &self,
36996        value: *mut windows::Win32::Foundation::HANDLE,
36997    ) -> windows_core::Result<()> {
36998        unsafe {
36999            (windows_core::Interface::vtable(self).FileMappingHandle)(
37000                windows_core::Interface::as_raw(self),
37001                value as _,
37002            )
37003            .ok()
37004        }
37005    }
37006    pub unsafe fn Close(&self) -> windows_core::Result<()> {
37007        unsafe {
37008            (windows_core::Interface::vtable(self).Close)(windows_core::Interface::as_raw(self))
37009                .ok()
37010        }
37011    }
37012}
37013#[repr(C)]
37014#[doc(hidden)]
37015pub struct ICoreWebView2SharedBuffer_Vtbl {
37016    pub base__: windows_core::IUnknown_Vtbl,
37017    pub Size: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u64) -> windows_core::HRESULT,
37018    pub Buffer:
37019        unsafe extern "system" fn(*mut core::ffi::c_void, *mut *mut u8) -> windows_core::HRESULT,
37020    pub OpenStream: unsafe extern "system" fn(
37021        *mut core::ffi::c_void,
37022        *mut *mut core::ffi::c_void,
37023    ) -> windows_core::HRESULT,
37024    pub FileMappingHandle: unsafe extern "system" fn(
37025        *mut core::ffi::c_void,
37026        *mut windows::Win32::Foundation::HANDLE,
37027    ) -> windows_core::HRESULT,
37028    pub Close: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
37029}
37030pub trait ICoreWebView2SharedBuffer_Impl: windows_core::IUnknownImpl {
37031    fn Size(&self, value: *mut u64) -> windows_core::Result<()>;
37032    fn Buffer(&self, value: *mut *mut u8) -> windows_core::Result<()>;
37033    fn OpenStream(&self) -> windows_core::Result<windows::Win32::System::Com::IStream>;
37034    fn FileMappingHandle(
37035        &self,
37036        value: *mut windows::Win32::Foundation::HANDLE,
37037    ) -> windows_core::Result<()>;
37038    fn Close(&self) -> windows_core::Result<()>;
37039}
37040impl ICoreWebView2SharedBuffer_Vtbl {
37041    pub const fn new<Identity: ICoreWebView2SharedBuffer_Impl, const OFFSET: isize>() -> Self {
37042        unsafe extern "system" fn Size<
37043            Identity: ICoreWebView2SharedBuffer_Impl,
37044            const OFFSET: isize,
37045        >(
37046            this: *mut core::ffi::c_void,
37047            value: *mut u64,
37048        ) -> windows_core::HRESULT {
37049            unsafe {
37050                let this: &Identity =
37051                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
37052                ICoreWebView2SharedBuffer_Impl::Size(this, core::mem::transmute_copy(&value)).into()
37053            }
37054        }
37055        unsafe extern "system" fn Buffer<
37056            Identity: ICoreWebView2SharedBuffer_Impl,
37057            const OFFSET: isize,
37058        >(
37059            this: *mut core::ffi::c_void,
37060            value: *mut *mut u8,
37061        ) -> windows_core::HRESULT {
37062            unsafe {
37063                let this: &Identity =
37064                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
37065                ICoreWebView2SharedBuffer_Impl::Buffer(this, core::mem::transmute_copy(&value))
37066                    .into()
37067            }
37068        }
37069        unsafe extern "system" fn OpenStream<
37070            Identity: ICoreWebView2SharedBuffer_Impl,
37071            const OFFSET: isize,
37072        >(
37073            this: *mut core::ffi::c_void,
37074            value: *mut *mut core::ffi::c_void,
37075        ) -> windows_core::HRESULT {
37076            unsafe {
37077                let this: &Identity =
37078                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
37079                match ICoreWebView2SharedBuffer_Impl::OpenStream(this) {
37080                    Ok(ok__) => {
37081                        value.write(core::mem::transmute(ok__));
37082                        windows_core::HRESULT(0)
37083                    }
37084                    Err(err) => err.into(),
37085                }
37086            }
37087        }
37088        unsafe extern "system" fn FileMappingHandle<
37089            Identity: ICoreWebView2SharedBuffer_Impl,
37090            const OFFSET: isize,
37091        >(
37092            this: *mut core::ffi::c_void,
37093            value: *mut windows::Win32::Foundation::HANDLE,
37094        ) -> windows_core::HRESULT {
37095            unsafe {
37096                let this: &Identity =
37097                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
37098                ICoreWebView2SharedBuffer_Impl::FileMappingHandle(
37099                    this,
37100                    core::mem::transmute_copy(&value),
37101                )
37102                .into()
37103            }
37104        }
37105        unsafe extern "system" fn Close<
37106            Identity: ICoreWebView2SharedBuffer_Impl,
37107            const OFFSET: isize,
37108        >(
37109            this: *mut core::ffi::c_void,
37110        ) -> windows_core::HRESULT {
37111            unsafe {
37112                let this: &Identity =
37113                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
37114                ICoreWebView2SharedBuffer_Impl::Close(this).into()
37115            }
37116        }
37117        Self {
37118            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
37119            Size: Size::<Identity, OFFSET>,
37120            Buffer: Buffer::<Identity, OFFSET>,
37121            OpenStream: OpenStream::<Identity, OFFSET>,
37122            FileMappingHandle: FileMappingHandle::<Identity, OFFSET>,
37123            Close: Close::<Identity, OFFSET>,
37124        }
37125    }
37126    pub fn matches(iid: &windows_core::GUID) -> bool {
37127        iid == &<ICoreWebView2SharedBuffer as windows_core::Interface>::IID
37128    }
37129}
37130impl windows_core::RuntimeName for ICoreWebView2SharedBuffer {}
37131windows_core::imp::define_interface!(
37132    ICoreWebView2ShowSaveAsUICompletedHandler,
37133    ICoreWebView2ShowSaveAsUICompletedHandler_Vtbl,
37134    0xe24b07e3_8169_5c34_994a_7f6478946a3c
37135);
37136windows_core::imp::interface_hierarchy!(
37137    ICoreWebView2ShowSaveAsUICompletedHandler,
37138    windows_core::IUnknown
37139);
37140impl ICoreWebView2ShowSaveAsUICompletedHandler {
37141    pub unsafe fn Invoke(
37142        &self,
37143        errorcode: windows_core::HRESULT,
37144        result: COREWEBVIEW2_SAVE_AS_UI_RESULT,
37145    ) -> windows_core::Result<()> {
37146        unsafe {
37147            (windows_core::Interface::vtable(self).Invoke)(
37148                windows_core::Interface::as_raw(self),
37149                errorcode,
37150                result,
37151            )
37152            .ok()
37153        }
37154    }
37155}
37156#[repr(C)]
37157#[doc(hidden)]
37158pub struct ICoreWebView2ShowSaveAsUICompletedHandler_Vtbl {
37159    pub base__: windows_core::IUnknown_Vtbl,
37160    pub Invoke: unsafe extern "system" fn(
37161        *mut core::ffi::c_void,
37162        windows_core::HRESULT,
37163        COREWEBVIEW2_SAVE_AS_UI_RESULT,
37164    ) -> windows_core::HRESULT,
37165}
37166pub trait ICoreWebView2ShowSaveAsUICompletedHandler_Impl: windows_core::IUnknownImpl {
37167    fn Invoke(
37168        &self,
37169        errorcode: windows_core::HRESULT,
37170        result: COREWEBVIEW2_SAVE_AS_UI_RESULT,
37171    ) -> windows_core::Result<()>;
37172}
37173impl ICoreWebView2ShowSaveAsUICompletedHandler_Vtbl {
37174    pub const fn new<
37175        Identity: ICoreWebView2ShowSaveAsUICompletedHandler_Impl,
37176        const OFFSET: isize,
37177    >() -> Self {
37178        unsafe extern "system" fn Invoke<
37179            Identity: ICoreWebView2ShowSaveAsUICompletedHandler_Impl,
37180            const OFFSET: isize,
37181        >(
37182            this: *mut core::ffi::c_void,
37183            errorcode: windows_core::HRESULT,
37184            result: COREWEBVIEW2_SAVE_AS_UI_RESULT,
37185        ) -> windows_core::HRESULT {
37186            unsafe {
37187                let this: &Identity =
37188                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
37189                ICoreWebView2ShowSaveAsUICompletedHandler_Impl::Invoke(
37190                    this,
37191                    core::mem::transmute_copy(&errorcode),
37192                    core::mem::transmute_copy(&result),
37193                )
37194                .into()
37195            }
37196        }
37197        Self {
37198            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
37199            Invoke: Invoke::<Identity, OFFSET>,
37200        }
37201    }
37202    pub fn matches(iid: &windows_core::GUID) -> bool {
37203        iid == &<ICoreWebView2ShowSaveAsUICompletedHandler as windows_core::Interface>::IID
37204    }
37205}
37206impl windows_core::RuntimeName for ICoreWebView2ShowSaveAsUICompletedHandler {}
37207windows_core::imp::define_interface!(
37208    ICoreWebView2SourceChangedEventArgs,
37209    ICoreWebView2SourceChangedEventArgs_Vtbl,
37210    0x31e0e545_1dba_4266_8914_f63848a1f7d7
37211);
37212windows_core::imp::interface_hierarchy!(
37213    ICoreWebView2SourceChangedEventArgs,
37214    windows_core::IUnknown
37215);
37216impl ICoreWebView2SourceChangedEventArgs {
37217    pub unsafe fn IsNewDocument(&self, value: *mut windows_core::BOOL) -> windows_core::Result<()> {
37218        unsafe {
37219            (windows_core::Interface::vtable(self).IsNewDocument)(
37220                windows_core::Interface::as_raw(self),
37221                value as _,
37222            )
37223            .ok()
37224        }
37225    }
37226}
37227#[repr(C)]
37228#[doc(hidden)]
37229pub struct ICoreWebView2SourceChangedEventArgs_Vtbl {
37230    pub base__: windows_core::IUnknown_Vtbl,
37231    pub IsNewDocument: unsafe extern "system" fn(
37232        *mut core::ffi::c_void,
37233        *mut windows_core::BOOL,
37234    ) -> windows_core::HRESULT,
37235}
37236pub trait ICoreWebView2SourceChangedEventArgs_Impl: windows_core::IUnknownImpl {
37237    fn IsNewDocument(&self, value: *mut windows_core::BOOL) -> windows_core::Result<()>;
37238}
37239impl ICoreWebView2SourceChangedEventArgs_Vtbl {
37240    pub const fn new<Identity: ICoreWebView2SourceChangedEventArgs_Impl, const OFFSET: isize>(
37241    ) -> Self {
37242        unsafe extern "system" fn IsNewDocument<
37243            Identity: ICoreWebView2SourceChangedEventArgs_Impl,
37244            const OFFSET: isize,
37245        >(
37246            this: *mut core::ffi::c_void,
37247            value: *mut windows_core::BOOL,
37248        ) -> windows_core::HRESULT {
37249            unsafe {
37250                let this: &Identity =
37251                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
37252                ICoreWebView2SourceChangedEventArgs_Impl::IsNewDocument(
37253                    this,
37254                    core::mem::transmute_copy(&value),
37255                )
37256                .into()
37257            }
37258        }
37259        Self {
37260            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
37261            IsNewDocument: IsNewDocument::<Identity, OFFSET>,
37262        }
37263    }
37264    pub fn matches(iid: &windows_core::GUID) -> bool {
37265        iid == &<ICoreWebView2SourceChangedEventArgs as windows_core::Interface>::IID
37266    }
37267}
37268impl windows_core::RuntimeName for ICoreWebView2SourceChangedEventArgs {}
37269windows_core::imp::define_interface!(
37270    ICoreWebView2SourceChangedEventHandler,
37271    ICoreWebView2SourceChangedEventHandler_Vtbl,
37272    0x3c067f9f_5388_4772_8b48_79f7ef1ab37c
37273);
37274windows_core::imp::interface_hierarchy!(
37275    ICoreWebView2SourceChangedEventHandler,
37276    windows_core::IUnknown
37277);
37278impl ICoreWebView2SourceChangedEventHandler {
37279    pub unsafe fn Invoke<P0, P1>(&self, sender: P0, args: P1) -> windows_core::Result<()>
37280    where
37281        P0: windows_core::Param<ICoreWebView2>,
37282        P1: windows_core::Param<ICoreWebView2SourceChangedEventArgs>,
37283    {
37284        unsafe {
37285            (windows_core::Interface::vtable(self).Invoke)(
37286                windows_core::Interface::as_raw(self),
37287                sender.param().abi(),
37288                args.param().abi(),
37289            )
37290            .ok()
37291        }
37292    }
37293}
37294#[repr(C)]
37295#[doc(hidden)]
37296pub struct ICoreWebView2SourceChangedEventHandler_Vtbl {
37297    pub base__: windows_core::IUnknown_Vtbl,
37298    pub Invoke: unsafe extern "system" fn(
37299        *mut core::ffi::c_void,
37300        *mut core::ffi::c_void,
37301        *mut core::ffi::c_void,
37302    ) -> windows_core::HRESULT,
37303}
37304pub trait ICoreWebView2SourceChangedEventHandler_Impl: windows_core::IUnknownImpl {
37305    fn Invoke(
37306        &self,
37307        sender: windows_core::Ref<ICoreWebView2>,
37308        args: windows_core::Ref<ICoreWebView2SourceChangedEventArgs>,
37309    ) -> windows_core::Result<()>;
37310}
37311impl ICoreWebView2SourceChangedEventHandler_Vtbl {
37312    pub const fn new<Identity: ICoreWebView2SourceChangedEventHandler_Impl, const OFFSET: isize>(
37313    ) -> Self {
37314        unsafe extern "system" fn Invoke<
37315            Identity: ICoreWebView2SourceChangedEventHandler_Impl,
37316            const OFFSET: isize,
37317        >(
37318            this: *mut core::ffi::c_void,
37319            sender: *mut core::ffi::c_void,
37320            args: *mut core::ffi::c_void,
37321        ) -> windows_core::HRESULT {
37322            unsafe {
37323                let this: &Identity =
37324                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
37325                ICoreWebView2SourceChangedEventHandler_Impl::Invoke(
37326                    this,
37327                    core::mem::transmute_copy(&sender),
37328                    core::mem::transmute_copy(&args),
37329                )
37330                .into()
37331            }
37332        }
37333        Self {
37334            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
37335            Invoke: Invoke::<Identity, OFFSET>,
37336        }
37337    }
37338    pub fn matches(iid: &windows_core::GUID) -> bool {
37339        iid == &<ICoreWebView2SourceChangedEventHandler as windows_core::Interface>::IID
37340    }
37341}
37342impl windows_core::RuntimeName for ICoreWebView2SourceChangedEventHandler {}
37343windows_core::imp::define_interface!(
37344    ICoreWebView2StateChangedEventHandler,
37345    ICoreWebView2StateChangedEventHandler_Vtbl,
37346    0x81336594_7ede_4ba9_bf71_acf0a95b58dd
37347);
37348windows_core::imp::interface_hierarchy!(
37349    ICoreWebView2StateChangedEventHandler,
37350    windows_core::IUnknown
37351);
37352impl ICoreWebView2StateChangedEventHandler {
37353    pub unsafe fn Invoke<P0, P1>(&self, sender: P0, args: P1) -> windows_core::Result<()>
37354    where
37355        P0: windows_core::Param<ICoreWebView2DownloadOperation>,
37356        P1: windows_core::Param<windows_core::IUnknown>,
37357    {
37358        unsafe {
37359            (windows_core::Interface::vtable(self).Invoke)(
37360                windows_core::Interface::as_raw(self),
37361                sender.param().abi(),
37362                args.param().abi(),
37363            )
37364            .ok()
37365        }
37366    }
37367}
37368#[repr(C)]
37369#[doc(hidden)]
37370pub struct ICoreWebView2StateChangedEventHandler_Vtbl {
37371    pub base__: windows_core::IUnknown_Vtbl,
37372    pub Invoke: unsafe extern "system" fn(
37373        *mut core::ffi::c_void,
37374        *mut core::ffi::c_void,
37375        *mut core::ffi::c_void,
37376    ) -> windows_core::HRESULT,
37377}
37378pub trait ICoreWebView2StateChangedEventHandler_Impl: windows_core::IUnknownImpl {
37379    fn Invoke(
37380        &self,
37381        sender: windows_core::Ref<ICoreWebView2DownloadOperation>,
37382        args: windows_core::Ref<windows_core::IUnknown>,
37383    ) -> windows_core::Result<()>;
37384}
37385impl ICoreWebView2StateChangedEventHandler_Vtbl {
37386    pub const fn new<Identity: ICoreWebView2StateChangedEventHandler_Impl, const OFFSET: isize>(
37387    ) -> Self {
37388        unsafe extern "system" fn Invoke<
37389            Identity: ICoreWebView2StateChangedEventHandler_Impl,
37390            const OFFSET: isize,
37391        >(
37392            this: *mut core::ffi::c_void,
37393            sender: *mut core::ffi::c_void,
37394            args: *mut core::ffi::c_void,
37395        ) -> windows_core::HRESULT {
37396            unsafe {
37397                let this: &Identity =
37398                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
37399                ICoreWebView2StateChangedEventHandler_Impl::Invoke(
37400                    this,
37401                    core::mem::transmute_copy(&sender),
37402                    core::mem::transmute_copy(&args),
37403                )
37404                .into()
37405            }
37406        }
37407        Self {
37408            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
37409            Invoke: Invoke::<Identity, OFFSET>,
37410        }
37411    }
37412    pub fn matches(iid: &windows_core::GUID) -> bool {
37413        iid == &<ICoreWebView2StateChangedEventHandler as windows_core::Interface>::IID
37414    }
37415}
37416impl windows_core::RuntimeName for ICoreWebView2StateChangedEventHandler {}
37417windows_core::imp::define_interface!(
37418    ICoreWebView2StatusBarTextChangedEventHandler,
37419    ICoreWebView2StatusBarTextChangedEventHandler_Vtbl,
37420    0xa5e3b0d0_10df_4156_bfad_3b43867acac6
37421);
37422windows_core::imp::interface_hierarchy!(
37423    ICoreWebView2StatusBarTextChangedEventHandler,
37424    windows_core::IUnknown
37425);
37426impl ICoreWebView2StatusBarTextChangedEventHandler {
37427    pub unsafe fn Invoke<P0, P1>(&self, sender: P0, args: P1) -> windows_core::Result<()>
37428    where
37429        P0: windows_core::Param<ICoreWebView2>,
37430        P1: windows_core::Param<windows_core::IUnknown>,
37431    {
37432        unsafe {
37433            (windows_core::Interface::vtable(self).Invoke)(
37434                windows_core::Interface::as_raw(self),
37435                sender.param().abi(),
37436                args.param().abi(),
37437            )
37438            .ok()
37439        }
37440    }
37441}
37442#[repr(C)]
37443#[doc(hidden)]
37444pub struct ICoreWebView2StatusBarTextChangedEventHandler_Vtbl {
37445    pub base__: windows_core::IUnknown_Vtbl,
37446    pub Invoke: unsafe extern "system" fn(
37447        *mut core::ffi::c_void,
37448        *mut core::ffi::c_void,
37449        *mut core::ffi::c_void,
37450    ) -> windows_core::HRESULT,
37451}
37452pub trait ICoreWebView2StatusBarTextChangedEventHandler_Impl: windows_core::IUnknownImpl {
37453    fn Invoke(
37454        &self,
37455        sender: windows_core::Ref<ICoreWebView2>,
37456        args: windows_core::Ref<windows_core::IUnknown>,
37457    ) -> windows_core::Result<()>;
37458}
37459impl ICoreWebView2StatusBarTextChangedEventHandler_Vtbl {
37460    pub const fn new<
37461        Identity: ICoreWebView2StatusBarTextChangedEventHandler_Impl,
37462        const OFFSET: isize,
37463    >() -> Self {
37464        unsafe extern "system" fn Invoke<
37465            Identity: ICoreWebView2StatusBarTextChangedEventHandler_Impl,
37466            const OFFSET: isize,
37467        >(
37468            this: *mut core::ffi::c_void,
37469            sender: *mut core::ffi::c_void,
37470            args: *mut core::ffi::c_void,
37471        ) -> windows_core::HRESULT {
37472            unsafe {
37473                let this: &Identity =
37474                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
37475                ICoreWebView2StatusBarTextChangedEventHandler_Impl::Invoke(
37476                    this,
37477                    core::mem::transmute_copy(&sender),
37478                    core::mem::transmute_copy(&args),
37479                )
37480                .into()
37481            }
37482        }
37483        Self {
37484            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
37485            Invoke: Invoke::<Identity, OFFSET>,
37486        }
37487    }
37488    pub fn matches(iid: &windows_core::GUID) -> bool {
37489        iid == &<ICoreWebView2StatusBarTextChangedEventHandler as windows_core::Interface>::IID
37490    }
37491}
37492impl windows_core::RuntimeName for ICoreWebView2StatusBarTextChangedEventHandler {}
37493windows_core::imp::define_interface!(
37494    ICoreWebView2StringCollection,
37495    ICoreWebView2StringCollection_Vtbl,
37496    0xf41f3f8a_bcc3_11eb_8529_0242ac130003
37497);
37498windows_core::imp::interface_hierarchy!(ICoreWebView2StringCollection, windows_core::IUnknown);
37499impl ICoreWebView2StringCollection {
37500    pub unsafe fn Count(&self, value: *mut u32) -> windows_core::Result<()> {
37501        unsafe {
37502            (windows_core::Interface::vtable(self).Count)(
37503                windows_core::Interface::as_raw(self),
37504                value as _,
37505            )
37506            .ok()
37507        }
37508    }
37509    pub unsafe fn GetValueAtIndex(
37510        &self,
37511        index: u32,
37512        value: *mut windows_core::PWSTR,
37513    ) -> windows_core::Result<()> {
37514        unsafe {
37515            (windows_core::Interface::vtable(self).GetValueAtIndex)(
37516                windows_core::Interface::as_raw(self),
37517                index,
37518                value as _,
37519            )
37520            .ok()
37521        }
37522    }
37523}
37524#[repr(C)]
37525#[doc(hidden)]
37526pub struct ICoreWebView2StringCollection_Vtbl {
37527    pub base__: windows_core::IUnknown_Vtbl,
37528    pub Count: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
37529    pub GetValueAtIndex: unsafe extern "system" fn(
37530        *mut core::ffi::c_void,
37531        u32,
37532        *mut windows_core::PWSTR,
37533    ) -> windows_core::HRESULT,
37534}
37535pub trait ICoreWebView2StringCollection_Impl: windows_core::IUnknownImpl {
37536    fn Count(&self, value: *mut u32) -> windows_core::Result<()>;
37537    fn GetValueAtIndex(
37538        &self,
37539        index: u32,
37540        value: *mut windows_core::PWSTR,
37541    ) -> windows_core::Result<()>;
37542}
37543impl ICoreWebView2StringCollection_Vtbl {
37544    pub const fn new<Identity: ICoreWebView2StringCollection_Impl, const OFFSET: isize>() -> Self {
37545        unsafe extern "system" fn Count<
37546            Identity: ICoreWebView2StringCollection_Impl,
37547            const OFFSET: isize,
37548        >(
37549            this: *mut core::ffi::c_void,
37550            value: *mut u32,
37551        ) -> windows_core::HRESULT {
37552            unsafe {
37553                let this: &Identity =
37554                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
37555                ICoreWebView2StringCollection_Impl::Count(this, core::mem::transmute_copy(&value))
37556                    .into()
37557            }
37558        }
37559        unsafe extern "system" fn GetValueAtIndex<
37560            Identity: ICoreWebView2StringCollection_Impl,
37561            const OFFSET: isize,
37562        >(
37563            this: *mut core::ffi::c_void,
37564            index: u32,
37565            value: *mut windows_core::PWSTR,
37566        ) -> windows_core::HRESULT {
37567            unsafe {
37568                let this: &Identity =
37569                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
37570                ICoreWebView2StringCollection_Impl::GetValueAtIndex(
37571                    this,
37572                    core::mem::transmute_copy(&index),
37573                    core::mem::transmute_copy(&value),
37574                )
37575                .into()
37576            }
37577        }
37578        Self {
37579            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
37580            Count: Count::<Identity, OFFSET>,
37581            GetValueAtIndex: GetValueAtIndex::<Identity, OFFSET>,
37582        }
37583    }
37584    pub fn matches(iid: &windows_core::GUID) -> bool {
37585        iid == &<ICoreWebView2StringCollection as windows_core::Interface>::IID
37586    }
37587}
37588impl windows_core::RuntimeName for ICoreWebView2StringCollection {}
37589windows_core::imp::define_interface!(
37590    ICoreWebView2TrySuspendCompletedHandler,
37591    ICoreWebView2TrySuspendCompletedHandler_Vtbl,
37592    0x00f206a7_9d17_4605_91f6_4e8e4de192e3
37593);
37594windows_core::imp::interface_hierarchy!(
37595    ICoreWebView2TrySuspendCompletedHandler,
37596    windows_core::IUnknown
37597);
37598impl ICoreWebView2TrySuspendCompletedHandler {
37599    pub unsafe fn Invoke(
37600        &self,
37601        errorcode: windows_core::HRESULT,
37602        result: bool,
37603    ) -> windows_core::Result<()> {
37604        unsafe {
37605            (windows_core::Interface::vtable(self).Invoke)(
37606                windows_core::Interface::as_raw(self),
37607                errorcode,
37608                result.into(),
37609            )
37610            .ok()
37611        }
37612    }
37613}
37614#[repr(C)]
37615#[doc(hidden)]
37616pub struct ICoreWebView2TrySuspendCompletedHandler_Vtbl {
37617    pub base__: windows_core::IUnknown_Vtbl,
37618    pub Invoke: unsafe extern "system" fn(
37619        *mut core::ffi::c_void,
37620        windows_core::HRESULT,
37621        windows_core::BOOL,
37622    ) -> windows_core::HRESULT,
37623}
37624pub trait ICoreWebView2TrySuspendCompletedHandler_Impl: windows_core::IUnknownImpl {
37625    fn Invoke(
37626        &self,
37627        errorcode: windows_core::HRESULT,
37628        result: windows_core::BOOL,
37629    ) -> windows_core::Result<()>;
37630}
37631impl ICoreWebView2TrySuspendCompletedHandler_Vtbl {
37632    pub const fn new<
37633        Identity: ICoreWebView2TrySuspendCompletedHandler_Impl,
37634        const OFFSET: isize,
37635    >() -> Self {
37636        unsafe extern "system" fn Invoke<
37637            Identity: ICoreWebView2TrySuspendCompletedHandler_Impl,
37638            const OFFSET: isize,
37639        >(
37640            this: *mut core::ffi::c_void,
37641            errorcode: windows_core::HRESULT,
37642            result: windows_core::BOOL,
37643        ) -> windows_core::HRESULT {
37644            unsafe {
37645                let this: &Identity =
37646                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
37647                ICoreWebView2TrySuspendCompletedHandler_Impl::Invoke(
37648                    this,
37649                    core::mem::transmute_copy(&errorcode),
37650                    core::mem::transmute_copy(&result),
37651                )
37652                .into()
37653            }
37654        }
37655        Self {
37656            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
37657            Invoke: Invoke::<Identity, OFFSET>,
37658        }
37659    }
37660    pub fn matches(iid: &windows_core::GUID) -> bool {
37661        iid == &<ICoreWebView2TrySuspendCompletedHandler as windows_core::Interface>::IID
37662    }
37663}
37664impl windows_core::RuntimeName for ICoreWebView2TrySuspendCompletedHandler {}
37665windows_core::imp::define_interface!(
37666    ICoreWebView2WebMessageReceivedEventArgs,
37667    ICoreWebView2WebMessageReceivedEventArgs_Vtbl,
37668    0x0f99a40c_e962_4207_9e92_e3d542eff849
37669);
37670windows_core::imp::interface_hierarchy!(
37671    ICoreWebView2WebMessageReceivedEventArgs,
37672    windows_core::IUnknown
37673);
37674impl ICoreWebView2WebMessageReceivedEventArgs {
37675    pub unsafe fn Source(&self, value: *mut windows_core::PWSTR) -> windows_core::Result<()> {
37676        unsafe {
37677            (windows_core::Interface::vtable(self).Source)(
37678                windows_core::Interface::as_raw(self),
37679                value as _,
37680            )
37681            .ok()
37682        }
37683    }
37684    pub unsafe fn WebMessageAsJson(
37685        &self,
37686        value: *mut windows_core::PWSTR,
37687    ) -> windows_core::Result<()> {
37688        unsafe {
37689            (windows_core::Interface::vtable(self).WebMessageAsJson)(
37690                windows_core::Interface::as_raw(self),
37691                value as _,
37692            )
37693            .ok()
37694        }
37695    }
37696    pub unsafe fn TryGetWebMessageAsString(
37697        &self,
37698        value: *mut windows_core::PWSTR,
37699    ) -> windows_core::Result<()> {
37700        unsafe {
37701            (windows_core::Interface::vtable(self).TryGetWebMessageAsString)(
37702                windows_core::Interface::as_raw(self),
37703                value as _,
37704            )
37705            .ok()
37706        }
37707    }
37708}
37709#[repr(C)]
37710#[doc(hidden)]
37711pub struct ICoreWebView2WebMessageReceivedEventArgs_Vtbl {
37712    pub base__: windows_core::IUnknown_Vtbl,
37713    pub Source: unsafe extern "system" fn(
37714        *mut core::ffi::c_void,
37715        *mut windows_core::PWSTR,
37716    ) -> windows_core::HRESULT,
37717    pub WebMessageAsJson: unsafe extern "system" fn(
37718        *mut core::ffi::c_void,
37719        *mut windows_core::PWSTR,
37720    ) -> windows_core::HRESULT,
37721    pub TryGetWebMessageAsString: unsafe extern "system" fn(
37722        *mut core::ffi::c_void,
37723        *mut windows_core::PWSTR,
37724    ) -> windows_core::HRESULT,
37725}
37726pub trait ICoreWebView2WebMessageReceivedEventArgs_Impl: windows_core::IUnknownImpl {
37727    fn Source(&self, value: *mut windows_core::PWSTR) -> windows_core::Result<()>;
37728    fn WebMessageAsJson(&self, value: *mut windows_core::PWSTR) -> windows_core::Result<()>;
37729    fn TryGetWebMessageAsString(&self, value: *mut windows_core::PWSTR)
37730        -> windows_core::Result<()>;
37731}
37732impl ICoreWebView2WebMessageReceivedEventArgs_Vtbl {
37733    pub const fn new<
37734        Identity: ICoreWebView2WebMessageReceivedEventArgs_Impl,
37735        const OFFSET: isize,
37736    >() -> Self {
37737        unsafe extern "system" fn Source<
37738            Identity: ICoreWebView2WebMessageReceivedEventArgs_Impl,
37739            const OFFSET: isize,
37740        >(
37741            this: *mut core::ffi::c_void,
37742            value: *mut windows_core::PWSTR,
37743        ) -> windows_core::HRESULT {
37744            unsafe {
37745                let this: &Identity =
37746                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
37747                ICoreWebView2WebMessageReceivedEventArgs_Impl::Source(
37748                    this,
37749                    core::mem::transmute_copy(&value),
37750                )
37751                .into()
37752            }
37753        }
37754        unsafe extern "system" fn WebMessageAsJson<
37755            Identity: ICoreWebView2WebMessageReceivedEventArgs_Impl,
37756            const OFFSET: isize,
37757        >(
37758            this: *mut core::ffi::c_void,
37759            value: *mut windows_core::PWSTR,
37760        ) -> windows_core::HRESULT {
37761            unsafe {
37762                let this: &Identity =
37763                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
37764                ICoreWebView2WebMessageReceivedEventArgs_Impl::WebMessageAsJson(
37765                    this,
37766                    core::mem::transmute_copy(&value),
37767                )
37768                .into()
37769            }
37770        }
37771        unsafe extern "system" fn TryGetWebMessageAsString<
37772            Identity: ICoreWebView2WebMessageReceivedEventArgs_Impl,
37773            const OFFSET: isize,
37774        >(
37775            this: *mut core::ffi::c_void,
37776            value: *mut windows_core::PWSTR,
37777        ) -> windows_core::HRESULT {
37778            unsafe {
37779                let this: &Identity =
37780                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
37781                ICoreWebView2WebMessageReceivedEventArgs_Impl::TryGetWebMessageAsString(
37782                    this,
37783                    core::mem::transmute_copy(&value),
37784                )
37785                .into()
37786            }
37787        }
37788        Self {
37789            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
37790            Source: Source::<Identity, OFFSET>,
37791            WebMessageAsJson: WebMessageAsJson::<Identity, OFFSET>,
37792            TryGetWebMessageAsString: TryGetWebMessageAsString::<Identity, OFFSET>,
37793        }
37794    }
37795    pub fn matches(iid: &windows_core::GUID) -> bool {
37796        iid == &<ICoreWebView2WebMessageReceivedEventArgs as windows_core::Interface>::IID
37797    }
37798}
37799impl windows_core::RuntimeName for ICoreWebView2WebMessageReceivedEventArgs {}
37800windows_core::imp::define_interface!(
37801    ICoreWebView2WebMessageReceivedEventArgs2,
37802    ICoreWebView2WebMessageReceivedEventArgs2_Vtbl,
37803    0x06fc7ab7_c90c_4297_9389_33ca01cf6d5e
37804);
37805impl core::ops::Deref for ICoreWebView2WebMessageReceivedEventArgs2 {
37806    type Target = ICoreWebView2WebMessageReceivedEventArgs;
37807    fn deref(&self) -> &Self::Target {
37808        unsafe { core::mem::transmute(self) }
37809    }
37810}
37811windows_core::imp::interface_hierarchy!(
37812    ICoreWebView2WebMessageReceivedEventArgs2,
37813    windows_core::IUnknown,
37814    ICoreWebView2WebMessageReceivedEventArgs
37815);
37816impl ICoreWebView2WebMessageReceivedEventArgs2 {
37817    pub unsafe fn AdditionalObjects(
37818        &self,
37819    ) -> windows_core::Result<ICoreWebView2ObjectCollectionView> {
37820        unsafe {
37821            let mut result__ = core::mem::zeroed();
37822            (windows_core::Interface::vtable(self).AdditionalObjects)(
37823                windows_core::Interface::as_raw(self),
37824                &mut result__,
37825            )
37826            .and_then(|| windows_core::Type::from_abi(result__))
37827        }
37828    }
37829}
37830#[repr(C)]
37831#[doc(hidden)]
37832pub struct ICoreWebView2WebMessageReceivedEventArgs2_Vtbl {
37833    pub base__: ICoreWebView2WebMessageReceivedEventArgs_Vtbl,
37834    pub AdditionalObjects: unsafe extern "system" fn(
37835        *mut core::ffi::c_void,
37836        *mut *mut core::ffi::c_void,
37837    ) -> windows_core::HRESULT,
37838}
37839pub trait ICoreWebView2WebMessageReceivedEventArgs2_Impl:
37840    ICoreWebView2WebMessageReceivedEventArgs_Impl
37841{
37842    fn AdditionalObjects(&self) -> windows_core::Result<ICoreWebView2ObjectCollectionView>;
37843}
37844impl ICoreWebView2WebMessageReceivedEventArgs2_Vtbl {
37845    pub const fn new<
37846        Identity: ICoreWebView2WebMessageReceivedEventArgs2_Impl,
37847        const OFFSET: isize,
37848    >() -> Self {
37849        unsafe extern "system" fn AdditionalObjects<
37850            Identity: ICoreWebView2WebMessageReceivedEventArgs2_Impl,
37851            const OFFSET: isize,
37852        >(
37853            this: *mut core::ffi::c_void,
37854            value: *mut *mut core::ffi::c_void,
37855        ) -> windows_core::HRESULT {
37856            unsafe {
37857                let this: &Identity =
37858                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
37859                match ICoreWebView2WebMessageReceivedEventArgs2_Impl::AdditionalObjects(this) {
37860                    Ok(ok__) => {
37861                        value.write(core::mem::transmute(ok__));
37862                        windows_core::HRESULT(0)
37863                    }
37864                    Err(err) => err.into(),
37865                }
37866            }
37867        }
37868        Self {
37869            base__: ICoreWebView2WebMessageReceivedEventArgs_Vtbl::new::<Identity, OFFSET>(),
37870            AdditionalObjects: AdditionalObjects::<Identity, OFFSET>,
37871        }
37872    }
37873    pub fn matches(iid: &windows_core::GUID) -> bool {
37874        iid == &<ICoreWebView2WebMessageReceivedEventArgs2 as windows_core::Interface>::IID
37875            || iid == &<ICoreWebView2WebMessageReceivedEventArgs as windows_core::Interface>::IID
37876    }
37877}
37878impl windows_core::RuntimeName for ICoreWebView2WebMessageReceivedEventArgs2 {}
37879windows_core::imp::define_interface!(
37880    ICoreWebView2WebMessageReceivedEventHandler,
37881    ICoreWebView2WebMessageReceivedEventHandler_Vtbl,
37882    0x57213f19_00e6_49fa_8e07_898ea01ecbd2
37883);
37884windows_core::imp::interface_hierarchy!(
37885    ICoreWebView2WebMessageReceivedEventHandler,
37886    windows_core::IUnknown
37887);
37888impl ICoreWebView2WebMessageReceivedEventHandler {
37889    pub unsafe fn Invoke<P0, P1>(&self, sender: P0, args: P1) -> windows_core::Result<()>
37890    where
37891        P0: windows_core::Param<ICoreWebView2>,
37892        P1: windows_core::Param<ICoreWebView2WebMessageReceivedEventArgs>,
37893    {
37894        unsafe {
37895            (windows_core::Interface::vtable(self).Invoke)(
37896                windows_core::Interface::as_raw(self),
37897                sender.param().abi(),
37898                args.param().abi(),
37899            )
37900            .ok()
37901        }
37902    }
37903}
37904#[repr(C)]
37905#[doc(hidden)]
37906pub struct ICoreWebView2WebMessageReceivedEventHandler_Vtbl {
37907    pub base__: windows_core::IUnknown_Vtbl,
37908    pub Invoke: unsafe extern "system" fn(
37909        *mut core::ffi::c_void,
37910        *mut core::ffi::c_void,
37911        *mut core::ffi::c_void,
37912    ) -> windows_core::HRESULT,
37913}
37914pub trait ICoreWebView2WebMessageReceivedEventHandler_Impl: windows_core::IUnknownImpl {
37915    fn Invoke(
37916        &self,
37917        sender: windows_core::Ref<ICoreWebView2>,
37918        args: windows_core::Ref<ICoreWebView2WebMessageReceivedEventArgs>,
37919    ) -> windows_core::Result<()>;
37920}
37921impl ICoreWebView2WebMessageReceivedEventHandler_Vtbl {
37922    pub const fn new<
37923        Identity: ICoreWebView2WebMessageReceivedEventHandler_Impl,
37924        const OFFSET: isize,
37925    >() -> Self {
37926        unsafe extern "system" fn Invoke<
37927            Identity: ICoreWebView2WebMessageReceivedEventHandler_Impl,
37928            const OFFSET: isize,
37929        >(
37930            this: *mut core::ffi::c_void,
37931            sender: *mut core::ffi::c_void,
37932            args: *mut core::ffi::c_void,
37933        ) -> windows_core::HRESULT {
37934            unsafe {
37935                let this: &Identity =
37936                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
37937                ICoreWebView2WebMessageReceivedEventHandler_Impl::Invoke(
37938                    this,
37939                    core::mem::transmute_copy(&sender),
37940                    core::mem::transmute_copy(&args),
37941                )
37942                .into()
37943            }
37944        }
37945        Self {
37946            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
37947            Invoke: Invoke::<Identity, OFFSET>,
37948        }
37949    }
37950    pub fn matches(iid: &windows_core::GUID) -> bool {
37951        iid == &<ICoreWebView2WebMessageReceivedEventHandler as windows_core::Interface>::IID
37952    }
37953}
37954impl windows_core::RuntimeName for ICoreWebView2WebMessageReceivedEventHandler {}
37955windows_core::imp::define_interface!(
37956    ICoreWebView2WebResourceRequest,
37957    ICoreWebView2WebResourceRequest_Vtbl,
37958    0x97055cd4_512c_4264_8b5f_e3f446cea6a5
37959);
37960windows_core::imp::interface_hierarchy!(ICoreWebView2WebResourceRequest, windows_core::IUnknown);
37961impl ICoreWebView2WebResourceRequest {
37962    pub unsafe fn Uri(&self, uri: *mut windows_core::PWSTR) -> windows_core::Result<()> {
37963        unsafe {
37964            (windows_core::Interface::vtable(self).Uri)(
37965                windows_core::Interface::as_raw(self),
37966                uri as _,
37967            )
37968            .ok()
37969        }
37970    }
37971    pub unsafe fn SetUri<P0>(&self, uri: P0) -> windows_core::Result<()>
37972    where
37973        P0: windows_core::Param<windows_core::PCWSTR>,
37974    {
37975        unsafe {
37976            (windows_core::Interface::vtable(self).SetUri)(
37977                windows_core::Interface::as_raw(self),
37978                uri.param().abi(),
37979            )
37980            .ok()
37981        }
37982    }
37983    pub unsafe fn Method(&self, method: *mut windows_core::PWSTR) -> windows_core::Result<()> {
37984        unsafe {
37985            (windows_core::Interface::vtable(self).Method)(
37986                windows_core::Interface::as_raw(self),
37987                method as _,
37988            )
37989            .ok()
37990        }
37991    }
37992    pub unsafe fn SetMethod<P0>(&self, method: P0) -> windows_core::Result<()>
37993    where
37994        P0: windows_core::Param<windows_core::PCWSTR>,
37995    {
37996        unsafe {
37997            (windows_core::Interface::vtable(self).SetMethod)(
37998                windows_core::Interface::as_raw(self),
37999                method.param().abi(),
38000            )
38001            .ok()
38002        }
38003    }
38004    pub unsafe fn Content(&self) -> windows_core::Result<windows::Win32::System::Com::IStream> {
38005        unsafe {
38006            let mut result__ = core::mem::zeroed();
38007            (windows_core::Interface::vtable(self).Content)(
38008                windows_core::Interface::as_raw(self),
38009                &mut result__,
38010            )
38011            .and_then(|| windows_core::Type::from_abi(result__))
38012        }
38013    }
38014    pub unsafe fn SetContent<P0>(&self, content: P0) -> windows_core::Result<()>
38015    where
38016        P0: windows_core::Param<windows::Win32::System::Com::IStream>,
38017    {
38018        unsafe {
38019            (windows_core::Interface::vtable(self).SetContent)(
38020                windows_core::Interface::as_raw(self),
38021                content.param().abi(),
38022            )
38023            .ok()
38024        }
38025    }
38026    pub unsafe fn Headers(&self) -> windows_core::Result<ICoreWebView2HttpRequestHeaders> {
38027        unsafe {
38028            let mut result__ = core::mem::zeroed();
38029            (windows_core::Interface::vtable(self).Headers)(
38030                windows_core::Interface::as_raw(self),
38031                &mut result__,
38032            )
38033            .and_then(|| windows_core::Type::from_abi(result__))
38034        }
38035    }
38036}
38037#[repr(C)]
38038#[doc(hidden)]
38039pub struct ICoreWebView2WebResourceRequest_Vtbl {
38040    pub base__: windows_core::IUnknown_Vtbl,
38041    pub Uri: unsafe extern "system" fn(
38042        *mut core::ffi::c_void,
38043        *mut windows_core::PWSTR,
38044    ) -> windows_core::HRESULT,
38045    pub SetUri: unsafe extern "system" fn(
38046        *mut core::ffi::c_void,
38047        windows_core::PCWSTR,
38048    ) -> windows_core::HRESULT,
38049    pub Method: unsafe extern "system" fn(
38050        *mut core::ffi::c_void,
38051        *mut windows_core::PWSTR,
38052    ) -> windows_core::HRESULT,
38053    pub SetMethod: unsafe extern "system" fn(
38054        *mut core::ffi::c_void,
38055        windows_core::PCWSTR,
38056    ) -> windows_core::HRESULT,
38057    pub Content: unsafe extern "system" fn(
38058        *mut core::ffi::c_void,
38059        *mut *mut core::ffi::c_void,
38060    ) -> windows_core::HRESULT,
38061    pub SetContent: unsafe extern "system" fn(
38062        *mut core::ffi::c_void,
38063        *mut core::ffi::c_void,
38064    ) -> windows_core::HRESULT,
38065    pub Headers: unsafe extern "system" fn(
38066        *mut core::ffi::c_void,
38067        *mut *mut core::ffi::c_void,
38068    ) -> windows_core::HRESULT,
38069}
38070pub trait ICoreWebView2WebResourceRequest_Impl: windows_core::IUnknownImpl {
38071    fn Uri(&self, uri: *mut windows_core::PWSTR) -> windows_core::Result<()>;
38072    fn SetUri(&self, uri: &windows_core::PCWSTR) -> windows_core::Result<()>;
38073    fn Method(&self, method: *mut windows_core::PWSTR) -> windows_core::Result<()>;
38074    fn SetMethod(&self, method: &windows_core::PCWSTR) -> windows_core::Result<()>;
38075    fn Content(&self) -> windows_core::Result<windows::Win32::System::Com::IStream>;
38076    fn SetContent(
38077        &self,
38078        content: windows_core::Ref<windows::Win32::System::Com::IStream>,
38079    ) -> windows_core::Result<()>;
38080    fn Headers(&self) -> windows_core::Result<ICoreWebView2HttpRequestHeaders>;
38081}
38082impl ICoreWebView2WebResourceRequest_Vtbl {
38083    pub const fn new<Identity: ICoreWebView2WebResourceRequest_Impl, const OFFSET: isize>() -> Self
38084    {
38085        unsafe extern "system" fn Uri<
38086            Identity: ICoreWebView2WebResourceRequest_Impl,
38087            const OFFSET: isize,
38088        >(
38089            this: *mut core::ffi::c_void,
38090            uri: *mut windows_core::PWSTR,
38091        ) -> windows_core::HRESULT {
38092            unsafe {
38093                let this: &Identity =
38094                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
38095                ICoreWebView2WebResourceRequest_Impl::Uri(this, core::mem::transmute_copy(&uri))
38096                    .into()
38097            }
38098        }
38099        unsafe extern "system" fn SetUri<
38100            Identity: ICoreWebView2WebResourceRequest_Impl,
38101            const OFFSET: isize,
38102        >(
38103            this: *mut core::ffi::c_void,
38104            uri: windows_core::PCWSTR,
38105        ) -> windows_core::HRESULT {
38106            unsafe {
38107                let this: &Identity =
38108                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
38109                ICoreWebView2WebResourceRequest_Impl::SetUri(this, core::mem::transmute(&uri))
38110                    .into()
38111            }
38112        }
38113        unsafe extern "system" fn Method<
38114            Identity: ICoreWebView2WebResourceRequest_Impl,
38115            const OFFSET: isize,
38116        >(
38117            this: *mut core::ffi::c_void,
38118            method: *mut windows_core::PWSTR,
38119        ) -> windows_core::HRESULT {
38120            unsafe {
38121                let this: &Identity =
38122                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
38123                ICoreWebView2WebResourceRequest_Impl::Method(
38124                    this,
38125                    core::mem::transmute_copy(&method),
38126                )
38127                .into()
38128            }
38129        }
38130        unsafe extern "system" fn SetMethod<
38131            Identity: ICoreWebView2WebResourceRequest_Impl,
38132            const OFFSET: isize,
38133        >(
38134            this: *mut core::ffi::c_void,
38135            method: windows_core::PCWSTR,
38136        ) -> windows_core::HRESULT {
38137            unsafe {
38138                let this: &Identity =
38139                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
38140                ICoreWebView2WebResourceRequest_Impl::SetMethod(this, core::mem::transmute(&method))
38141                    .into()
38142            }
38143        }
38144        unsafe extern "system" fn Content<
38145            Identity: ICoreWebView2WebResourceRequest_Impl,
38146            const OFFSET: isize,
38147        >(
38148            this: *mut core::ffi::c_void,
38149            content: *mut *mut core::ffi::c_void,
38150        ) -> windows_core::HRESULT {
38151            unsafe {
38152                let this: &Identity =
38153                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
38154                match ICoreWebView2WebResourceRequest_Impl::Content(this) {
38155                    Ok(ok__) => {
38156                        content.write(core::mem::transmute(ok__));
38157                        windows_core::HRESULT(0)
38158                    }
38159                    Err(err) => err.into(),
38160                }
38161            }
38162        }
38163        unsafe extern "system" fn SetContent<
38164            Identity: ICoreWebView2WebResourceRequest_Impl,
38165            const OFFSET: isize,
38166        >(
38167            this: *mut core::ffi::c_void,
38168            content: *mut core::ffi::c_void,
38169        ) -> windows_core::HRESULT {
38170            unsafe {
38171                let this: &Identity =
38172                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
38173                ICoreWebView2WebResourceRequest_Impl::SetContent(
38174                    this,
38175                    core::mem::transmute_copy(&content),
38176                )
38177                .into()
38178            }
38179        }
38180        unsafe extern "system" fn Headers<
38181            Identity: ICoreWebView2WebResourceRequest_Impl,
38182            const OFFSET: isize,
38183        >(
38184            this: *mut core::ffi::c_void,
38185            headers: *mut *mut core::ffi::c_void,
38186        ) -> windows_core::HRESULT {
38187            unsafe {
38188                let this: &Identity =
38189                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
38190                match ICoreWebView2WebResourceRequest_Impl::Headers(this) {
38191                    Ok(ok__) => {
38192                        headers.write(core::mem::transmute(ok__));
38193                        windows_core::HRESULT(0)
38194                    }
38195                    Err(err) => err.into(),
38196                }
38197            }
38198        }
38199        Self {
38200            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
38201            Uri: Uri::<Identity, OFFSET>,
38202            SetUri: SetUri::<Identity, OFFSET>,
38203            Method: Method::<Identity, OFFSET>,
38204            SetMethod: SetMethod::<Identity, OFFSET>,
38205            Content: Content::<Identity, OFFSET>,
38206            SetContent: SetContent::<Identity, OFFSET>,
38207            Headers: Headers::<Identity, OFFSET>,
38208        }
38209    }
38210    pub fn matches(iid: &windows_core::GUID) -> bool {
38211        iid == &<ICoreWebView2WebResourceRequest as windows_core::Interface>::IID
38212    }
38213}
38214impl windows_core::RuntimeName for ICoreWebView2WebResourceRequest {}
38215windows_core::imp::define_interface!(
38216    ICoreWebView2WebResourceRequestedEventArgs,
38217    ICoreWebView2WebResourceRequestedEventArgs_Vtbl,
38218    0x453e667f_12c7_49d4_be6d_ddbe7956f57a
38219);
38220windows_core::imp::interface_hierarchy!(
38221    ICoreWebView2WebResourceRequestedEventArgs,
38222    windows_core::IUnknown
38223);
38224impl ICoreWebView2WebResourceRequestedEventArgs {
38225    pub unsafe fn Request(&self) -> windows_core::Result<ICoreWebView2WebResourceRequest> {
38226        unsafe {
38227            let mut result__ = core::mem::zeroed();
38228            (windows_core::Interface::vtable(self).Request)(
38229                windows_core::Interface::as_raw(self),
38230                &mut result__,
38231            )
38232            .and_then(|| windows_core::Type::from_abi(result__))
38233        }
38234    }
38235    pub unsafe fn Response(&self) -> windows_core::Result<ICoreWebView2WebResourceResponse> {
38236        unsafe {
38237            let mut result__ = core::mem::zeroed();
38238            (windows_core::Interface::vtable(self).Response)(
38239                windows_core::Interface::as_raw(self),
38240                &mut result__,
38241            )
38242            .and_then(|| windows_core::Type::from_abi(result__))
38243        }
38244    }
38245    pub unsafe fn SetResponse<P0>(&self, response: P0) -> windows_core::Result<()>
38246    where
38247        P0: windows_core::Param<ICoreWebView2WebResourceResponse>,
38248    {
38249        unsafe {
38250            (windows_core::Interface::vtable(self).SetResponse)(
38251                windows_core::Interface::as_raw(self),
38252                response.param().abi(),
38253            )
38254            .ok()
38255        }
38256    }
38257    pub unsafe fn GetDeferral(&self) -> windows_core::Result<ICoreWebView2Deferral> {
38258        unsafe {
38259            let mut result__ = core::mem::zeroed();
38260            (windows_core::Interface::vtable(self).GetDeferral)(
38261                windows_core::Interface::as_raw(self),
38262                &mut result__,
38263            )
38264            .and_then(|| windows_core::Type::from_abi(result__))
38265        }
38266    }
38267    pub unsafe fn ResourceContext(
38268        &self,
38269        context: *mut COREWEBVIEW2_WEB_RESOURCE_CONTEXT,
38270    ) -> windows_core::Result<()> {
38271        unsafe {
38272            (windows_core::Interface::vtable(self).ResourceContext)(
38273                windows_core::Interface::as_raw(self),
38274                context as _,
38275            )
38276            .ok()
38277        }
38278    }
38279}
38280#[repr(C)]
38281#[doc(hidden)]
38282pub struct ICoreWebView2WebResourceRequestedEventArgs_Vtbl {
38283    pub base__: windows_core::IUnknown_Vtbl,
38284    pub Request: unsafe extern "system" fn(
38285        *mut core::ffi::c_void,
38286        *mut *mut core::ffi::c_void,
38287    ) -> windows_core::HRESULT,
38288    pub Response: unsafe extern "system" fn(
38289        *mut core::ffi::c_void,
38290        *mut *mut core::ffi::c_void,
38291    ) -> windows_core::HRESULT,
38292    pub SetResponse: unsafe extern "system" fn(
38293        *mut core::ffi::c_void,
38294        *mut core::ffi::c_void,
38295    ) -> windows_core::HRESULT,
38296    pub GetDeferral: unsafe extern "system" fn(
38297        *mut core::ffi::c_void,
38298        *mut *mut core::ffi::c_void,
38299    ) -> windows_core::HRESULT,
38300    pub ResourceContext: unsafe extern "system" fn(
38301        *mut core::ffi::c_void,
38302        *mut COREWEBVIEW2_WEB_RESOURCE_CONTEXT,
38303    ) -> windows_core::HRESULT,
38304}
38305pub trait ICoreWebView2WebResourceRequestedEventArgs_Impl: windows_core::IUnknownImpl {
38306    fn Request(&self) -> windows_core::Result<ICoreWebView2WebResourceRequest>;
38307    fn Response(&self) -> windows_core::Result<ICoreWebView2WebResourceResponse>;
38308    fn SetResponse(
38309        &self,
38310        response: windows_core::Ref<ICoreWebView2WebResourceResponse>,
38311    ) -> windows_core::Result<()>;
38312    fn GetDeferral(&self) -> windows_core::Result<ICoreWebView2Deferral>;
38313    fn ResourceContext(
38314        &self,
38315        context: *mut COREWEBVIEW2_WEB_RESOURCE_CONTEXT,
38316    ) -> windows_core::Result<()>;
38317}
38318impl ICoreWebView2WebResourceRequestedEventArgs_Vtbl {
38319    pub const fn new<
38320        Identity: ICoreWebView2WebResourceRequestedEventArgs_Impl,
38321        const OFFSET: isize,
38322    >() -> Self {
38323        unsafe extern "system" fn Request<
38324            Identity: ICoreWebView2WebResourceRequestedEventArgs_Impl,
38325            const OFFSET: isize,
38326        >(
38327            this: *mut core::ffi::c_void,
38328            request: *mut *mut core::ffi::c_void,
38329        ) -> windows_core::HRESULT {
38330            unsafe {
38331                let this: &Identity =
38332                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
38333                match ICoreWebView2WebResourceRequestedEventArgs_Impl::Request(this) {
38334                    Ok(ok__) => {
38335                        request.write(core::mem::transmute(ok__));
38336                        windows_core::HRESULT(0)
38337                    }
38338                    Err(err) => err.into(),
38339                }
38340            }
38341        }
38342        unsafe extern "system" fn Response<
38343            Identity: ICoreWebView2WebResourceRequestedEventArgs_Impl,
38344            const OFFSET: isize,
38345        >(
38346            this: *mut core::ffi::c_void,
38347            response: *mut *mut core::ffi::c_void,
38348        ) -> windows_core::HRESULT {
38349            unsafe {
38350                let this: &Identity =
38351                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
38352                match ICoreWebView2WebResourceRequestedEventArgs_Impl::Response(this) {
38353                    Ok(ok__) => {
38354                        response.write(core::mem::transmute(ok__));
38355                        windows_core::HRESULT(0)
38356                    }
38357                    Err(err) => err.into(),
38358                }
38359            }
38360        }
38361        unsafe extern "system" fn SetResponse<
38362            Identity: ICoreWebView2WebResourceRequestedEventArgs_Impl,
38363            const OFFSET: isize,
38364        >(
38365            this: *mut core::ffi::c_void,
38366            response: *mut core::ffi::c_void,
38367        ) -> windows_core::HRESULT {
38368            unsafe {
38369                let this: &Identity =
38370                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
38371                ICoreWebView2WebResourceRequestedEventArgs_Impl::SetResponse(
38372                    this,
38373                    core::mem::transmute_copy(&response),
38374                )
38375                .into()
38376            }
38377        }
38378        unsafe extern "system" fn GetDeferral<
38379            Identity: ICoreWebView2WebResourceRequestedEventArgs_Impl,
38380            const OFFSET: isize,
38381        >(
38382            this: *mut core::ffi::c_void,
38383            deferral: *mut *mut core::ffi::c_void,
38384        ) -> windows_core::HRESULT {
38385            unsafe {
38386                let this: &Identity =
38387                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
38388                match ICoreWebView2WebResourceRequestedEventArgs_Impl::GetDeferral(this) {
38389                    Ok(ok__) => {
38390                        deferral.write(core::mem::transmute(ok__));
38391                        windows_core::HRESULT(0)
38392                    }
38393                    Err(err) => err.into(),
38394                }
38395            }
38396        }
38397        unsafe extern "system" fn ResourceContext<
38398            Identity: ICoreWebView2WebResourceRequestedEventArgs_Impl,
38399            const OFFSET: isize,
38400        >(
38401            this: *mut core::ffi::c_void,
38402            context: *mut COREWEBVIEW2_WEB_RESOURCE_CONTEXT,
38403        ) -> windows_core::HRESULT {
38404            unsafe {
38405                let this: &Identity =
38406                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
38407                ICoreWebView2WebResourceRequestedEventArgs_Impl::ResourceContext(
38408                    this,
38409                    core::mem::transmute_copy(&context),
38410                )
38411                .into()
38412            }
38413        }
38414        Self {
38415            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
38416            Request: Request::<Identity, OFFSET>,
38417            Response: Response::<Identity, OFFSET>,
38418            SetResponse: SetResponse::<Identity, OFFSET>,
38419            GetDeferral: GetDeferral::<Identity, OFFSET>,
38420            ResourceContext: ResourceContext::<Identity, OFFSET>,
38421        }
38422    }
38423    pub fn matches(iid: &windows_core::GUID) -> bool {
38424        iid == &<ICoreWebView2WebResourceRequestedEventArgs as windows_core::Interface>::IID
38425    }
38426}
38427impl windows_core::RuntimeName for ICoreWebView2WebResourceRequestedEventArgs {}
38428windows_core::imp::define_interface!(
38429    ICoreWebView2WebResourceRequestedEventArgs2,
38430    ICoreWebView2WebResourceRequestedEventArgs2_Vtbl,
38431    0x9c562c24_b219_4d7f_92f6_b187fbbadd56
38432);
38433impl core::ops::Deref for ICoreWebView2WebResourceRequestedEventArgs2 {
38434    type Target = ICoreWebView2WebResourceRequestedEventArgs;
38435    fn deref(&self) -> &Self::Target {
38436        unsafe { core::mem::transmute(self) }
38437    }
38438}
38439windows_core::imp::interface_hierarchy!(
38440    ICoreWebView2WebResourceRequestedEventArgs2,
38441    windows_core::IUnknown,
38442    ICoreWebView2WebResourceRequestedEventArgs
38443);
38444impl ICoreWebView2WebResourceRequestedEventArgs2 {
38445    pub unsafe fn RequestedSourceKind(
38446        &self,
38447        value: *mut COREWEBVIEW2_WEB_RESOURCE_REQUEST_SOURCE_KINDS,
38448    ) -> windows_core::Result<()> {
38449        unsafe {
38450            (windows_core::Interface::vtable(self).RequestedSourceKind)(
38451                windows_core::Interface::as_raw(self),
38452                value as _,
38453            )
38454            .ok()
38455        }
38456    }
38457}
38458#[repr(C)]
38459#[doc(hidden)]
38460pub struct ICoreWebView2WebResourceRequestedEventArgs2_Vtbl {
38461    pub base__: ICoreWebView2WebResourceRequestedEventArgs_Vtbl,
38462    pub RequestedSourceKind: unsafe extern "system" fn(
38463        *mut core::ffi::c_void,
38464        *mut COREWEBVIEW2_WEB_RESOURCE_REQUEST_SOURCE_KINDS,
38465    ) -> windows_core::HRESULT,
38466}
38467pub trait ICoreWebView2WebResourceRequestedEventArgs2_Impl:
38468    ICoreWebView2WebResourceRequestedEventArgs_Impl
38469{
38470    fn RequestedSourceKind(
38471        &self,
38472        value: *mut COREWEBVIEW2_WEB_RESOURCE_REQUEST_SOURCE_KINDS,
38473    ) -> windows_core::Result<()>;
38474}
38475impl ICoreWebView2WebResourceRequestedEventArgs2_Vtbl {
38476    pub const fn new<
38477        Identity: ICoreWebView2WebResourceRequestedEventArgs2_Impl,
38478        const OFFSET: isize,
38479    >() -> Self {
38480        unsafe extern "system" fn RequestedSourceKind<
38481            Identity: ICoreWebView2WebResourceRequestedEventArgs2_Impl,
38482            const OFFSET: isize,
38483        >(
38484            this: *mut core::ffi::c_void,
38485            value: *mut COREWEBVIEW2_WEB_RESOURCE_REQUEST_SOURCE_KINDS,
38486        ) -> windows_core::HRESULT {
38487            unsafe {
38488                let this: &Identity =
38489                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
38490                ICoreWebView2WebResourceRequestedEventArgs2_Impl::RequestedSourceKind(
38491                    this,
38492                    core::mem::transmute_copy(&value),
38493                )
38494                .into()
38495            }
38496        }
38497        Self {
38498            base__: ICoreWebView2WebResourceRequestedEventArgs_Vtbl::new::<Identity, OFFSET>(),
38499            RequestedSourceKind: RequestedSourceKind::<Identity, OFFSET>,
38500        }
38501    }
38502    pub fn matches(iid: &windows_core::GUID) -> bool {
38503        iid == &<ICoreWebView2WebResourceRequestedEventArgs2 as windows_core::Interface>::IID
38504            || iid == &<ICoreWebView2WebResourceRequestedEventArgs as windows_core::Interface>::IID
38505    }
38506}
38507impl windows_core::RuntimeName for ICoreWebView2WebResourceRequestedEventArgs2 {}
38508windows_core::imp::define_interface!(
38509    ICoreWebView2WebResourceRequestedEventHandler,
38510    ICoreWebView2WebResourceRequestedEventHandler_Vtbl,
38511    0xab00b74c_15f1_4646_80e8_e76341d25d71
38512);
38513windows_core::imp::interface_hierarchy!(
38514    ICoreWebView2WebResourceRequestedEventHandler,
38515    windows_core::IUnknown
38516);
38517impl ICoreWebView2WebResourceRequestedEventHandler {
38518    pub unsafe fn Invoke<P0, P1>(&self, sender: P0, args: P1) -> windows_core::Result<()>
38519    where
38520        P0: windows_core::Param<ICoreWebView2>,
38521        P1: windows_core::Param<ICoreWebView2WebResourceRequestedEventArgs>,
38522    {
38523        unsafe {
38524            (windows_core::Interface::vtable(self).Invoke)(
38525                windows_core::Interface::as_raw(self),
38526                sender.param().abi(),
38527                args.param().abi(),
38528            )
38529            .ok()
38530        }
38531    }
38532}
38533#[repr(C)]
38534#[doc(hidden)]
38535pub struct ICoreWebView2WebResourceRequestedEventHandler_Vtbl {
38536    pub base__: windows_core::IUnknown_Vtbl,
38537    pub Invoke: unsafe extern "system" fn(
38538        *mut core::ffi::c_void,
38539        *mut core::ffi::c_void,
38540        *mut core::ffi::c_void,
38541    ) -> windows_core::HRESULT,
38542}
38543pub trait ICoreWebView2WebResourceRequestedEventHandler_Impl: windows_core::IUnknownImpl {
38544    fn Invoke(
38545        &self,
38546        sender: windows_core::Ref<ICoreWebView2>,
38547        args: windows_core::Ref<ICoreWebView2WebResourceRequestedEventArgs>,
38548    ) -> windows_core::Result<()>;
38549}
38550impl ICoreWebView2WebResourceRequestedEventHandler_Vtbl {
38551    pub const fn new<
38552        Identity: ICoreWebView2WebResourceRequestedEventHandler_Impl,
38553        const OFFSET: isize,
38554    >() -> Self {
38555        unsafe extern "system" fn Invoke<
38556            Identity: ICoreWebView2WebResourceRequestedEventHandler_Impl,
38557            const OFFSET: isize,
38558        >(
38559            this: *mut core::ffi::c_void,
38560            sender: *mut core::ffi::c_void,
38561            args: *mut core::ffi::c_void,
38562        ) -> windows_core::HRESULT {
38563            unsafe {
38564                let this: &Identity =
38565                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
38566                ICoreWebView2WebResourceRequestedEventHandler_Impl::Invoke(
38567                    this,
38568                    core::mem::transmute_copy(&sender),
38569                    core::mem::transmute_copy(&args),
38570                )
38571                .into()
38572            }
38573        }
38574        Self {
38575            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
38576            Invoke: Invoke::<Identity, OFFSET>,
38577        }
38578    }
38579    pub fn matches(iid: &windows_core::GUID) -> bool {
38580        iid == &<ICoreWebView2WebResourceRequestedEventHandler as windows_core::Interface>::IID
38581    }
38582}
38583impl windows_core::RuntimeName for ICoreWebView2WebResourceRequestedEventHandler {}
38584windows_core::imp::define_interface!(
38585    ICoreWebView2WebResourceResponse,
38586    ICoreWebView2WebResourceResponse_Vtbl,
38587    0xaafcc94f_fa27_48fd_97df_830ef75aaec9
38588);
38589windows_core::imp::interface_hierarchy!(ICoreWebView2WebResourceResponse, windows_core::IUnknown);
38590impl ICoreWebView2WebResourceResponse {
38591    pub unsafe fn Content(&self) -> windows_core::Result<windows::Win32::System::Com::IStream> {
38592        unsafe {
38593            let mut result__ = core::mem::zeroed();
38594            (windows_core::Interface::vtable(self).Content)(
38595                windows_core::Interface::as_raw(self),
38596                &mut result__,
38597            )
38598            .and_then(|| windows_core::Type::from_abi(result__))
38599        }
38600    }
38601    pub unsafe fn SetContent<P0>(&self, content: P0) -> windows_core::Result<()>
38602    where
38603        P0: windows_core::Param<windows::Win32::System::Com::IStream>,
38604    {
38605        unsafe {
38606            (windows_core::Interface::vtable(self).SetContent)(
38607                windows_core::Interface::as_raw(self),
38608                content.param().abi(),
38609            )
38610            .ok()
38611        }
38612    }
38613    pub unsafe fn Headers(&self) -> windows_core::Result<ICoreWebView2HttpResponseHeaders> {
38614        unsafe {
38615            let mut result__ = core::mem::zeroed();
38616            (windows_core::Interface::vtable(self).Headers)(
38617                windows_core::Interface::as_raw(self),
38618                &mut result__,
38619            )
38620            .and_then(|| windows_core::Type::from_abi(result__))
38621        }
38622    }
38623    pub unsafe fn StatusCode(&self, statuscode: *mut i32) -> windows_core::Result<()> {
38624        unsafe {
38625            (windows_core::Interface::vtable(self).StatusCode)(
38626                windows_core::Interface::as_raw(self),
38627                statuscode as _,
38628            )
38629            .ok()
38630        }
38631    }
38632    pub unsafe fn SetStatusCode(&self, statuscode: i32) -> windows_core::Result<()> {
38633        unsafe {
38634            (windows_core::Interface::vtable(self).SetStatusCode)(
38635                windows_core::Interface::as_raw(self),
38636                statuscode,
38637            )
38638            .ok()
38639        }
38640    }
38641    pub unsafe fn ReasonPhrase(
38642        &self,
38643        reasonphrase: *mut windows_core::PWSTR,
38644    ) -> windows_core::Result<()> {
38645        unsafe {
38646            (windows_core::Interface::vtable(self).ReasonPhrase)(
38647                windows_core::Interface::as_raw(self),
38648                reasonphrase as _,
38649            )
38650            .ok()
38651        }
38652    }
38653    pub unsafe fn SetReasonPhrase<P0>(&self, reasonphrase: P0) -> windows_core::Result<()>
38654    where
38655        P0: windows_core::Param<windows_core::PCWSTR>,
38656    {
38657        unsafe {
38658            (windows_core::Interface::vtable(self).SetReasonPhrase)(
38659                windows_core::Interface::as_raw(self),
38660                reasonphrase.param().abi(),
38661            )
38662            .ok()
38663        }
38664    }
38665}
38666#[repr(C)]
38667#[doc(hidden)]
38668pub struct ICoreWebView2WebResourceResponse_Vtbl {
38669    pub base__: windows_core::IUnknown_Vtbl,
38670    pub Content: unsafe extern "system" fn(
38671        *mut core::ffi::c_void,
38672        *mut *mut core::ffi::c_void,
38673    ) -> windows_core::HRESULT,
38674    pub SetContent: unsafe extern "system" fn(
38675        *mut core::ffi::c_void,
38676        *mut core::ffi::c_void,
38677    ) -> windows_core::HRESULT,
38678    pub Headers: unsafe extern "system" fn(
38679        *mut core::ffi::c_void,
38680        *mut *mut core::ffi::c_void,
38681    ) -> windows_core::HRESULT,
38682    pub StatusCode:
38683        unsafe extern "system" fn(*mut core::ffi::c_void, *mut i32) -> windows_core::HRESULT,
38684    pub SetStatusCode:
38685        unsafe extern "system" fn(*mut core::ffi::c_void, i32) -> windows_core::HRESULT,
38686    pub ReasonPhrase: unsafe extern "system" fn(
38687        *mut core::ffi::c_void,
38688        *mut windows_core::PWSTR,
38689    ) -> windows_core::HRESULT,
38690    pub SetReasonPhrase: unsafe extern "system" fn(
38691        *mut core::ffi::c_void,
38692        windows_core::PCWSTR,
38693    ) -> windows_core::HRESULT,
38694}
38695pub trait ICoreWebView2WebResourceResponse_Impl: windows_core::IUnknownImpl {
38696    fn Content(&self) -> windows_core::Result<windows::Win32::System::Com::IStream>;
38697    fn SetContent(
38698        &self,
38699        content: windows_core::Ref<windows::Win32::System::Com::IStream>,
38700    ) -> windows_core::Result<()>;
38701    fn Headers(&self) -> windows_core::Result<ICoreWebView2HttpResponseHeaders>;
38702    fn StatusCode(&self, statuscode: *mut i32) -> windows_core::Result<()>;
38703    fn SetStatusCode(&self, statuscode: i32) -> windows_core::Result<()>;
38704    fn ReasonPhrase(&self, reasonphrase: *mut windows_core::PWSTR) -> windows_core::Result<()>;
38705    fn SetReasonPhrase(&self, reasonphrase: &windows_core::PCWSTR) -> windows_core::Result<()>;
38706}
38707impl ICoreWebView2WebResourceResponse_Vtbl {
38708    pub const fn new<Identity: ICoreWebView2WebResourceResponse_Impl, const OFFSET: isize>() -> Self
38709    {
38710        unsafe extern "system" fn Content<
38711            Identity: ICoreWebView2WebResourceResponse_Impl,
38712            const OFFSET: isize,
38713        >(
38714            this: *mut core::ffi::c_void,
38715            content: *mut *mut core::ffi::c_void,
38716        ) -> windows_core::HRESULT {
38717            unsafe {
38718                let this: &Identity =
38719                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
38720                match ICoreWebView2WebResourceResponse_Impl::Content(this) {
38721                    Ok(ok__) => {
38722                        content.write(core::mem::transmute(ok__));
38723                        windows_core::HRESULT(0)
38724                    }
38725                    Err(err) => err.into(),
38726                }
38727            }
38728        }
38729        unsafe extern "system" fn SetContent<
38730            Identity: ICoreWebView2WebResourceResponse_Impl,
38731            const OFFSET: isize,
38732        >(
38733            this: *mut core::ffi::c_void,
38734            content: *mut core::ffi::c_void,
38735        ) -> windows_core::HRESULT {
38736            unsafe {
38737                let this: &Identity =
38738                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
38739                ICoreWebView2WebResourceResponse_Impl::SetContent(
38740                    this,
38741                    core::mem::transmute_copy(&content),
38742                )
38743                .into()
38744            }
38745        }
38746        unsafe extern "system" fn Headers<
38747            Identity: ICoreWebView2WebResourceResponse_Impl,
38748            const OFFSET: isize,
38749        >(
38750            this: *mut core::ffi::c_void,
38751            headers: *mut *mut core::ffi::c_void,
38752        ) -> windows_core::HRESULT {
38753            unsafe {
38754                let this: &Identity =
38755                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
38756                match ICoreWebView2WebResourceResponse_Impl::Headers(this) {
38757                    Ok(ok__) => {
38758                        headers.write(core::mem::transmute(ok__));
38759                        windows_core::HRESULT(0)
38760                    }
38761                    Err(err) => err.into(),
38762                }
38763            }
38764        }
38765        unsafe extern "system" fn StatusCode<
38766            Identity: ICoreWebView2WebResourceResponse_Impl,
38767            const OFFSET: isize,
38768        >(
38769            this: *mut core::ffi::c_void,
38770            statuscode: *mut i32,
38771        ) -> windows_core::HRESULT {
38772            unsafe {
38773                let this: &Identity =
38774                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
38775                ICoreWebView2WebResourceResponse_Impl::StatusCode(
38776                    this,
38777                    core::mem::transmute_copy(&statuscode),
38778                )
38779                .into()
38780            }
38781        }
38782        unsafe extern "system" fn SetStatusCode<
38783            Identity: ICoreWebView2WebResourceResponse_Impl,
38784            const OFFSET: isize,
38785        >(
38786            this: *mut core::ffi::c_void,
38787            statuscode: i32,
38788        ) -> windows_core::HRESULT {
38789            unsafe {
38790                let this: &Identity =
38791                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
38792                ICoreWebView2WebResourceResponse_Impl::SetStatusCode(
38793                    this,
38794                    core::mem::transmute_copy(&statuscode),
38795                )
38796                .into()
38797            }
38798        }
38799        unsafe extern "system" fn ReasonPhrase<
38800            Identity: ICoreWebView2WebResourceResponse_Impl,
38801            const OFFSET: isize,
38802        >(
38803            this: *mut core::ffi::c_void,
38804            reasonphrase: *mut windows_core::PWSTR,
38805        ) -> windows_core::HRESULT {
38806            unsafe {
38807                let this: &Identity =
38808                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
38809                ICoreWebView2WebResourceResponse_Impl::ReasonPhrase(
38810                    this,
38811                    core::mem::transmute_copy(&reasonphrase),
38812                )
38813                .into()
38814            }
38815        }
38816        unsafe extern "system" fn SetReasonPhrase<
38817            Identity: ICoreWebView2WebResourceResponse_Impl,
38818            const OFFSET: isize,
38819        >(
38820            this: *mut core::ffi::c_void,
38821            reasonphrase: windows_core::PCWSTR,
38822        ) -> windows_core::HRESULT {
38823            unsafe {
38824                let this: &Identity =
38825                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
38826                ICoreWebView2WebResourceResponse_Impl::SetReasonPhrase(
38827                    this,
38828                    core::mem::transmute(&reasonphrase),
38829                )
38830                .into()
38831            }
38832        }
38833        Self {
38834            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
38835            Content: Content::<Identity, OFFSET>,
38836            SetContent: SetContent::<Identity, OFFSET>,
38837            Headers: Headers::<Identity, OFFSET>,
38838            StatusCode: StatusCode::<Identity, OFFSET>,
38839            SetStatusCode: SetStatusCode::<Identity, OFFSET>,
38840            ReasonPhrase: ReasonPhrase::<Identity, OFFSET>,
38841            SetReasonPhrase: SetReasonPhrase::<Identity, OFFSET>,
38842        }
38843    }
38844    pub fn matches(iid: &windows_core::GUID) -> bool {
38845        iid == &<ICoreWebView2WebResourceResponse as windows_core::Interface>::IID
38846    }
38847}
38848impl windows_core::RuntimeName for ICoreWebView2WebResourceResponse {}
38849windows_core::imp::define_interface!(
38850    ICoreWebView2WebResourceResponseReceivedEventArgs,
38851    ICoreWebView2WebResourceResponseReceivedEventArgs_Vtbl,
38852    0xd1db483d_6796_4b8b_80fc_13712bb716f4
38853);
38854windows_core::imp::interface_hierarchy!(
38855    ICoreWebView2WebResourceResponseReceivedEventArgs,
38856    windows_core::IUnknown
38857);
38858impl ICoreWebView2WebResourceResponseReceivedEventArgs {
38859    pub unsafe fn Request(&self) -> windows_core::Result<ICoreWebView2WebResourceRequest> {
38860        unsafe {
38861            let mut result__ = core::mem::zeroed();
38862            (windows_core::Interface::vtable(self).Request)(
38863                windows_core::Interface::as_raw(self),
38864                &mut result__,
38865            )
38866            .and_then(|| windows_core::Type::from_abi(result__))
38867        }
38868    }
38869    pub unsafe fn Response(&self) -> windows_core::Result<ICoreWebView2WebResourceResponseView> {
38870        unsafe {
38871            let mut result__ = core::mem::zeroed();
38872            (windows_core::Interface::vtable(self).Response)(
38873                windows_core::Interface::as_raw(self),
38874                &mut result__,
38875            )
38876            .and_then(|| windows_core::Type::from_abi(result__))
38877        }
38878    }
38879}
38880#[repr(C)]
38881#[doc(hidden)]
38882pub struct ICoreWebView2WebResourceResponseReceivedEventArgs_Vtbl {
38883    pub base__: windows_core::IUnknown_Vtbl,
38884    pub Request: unsafe extern "system" fn(
38885        *mut core::ffi::c_void,
38886        *mut *mut core::ffi::c_void,
38887    ) -> windows_core::HRESULT,
38888    pub Response: unsafe extern "system" fn(
38889        *mut core::ffi::c_void,
38890        *mut *mut core::ffi::c_void,
38891    ) -> windows_core::HRESULT,
38892}
38893pub trait ICoreWebView2WebResourceResponseReceivedEventArgs_Impl:
38894    windows_core::IUnknownImpl
38895{
38896    fn Request(&self) -> windows_core::Result<ICoreWebView2WebResourceRequest>;
38897    fn Response(&self) -> windows_core::Result<ICoreWebView2WebResourceResponseView>;
38898}
38899impl ICoreWebView2WebResourceResponseReceivedEventArgs_Vtbl {
38900    pub const fn new<
38901        Identity: ICoreWebView2WebResourceResponseReceivedEventArgs_Impl,
38902        const OFFSET: isize,
38903    >() -> Self {
38904        unsafe extern "system" fn Request<
38905            Identity: ICoreWebView2WebResourceResponseReceivedEventArgs_Impl,
38906            const OFFSET: isize,
38907        >(
38908            this: *mut core::ffi::c_void,
38909            value: *mut *mut core::ffi::c_void,
38910        ) -> windows_core::HRESULT {
38911            unsafe {
38912                let this: &Identity =
38913                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
38914                match ICoreWebView2WebResourceResponseReceivedEventArgs_Impl::Request(this) {
38915                    Ok(ok__) => {
38916                        value.write(core::mem::transmute(ok__));
38917                        windows_core::HRESULT(0)
38918                    }
38919                    Err(err) => err.into(),
38920                }
38921            }
38922        }
38923        unsafe extern "system" fn Response<
38924            Identity: ICoreWebView2WebResourceResponseReceivedEventArgs_Impl,
38925            const OFFSET: isize,
38926        >(
38927            this: *mut core::ffi::c_void,
38928            value: *mut *mut core::ffi::c_void,
38929        ) -> windows_core::HRESULT {
38930            unsafe {
38931                let this: &Identity =
38932                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
38933                match ICoreWebView2WebResourceResponseReceivedEventArgs_Impl::Response(this) {
38934                    Ok(ok__) => {
38935                        value.write(core::mem::transmute(ok__));
38936                        windows_core::HRESULT(0)
38937                    }
38938                    Err(err) => err.into(),
38939                }
38940            }
38941        }
38942        Self {
38943            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
38944            Request: Request::<Identity, OFFSET>,
38945            Response: Response::<Identity, OFFSET>,
38946        }
38947    }
38948    pub fn matches(iid: &windows_core::GUID) -> bool {
38949        iid == &<ICoreWebView2WebResourceResponseReceivedEventArgs as windows_core::Interface>::IID
38950    }
38951}
38952impl windows_core::RuntimeName for ICoreWebView2WebResourceResponseReceivedEventArgs {}
38953windows_core::imp::define_interface!(
38954    ICoreWebView2WebResourceResponseReceivedEventHandler,
38955    ICoreWebView2WebResourceResponseReceivedEventHandler_Vtbl,
38956    0x7de9898a_24f5_40c3_a2de_d4f458e69828
38957);
38958windows_core::imp::interface_hierarchy!(
38959    ICoreWebView2WebResourceResponseReceivedEventHandler,
38960    windows_core::IUnknown
38961);
38962impl ICoreWebView2WebResourceResponseReceivedEventHandler {
38963    pub unsafe fn Invoke<P0, P1>(&self, sender: P0, args: P1) -> windows_core::Result<()>
38964    where
38965        P0: windows_core::Param<ICoreWebView2>,
38966        P1: windows_core::Param<ICoreWebView2WebResourceResponseReceivedEventArgs>,
38967    {
38968        unsafe {
38969            (windows_core::Interface::vtable(self).Invoke)(
38970                windows_core::Interface::as_raw(self),
38971                sender.param().abi(),
38972                args.param().abi(),
38973            )
38974            .ok()
38975        }
38976    }
38977}
38978#[repr(C)]
38979#[doc(hidden)]
38980pub struct ICoreWebView2WebResourceResponseReceivedEventHandler_Vtbl {
38981    pub base__: windows_core::IUnknown_Vtbl,
38982    pub Invoke: unsafe extern "system" fn(
38983        *mut core::ffi::c_void,
38984        *mut core::ffi::c_void,
38985        *mut core::ffi::c_void,
38986    ) -> windows_core::HRESULT,
38987}
38988pub trait ICoreWebView2WebResourceResponseReceivedEventHandler_Impl:
38989    windows_core::IUnknownImpl
38990{
38991    fn Invoke(
38992        &self,
38993        sender: windows_core::Ref<ICoreWebView2>,
38994        args: windows_core::Ref<ICoreWebView2WebResourceResponseReceivedEventArgs>,
38995    ) -> windows_core::Result<()>;
38996}
38997impl ICoreWebView2WebResourceResponseReceivedEventHandler_Vtbl {
38998    pub const fn new<
38999        Identity: ICoreWebView2WebResourceResponseReceivedEventHandler_Impl,
39000        const OFFSET: isize,
39001    >() -> Self {
39002        unsafe extern "system" fn Invoke<
39003            Identity: ICoreWebView2WebResourceResponseReceivedEventHandler_Impl,
39004            const OFFSET: isize,
39005        >(
39006            this: *mut core::ffi::c_void,
39007            sender: *mut core::ffi::c_void,
39008            args: *mut core::ffi::c_void,
39009        ) -> windows_core::HRESULT {
39010            unsafe {
39011                let this: &Identity =
39012                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
39013                ICoreWebView2WebResourceResponseReceivedEventHandler_Impl::Invoke(
39014                    this,
39015                    core::mem::transmute_copy(&sender),
39016                    core::mem::transmute_copy(&args),
39017                )
39018                .into()
39019            }
39020        }
39021        Self {
39022            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
39023            Invoke: Invoke::<Identity, OFFSET>,
39024        }
39025    }
39026    pub fn matches(iid: &windows_core::GUID) -> bool {
39027        iid == & < ICoreWebView2WebResourceResponseReceivedEventHandler as windows_core::Interface >::IID
39028    }
39029}
39030impl windows_core::RuntimeName for ICoreWebView2WebResourceResponseReceivedEventHandler {}
39031windows_core::imp::define_interface!(
39032    ICoreWebView2WebResourceResponseView,
39033    ICoreWebView2WebResourceResponseView_Vtbl,
39034    0x79701053_7759_4162_8f7d_f1b3f084928d
39035);
39036windows_core::imp::interface_hierarchy!(
39037    ICoreWebView2WebResourceResponseView,
39038    windows_core::IUnknown
39039);
39040impl ICoreWebView2WebResourceResponseView {
39041    pub unsafe fn Headers(&self) -> windows_core::Result<ICoreWebView2HttpResponseHeaders> {
39042        unsafe {
39043            let mut result__ = core::mem::zeroed();
39044            (windows_core::Interface::vtable(self).Headers)(
39045                windows_core::Interface::as_raw(self),
39046                &mut result__,
39047            )
39048            .and_then(|| windows_core::Type::from_abi(result__))
39049        }
39050    }
39051    pub unsafe fn StatusCode(&self, statuscode: *mut i32) -> windows_core::Result<()> {
39052        unsafe {
39053            (windows_core::Interface::vtable(self).StatusCode)(
39054                windows_core::Interface::as_raw(self),
39055                statuscode as _,
39056            )
39057            .ok()
39058        }
39059    }
39060    pub unsafe fn ReasonPhrase(
39061        &self,
39062        reasonphrase: *mut windows_core::PWSTR,
39063    ) -> windows_core::Result<()> {
39064        unsafe {
39065            (windows_core::Interface::vtable(self).ReasonPhrase)(
39066                windows_core::Interface::as_raw(self),
39067                reasonphrase as _,
39068            )
39069            .ok()
39070        }
39071    }
39072    pub unsafe fn GetContent<P0>(&self, handler: P0) -> windows_core::Result<()>
39073    where
39074        P0: windows_core::Param<ICoreWebView2WebResourceResponseViewGetContentCompletedHandler>,
39075    {
39076        unsafe {
39077            (windows_core::Interface::vtable(self).GetContent)(
39078                windows_core::Interface::as_raw(self),
39079                handler.param().abi(),
39080            )
39081            .ok()
39082        }
39083    }
39084}
39085#[repr(C)]
39086#[doc(hidden)]
39087pub struct ICoreWebView2WebResourceResponseView_Vtbl {
39088    pub base__: windows_core::IUnknown_Vtbl,
39089    pub Headers: unsafe extern "system" fn(
39090        *mut core::ffi::c_void,
39091        *mut *mut core::ffi::c_void,
39092    ) -> windows_core::HRESULT,
39093    pub StatusCode:
39094        unsafe extern "system" fn(*mut core::ffi::c_void, *mut i32) -> windows_core::HRESULT,
39095    pub ReasonPhrase: unsafe extern "system" fn(
39096        *mut core::ffi::c_void,
39097        *mut windows_core::PWSTR,
39098    ) -> windows_core::HRESULT,
39099    pub GetContent: unsafe extern "system" fn(
39100        *mut core::ffi::c_void,
39101        *mut core::ffi::c_void,
39102    ) -> windows_core::HRESULT,
39103}
39104pub trait ICoreWebView2WebResourceResponseView_Impl: windows_core::IUnknownImpl {
39105    fn Headers(&self) -> windows_core::Result<ICoreWebView2HttpResponseHeaders>;
39106    fn StatusCode(&self, statuscode: *mut i32) -> windows_core::Result<()>;
39107    fn ReasonPhrase(&self, reasonphrase: *mut windows_core::PWSTR) -> windows_core::Result<()>;
39108    fn GetContent(
39109        &self,
39110        handler: windows_core::Ref<ICoreWebView2WebResourceResponseViewGetContentCompletedHandler>,
39111    ) -> windows_core::Result<()>;
39112}
39113impl ICoreWebView2WebResourceResponseView_Vtbl {
39114    pub const fn new<Identity: ICoreWebView2WebResourceResponseView_Impl, const OFFSET: isize>(
39115    ) -> Self {
39116        unsafe extern "system" fn Headers<
39117            Identity: ICoreWebView2WebResourceResponseView_Impl,
39118            const OFFSET: isize,
39119        >(
39120            this: *mut core::ffi::c_void,
39121            headers: *mut *mut core::ffi::c_void,
39122        ) -> windows_core::HRESULT {
39123            unsafe {
39124                let this: &Identity =
39125                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
39126                match ICoreWebView2WebResourceResponseView_Impl::Headers(this) {
39127                    Ok(ok__) => {
39128                        headers.write(core::mem::transmute(ok__));
39129                        windows_core::HRESULT(0)
39130                    }
39131                    Err(err) => err.into(),
39132                }
39133            }
39134        }
39135        unsafe extern "system" fn StatusCode<
39136            Identity: ICoreWebView2WebResourceResponseView_Impl,
39137            const OFFSET: isize,
39138        >(
39139            this: *mut core::ffi::c_void,
39140            statuscode: *mut i32,
39141        ) -> windows_core::HRESULT {
39142            unsafe {
39143                let this: &Identity =
39144                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
39145                ICoreWebView2WebResourceResponseView_Impl::StatusCode(
39146                    this,
39147                    core::mem::transmute_copy(&statuscode),
39148                )
39149                .into()
39150            }
39151        }
39152        unsafe extern "system" fn ReasonPhrase<
39153            Identity: ICoreWebView2WebResourceResponseView_Impl,
39154            const OFFSET: isize,
39155        >(
39156            this: *mut core::ffi::c_void,
39157            reasonphrase: *mut windows_core::PWSTR,
39158        ) -> windows_core::HRESULT {
39159            unsafe {
39160                let this: &Identity =
39161                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
39162                ICoreWebView2WebResourceResponseView_Impl::ReasonPhrase(
39163                    this,
39164                    core::mem::transmute_copy(&reasonphrase),
39165                )
39166                .into()
39167            }
39168        }
39169        unsafe extern "system" fn GetContent<
39170            Identity: ICoreWebView2WebResourceResponseView_Impl,
39171            const OFFSET: isize,
39172        >(
39173            this: *mut core::ffi::c_void,
39174            handler: *mut core::ffi::c_void,
39175        ) -> windows_core::HRESULT {
39176            unsafe {
39177                let this: &Identity =
39178                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
39179                ICoreWebView2WebResourceResponseView_Impl::GetContent(
39180                    this,
39181                    core::mem::transmute_copy(&handler),
39182                )
39183                .into()
39184            }
39185        }
39186        Self {
39187            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
39188            Headers: Headers::<Identity, OFFSET>,
39189            StatusCode: StatusCode::<Identity, OFFSET>,
39190            ReasonPhrase: ReasonPhrase::<Identity, OFFSET>,
39191            GetContent: GetContent::<Identity, OFFSET>,
39192        }
39193    }
39194    pub fn matches(iid: &windows_core::GUID) -> bool {
39195        iid == &<ICoreWebView2WebResourceResponseView as windows_core::Interface>::IID
39196    }
39197}
39198impl windows_core::RuntimeName for ICoreWebView2WebResourceResponseView {}
39199windows_core::imp::define_interface!(
39200    ICoreWebView2WebResourceResponseViewGetContentCompletedHandler,
39201    ICoreWebView2WebResourceResponseViewGetContentCompletedHandler_Vtbl,
39202    0x875738e1_9fa2_40e3_8b74_2e8972dd6fe7
39203);
39204windows_core::imp::interface_hierarchy!(
39205    ICoreWebView2WebResourceResponseViewGetContentCompletedHandler,
39206    windows_core::IUnknown
39207);
39208impl ICoreWebView2WebResourceResponseViewGetContentCompletedHandler {
39209    pub unsafe fn Invoke<P1>(
39210        &self,
39211        errorcode: windows_core::HRESULT,
39212        result: P1,
39213    ) -> windows_core::Result<()>
39214    where
39215        P1: windows_core::Param<windows::Win32::System::Com::IStream>,
39216    {
39217        unsafe {
39218            (windows_core::Interface::vtable(self).Invoke)(
39219                windows_core::Interface::as_raw(self),
39220                errorcode,
39221                result.param().abi(),
39222            )
39223            .ok()
39224        }
39225    }
39226}
39227#[repr(C)]
39228#[doc(hidden)]
39229pub struct ICoreWebView2WebResourceResponseViewGetContentCompletedHandler_Vtbl {
39230    pub base__: windows_core::IUnknown_Vtbl,
39231    pub Invoke: unsafe extern "system" fn(
39232        *mut core::ffi::c_void,
39233        windows_core::HRESULT,
39234        *mut core::ffi::c_void,
39235    ) -> windows_core::HRESULT,
39236}
39237pub trait ICoreWebView2WebResourceResponseViewGetContentCompletedHandler_Impl:
39238    windows_core::IUnknownImpl
39239{
39240    fn Invoke(
39241        &self,
39242        errorcode: windows_core::HRESULT,
39243        result: windows_core::Ref<windows::Win32::System::Com::IStream>,
39244    ) -> windows_core::Result<()>;
39245}
39246impl ICoreWebView2WebResourceResponseViewGetContentCompletedHandler_Vtbl {
39247    pub const fn new<
39248        Identity: ICoreWebView2WebResourceResponseViewGetContentCompletedHandler_Impl,
39249        const OFFSET: isize,
39250    >() -> Self {
39251        unsafe extern "system" fn Invoke<
39252            Identity: ICoreWebView2WebResourceResponseViewGetContentCompletedHandler_Impl,
39253            const OFFSET: isize,
39254        >(
39255            this: *mut core::ffi::c_void,
39256            errorcode: windows_core::HRESULT,
39257            result: *mut core::ffi::c_void,
39258        ) -> windows_core::HRESULT {
39259            unsafe {
39260                let this: &Identity =
39261                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
39262                ICoreWebView2WebResourceResponseViewGetContentCompletedHandler_Impl::Invoke(
39263                    this,
39264                    core::mem::transmute_copy(&errorcode),
39265                    core::mem::transmute_copy(&result),
39266                )
39267                .into()
39268            }
39269        }
39270        Self {
39271            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
39272            Invoke: Invoke::<Identity, OFFSET>,
39273        }
39274    }
39275    pub fn matches(iid: &windows_core::GUID) -> bool {
39276        iid == & < ICoreWebView2WebResourceResponseViewGetContentCompletedHandler as windows_core::Interface >::IID
39277    }
39278}
39279impl windows_core::RuntimeName for ICoreWebView2WebResourceResponseViewGetContentCompletedHandler {}
39280windows_core::imp::define_interface!(
39281    ICoreWebView2WindowCloseRequestedEventHandler,
39282    ICoreWebView2WindowCloseRequestedEventHandler_Vtbl,
39283    0x5c19e9e0_092f_486b_affa_ca8231913039
39284);
39285windows_core::imp::interface_hierarchy!(
39286    ICoreWebView2WindowCloseRequestedEventHandler,
39287    windows_core::IUnknown
39288);
39289impl ICoreWebView2WindowCloseRequestedEventHandler {
39290    pub unsafe fn Invoke<P0, P1>(&self, sender: P0, args: P1) -> windows_core::Result<()>
39291    where
39292        P0: windows_core::Param<ICoreWebView2>,
39293        P1: windows_core::Param<windows_core::IUnknown>,
39294    {
39295        unsafe {
39296            (windows_core::Interface::vtable(self).Invoke)(
39297                windows_core::Interface::as_raw(self),
39298                sender.param().abi(),
39299                args.param().abi(),
39300            )
39301            .ok()
39302        }
39303    }
39304}
39305#[repr(C)]
39306#[doc(hidden)]
39307pub struct ICoreWebView2WindowCloseRequestedEventHandler_Vtbl {
39308    pub base__: windows_core::IUnknown_Vtbl,
39309    pub Invoke: unsafe extern "system" fn(
39310        *mut core::ffi::c_void,
39311        *mut core::ffi::c_void,
39312        *mut core::ffi::c_void,
39313    ) -> windows_core::HRESULT,
39314}
39315pub trait ICoreWebView2WindowCloseRequestedEventHandler_Impl: windows_core::IUnknownImpl {
39316    fn Invoke(
39317        &self,
39318        sender: windows_core::Ref<ICoreWebView2>,
39319        args: windows_core::Ref<windows_core::IUnknown>,
39320    ) -> windows_core::Result<()>;
39321}
39322impl ICoreWebView2WindowCloseRequestedEventHandler_Vtbl {
39323    pub const fn new<
39324        Identity: ICoreWebView2WindowCloseRequestedEventHandler_Impl,
39325        const OFFSET: isize,
39326    >() -> Self {
39327        unsafe extern "system" fn Invoke<
39328            Identity: ICoreWebView2WindowCloseRequestedEventHandler_Impl,
39329            const OFFSET: isize,
39330        >(
39331            this: *mut core::ffi::c_void,
39332            sender: *mut core::ffi::c_void,
39333            args: *mut core::ffi::c_void,
39334        ) -> windows_core::HRESULT {
39335            unsafe {
39336                let this: &Identity =
39337                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
39338                ICoreWebView2WindowCloseRequestedEventHandler_Impl::Invoke(
39339                    this,
39340                    core::mem::transmute_copy(&sender),
39341                    core::mem::transmute_copy(&args),
39342                )
39343                .into()
39344            }
39345        }
39346        Self {
39347            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
39348            Invoke: Invoke::<Identity, OFFSET>,
39349        }
39350    }
39351    pub fn matches(iid: &windows_core::GUID) -> bool {
39352        iid == &<ICoreWebView2WindowCloseRequestedEventHandler as windows_core::Interface>::IID
39353    }
39354}
39355impl windows_core::RuntimeName for ICoreWebView2WindowCloseRequestedEventHandler {}
39356windows_core::imp::define_interface!(
39357    ICoreWebView2WindowFeatures,
39358    ICoreWebView2WindowFeatures_Vtbl,
39359    0x5eaf559f_b46e_4397_8860_e422f287ff1e
39360);
39361windows_core::imp::interface_hierarchy!(ICoreWebView2WindowFeatures, windows_core::IUnknown);
39362impl ICoreWebView2WindowFeatures {
39363    pub unsafe fn HasPosition(&self, value: *mut windows_core::BOOL) -> windows_core::Result<()> {
39364        unsafe {
39365            (windows_core::Interface::vtable(self).HasPosition)(
39366                windows_core::Interface::as_raw(self),
39367                value as _,
39368            )
39369            .ok()
39370        }
39371    }
39372    pub unsafe fn HasSize(&self, value: *mut windows_core::BOOL) -> windows_core::Result<()> {
39373        unsafe {
39374            (windows_core::Interface::vtable(self).HasSize)(
39375                windows_core::Interface::as_raw(self),
39376                value as _,
39377            )
39378            .ok()
39379        }
39380    }
39381    pub unsafe fn Left(&self, value: *mut u32) -> windows_core::Result<()> {
39382        unsafe {
39383            (windows_core::Interface::vtable(self).Left)(
39384                windows_core::Interface::as_raw(self),
39385                value as _,
39386            )
39387            .ok()
39388        }
39389    }
39390    pub unsafe fn Top(&self, value: *mut u32) -> windows_core::Result<()> {
39391        unsafe {
39392            (windows_core::Interface::vtable(self).Top)(
39393                windows_core::Interface::as_raw(self),
39394                value as _,
39395            )
39396            .ok()
39397        }
39398    }
39399    pub unsafe fn Height(&self, value: *mut u32) -> windows_core::Result<()> {
39400        unsafe {
39401            (windows_core::Interface::vtable(self).Height)(
39402                windows_core::Interface::as_raw(self),
39403                value as _,
39404            )
39405            .ok()
39406        }
39407    }
39408    pub unsafe fn Width(&self, value: *mut u32) -> windows_core::Result<()> {
39409        unsafe {
39410            (windows_core::Interface::vtable(self).Width)(
39411                windows_core::Interface::as_raw(self),
39412                value as _,
39413            )
39414            .ok()
39415        }
39416    }
39417    pub unsafe fn ShouldDisplayMenuBar(
39418        &self,
39419        value: *mut windows_core::BOOL,
39420    ) -> windows_core::Result<()> {
39421        unsafe {
39422            (windows_core::Interface::vtable(self).ShouldDisplayMenuBar)(
39423                windows_core::Interface::as_raw(self),
39424                value as _,
39425            )
39426            .ok()
39427        }
39428    }
39429    pub unsafe fn ShouldDisplayStatus(
39430        &self,
39431        value: *mut windows_core::BOOL,
39432    ) -> windows_core::Result<()> {
39433        unsafe {
39434            (windows_core::Interface::vtable(self).ShouldDisplayStatus)(
39435                windows_core::Interface::as_raw(self),
39436                value as _,
39437            )
39438            .ok()
39439        }
39440    }
39441    pub unsafe fn ShouldDisplayToolbar(
39442        &self,
39443        value: *mut windows_core::BOOL,
39444    ) -> windows_core::Result<()> {
39445        unsafe {
39446            (windows_core::Interface::vtable(self).ShouldDisplayToolbar)(
39447                windows_core::Interface::as_raw(self),
39448                value as _,
39449            )
39450            .ok()
39451        }
39452    }
39453    pub unsafe fn ShouldDisplayScrollBars(
39454        &self,
39455        value: *mut windows_core::BOOL,
39456    ) -> windows_core::Result<()> {
39457        unsafe {
39458            (windows_core::Interface::vtable(self).ShouldDisplayScrollBars)(
39459                windows_core::Interface::as_raw(self),
39460                value as _,
39461            )
39462            .ok()
39463        }
39464    }
39465}
39466#[repr(C)]
39467#[doc(hidden)]
39468pub struct ICoreWebView2WindowFeatures_Vtbl {
39469    pub base__: windows_core::IUnknown_Vtbl,
39470    pub HasPosition: unsafe extern "system" fn(
39471        *mut core::ffi::c_void,
39472        *mut windows_core::BOOL,
39473    ) -> windows_core::HRESULT,
39474    pub HasSize: unsafe extern "system" fn(
39475        *mut core::ffi::c_void,
39476        *mut windows_core::BOOL,
39477    ) -> windows_core::HRESULT,
39478    pub Left: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
39479    pub Top: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
39480    pub Height:
39481        unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
39482    pub Width: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
39483    pub ShouldDisplayMenuBar: unsafe extern "system" fn(
39484        *mut core::ffi::c_void,
39485        *mut windows_core::BOOL,
39486    ) -> windows_core::HRESULT,
39487    pub ShouldDisplayStatus: unsafe extern "system" fn(
39488        *mut core::ffi::c_void,
39489        *mut windows_core::BOOL,
39490    ) -> windows_core::HRESULT,
39491    pub ShouldDisplayToolbar: unsafe extern "system" fn(
39492        *mut core::ffi::c_void,
39493        *mut windows_core::BOOL,
39494    ) -> windows_core::HRESULT,
39495    pub ShouldDisplayScrollBars: unsafe extern "system" fn(
39496        *mut core::ffi::c_void,
39497        *mut windows_core::BOOL,
39498    ) -> windows_core::HRESULT,
39499}
39500pub trait ICoreWebView2WindowFeatures_Impl: windows_core::IUnknownImpl {
39501    fn HasPosition(&self, value: *mut windows_core::BOOL) -> windows_core::Result<()>;
39502    fn HasSize(&self, value: *mut windows_core::BOOL) -> windows_core::Result<()>;
39503    fn Left(&self, value: *mut u32) -> windows_core::Result<()>;
39504    fn Top(&self, value: *mut u32) -> windows_core::Result<()>;
39505    fn Height(&self, value: *mut u32) -> windows_core::Result<()>;
39506    fn Width(&self, value: *mut u32) -> windows_core::Result<()>;
39507    fn ShouldDisplayMenuBar(&self, value: *mut windows_core::BOOL) -> windows_core::Result<()>;
39508    fn ShouldDisplayStatus(&self, value: *mut windows_core::BOOL) -> windows_core::Result<()>;
39509    fn ShouldDisplayToolbar(&self, value: *mut windows_core::BOOL) -> windows_core::Result<()>;
39510    fn ShouldDisplayScrollBars(&self, value: *mut windows_core::BOOL) -> windows_core::Result<()>;
39511}
39512impl ICoreWebView2WindowFeatures_Vtbl {
39513    pub const fn new<Identity: ICoreWebView2WindowFeatures_Impl, const OFFSET: isize>() -> Self {
39514        unsafe extern "system" fn HasPosition<
39515            Identity: ICoreWebView2WindowFeatures_Impl,
39516            const OFFSET: isize,
39517        >(
39518            this: *mut core::ffi::c_void,
39519            value: *mut windows_core::BOOL,
39520        ) -> windows_core::HRESULT {
39521            unsafe {
39522                let this: &Identity =
39523                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
39524                ICoreWebView2WindowFeatures_Impl::HasPosition(
39525                    this,
39526                    core::mem::transmute_copy(&value),
39527                )
39528                .into()
39529            }
39530        }
39531        unsafe extern "system" fn HasSize<
39532            Identity: ICoreWebView2WindowFeatures_Impl,
39533            const OFFSET: isize,
39534        >(
39535            this: *mut core::ffi::c_void,
39536            value: *mut windows_core::BOOL,
39537        ) -> windows_core::HRESULT {
39538            unsafe {
39539                let this: &Identity =
39540                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
39541                ICoreWebView2WindowFeatures_Impl::HasSize(this, core::mem::transmute_copy(&value))
39542                    .into()
39543            }
39544        }
39545        unsafe extern "system" fn Left<
39546            Identity: ICoreWebView2WindowFeatures_Impl,
39547            const OFFSET: isize,
39548        >(
39549            this: *mut core::ffi::c_void,
39550            value: *mut u32,
39551        ) -> windows_core::HRESULT {
39552            unsafe {
39553                let this: &Identity =
39554                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
39555                ICoreWebView2WindowFeatures_Impl::Left(this, core::mem::transmute_copy(&value))
39556                    .into()
39557            }
39558        }
39559        unsafe extern "system" fn Top<
39560            Identity: ICoreWebView2WindowFeatures_Impl,
39561            const OFFSET: isize,
39562        >(
39563            this: *mut core::ffi::c_void,
39564            value: *mut u32,
39565        ) -> windows_core::HRESULT {
39566            unsafe {
39567                let this: &Identity =
39568                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
39569                ICoreWebView2WindowFeatures_Impl::Top(this, core::mem::transmute_copy(&value))
39570                    .into()
39571            }
39572        }
39573        unsafe extern "system" fn Height<
39574            Identity: ICoreWebView2WindowFeatures_Impl,
39575            const OFFSET: isize,
39576        >(
39577            this: *mut core::ffi::c_void,
39578            value: *mut u32,
39579        ) -> windows_core::HRESULT {
39580            unsafe {
39581                let this: &Identity =
39582                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
39583                ICoreWebView2WindowFeatures_Impl::Height(this, core::mem::transmute_copy(&value))
39584                    .into()
39585            }
39586        }
39587        unsafe extern "system" fn Width<
39588            Identity: ICoreWebView2WindowFeatures_Impl,
39589            const OFFSET: isize,
39590        >(
39591            this: *mut core::ffi::c_void,
39592            value: *mut u32,
39593        ) -> windows_core::HRESULT {
39594            unsafe {
39595                let this: &Identity =
39596                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
39597                ICoreWebView2WindowFeatures_Impl::Width(this, core::mem::transmute_copy(&value))
39598                    .into()
39599            }
39600        }
39601        unsafe extern "system" fn ShouldDisplayMenuBar<
39602            Identity: ICoreWebView2WindowFeatures_Impl,
39603            const OFFSET: isize,
39604        >(
39605            this: *mut core::ffi::c_void,
39606            value: *mut windows_core::BOOL,
39607        ) -> windows_core::HRESULT {
39608            unsafe {
39609                let this: &Identity =
39610                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
39611                ICoreWebView2WindowFeatures_Impl::ShouldDisplayMenuBar(
39612                    this,
39613                    core::mem::transmute_copy(&value),
39614                )
39615                .into()
39616            }
39617        }
39618        unsafe extern "system" fn ShouldDisplayStatus<
39619            Identity: ICoreWebView2WindowFeatures_Impl,
39620            const OFFSET: isize,
39621        >(
39622            this: *mut core::ffi::c_void,
39623            value: *mut windows_core::BOOL,
39624        ) -> windows_core::HRESULT {
39625            unsafe {
39626                let this: &Identity =
39627                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
39628                ICoreWebView2WindowFeatures_Impl::ShouldDisplayStatus(
39629                    this,
39630                    core::mem::transmute_copy(&value),
39631                )
39632                .into()
39633            }
39634        }
39635        unsafe extern "system" fn ShouldDisplayToolbar<
39636            Identity: ICoreWebView2WindowFeatures_Impl,
39637            const OFFSET: isize,
39638        >(
39639            this: *mut core::ffi::c_void,
39640            value: *mut windows_core::BOOL,
39641        ) -> windows_core::HRESULT {
39642            unsafe {
39643                let this: &Identity =
39644                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
39645                ICoreWebView2WindowFeatures_Impl::ShouldDisplayToolbar(
39646                    this,
39647                    core::mem::transmute_copy(&value),
39648                )
39649                .into()
39650            }
39651        }
39652        unsafe extern "system" fn ShouldDisplayScrollBars<
39653            Identity: ICoreWebView2WindowFeatures_Impl,
39654            const OFFSET: isize,
39655        >(
39656            this: *mut core::ffi::c_void,
39657            value: *mut windows_core::BOOL,
39658        ) -> windows_core::HRESULT {
39659            unsafe {
39660                let this: &Identity =
39661                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
39662                ICoreWebView2WindowFeatures_Impl::ShouldDisplayScrollBars(
39663                    this,
39664                    core::mem::transmute_copy(&value),
39665                )
39666                .into()
39667            }
39668        }
39669        Self {
39670            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
39671            HasPosition: HasPosition::<Identity, OFFSET>,
39672            HasSize: HasSize::<Identity, OFFSET>,
39673            Left: Left::<Identity, OFFSET>,
39674            Top: Top::<Identity, OFFSET>,
39675            Height: Height::<Identity, OFFSET>,
39676            Width: Width::<Identity, OFFSET>,
39677            ShouldDisplayMenuBar: ShouldDisplayMenuBar::<Identity, OFFSET>,
39678            ShouldDisplayStatus: ShouldDisplayStatus::<Identity, OFFSET>,
39679            ShouldDisplayToolbar: ShouldDisplayToolbar::<Identity, OFFSET>,
39680            ShouldDisplayScrollBars: ShouldDisplayScrollBars::<Identity, OFFSET>,
39681        }
39682    }
39683    pub fn matches(iid: &windows_core::GUID) -> bool {
39684        iid == &<ICoreWebView2WindowFeatures as windows_core::Interface>::IID
39685    }
39686}
39687impl windows_core::RuntimeName for ICoreWebView2WindowFeatures {}
39688windows_core::imp::define_interface!(
39689    ICoreWebView2ZoomFactorChangedEventHandler,
39690    ICoreWebView2ZoomFactorChangedEventHandler_Vtbl,
39691    0xb52d71d6_c4df_4543_a90c_64a3e60f38cb
39692);
39693windows_core::imp::interface_hierarchy!(
39694    ICoreWebView2ZoomFactorChangedEventHandler,
39695    windows_core::IUnknown
39696);
39697impl ICoreWebView2ZoomFactorChangedEventHandler {
39698    pub unsafe fn Invoke<P0, P1>(&self, sender: P0, args: P1) -> windows_core::Result<()>
39699    where
39700        P0: windows_core::Param<ICoreWebView2Controller>,
39701        P1: windows_core::Param<windows_core::IUnknown>,
39702    {
39703        unsafe {
39704            (windows_core::Interface::vtable(self).Invoke)(
39705                windows_core::Interface::as_raw(self),
39706                sender.param().abi(),
39707                args.param().abi(),
39708            )
39709            .ok()
39710        }
39711    }
39712}
39713#[repr(C)]
39714#[doc(hidden)]
39715pub struct ICoreWebView2ZoomFactorChangedEventHandler_Vtbl {
39716    pub base__: windows_core::IUnknown_Vtbl,
39717    pub Invoke: unsafe extern "system" fn(
39718        *mut core::ffi::c_void,
39719        *mut core::ffi::c_void,
39720        *mut core::ffi::c_void,
39721    ) -> windows_core::HRESULT,
39722}
39723pub trait ICoreWebView2ZoomFactorChangedEventHandler_Impl: windows_core::IUnknownImpl {
39724    fn Invoke(
39725        &self,
39726        sender: windows_core::Ref<ICoreWebView2Controller>,
39727        args: windows_core::Ref<windows_core::IUnknown>,
39728    ) -> windows_core::Result<()>;
39729}
39730impl ICoreWebView2ZoomFactorChangedEventHandler_Vtbl {
39731    pub const fn new<
39732        Identity: ICoreWebView2ZoomFactorChangedEventHandler_Impl,
39733        const OFFSET: isize,
39734    >() -> Self {
39735        unsafe extern "system" fn Invoke<
39736            Identity: ICoreWebView2ZoomFactorChangedEventHandler_Impl,
39737            const OFFSET: isize,
39738        >(
39739            this: *mut core::ffi::c_void,
39740            sender: *mut core::ffi::c_void,
39741            args: *mut core::ffi::c_void,
39742        ) -> windows_core::HRESULT {
39743            unsafe {
39744                let this: &Identity =
39745                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
39746                ICoreWebView2ZoomFactorChangedEventHandler_Impl::Invoke(
39747                    this,
39748                    core::mem::transmute_copy(&sender),
39749                    core::mem::transmute_copy(&args),
39750                )
39751                .into()
39752            }
39753        }
39754        Self {
39755            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
39756            Invoke: Invoke::<Identity, OFFSET>,
39757        }
39758    }
39759    pub fn matches(iid: &windows_core::GUID) -> bool {
39760        iid == &<ICoreWebView2ZoomFactorChangedEventHandler as windows_core::Interface>::IID
39761    }
39762}
39763impl windows_core::RuntimeName for ICoreWebView2ZoomFactorChangedEventHandler {}
39764windows_core::imp::define_interface!(
39765    ICoreWebView2_10,
39766    ICoreWebView2_10_Vtbl,
39767    0xb1690564_6f5a_4983_8e48_31d1143fecdb
39768);
39769impl core::ops::Deref for ICoreWebView2_10 {
39770    type Target = ICoreWebView2_9;
39771    fn deref(&self) -> &Self::Target {
39772        unsafe { core::mem::transmute(self) }
39773    }
39774}
39775windows_core::imp::interface_hierarchy!(
39776    ICoreWebView2_10,
39777    windows_core::IUnknown,
39778    ICoreWebView2,
39779    ICoreWebView2_2,
39780    ICoreWebView2_3,
39781    ICoreWebView2_4,
39782    ICoreWebView2_5,
39783    ICoreWebView2_6,
39784    ICoreWebView2_7,
39785    ICoreWebView2_8,
39786    ICoreWebView2_9
39787);
39788impl ICoreWebView2_10 {
39789    pub unsafe fn add_BasicAuthenticationRequested<P0>(
39790        &self,
39791        eventhandler: P0,
39792        token: *mut i64,
39793    ) -> windows_core::Result<()>
39794    where
39795        P0: windows_core::Param<ICoreWebView2BasicAuthenticationRequestedEventHandler>,
39796    {
39797        unsafe {
39798            (windows_core::Interface::vtable(self).add_BasicAuthenticationRequested)(
39799                windows_core::Interface::as_raw(self),
39800                eventhandler.param().abi(),
39801                token as _,
39802            )
39803            .ok()
39804        }
39805    }
39806    pub unsafe fn remove_BasicAuthenticationRequested(
39807        &self,
39808        token: i64,
39809    ) -> windows_core::Result<()> {
39810        unsafe {
39811            (windows_core::Interface::vtable(self).remove_BasicAuthenticationRequested)(
39812                windows_core::Interface::as_raw(self),
39813                token,
39814            )
39815            .ok()
39816        }
39817    }
39818}
39819#[repr(C)]
39820#[doc(hidden)]
39821pub struct ICoreWebView2_10_Vtbl {
39822    pub base__: ICoreWebView2_9_Vtbl,
39823    pub add_BasicAuthenticationRequested: unsafe extern "system" fn(
39824        *mut core::ffi::c_void,
39825        *mut core::ffi::c_void,
39826        *mut i64,
39827    ) -> windows_core::HRESULT,
39828    pub remove_BasicAuthenticationRequested:
39829        unsafe extern "system" fn(*mut core::ffi::c_void, i64) -> windows_core::HRESULT,
39830}
39831pub trait ICoreWebView2_10_Impl: ICoreWebView2_9_Impl {
39832    fn add_BasicAuthenticationRequested(
39833        &self,
39834        eventhandler: windows_core::Ref<ICoreWebView2BasicAuthenticationRequestedEventHandler>,
39835        token: *mut i64,
39836    ) -> windows_core::Result<()>;
39837    fn remove_BasicAuthenticationRequested(&self, token: i64) -> windows_core::Result<()>;
39838}
39839impl ICoreWebView2_10_Vtbl {
39840    pub const fn new<Identity: ICoreWebView2_10_Impl, const OFFSET: isize>() -> Self {
39841        unsafe extern "system" fn add_BasicAuthenticationRequested<
39842            Identity: ICoreWebView2_10_Impl,
39843            const OFFSET: isize,
39844        >(
39845            this: *mut core::ffi::c_void,
39846            eventhandler: *mut core::ffi::c_void,
39847            token: *mut i64,
39848        ) -> windows_core::HRESULT {
39849            unsafe {
39850                let this: &Identity =
39851                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
39852                ICoreWebView2_10_Impl::add_BasicAuthenticationRequested(
39853                    this,
39854                    core::mem::transmute_copy(&eventhandler),
39855                    core::mem::transmute_copy(&token),
39856                )
39857                .into()
39858            }
39859        }
39860        unsafe extern "system" fn remove_BasicAuthenticationRequested<
39861            Identity: ICoreWebView2_10_Impl,
39862            const OFFSET: isize,
39863        >(
39864            this: *mut core::ffi::c_void,
39865            token: i64,
39866        ) -> windows_core::HRESULT {
39867            unsafe {
39868                let this: &Identity =
39869                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
39870                ICoreWebView2_10_Impl::remove_BasicAuthenticationRequested(
39871                    this,
39872                    core::mem::transmute_copy(&token),
39873                )
39874                .into()
39875            }
39876        }
39877        Self {
39878            base__: ICoreWebView2_9_Vtbl::new::<Identity, OFFSET>(),
39879            add_BasicAuthenticationRequested: add_BasicAuthenticationRequested::<Identity, OFFSET>,
39880            remove_BasicAuthenticationRequested: remove_BasicAuthenticationRequested::<
39881                Identity,
39882                OFFSET,
39883            >,
39884        }
39885    }
39886    pub fn matches(iid: &windows_core::GUID) -> bool {
39887        iid == &<ICoreWebView2_10 as windows_core::Interface>::IID
39888            || iid == &<ICoreWebView2 as windows_core::Interface>::IID
39889            || iid == &<ICoreWebView2_2 as windows_core::Interface>::IID
39890            || iid == &<ICoreWebView2_3 as windows_core::Interface>::IID
39891            || iid == &<ICoreWebView2_4 as windows_core::Interface>::IID
39892            || iid == &<ICoreWebView2_5 as windows_core::Interface>::IID
39893            || iid == &<ICoreWebView2_6 as windows_core::Interface>::IID
39894            || iid == &<ICoreWebView2_7 as windows_core::Interface>::IID
39895            || iid == &<ICoreWebView2_8 as windows_core::Interface>::IID
39896            || iid == &<ICoreWebView2_9 as windows_core::Interface>::IID
39897    }
39898}
39899impl windows_core::RuntimeName for ICoreWebView2_10 {}
39900windows_core::imp::define_interface!(
39901    ICoreWebView2_11,
39902    ICoreWebView2_11_Vtbl,
39903    0x0be78e56_c193_4051_b943_23b460c08bdb
39904);
39905impl core::ops::Deref for ICoreWebView2_11 {
39906    type Target = ICoreWebView2_10;
39907    fn deref(&self) -> &Self::Target {
39908        unsafe { core::mem::transmute(self) }
39909    }
39910}
39911windows_core::imp::interface_hierarchy!(
39912    ICoreWebView2_11,
39913    windows_core::IUnknown,
39914    ICoreWebView2,
39915    ICoreWebView2_2,
39916    ICoreWebView2_3,
39917    ICoreWebView2_4,
39918    ICoreWebView2_5,
39919    ICoreWebView2_6,
39920    ICoreWebView2_7,
39921    ICoreWebView2_8,
39922    ICoreWebView2_9,
39923    ICoreWebView2_10
39924);
39925impl ICoreWebView2_11 {
39926    pub unsafe fn CallDevToolsProtocolMethodForSession<P0, P1, P2, P3>(
39927        &self,
39928        sessionid: P0,
39929        methodname: P1,
39930        parametersasjson: P2,
39931        handler: P3,
39932    ) -> windows_core::Result<()>
39933    where
39934        P0: windows_core::Param<windows_core::PCWSTR>,
39935        P1: windows_core::Param<windows_core::PCWSTR>,
39936        P2: windows_core::Param<windows_core::PCWSTR>,
39937        P3: windows_core::Param<ICoreWebView2CallDevToolsProtocolMethodCompletedHandler>,
39938    {
39939        unsafe {
39940            (windows_core::Interface::vtable(self).CallDevToolsProtocolMethodForSession)(
39941                windows_core::Interface::as_raw(self),
39942                sessionid.param().abi(),
39943                methodname.param().abi(),
39944                parametersasjson.param().abi(),
39945                handler.param().abi(),
39946            )
39947            .ok()
39948        }
39949    }
39950    pub unsafe fn add_ContextMenuRequested<P0>(
39951        &self,
39952        eventhandler: P0,
39953        token: *mut i64,
39954    ) -> windows_core::Result<()>
39955    where
39956        P0: windows_core::Param<ICoreWebView2ContextMenuRequestedEventHandler>,
39957    {
39958        unsafe {
39959            (windows_core::Interface::vtable(self).add_ContextMenuRequested)(
39960                windows_core::Interface::as_raw(self),
39961                eventhandler.param().abi(),
39962                token as _,
39963            )
39964            .ok()
39965        }
39966    }
39967    pub unsafe fn remove_ContextMenuRequested(&self, token: i64) -> windows_core::Result<()> {
39968        unsafe {
39969            (windows_core::Interface::vtable(self).remove_ContextMenuRequested)(
39970                windows_core::Interface::as_raw(self),
39971                token,
39972            )
39973            .ok()
39974        }
39975    }
39976}
39977#[repr(C)]
39978#[doc(hidden)]
39979pub struct ICoreWebView2_11_Vtbl {
39980    pub base__: ICoreWebView2_10_Vtbl,
39981    pub CallDevToolsProtocolMethodForSession: unsafe extern "system" fn(
39982        *mut core::ffi::c_void,
39983        windows_core::PCWSTR,
39984        windows_core::PCWSTR,
39985        windows_core::PCWSTR,
39986        *mut core::ffi::c_void,
39987    )
39988        -> windows_core::HRESULT,
39989    pub add_ContextMenuRequested: unsafe extern "system" fn(
39990        *mut core::ffi::c_void,
39991        *mut core::ffi::c_void,
39992        *mut i64,
39993    ) -> windows_core::HRESULT,
39994    pub remove_ContextMenuRequested:
39995        unsafe extern "system" fn(*mut core::ffi::c_void, i64) -> windows_core::HRESULT,
39996}
39997pub trait ICoreWebView2_11_Impl: ICoreWebView2_10_Impl {
39998    fn CallDevToolsProtocolMethodForSession(
39999        &self,
40000        sessionid: &windows_core::PCWSTR,
40001        methodname: &windows_core::PCWSTR,
40002        parametersasjson: &windows_core::PCWSTR,
40003        handler: windows_core::Ref<ICoreWebView2CallDevToolsProtocolMethodCompletedHandler>,
40004    ) -> windows_core::Result<()>;
40005    fn add_ContextMenuRequested(
40006        &self,
40007        eventhandler: windows_core::Ref<ICoreWebView2ContextMenuRequestedEventHandler>,
40008        token: *mut i64,
40009    ) -> windows_core::Result<()>;
40010    fn remove_ContextMenuRequested(&self, token: i64) -> windows_core::Result<()>;
40011}
40012impl ICoreWebView2_11_Vtbl {
40013    pub const fn new<Identity: ICoreWebView2_11_Impl, const OFFSET: isize>() -> Self {
40014        unsafe extern "system" fn CallDevToolsProtocolMethodForSession<
40015            Identity: ICoreWebView2_11_Impl,
40016            const OFFSET: isize,
40017        >(
40018            this: *mut core::ffi::c_void,
40019            sessionid: windows_core::PCWSTR,
40020            methodname: windows_core::PCWSTR,
40021            parametersasjson: windows_core::PCWSTR,
40022            handler: *mut core::ffi::c_void,
40023        ) -> windows_core::HRESULT {
40024            unsafe {
40025                let this: &Identity =
40026                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
40027                ICoreWebView2_11_Impl::CallDevToolsProtocolMethodForSession(
40028                    this,
40029                    core::mem::transmute(&sessionid),
40030                    core::mem::transmute(&methodname),
40031                    core::mem::transmute(&parametersasjson),
40032                    core::mem::transmute_copy(&handler),
40033                )
40034                .into()
40035            }
40036        }
40037        unsafe extern "system" fn add_ContextMenuRequested<
40038            Identity: ICoreWebView2_11_Impl,
40039            const OFFSET: isize,
40040        >(
40041            this: *mut core::ffi::c_void,
40042            eventhandler: *mut core::ffi::c_void,
40043            token: *mut i64,
40044        ) -> windows_core::HRESULT {
40045            unsafe {
40046                let this: &Identity =
40047                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
40048                ICoreWebView2_11_Impl::add_ContextMenuRequested(
40049                    this,
40050                    core::mem::transmute_copy(&eventhandler),
40051                    core::mem::transmute_copy(&token),
40052                )
40053                .into()
40054            }
40055        }
40056        unsafe extern "system" fn remove_ContextMenuRequested<
40057            Identity: ICoreWebView2_11_Impl,
40058            const OFFSET: isize,
40059        >(
40060            this: *mut core::ffi::c_void,
40061            token: i64,
40062        ) -> windows_core::HRESULT {
40063            unsafe {
40064                let this: &Identity =
40065                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
40066                ICoreWebView2_11_Impl::remove_ContextMenuRequested(
40067                    this,
40068                    core::mem::transmute_copy(&token),
40069                )
40070                .into()
40071            }
40072        }
40073        Self {
40074            base__: ICoreWebView2_10_Vtbl::new::<Identity, OFFSET>(),
40075            CallDevToolsProtocolMethodForSession: CallDevToolsProtocolMethodForSession::<
40076                Identity,
40077                OFFSET,
40078            >,
40079            add_ContextMenuRequested: add_ContextMenuRequested::<Identity, OFFSET>,
40080            remove_ContextMenuRequested: remove_ContextMenuRequested::<Identity, OFFSET>,
40081        }
40082    }
40083    pub fn matches(iid: &windows_core::GUID) -> bool {
40084        iid == &<ICoreWebView2_11 as windows_core::Interface>::IID
40085            || iid == &<ICoreWebView2 as windows_core::Interface>::IID
40086            || iid == &<ICoreWebView2_2 as windows_core::Interface>::IID
40087            || iid == &<ICoreWebView2_3 as windows_core::Interface>::IID
40088            || iid == &<ICoreWebView2_4 as windows_core::Interface>::IID
40089            || iid == &<ICoreWebView2_5 as windows_core::Interface>::IID
40090            || iid == &<ICoreWebView2_6 as windows_core::Interface>::IID
40091            || iid == &<ICoreWebView2_7 as windows_core::Interface>::IID
40092            || iid == &<ICoreWebView2_8 as windows_core::Interface>::IID
40093            || iid == &<ICoreWebView2_9 as windows_core::Interface>::IID
40094            || iid == &<ICoreWebView2_10 as windows_core::Interface>::IID
40095    }
40096}
40097impl windows_core::RuntimeName for ICoreWebView2_11 {}
40098windows_core::imp::define_interface!(
40099    ICoreWebView2_12,
40100    ICoreWebView2_12_Vtbl,
40101    0x35d69927_bcfa_4566_9349_6b3e0d154cac
40102);
40103impl core::ops::Deref for ICoreWebView2_12 {
40104    type Target = ICoreWebView2_11;
40105    fn deref(&self) -> &Self::Target {
40106        unsafe { core::mem::transmute(self) }
40107    }
40108}
40109windows_core::imp::interface_hierarchy!(
40110    ICoreWebView2_12,
40111    windows_core::IUnknown,
40112    ICoreWebView2,
40113    ICoreWebView2_2,
40114    ICoreWebView2_3,
40115    ICoreWebView2_4,
40116    ICoreWebView2_5,
40117    ICoreWebView2_6,
40118    ICoreWebView2_7,
40119    ICoreWebView2_8,
40120    ICoreWebView2_9,
40121    ICoreWebView2_10,
40122    ICoreWebView2_11
40123);
40124impl ICoreWebView2_12 {
40125    pub unsafe fn add_StatusBarTextChanged<P0>(
40126        &self,
40127        eventhandler: P0,
40128        token: *mut i64,
40129    ) -> windows_core::Result<()>
40130    where
40131        P0: windows_core::Param<ICoreWebView2StatusBarTextChangedEventHandler>,
40132    {
40133        unsafe {
40134            (windows_core::Interface::vtable(self).add_StatusBarTextChanged)(
40135                windows_core::Interface::as_raw(self),
40136                eventhandler.param().abi(),
40137                token as _,
40138            )
40139            .ok()
40140        }
40141    }
40142    pub unsafe fn remove_StatusBarTextChanged(&self, token: i64) -> windows_core::Result<()> {
40143        unsafe {
40144            (windows_core::Interface::vtable(self).remove_StatusBarTextChanged)(
40145                windows_core::Interface::as_raw(self),
40146                token,
40147            )
40148            .ok()
40149        }
40150    }
40151    pub unsafe fn StatusBarText(
40152        &self,
40153        value: *mut windows_core::PWSTR,
40154    ) -> windows_core::Result<()> {
40155        unsafe {
40156            (windows_core::Interface::vtable(self).StatusBarText)(
40157                windows_core::Interface::as_raw(self),
40158                value as _,
40159            )
40160            .ok()
40161        }
40162    }
40163}
40164#[repr(C)]
40165#[doc(hidden)]
40166pub struct ICoreWebView2_12_Vtbl {
40167    pub base__: ICoreWebView2_11_Vtbl,
40168    pub add_StatusBarTextChanged: unsafe extern "system" fn(
40169        *mut core::ffi::c_void,
40170        *mut core::ffi::c_void,
40171        *mut i64,
40172    ) -> windows_core::HRESULT,
40173    pub remove_StatusBarTextChanged:
40174        unsafe extern "system" fn(*mut core::ffi::c_void, i64) -> windows_core::HRESULT,
40175    pub StatusBarText: unsafe extern "system" fn(
40176        *mut core::ffi::c_void,
40177        *mut windows_core::PWSTR,
40178    ) -> windows_core::HRESULT,
40179}
40180pub trait ICoreWebView2_12_Impl: ICoreWebView2_11_Impl {
40181    fn add_StatusBarTextChanged(
40182        &self,
40183        eventhandler: windows_core::Ref<ICoreWebView2StatusBarTextChangedEventHandler>,
40184        token: *mut i64,
40185    ) -> windows_core::Result<()>;
40186    fn remove_StatusBarTextChanged(&self, token: i64) -> windows_core::Result<()>;
40187    fn StatusBarText(&self, value: *mut windows_core::PWSTR) -> windows_core::Result<()>;
40188}
40189impl ICoreWebView2_12_Vtbl {
40190    pub const fn new<Identity: ICoreWebView2_12_Impl, const OFFSET: isize>() -> Self {
40191        unsafe extern "system" fn add_StatusBarTextChanged<
40192            Identity: ICoreWebView2_12_Impl,
40193            const OFFSET: isize,
40194        >(
40195            this: *mut core::ffi::c_void,
40196            eventhandler: *mut core::ffi::c_void,
40197            token: *mut i64,
40198        ) -> windows_core::HRESULT {
40199            unsafe {
40200                let this: &Identity =
40201                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
40202                ICoreWebView2_12_Impl::add_StatusBarTextChanged(
40203                    this,
40204                    core::mem::transmute_copy(&eventhandler),
40205                    core::mem::transmute_copy(&token),
40206                )
40207                .into()
40208            }
40209        }
40210        unsafe extern "system" fn remove_StatusBarTextChanged<
40211            Identity: ICoreWebView2_12_Impl,
40212            const OFFSET: isize,
40213        >(
40214            this: *mut core::ffi::c_void,
40215            token: i64,
40216        ) -> windows_core::HRESULT {
40217            unsafe {
40218                let this: &Identity =
40219                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
40220                ICoreWebView2_12_Impl::remove_StatusBarTextChanged(
40221                    this,
40222                    core::mem::transmute_copy(&token),
40223                )
40224                .into()
40225            }
40226        }
40227        unsafe extern "system" fn StatusBarText<
40228            Identity: ICoreWebView2_12_Impl,
40229            const OFFSET: isize,
40230        >(
40231            this: *mut core::ffi::c_void,
40232            value: *mut windows_core::PWSTR,
40233        ) -> windows_core::HRESULT {
40234            unsafe {
40235                let this: &Identity =
40236                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
40237                ICoreWebView2_12_Impl::StatusBarText(this, core::mem::transmute_copy(&value)).into()
40238            }
40239        }
40240        Self {
40241            base__: ICoreWebView2_11_Vtbl::new::<Identity, OFFSET>(),
40242            add_StatusBarTextChanged: add_StatusBarTextChanged::<Identity, OFFSET>,
40243            remove_StatusBarTextChanged: remove_StatusBarTextChanged::<Identity, OFFSET>,
40244            StatusBarText: StatusBarText::<Identity, OFFSET>,
40245        }
40246    }
40247    pub fn matches(iid: &windows_core::GUID) -> bool {
40248        iid == &<ICoreWebView2_12 as windows_core::Interface>::IID
40249            || iid == &<ICoreWebView2 as windows_core::Interface>::IID
40250            || iid == &<ICoreWebView2_2 as windows_core::Interface>::IID
40251            || iid == &<ICoreWebView2_3 as windows_core::Interface>::IID
40252            || iid == &<ICoreWebView2_4 as windows_core::Interface>::IID
40253            || iid == &<ICoreWebView2_5 as windows_core::Interface>::IID
40254            || iid == &<ICoreWebView2_6 as windows_core::Interface>::IID
40255            || iid == &<ICoreWebView2_7 as windows_core::Interface>::IID
40256            || iid == &<ICoreWebView2_8 as windows_core::Interface>::IID
40257            || iid == &<ICoreWebView2_9 as windows_core::Interface>::IID
40258            || iid == &<ICoreWebView2_10 as windows_core::Interface>::IID
40259            || iid == &<ICoreWebView2_11 as windows_core::Interface>::IID
40260    }
40261}
40262impl windows_core::RuntimeName for ICoreWebView2_12 {}
40263windows_core::imp::define_interface!(
40264    ICoreWebView2_13,
40265    ICoreWebView2_13_Vtbl,
40266    0xf75f09a8_667e_4983_88d6_c8773f315e84
40267);
40268impl core::ops::Deref for ICoreWebView2_13 {
40269    type Target = ICoreWebView2_12;
40270    fn deref(&self) -> &Self::Target {
40271        unsafe { core::mem::transmute(self) }
40272    }
40273}
40274windows_core::imp::interface_hierarchy!(
40275    ICoreWebView2_13,
40276    windows_core::IUnknown,
40277    ICoreWebView2,
40278    ICoreWebView2_2,
40279    ICoreWebView2_3,
40280    ICoreWebView2_4,
40281    ICoreWebView2_5,
40282    ICoreWebView2_6,
40283    ICoreWebView2_7,
40284    ICoreWebView2_8,
40285    ICoreWebView2_9,
40286    ICoreWebView2_10,
40287    ICoreWebView2_11,
40288    ICoreWebView2_12
40289);
40290impl ICoreWebView2_13 {
40291    pub unsafe fn Profile(&self) -> windows_core::Result<ICoreWebView2Profile> {
40292        unsafe {
40293            let mut result__ = core::mem::zeroed();
40294            (windows_core::Interface::vtable(self).Profile)(
40295                windows_core::Interface::as_raw(self),
40296                &mut result__,
40297            )
40298            .and_then(|| windows_core::Type::from_abi(result__))
40299        }
40300    }
40301}
40302#[repr(C)]
40303#[doc(hidden)]
40304pub struct ICoreWebView2_13_Vtbl {
40305    pub base__: ICoreWebView2_12_Vtbl,
40306    pub Profile: unsafe extern "system" fn(
40307        *mut core::ffi::c_void,
40308        *mut *mut core::ffi::c_void,
40309    ) -> windows_core::HRESULT,
40310}
40311pub trait ICoreWebView2_13_Impl: ICoreWebView2_12_Impl {
40312    fn Profile(&self) -> windows_core::Result<ICoreWebView2Profile>;
40313}
40314impl ICoreWebView2_13_Vtbl {
40315    pub const fn new<Identity: ICoreWebView2_13_Impl, const OFFSET: isize>() -> Self {
40316        unsafe extern "system" fn Profile<Identity: ICoreWebView2_13_Impl, const OFFSET: isize>(
40317            this: *mut core::ffi::c_void,
40318            value: *mut *mut core::ffi::c_void,
40319        ) -> windows_core::HRESULT {
40320            unsafe {
40321                let this: &Identity =
40322                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
40323                match ICoreWebView2_13_Impl::Profile(this) {
40324                    Ok(ok__) => {
40325                        value.write(core::mem::transmute(ok__));
40326                        windows_core::HRESULT(0)
40327                    }
40328                    Err(err) => err.into(),
40329                }
40330            }
40331        }
40332        Self {
40333            base__: ICoreWebView2_12_Vtbl::new::<Identity, OFFSET>(),
40334            Profile: Profile::<Identity, OFFSET>,
40335        }
40336    }
40337    pub fn matches(iid: &windows_core::GUID) -> bool {
40338        iid == &<ICoreWebView2_13 as windows_core::Interface>::IID
40339            || iid == &<ICoreWebView2 as windows_core::Interface>::IID
40340            || iid == &<ICoreWebView2_2 as windows_core::Interface>::IID
40341            || iid == &<ICoreWebView2_3 as windows_core::Interface>::IID
40342            || iid == &<ICoreWebView2_4 as windows_core::Interface>::IID
40343            || iid == &<ICoreWebView2_5 as windows_core::Interface>::IID
40344            || iid == &<ICoreWebView2_6 as windows_core::Interface>::IID
40345            || iid == &<ICoreWebView2_7 as windows_core::Interface>::IID
40346            || iid == &<ICoreWebView2_8 as windows_core::Interface>::IID
40347            || iid == &<ICoreWebView2_9 as windows_core::Interface>::IID
40348            || iid == &<ICoreWebView2_10 as windows_core::Interface>::IID
40349            || iid == &<ICoreWebView2_11 as windows_core::Interface>::IID
40350            || iid == &<ICoreWebView2_12 as windows_core::Interface>::IID
40351    }
40352}
40353impl windows_core::RuntimeName for ICoreWebView2_13 {}
40354windows_core::imp::define_interface!(
40355    ICoreWebView2_14,
40356    ICoreWebView2_14_Vtbl,
40357    0x6daa4f10_4a90_4753_8898_77c5df534165
40358);
40359impl core::ops::Deref for ICoreWebView2_14 {
40360    type Target = ICoreWebView2_13;
40361    fn deref(&self) -> &Self::Target {
40362        unsafe { core::mem::transmute(self) }
40363    }
40364}
40365windows_core::imp::interface_hierarchy!(
40366    ICoreWebView2_14,
40367    windows_core::IUnknown,
40368    ICoreWebView2,
40369    ICoreWebView2_2,
40370    ICoreWebView2_3,
40371    ICoreWebView2_4,
40372    ICoreWebView2_5,
40373    ICoreWebView2_6,
40374    ICoreWebView2_7,
40375    ICoreWebView2_8,
40376    ICoreWebView2_9,
40377    ICoreWebView2_10,
40378    ICoreWebView2_11,
40379    ICoreWebView2_12,
40380    ICoreWebView2_13
40381);
40382impl ICoreWebView2_14 {
40383    pub unsafe fn add_ServerCertificateErrorDetected<P0>(
40384        &self,
40385        eventhandler: P0,
40386        token: *mut i64,
40387    ) -> windows_core::Result<()>
40388    where
40389        P0: windows_core::Param<ICoreWebView2ServerCertificateErrorDetectedEventHandler>,
40390    {
40391        unsafe {
40392            (windows_core::Interface::vtable(self).add_ServerCertificateErrorDetected)(
40393                windows_core::Interface::as_raw(self),
40394                eventhandler.param().abi(),
40395                token as _,
40396            )
40397            .ok()
40398        }
40399    }
40400    pub unsafe fn remove_ServerCertificateErrorDetected(
40401        &self,
40402        token: i64,
40403    ) -> windows_core::Result<()> {
40404        unsafe {
40405            (windows_core::Interface::vtable(self).remove_ServerCertificateErrorDetected)(
40406                windows_core::Interface::as_raw(self),
40407                token,
40408            )
40409            .ok()
40410        }
40411    }
40412    pub unsafe fn ClearServerCertificateErrorActions<P0>(
40413        &self,
40414        handler: P0,
40415    ) -> windows_core::Result<()>
40416    where
40417        P0: windows_core::Param<ICoreWebView2ClearServerCertificateErrorActionsCompletedHandler>,
40418    {
40419        unsafe {
40420            (windows_core::Interface::vtable(self).ClearServerCertificateErrorActions)(
40421                windows_core::Interface::as_raw(self),
40422                handler.param().abi(),
40423            )
40424            .ok()
40425        }
40426    }
40427}
40428#[repr(C)]
40429#[doc(hidden)]
40430pub struct ICoreWebView2_14_Vtbl {
40431    pub base__: ICoreWebView2_13_Vtbl,
40432    pub add_ServerCertificateErrorDetected: unsafe extern "system" fn(
40433        *mut core::ffi::c_void,
40434        *mut core::ffi::c_void,
40435        *mut i64,
40436    ) -> windows_core::HRESULT,
40437    pub remove_ServerCertificateErrorDetected:
40438        unsafe extern "system" fn(*mut core::ffi::c_void, i64) -> windows_core::HRESULT,
40439    pub ClearServerCertificateErrorActions: unsafe extern "system" fn(
40440        *mut core::ffi::c_void,
40441        *mut core::ffi::c_void,
40442    ) -> windows_core::HRESULT,
40443}
40444pub trait ICoreWebView2_14_Impl: ICoreWebView2_13_Impl {
40445    fn add_ServerCertificateErrorDetected(
40446        &self,
40447        eventhandler: windows_core::Ref<ICoreWebView2ServerCertificateErrorDetectedEventHandler>,
40448        token: *mut i64,
40449    ) -> windows_core::Result<()>;
40450    fn remove_ServerCertificateErrorDetected(&self, token: i64) -> windows_core::Result<()>;
40451    fn ClearServerCertificateErrorActions(
40452        &self,
40453        handler: windows_core::Ref<ICoreWebView2ClearServerCertificateErrorActionsCompletedHandler>,
40454    ) -> windows_core::Result<()>;
40455}
40456impl ICoreWebView2_14_Vtbl {
40457    pub const fn new<Identity: ICoreWebView2_14_Impl, const OFFSET: isize>() -> Self {
40458        unsafe extern "system" fn add_ServerCertificateErrorDetected<
40459            Identity: ICoreWebView2_14_Impl,
40460            const OFFSET: isize,
40461        >(
40462            this: *mut core::ffi::c_void,
40463            eventhandler: *mut core::ffi::c_void,
40464            token: *mut i64,
40465        ) -> windows_core::HRESULT {
40466            unsafe {
40467                let this: &Identity =
40468                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
40469                ICoreWebView2_14_Impl::add_ServerCertificateErrorDetected(
40470                    this,
40471                    core::mem::transmute_copy(&eventhandler),
40472                    core::mem::transmute_copy(&token),
40473                )
40474                .into()
40475            }
40476        }
40477        unsafe extern "system" fn remove_ServerCertificateErrorDetected<
40478            Identity: ICoreWebView2_14_Impl,
40479            const OFFSET: isize,
40480        >(
40481            this: *mut core::ffi::c_void,
40482            token: i64,
40483        ) -> windows_core::HRESULT {
40484            unsafe {
40485                let this: &Identity =
40486                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
40487                ICoreWebView2_14_Impl::remove_ServerCertificateErrorDetected(
40488                    this,
40489                    core::mem::transmute_copy(&token),
40490                )
40491                .into()
40492            }
40493        }
40494        unsafe extern "system" fn ClearServerCertificateErrorActions<
40495            Identity: ICoreWebView2_14_Impl,
40496            const OFFSET: isize,
40497        >(
40498            this: *mut core::ffi::c_void,
40499            handler: *mut core::ffi::c_void,
40500        ) -> windows_core::HRESULT {
40501            unsafe {
40502                let this: &Identity =
40503                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
40504                ICoreWebView2_14_Impl::ClearServerCertificateErrorActions(
40505                    this,
40506                    core::mem::transmute_copy(&handler),
40507                )
40508                .into()
40509            }
40510        }
40511        Self {
40512            base__: ICoreWebView2_13_Vtbl::new::<Identity, OFFSET>(),
40513            add_ServerCertificateErrorDetected: add_ServerCertificateErrorDetected::<
40514                Identity,
40515                OFFSET,
40516            >,
40517            remove_ServerCertificateErrorDetected: remove_ServerCertificateErrorDetected::<
40518                Identity,
40519                OFFSET,
40520            >,
40521            ClearServerCertificateErrorActions: ClearServerCertificateErrorActions::<
40522                Identity,
40523                OFFSET,
40524            >,
40525        }
40526    }
40527    pub fn matches(iid: &windows_core::GUID) -> bool {
40528        iid == &<ICoreWebView2_14 as windows_core::Interface>::IID
40529            || iid == &<ICoreWebView2 as windows_core::Interface>::IID
40530            || iid == &<ICoreWebView2_2 as windows_core::Interface>::IID
40531            || iid == &<ICoreWebView2_3 as windows_core::Interface>::IID
40532            || iid == &<ICoreWebView2_4 as windows_core::Interface>::IID
40533            || iid == &<ICoreWebView2_5 as windows_core::Interface>::IID
40534            || iid == &<ICoreWebView2_6 as windows_core::Interface>::IID
40535            || iid == &<ICoreWebView2_7 as windows_core::Interface>::IID
40536            || iid == &<ICoreWebView2_8 as windows_core::Interface>::IID
40537            || iid == &<ICoreWebView2_9 as windows_core::Interface>::IID
40538            || iid == &<ICoreWebView2_10 as windows_core::Interface>::IID
40539            || iid == &<ICoreWebView2_11 as windows_core::Interface>::IID
40540            || iid == &<ICoreWebView2_12 as windows_core::Interface>::IID
40541            || iid == &<ICoreWebView2_13 as windows_core::Interface>::IID
40542    }
40543}
40544impl windows_core::RuntimeName for ICoreWebView2_14 {}
40545windows_core::imp::define_interface!(
40546    ICoreWebView2_15,
40547    ICoreWebView2_15_Vtbl,
40548    0x517b2d1d_7dae_4a66_a4f4_10352ffb9518
40549);
40550impl core::ops::Deref for ICoreWebView2_15 {
40551    type Target = ICoreWebView2_14;
40552    fn deref(&self) -> &Self::Target {
40553        unsafe { core::mem::transmute(self) }
40554    }
40555}
40556windows_core::imp::interface_hierarchy!(
40557    ICoreWebView2_15,
40558    windows_core::IUnknown,
40559    ICoreWebView2,
40560    ICoreWebView2_2,
40561    ICoreWebView2_3,
40562    ICoreWebView2_4,
40563    ICoreWebView2_5,
40564    ICoreWebView2_6,
40565    ICoreWebView2_7,
40566    ICoreWebView2_8,
40567    ICoreWebView2_9,
40568    ICoreWebView2_10,
40569    ICoreWebView2_11,
40570    ICoreWebView2_12,
40571    ICoreWebView2_13,
40572    ICoreWebView2_14
40573);
40574impl ICoreWebView2_15 {
40575    pub unsafe fn add_FaviconChanged<P0>(
40576        &self,
40577        eventhandler: P0,
40578        token: *mut i64,
40579    ) -> windows_core::Result<()>
40580    where
40581        P0: windows_core::Param<ICoreWebView2FaviconChangedEventHandler>,
40582    {
40583        unsafe {
40584            (windows_core::Interface::vtable(self).add_FaviconChanged)(
40585                windows_core::Interface::as_raw(self),
40586                eventhandler.param().abi(),
40587                token as _,
40588            )
40589            .ok()
40590        }
40591    }
40592    pub unsafe fn remove_FaviconChanged(&self, token: i64) -> windows_core::Result<()> {
40593        unsafe {
40594            (windows_core::Interface::vtable(self).remove_FaviconChanged)(
40595                windows_core::Interface::as_raw(self),
40596                token,
40597            )
40598            .ok()
40599        }
40600    }
40601    pub unsafe fn FaviconUri(&self, value: *mut windows_core::PWSTR) -> windows_core::Result<()> {
40602        unsafe {
40603            (windows_core::Interface::vtable(self).FaviconUri)(
40604                windows_core::Interface::as_raw(self),
40605                value as _,
40606            )
40607            .ok()
40608        }
40609    }
40610    pub unsafe fn GetFavicon<P1>(
40611        &self,
40612        format: COREWEBVIEW2_FAVICON_IMAGE_FORMAT,
40613        completedhandler: P1,
40614    ) -> windows_core::Result<()>
40615    where
40616        P1: windows_core::Param<ICoreWebView2GetFaviconCompletedHandler>,
40617    {
40618        unsafe {
40619            (windows_core::Interface::vtable(self).GetFavicon)(
40620                windows_core::Interface::as_raw(self),
40621                format,
40622                completedhandler.param().abi(),
40623            )
40624            .ok()
40625        }
40626    }
40627}
40628#[repr(C)]
40629#[doc(hidden)]
40630pub struct ICoreWebView2_15_Vtbl {
40631    pub base__: ICoreWebView2_14_Vtbl,
40632    pub add_FaviconChanged: unsafe extern "system" fn(
40633        *mut core::ffi::c_void,
40634        *mut core::ffi::c_void,
40635        *mut i64,
40636    ) -> windows_core::HRESULT,
40637    pub remove_FaviconChanged:
40638        unsafe extern "system" fn(*mut core::ffi::c_void, i64) -> windows_core::HRESULT,
40639    pub FaviconUri: unsafe extern "system" fn(
40640        *mut core::ffi::c_void,
40641        *mut windows_core::PWSTR,
40642    ) -> windows_core::HRESULT,
40643    pub GetFavicon: unsafe extern "system" fn(
40644        *mut core::ffi::c_void,
40645        COREWEBVIEW2_FAVICON_IMAGE_FORMAT,
40646        *mut core::ffi::c_void,
40647    ) -> windows_core::HRESULT,
40648}
40649pub trait ICoreWebView2_15_Impl: ICoreWebView2_14_Impl {
40650    fn add_FaviconChanged(
40651        &self,
40652        eventhandler: windows_core::Ref<ICoreWebView2FaviconChangedEventHandler>,
40653        token: *mut i64,
40654    ) -> windows_core::Result<()>;
40655    fn remove_FaviconChanged(&self, token: i64) -> windows_core::Result<()>;
40656    fn FaviconUri(&self, value: *mut windows_core::PWSTR) -> windows_core::Result<()>;
40657    fn GetFavicon(
40658        &self,
40659        format: COREWEBVIEW2_FAVICON_IMAGE_FORMAT,
40660        completedhandler: windows_core::Ref<ICoreWebView2GetFaviconCompletedHandler>,
40661    ) -> windows_core::Result<()>;
40662}
40663impl ICoreWebView2_15_Vtbl {
40664    pub const fn new<Identity: ICoreWebView2_15_Impl, const OFFSET: isize>() -> Self {
40665        unsafe extern "system" fn add_FaviconChanged<
40666            Identity: ICoreWebView2_15_Impl,
40667            const OFFSET: isize,
40668        >(
40669            this: *mut core::ffi::c_void,
40670            eventhandler: *mut core::ffi::c_void,
40671            token: *mut i64,
40672        ) -> windows_core::HRESULT {
40673            unsafe {
40674                let this: &Identity =
40675                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
40676                ICoreWebView2_15_Impl::add_FaviconChanged(
40677                    this,
40678                    core::mem::transmute_copy(&eventhandler),
40679                    core::mem::transmute_copy(&token),
40680                )
40681                .into()
40682            }
40683        }
40684        unsafe extern "system" fn remove_FaviconChanged<
40685            Identity: ICoreWebView2_15_Impl,
40686            const OFFSET: isize,
40687        >(
40688            this: *mut core::ffi::c_void,
40689            token: i64,
40690        ) -> windows_core::HRESULT {
40691            unsafe {
40692                let this: &Identity =
40693                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
40694                ICoreWebView2_15_Impl::remove_FaviconChanged(
40695                    this,
40696                    core::mem::transmute_copy(&token),
40697                )
40698                .into()
40699            }
40700        }
40701        unsafe extern "system" fn FaviconUri<
40702            Identity: ICoreWebView2_15_Impl,
40703            const OFFSET: isize,
40704        >(
40705            this: *mut core::ffi::c_void,
40706            value: *mut windows_core::PWSTR,
40707        ) -> windows_core::HRESULT {
40708            unsafe {
40709                let this: &Identity =
40710                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
40711                ICoreWebView2_15_Impl::FaviconUri(this, core::mem::transmute_copy(&value)).into()
40712            }
40713        }
40714        unsafe extern "system" fn GetFavicon<
40715            Identity: ICoreWebView2_15_Impl,
40716            const OFFSET: isize,
40717        >(
40718            this: *mut core::ffi::c_void,
40719            format: COREWEBVIEW2_FAVICON_IMAGE_FORMAT,
40720            completedhandler: *mut core::ffi::c_void,
40721        ) -> windows_core::HRESULT {
40722            unsafe {
40723                let this: &Identity =
40724                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
40725                ICoreWebView2_15_Impl::GetFavicon(
40726                    this,
40727                    core::mem::transmute_copy(&format),
40728                    core::mem::transmute_copy(&completedhandler),
40729                )
40730                .into()
40731            }
40732        }
40733        Self {
40734            base__: ICoreWebView2_14_Vtbl::new::<Identity, OFFSET>(),
40735            add_FaviconChanged: add_FaviconChanged::<Identity, OFFSET>,
40736            remove_FaviconChanged: remove_FaviconChanged::<Identity, OFFSET>,
40737            FaviconUri: FaviconUri::<Identity, OFFSET>,
40738            GetFavicon: GetFavicon::<Identity, OFFSET>,
40739        }
40740    }
40741    pub fn matches(iid: &windows_core::GUID) -> bool {
40742        iid == &<ICoreWebView2_15 as windows_core::Interface>::IID
40743            || iid == &<ICoreWebView2 as windows_core::Interface>::IID
40744            || iid == &<ICoreWebView2_2 as windows_core::Interface>::IID
40745            || iid == &<ICoreWebView2_3 as windows_core::Interface>::IID
40746            || iid == &<ICoreWebView2_4 as windows_core::Interface>::IID
40747            || iid == &<ICoreWebView2_5 as windows_core::Interface>::IID
40748            || iid == &<ICoreWebView2_6 as windows_core::Interface>::IID
40749            || iid == &<ICoreWebView2_7 as windows_core::Interface>::IID
40750            || iid == &<ICoreWebView2_8 as windows_core::Interface>::IID
40751            || iid == &<ICoreWebView2_9 as windows_core::Interface>::IID
40752            || iid == &<ICoreWebView2_10 as windows_core::Interface>::IID
40753            || iid == &<ICoreWebView2_11 as windows_core::Interface>::IID
40754            || iid == &<ICoreWebView2_12 as windows_core::Interface>::IID
40755            || iid == &<ICoreWebView2_13 as windows_core::Interface>::IID
40756            || iid == &<ICoreWebView2_14 as windows_core::Interface>::IID
40757    }
40758}
40759impl windows_core::RuntimeName for ICoreWebView2_15 {}
40760windows_core::imp::define_interface!(
40761    ICoreWebView2_16,
40762    ICoreWebView2_16_Vtbl,
40763    0x0eb34dc9_9f91_41e1_8639_95cd5943906b
40764);
40765impl core::ops::Deref for ICoreWebView2_16 {
40766    type Target = ICoreWebView2_15;
40767    fn deref(&self) -> &Self::Target {
40768        unsafe { core::mem::transmute(self) }
40769    }
40770}
40771windows_core::imp::interface_hierarchy!(
40772    ICoreWebView2_16,
40773    windows_core::IUnknown,
40774    ICoreWebView2,
40775    ICoreWebView2_2,
40776    ICoreWebView2_3,
40777    ICoreWebView2_4,
40778    ICoreWebView2_5,
40779    ICoreWebView2_6,
40780    ICoreWebView2_7,
40781    ICoreWebView2_8,
40782    ICoreWebView2_9,
40783    ICoreWebView2_10,
40784    ICoreWebView2_11,
40785    ICoreWebView2_12,
40786    ICoreWebView2_13,
40787    ICoreWebView2_14,
40788    ICoreWebView2_15
40789);
40790impl ICoreWebView2_16 {
40791    pub unsafe fn Print<P0, P1>(&self, printsettings: P0, handler: P1) -> windows_core::Result<()>
40792    where
40793        P0: windows_core::Param<ICoreWebView2PrintSettings>,
40794        P1: windows_core::Param<ICoreWebView2PrintCompletedHandler>,
40795    {
40796        unsafe {
40797            (windows_core::Interface::vtable(self).Print)(
40798                windows_core::Interface::as_raw(self),
40799                printsettings.param().abi(),
40800                handler.param().abi(),
40801            )
40802            .ok()
40803        }
40804    }
40805    pub unsafe fn ShowPrintUI(
40806        &self,
40807        printdialogkind: COREWEBVIEW2_PRINT_DIALOG_KIND,
40808    ) -> windows_core::Result<()> {
40809        unsafe {
40810            (windows_core::Interface::vtable(self).ShowPrintUI)(
40811                windows_core::Interface::as_raw(self),
40812                printdialogkind,
40813            )
40814            .ok()
40815        }
40816    }
40817    pub unsafe fn PrintToPdfStream<P0, P1>(
40818        &self,
40819        printsettings: P0,
40820        handler: P1,
40821    ) -> windows_core::Result<()>
40822    where
40823        P0: windows_core::Param<ICoreWebView2PrintSettings>,
40824        P1: windows_core::Param<ICoreWebView2PrintToPdfStreamCompletedHandler>,
40825    {
40826        unsafe {
40827            (windows_core::Interface::vtable(self).PrintToPdfStream)(
40828                windows_core::Interface::as_raw(self),
40829                printsettings.param().abi(),
40830                handler.param().abi(),
40831            )
40832            .ok()
40833        }
40834    }
40835}
40836#[repr(C)]
40837#[doc(hidden)]
40838pub struct ICoreWebView2_16_Vtbl {
40839    pub base__: ICoreWebView2_15_Vtbl,
40840    pub Print: unsafe extern "system" fn(
40841        *mut core::ffi::c_void,
40842        *mut core::ffi::c_void,
40843        *mut core::ffi::c_void,
40844    ) -> windows_core::HRESULT,
40845    pub ShowPrintUI: unsafe extern "system" fn(
40846        *mut core::ffi::c_void,
40847        COREWEBVIEW2_PRINT_DIALOG_KIND,
40848    ) -> windows_core::HRESULT,
40849    pub PrintToPdfStream: unsafe extern "system" fn(
40850        *mut core::ffi::c_void,
40851        *mut core::ffi::c_void,
40852        *mut core::ffi::c_void,
40853    ) -> windows_core::HRESULT,
40854}
40855pub trait ICoreWebView2_16_Impl: ICoreWebView2_15_Impl {
40856    fn Print(
40857        &self,
40858        printsettings: windows_core::Ref<ICoreWebView2PrintSettings>,
40859        handler: windows_core::Ref<ICoreWebView2PrintCompletedHandler>,
40860    ) -> windows_core::Result<()>;
40861    fn ShowPrintUI(
40862        &self,
40863        printdialogkind: COREWEBVIEW2_PRINT_DIALOG_KIND,
40864    ) -> windows_core::Result<()>;
40865    fn PrintToPdfStream(
40866        &self,
40867        printsettings: windows_core::Ref<ICoreWebView2PrintSettings>,
40868        handler: windows_core::Ref<ICoreWebView2PrintToPdfStreamCompletedHandler>,
40869    ) -> windows_core::Result<()>;
40870}
40871impl ICoreWebView2_16_Vtbl {
40872    pub const fn new<Identity: ICoreWebView2_16_Impl, const OFFSET: isize>() -> Self {
40873        unsafe extern "system" fn Print<Identity: ICoreWebView2_16_Impl, const OFFSET: isize>(
40874            this: *mut core::ffi::c_void,
40875            printsettings: *mut core::ffi::c_void,
40876            handler: *mut core::ffi::c_void,
40877        ) -> windows_core::HRESULT {
40878            unsafe {
40879                let this: &Identity =
40880                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
40881                ICoreWebView2_16_Impl::Print(
40882                    this,
40883                    core::mem::transmute_copy(&printsettings),
40884                    core::mem::transmute_copy(&handler),
40885                )
40886                .into()
40887            }
40888        }
40889        unsafe extern "system" fn ShowPrintUI<
40890            Identity: ICoreWebView2_16_Impl,
40891            const OFFSET: isize,
40892        >(
40893            this: *mut core::ffi::c_void,
40894            printdialogkind: COREWEBVIEW2_PRINT_DIALOG_KIND,
40895        ) -> windows_core::HRESULT {
40896            unsafe {
40897                let this: &Identity =
40898                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
40899                ICoreWebView2_16_Impl::ShowPrintUI(
40900                    this,
40901                    core::mem::transmute_copy(&printdialogkind),
40902                )
40903                .into()
40904            }
40905        }
40906        unsafe extern "system" fn PrintToPdfStream<
40907            Identity: ICoreWebView2_16_Impl,
40908            const OFFSET: isize,
40909        >(
40910            this: *mut core::ffi::c_void,
40911            printsettings: *mut core::ffi::c_void,
40912            handler: *mut core::ffi::c_void,
40913        ) -> windows_core::HRESULT {
40914            unsafe {
40915                let this: &Identity =
40916                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
40917                ICoreWebView2_16_Impl::PrintToPdfStream(
40918                    this,
40919                    core::mem::transmute_copy(&printsettings),
40920                    core::mem::transmute_copy(&handler),
40921                )
40922                .into()
40923            }
40924        }
40925        Self {
40926            base__: ICoreWebView2_15_Vtbl::new::<Identity, OFFSET>(),
40927            Print: Print::<Identity, OFFSET>,
40928            ShowPrintUI: ShowPrintUI::<Identity, OFFSET>,
40929            PrintToPdfStream: PrintToPdfStream::<Identity, OFFSET>,
40930        }
40931    }
40932    pub fn matches(iid: &windows_core::GUID) -> bool {
40933        iid == &<ICoreWebView2_16 as windows_core::Interface>::IID
40934            || iid == &<ICoreWebView2 as windows_core::Interface>::IID
40935            || iid == &<ICoreWebView2_2 as windows_core::Interface>::IID
40936            || iid == &<ICoreWebView2_3 as windows_core::Interface>::IID
40937            || iid == &<ICoreWebView2_4 as windows_core::Interface>::IID
40938            || iid == &<ICoreWebView2_5 as windows_core::Interface>::IID
40939            || iid == &<ICoreWebView2_6 as windows_core::Interface>::IID
40940            || iid == &<ICoreWebView2_7 as windows_core::Interface>::IID
40941            || iid == &<ICoreWebView2_8 as windows_core::Interface>::IID
40942            || iid == &<ICoreWebView2_9 as windows_core::Interface>::IID
40943            || iid == &<ICoreWebView2_10 as windows_core::Interface>::IID
40944            || iid == &<ICoreWebView2_11 as windows_core::Interface>::IID
40945            || iid == &<ICoreWebView2_12 as windows_core::Interface>::IID
40946            || iid == &<ICoreWebView2_13 as windows_core::Interface>::IID
40947            || iid == &<ICoreWebView2_14 as windows_core::Interface>::IID
40948            || iid == &<ICoreWebView2_15 as windows_core::Interface>::IID
40949    }
40950}
40951impl windows_core::RuntimeName for ICoreWebView2_16 {}
40952windows_core::imp::define_interface!(
40953    ICoreWebView2_17,
40954    ICoreWebView2_17_Vtbl,
40955    0x702e75d4_fd44_434d_9d70_1a68a6b1192a
40956);
40957impl core::ops::Deref for ICoreWebView2_17 {
40958    type Target = ICoreWebView2_16;
40959    fn deref(&self) -> &Self::Target {
40960        unsafe { core::mem::transmute(self) }
40961    }
40962}
40963windows_core::imp::interface_hierarchy!(
40964    ICoreWebView2_17,
40965    windows_core::IUnknown,
40966    ICoreWebView2,
40967    ICoreWebView2_2,
40968    ICoreWebView2_3,
40969    ICoreWebView2_4,
40970    ICoreWebView2_5,
40971    ICoreWebView2_6,
40972    ICoreWebView2_7,
40973    ICoreWebView2_8,
40974    ICoreWebView2_9,
40975    ICoreWebView2_10,
40976    ICoreWebView2_11,
40977    ICoreWebView2_12,
40978    ICoreWebView2_13,
40979    ICoreWebView2_14,
40980    ICoreWebView2_15,
40981    ICoreWebView2_16
40982);
40983impl ICoreWebView2_17 {
40984    pub unsafe fn PostSharedBufferToScript<P0, P2>(
40985        &self,
40986        sharedbuffer: P0,
40987        access: COREWEBVIEW2_SHARED_BUFFER_ACCESS,
40988        additionaldataasjson: P2,
40989    ) -> windows_core::Result<()>
40990    where
40991        P0: windows_core::Param<ICoreWebView2SharedBuffer>,
40992        P2: windows_core::Param<windows_core::PCWSTR>,
40993    {
40994        unsafe {
40995            (windows_core::Interface::vtable(self).PostSharedBufferToScript)(
40996                windows_core::Interface::as_raw(self),
40997                sharedbuffer.param().abi(),
40998                access,
40999                additionaldataasjson.param().abi(),
41000            )
41001            .ok()
41002        }
41003    }
41004}
41005#[repr(C)]
41006#[doc(hidden)]
41007pub struct ICoreWebView2_17_Vtbl {
41008    pub base__: ICoreWebView2_16_Vtbl,
41009    pub PostSharedBufferToScript: unsafe extern "system" fn(
41010        *mut core::ffi::c_void,
41011        *mut core::ffi::c_void,
41012        COREWEBVIEW2_SHARED_BUFFER_ACCESS,
41013        windows_core::PCWSTR,
41014    ) -> windows_core::HRESULT,
41015}
41016pub trait ICoreWebView2_17_Impl: ICoreWebView2_16_Impl {
41017    fn PostSharedBufferToScript(
41018        &self,
41019        sharedbuffer: windows_core::Ref<ICoreWebView2SharedBuffer>,
41020        access: COREWEBVIEW2_SHARED_BUFFER_ACCESS,
41021        additionaldataasjson: &windows_core::PCWSTR,
41022    ) -> windows_core::Result<()>;
41023}
41024impl ICoreWebView2_17_Vtbl {
41025    pub const fn new<Identity: ICoreWebView2_17_Impl, const OFFSET: isize>() -> Self {
41026        unsafe extern "system" fn PostSharedBufferToScript<
41027            Identity: ICoreWebView2_17_Impl,
41028            const OFFSET: isize,
41029        >(
41030            this: *mut core::ffi::c_void,
41031            sharedbuffer: *mut core::ffi::c_void,
41032            access: COREWEBVIEW2_SHARED_BUFFER_ACCESS,
41033            additionaldataasjson: windows_core::PCWSTR,
41034        ) -> windows_core::HRESULT {
41035            unsafe {
41036                let this: &Identity =
41037                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
41038                ICoreWebView2_17_Impl::PostSharedBufferToScript(
41039                    this,
41040                    core::mem::transmute_copy(&sharedbuffer),
41041                    core::mem::transmute_copy(&access),
41042                    core::mem::transmute(&additionaldataasjson),
41043                )
41044                .into()
41045            }
41046        }
41047        Self {
41048            base__: ICoreWebView2_16_Vtbl::new::<Identity, OFFSET>(),
41049            PostSharedBufferToScript: PostSharedBufferToScript::<Identity, OFFSET>,
41050        }
41051    }
41052    pub fn matches(iid: &windows_core::GUID) -> bool {
41053        iid == &<ICoreWebView2_17 as windows_core::Interface>::IID
41054            || iid == &<ICoreWebView2 as windows_core::Interface>::IID
41055            || iid == &<ICoreWebView2_2 as windows_core::Interface>::IID
41056            || iid == &<ICoreWebView2_3 as windows_core::Interface>::IID
41057            || iid == &<ICoreWebView2_4 as windows_core::Interface>::IID
41058            || iid == &<ICoreWebView2_5 as windows_core::Interface>::IID
41059            || iid == &<ICoreWebView2_6 as windows_core::Interface>::IID
41060            || iid == &<ICoreWebView2_7 as windows_core::Interface>::IID
41061            || iid == &<ICoreWebView2_8 as windows_core::Interface>::IID
41062            || iid == &<ICoreWebView2_9 as windows_core::Interface>::IID
41063            || iid == &<ICoreWebView2_10 as windows_core::Interface>::IID
41064            || iid == &<ICoreWebView2_11 as windows_core::Interface>::IID
41065            || iid == &<ICoreWebView2_12 as windows_core::Interface>::IID
41066            || iid == &<ICoreWebView2_13 as windows_core::Interface>::IID
41067            || iid == &<ICoreWebView2_14 as windows_core::Interface>::IID
41068            || iid == &<ICoreWebView2_15 as windows_core::Interface>::IID
41069            || iid == &<ICoreWebView2_16 as windows_core::Interface>::IID
41070    }
41071}
41072impl windows_core::RuntimeName for ICoreWebView2_17 {}
41073windows_core::imp::define_interface!(
41074    ICoreWebView2_18,
41075    ICoreWebView2_18_Vtbl,
41076    0x7a626017_28be_49b2_b865_3ba2b3522d90
41077);
41078impl core::ops::Deref for ICoreWebView2_18 {
41079    type Target = ICoreWebView2_17;
41080    fn deref(&self) -> &Self::Target {
41081        unsafe { core::mem::transmute(self) }
41082    }
41083}
41084windows_core::imp::interface_hierarchy!(
41085    ICoreWebView2_18,
41086    windows_core::IUnknown,
41087    ICoreWebView2,
41088    ICoreWebView2_2,
41089    ICoreWebView2_3,
41090    ICoreWebView2_4,
41091    ICoreWebView2_5,
41092    ICoreWebView2_6,
41093    ICoreWebView2_7,
41094    ICoreWebView2_8,
41095    ICoreWebView2_9,
41096    ICoreWebView2_10,
41097    ICoreWebView2_11,
41098    ICoreWebView2_12,
41099    ICoreWebView2_13,
41100    ICoreWebView2_14,
41101    ICoreWebView2_15,
41102    ICoreWebView2_16,
41103    ICoreWebView2_17
41104);
41105impl ICoreWebView2_18 {
41106    pub unsafe fn add_LaunchingExternalUriScheme<P0>(
41107        &self,
41108        eventhandler: P0,
41109        token: *mut i64,
41110    ) -> windows_core::Result<()>
41111    where
41112        P0: windows_core::Param<ICoreWebView2LaunchingExternalUriSchemeEventHandler>,
41113    {
41114        unsafe {
41115            (windows_core::Interface::vtable(self).add_LaunchingExternalUriScheme)(
41116                windows_core::Interface::as_raw(self),
41117                eventhandler.param().abi(),
41118                token as _,
41119            )
41120            .ok()
41121        }
41122    }
41123    pub unsafe fn remove_LaunchingExternalUriScheme(&self, token: i64) -> windows_core::Result<()> {
41124        unsafe {
41125            (windows_core::Interface::vtable(self).remove_LaunchingExternalUriScheme)(
41126                windows_core::Interface::as_raw(self),
41127                token,
41128            )
41129            .ok()
41130        }
41131    }
41132}
41133#[repr(C)]
41134#[doc(hidden)]
41135pub struct ICoreWebView2_18_Vtbl {
41136    pub base__: ICoreWebView2_17_Vtbl,
41137    pub add_LaunchingExternalUriScheme: unsafe extern "system" fn(
41138        *mut core::ffi::c_void,
41139        *mut core::ffi::c_void,
41140        *mut i64,
41141    ) -> windows_core::HRESULT,
41142    pub remove_LaunchingExternalUriScheme:
41143        unsafe extern "system" fn(*mut core::ffi::c_void, i64) -> windows_core::HRESULT,
41144}
41145pub trait ICoreWebView2_18_Impl: ICoreWebView2_17_Impl {
41146    fn add_LaunchingExternalUriScheme(
41147        &self,
41148        eventhandler: windows_core::Ref<ICoreWebView2LaunchingExternalUriSchemeEventHandler>,
41149        token: *mut i64,
41150    ) -> windows_core::Result<()>;
41151    fn remove_LaunchingExternalUriScheme(&self, token: i64) -> windows_core::Result<()>;
41152}
41153impl ICoreWebView2_18_Vtbl {
41154    pub const fn new<Identity: ICoreWebView2_18_Impl, const OFFSET: isize>() -> Self {
41155        unsafe extern "system" fn add_LaunchingExternalUriScheme<
41156            Identity: ICoreWebView2_18_Impl,
41157            const OFFSET: isize,
41158        >(
41159            this: *mut core::ffi::c_void,
41160            eventhandler: *mut core::ffi::c_void,
41161            token: *mut i64,
41162        ) -> windows_core::HRESULT {
41163            unsafe {
41164                let this: &Identity =
41165                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
41166                ICoreWebView2_18_Impl::add_LaunchingExternalUriScheme(
41167                    this,
41168                    core::mem::transmute_copy(&eventhandler),
41169                    core::mem::transmute_copy(&token),
41170                )
41171                .into()
41172            }
41173        }
41174        unsafe extern "system" fn remove_LaunchingExternalUriScheme<
41175            Identity: ICoreWebView2_18_Impl,
41176            const OFFSET: isize,
41177        >(
41178            this: *mut core::ffi::c_void,
41179            token: i64,
41180        ) -> windows_core::HRESULT {
41181            unsafe {
41182                let this: &Identity =
41183                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
41184                ICoreWebView2_18_Impl::remove_LaunchingExternalUriScheme(
41185                    this,
41186                    core::mem::transmute_copy(&token),
41187                )
41188                .into()
41189            }
41190        }
41191        Self {
41192            base__: ICoreWebView2_17_Vtbl::new::<Identity, OFFSET>(),
41193            add_LaunchingExternalUriScheme: add_LaunchingExternalUriScheme::<Identity, OFFSET>,
41194            remove_LaunchingExternalUriScheme: remove_LaunchingExternalUriScheme::<Identity, OFFSET>,
41195        }
41196    }
41197    pub fn matches(iid: &windows_core::GUID) -> bool {
41198        iid == &<ICoreWebView2_18 as windows_core::Interface>::IID
41199            || iid == &<ICoreWebView2 as windows_core::Interface>::IID
41200            || iid == &<ICoreWebView2_2 as windows_core::Interface>::IID
41201            || iid == &<ICoreWebView2_3 as windows_core::Interface>::IID
41202            || iid == &<ICoreWebView2_4 as windows_core::Interface>::IID
41203            || iid == &<ICoreWebView2_5 as windows_core::Interface>::IID
41204            || iid == &<ICoreWebView2_6 as windows_core::Interface>::IID
41205            || iid == &<ICoreWebView2_7 as windows_core::Interface>::IID
41206            || iid == &<ICoreWebView2_8 as windows_core::Interface>::IID
41207            || iid == &<ICoreWebView2_9 as windows_core::Interface>::IID
41208            || iid == &<ICoreWebView2_10 as windows_core::Interface>::IID
41209            || iid == &<ICoreWebView2_11 as windows_core::Interface>::IID
41210            || iid == &<ICoreWebView2_12 as windows_core::Interface>::IID
41211            || iid == &<ICoreWebView2_13 as windows_core::Interface>::IID
41212            || iid == &<ICoreWebView2_14 as windows_core::Interface>::IID
41213            || iid == &<ICoreWebView2_15 as windows_core::Interface>::IID
41214            || iid == &<ICoreWebView2_16 as windows_core::Interface>::IID
41215            || iid == &<ICoreWebView2_17 as windows_core::Interface>::IID
41216    }
41217}
41218impl windows_core::RuntimeName for ICoreWebView2_18 {}
41219windows_core::imp::define_interface!(
41220    ICoreWebView2_19,
41221    ICoreWebView2_19_Vtbl,
41222    0x6921f954_79b0_437f_a997_c85811897c68
41223);
41224impl core::ops::Deref for ICoreWebView2_19 {
41225    type Target = ICoreWebView2_18;
41226    fn deref(&self) -> &Self::Target {
41227        unsafe { core::mem::transmute(self) }
41228    }
41229}
41230windows_core::imp::interface_hierarchy!(
41231    ICoreWebView2_19,
41232    windows_core::IUnknown,
41233    ICoreWebView2,
41234    ICoreWebView2_2,
41235    ICoreWebView2_3,
41236    ICoreWebView2_4,
41237    ICoreWebView2_5,
41238    ICoreWebView2_6,
41239    ICoreWebView2_7,
41240    ICoreWebView2_8,
41241    ICoreWebView2_9,
41242    ICoreWebView2_10,
41243    ICoreWebView2_11,
41244    ICoreWebView2_12,
41245    ICoreWebView2_13,
41246    ICoreWebView2_14,
41247    ICoreWebView2_15,
41248    ICoreWebView2_16,
41249    ICoreWebView2_17,
41250    ICoreWebView2_18
41251);
41252impl ICoreWebView2_19 {
41253    pub unsafe fn MemoryUsageTargetLevel(
41254        &self,
41255        value: *mut COREWEBVIEW2_MEMORY_USAGE_TARGET_LEVEL,
41256    ) -> windows_core::Result<()> {
41257        unsafe {
41258            (windows_core::Interface::vtable(self).MemoryUsageTargetLevel)(
41259                windows_core::Interface::as_raw(self),
41260                value as _,
41261            )
41262            .ok()
41263        }
41264    }
41265    pub unsafe fn SetMemoryUsageTargetLevel(
41266        &self,
41267        value: COREWEBVIEW2_MEMORY_USAGE_TARGET_LEVEL,
41268    ) -> windows_core::Result<()> {
41269        unsafe {
41270            (windows_core::Interface::vtable(self).SetMemoryUsageTargetLevel)(
41271                windows_core::Interface::as_raw(self),
41272                value,
41273            )
41274            .ok()
41275        }
41276    }
41277}
41278#[repr(C)]
41279#[doc(hidden)]
41280pub struct ICoreWebView2_19_Vtbl {
41281    pub base__: ICoreWebView2_18_Vtbl,
41282    pub MemoryUsageTargetLevel: unsafe extern "system" fn(
41283        *mut core::ffi::c_void,
41284        *mut COREWEBVIEW2_MEMORY_USAGE_TARGET_LEVEL,
41285    ) -> windows_core::HRESULT,
41286    pub SetMemoryUsageTargetLevel: unsafe extern "system" fn(
41287        *mut core::ffi::c_void,
41288        COREWEBVIEW2_MEMORY_USAGE_TARGET_LEVEL,
41289    ) -> windows_core::HRESULT,
41290}
41291pub trait ICoreWebView2_19_Impl: ICoreWebView2_18_Impl {
41292    fn MemoryUsageTargetLevel(
41293        &self,
41294        value: *mut COREWEBVIEW2_MEMORY_USAGE_TARGET_LEVEL,
41295    ) -> windows_core::Result<()>;
41296    fn SetMemoryUsageTargetLevel(
41297        &self,
41298        value: COREWEBVIEW2_MEMORY_USAGE_TARGET_LEVEL,
41299    ) -> windows_core::Result<()>;
41300}
41301impl ICoreWebView2_19_Vtbl {
41302    pub const fn new<Identity: ICoreWebView2_19_Impl, const OFFSET: isize>() -> Self {
41303        unsafe extern "system" fn MemoryUsageTargetLevel<
41304            Identity: ICoreWebView2_19_Impl,
41305            const OFFSET: isize,
41306        >(
41307            this: *mut core::ffi::c_void,
41308            value: *mut COREWEBVIEW2_MEMORY_USAGE_TARGET_LEVEL,
41309        ) -> windows_core::HRESULT {
41310            unsafe {
41311                let this: &Identity =
41312                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
41313                ICoreWebView2_19_Impl::MemoryUsageTargetLevel(
41314                    this,
41315                    core::mem::transmute_copy(&value),
41316                )
41317                .into()
41318            }
41319        }
41320        unsafe extern "system" fn SetMemoryUsageTargetLevel<
41321            Identity: ICoreWebView2_19_Impl,
41322            const OFFSET: isize,
41323        >(
41324            this: *mut core::ffi::c_void,
41325            value: COREWEBVIEW2_MEMORY_USAGE_TARGET_LEVEL,
41326        ) -> windows_core::HRESULT {
41327            unsafe {
41328                let this: &Identity =
41329                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
41330                ICoreWebView2_19_Impl::SetMemoryUsageTargetLevel(
41331                    this,
41332                    core::mem::transmute_copy(&value),
41333                )
41334                .into()
41335            }
41336        }
41337        Self {
41338            base__: ICoreWebView2_18_Vtbl::new::<Identity, OFFSET>(),
41339            MemoryUsageTargetLevel: MemoryUsageTargetLevel::<Identity, OFFSET>,
41340            SetMemoryUsageTargetLevel: SetMemoryUsageTargetLevel::<Identity, OFFSET>,
41341        }
41342    }
41343    pub fn matches(iid: &windows_core::GUID) -> bool {
41344        iid == &<ICoreWebView2_19 as windows_core::Interface>::IID
41345            || iid == &<ICoreWebView2 as windows_core::Interface>::IID
41346            || iid == &<ICoreWebView2_2 as windows_core::Interface>::IID
41347            || iid == &<ICoreWebView2_3 as windows_core::Interface>::IID
41348            || iid == &<ICoreWebView2_4 as windows_core::Interface>::IID
41349            || iid == &<ICoreWebView2_5 as windows_core::Interface>::IID
41350            || iid == &<ICoreWebView2_6 as windows_core::Interface>::IID
41351            || iid == &<ICoreWebView2_7 as windows_core::Interface>::IID
41352            || iid == &<ICoreWebView2_8 as windows_core::Interface>::IID
41353            || iid == &<ICoreWebView2_9 as windows_core::Interface>::IID
41354            || iid == &<ICoreWebView2_10 as windows_core::Interface>::IID
41355            || iid == &<ICoreWebView2_11 as windows_core::Interface>::IID
41356            || iid == &<ICoreWebView2_12 as windows_core::Interface>::IID
41357            || iid == &<ICoreWebView2_13 as windows_core::Interface>::IID
41358            || iid == &<ICoreWebView2_14 as windows_core::Interface>::IID
41359            || iid == &<ICoreWebView2_15 as windows_core::Interface>::IID
41360            || iid == &<ICoreWebView2_16 as windows_core::Interface>::IID
41361            || iid == &<ICoreWebView2_17 as windows_core::Interface>::IID
41362            || iid == &<ICoreWebView2_18 as windows_core::Interface>::IID
41363    }
41364}
41365impl windows_core::RuntimeName for ICoreWebView2_19 {}
41366windows_core::imp::define_interface!(
41367    ICoreWebView2_2,
41368    ICoreWebView2_2_Vtbl,
41369    0x9e8f0cf8_e670_4b5e_b2bc_73e061e3184c
41370);
41371impl core::ops::Deref for ICoreWebView2_2 {
41372    type Target = ICoreWebView2;
41373    fn deref(&self) -> &Self::Target {
41374        unsafe { core::mem::transmute(self) }
41375    }
41376}
41377windows_core::imp::interface_hierarchy!(ICoreWebView2_2, windows_core::IUnknown, ICoreWebView2);
41378impl ICoreWebView2_2 {
41379    pub unsafe fn add_WebResourceResponseReceived<P0>(
41380        &self,
41381        eventhandler: P0,
41382        token: *mut i64,
41383    ) -> windows_core::Result<()>
41384    where
41385        P0: windows_core::Param<ICoreWebView2WebResourceResponseReceivedEventHandler>,
41386    {
41387        unsafe {
41388            (windows_core::Interface::vtable(self).add_WebResourceResponseReceived)(
41389                windows_core::Interface::as_raw(self),
41390                eventhandler.param().abi(),
41391                token as _,
41392            )
41393            .ok()
41394        }
41395    }
41396    pub unsafe fn remove_WebResourceResponseReceived(
41397        &self,
41398        token: i64,
41399    ) -> windows_core::Result<()> {
41400        unsafe {
41401            (windows_core::Interface::vtable(self).remove_WebResourceResponseReceived)(
41402                windows_core::Interface::as_raw(self),
41403                token,
41404            )
41405            .ok()
41406        }
41407    }
41408    pub unsafe fn NavigateWithWebResourceRequest<P0>(&self, request: P0) -> windows_core::Result<()>
41409    where
41410        P0: windows_core::Param<ICoreWebView2WebResourceRequest>,
41411    {
41412        unsafe {
41413            (windows_core::Interface::vtable(self).NavigateWithWebResourceRequest)(
41414                windows_core::Interface::as_raw(self),
41415                request.param().abi(),
41416            )
41417            .ok()
41418        }
41419    }
41420    pub unsafe fn add_DOMContentLoaded<P0>(
41421        &self,
41422        eventhandler: P0,
41423        token: *mut i64,
41424    ) -> windows_core::Result<()>
41425    where
41426        P0: windows_core::Param<ICoreWebView2DOMContentLoadedEventHandler>,
41427    {
41428        unsafe {
41429            (windows_core::Interface::vtable(self).add_DOMContentLoaded)(
41430                windows_core::Interface::as_raw(self),
41431                eventhandler.param().abi(),
41432                token as _,
41433            )
41434            .ok()
41435        }
41436    }
41437    pub unsafe fn remove_DOMContentLoaded(&self, token: i64) -> windows_core::Result<()> {
41438        unsafe {
41439            (windows_core::Interface::vtable(self).remove_DOMContentLoaded)(
41440                windows_core::Interface::as_raw(self),
41441                token,
41442            )
41443            .ok()
41444        }
41445    }
41446    pub unsafe fn CookieManager(&self) -> windows_core::Result<ICoreWebView2CookieManager> {
41447        unsafe {
41448            let mut result__ = core::mem::zeroed();
41449            (windows_core::Interface::vtable(self).CookieManager)(
41450                windows_core::Interface::as_raw(self),
41451                &mut result__,
41452            )
41453            .and_then(|| windows_core::Type::from_abi(result__))
41454        }
41455    }
41456    pub unsafe fn Environment(&self) -> windows_core::Result<ICoreWebView2Environment> {
41457        unsafe {
41458            let mut result__ = core::mem::zeroed();
41459            (windows_core::Interface::vtable(self).Environment)(
41460                windows_core::Interface::as_raw(self),
41461                &mut result__,
41462            )
41463            .and_then(|| windows_core::Type::from_abi(result__))
41464        }
41465    }
41466}
41467#[repr(C)]
41468#[doc(hidden)]
41469pub struct ICoreWebView2_2_Vtbl {
41470    pub base__: ICoreWebView2_Vtbl,
41471    pub add_WebResourceResponseReceived: unsafe extern "system" fn(
41472        *mut core::ffi::c_void,
41473        *mut core::ffi::c_void,
41474        *mut i64,
41475    ) -> windows_core::HRESULT,
41476    pub remove_WebResourceResponseReceived:
41477        unsafe extern "system" fn(*mut core::ffi::c_void, i64) -> windows_core::HRESULT,
41478    pub NavigateWithWebResourceRequest: unsafe extern "system" fn(
41479        *mut core::ffi::c_void,
41480        *mut core::ffi::c_void,
41481    ) -> windows_core::HRESULT,
41482    pub add_DOMContentLoaded: unsafe extern "system" fn(
41483        *mut core::ffi::c_void,
41484        *mut core::ffi::c_void,
41485        *mut i64,
41486    ) -> windows_core::HRESULT,
41487    pub remove_DOMContentLoaded:
41488        unsafe extern "system" fn(*mut core::ffi::c_void, i64) -> windows_core::HRESULT,
41489    pub CookieManager: unsafe extern "system" fn(
41490        *mut core::ffi::c_void,
41491        *mut *mut core::ffi::c_void,
41492    ) -> windows_core::HRESULT,
41493    pub Environment: unsafe extern "system" fn(
41494        *mut core::ffi::c_void,
41495        *mut *mut core::ffi::c_void,
41496    ) -> windows_core::HRESULT,
41497}
41498pub trait ICoreWebView2_2_Impl: ICoreWebView2_Impl {
41499    fn add_WebResourceResponseReceived(
41500        &self,
41501        eventhandler: windows_core::Ref<ICoreWebView2WebResourceResponseReceivedEventHandler>,
41502        token: *mut i64,
41503    ) -> windows_core::Result<()>;
41504    fn remove_WebResourceResponseReceived(&self, token: i64) -> windows_core::Result<()>;
41505    fn NavigateWithWebResourceRequest(
41506        &self,
41507        request: windows_core::Ref<ICoreWebView2WebResourceRequest>,
41508    ) -> windows_core::Result<()>;
41509    fn add_DOMContentLoaded(
41510        &self,
41511        eventhandler: windows_core::Ref<ICoreWebView2DOMContentLoadedEventHandler>,
41512        token: *mut i64,
41513    ) -> windows_core::Result<()>;
41514    fn remove_DOMContentLoaded(&self, token: i64) -> windows_core::Result<()>;
41515    fn CookieManager(&self) -> windows_core::Result<ICoreWebView2CookieManager>;
41516    fn Environment(&self) -> windows_core::Result<ICoreWebView2Environment>;
41517}
41518impl ICoreWebView2_2_Vtbl {
41519    pub const fn new<Identity: ICoreWebView2_2_Impl, const OFFSET: isize>() -> Self {
41520        unsafe extern "system" fn add_WebResourceResponseReceived<
41521            Identity: ICoreWebView2_2_Impl,
41522            const OFFSET: isize,
41523        >(
41524            this: *mut core::ffi::c_void,
41525            eventhandler: *mut core::ffi::c_void,
41526            token: *mut i64,
41527        ) -> windows_core::HRESULT {
41528            unsafe {
41529                let this: &Identity =
41530                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
41531                ICoreWebView2_2_Impl::add_WebResourceResponseReceived(
41532                    this,
41533                    core::mem::transmute_copy(&eventhandler),
41534                    core::mem::transmute_copy(&token),
41535                )
41536                .into()
41537            }
41538        }
41539        unsafe extern "system" fn remove_WebResourceResponseReceived<
41540            Identity: ICoreWebView2_2_Impl,
41541            const OFFSET: isize,
41542        >(
41543            this: *mut core::ffi::c_void,
41544            token: i64,
41545        ) -> windows_core::HRESULT {
41546            unsafe {
41547                let this: &Identity =
41548                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
41549                ICoreWebView2_2_Impl::remove_WebResourceResponseReceived(
41550                    this,
41551                    core::mem::transmute_copy(&token),
41552                )
41553                .into()
41554            }
41555        }
41556        unsafe extern "system" fn NavigateWithWebResourceRequest<
41557            Identity: ICoreWebView2_2_Impl,
41558            const OFFSET: isize,
41559        >(
41560            this: *mut core::ffi::c_void,
41561            request: *mut core::ffi::c_void,
41562        ) -> windows_core::HRESULT {
41563            unsafe {
41564                let this: &Identity =
41565                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
41566                ICoreWebView2_2_Impl::NavigateWithWebResourceRequest(
41567                    this,
41568                    core::mem::transmute_copy(&request),
41569                )
41570                .into()
41571            }
41572        }
41573        unsafe extern "system" fn add_DOMContentLoaded<
41574            Identity: ICoreWebView2_2_Impl,
41575            const OFFSET: isize,
41576        >(
41577            this: *mut core::ffi::c_void,
41578            eventhandler: *mut core::ffi::c_void,
41579            token: *mut i64,
41580        ) -> windows_core::HRESULT {
41581            unsafe {
41582                let this: &Identity =
41583                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
41584                ICoreWebView2_2_Impl::add_DOMContentLoaded(
41585                    this,
41586                    core::mem::transmute_copy(&eventhandler),
41587                    core::mem::transmute_copy(&token),
41588                )
41589                .into()
41590            }
41591        }
41592        unsafe extern "system" fn remove_DOMContentLoaded<
41593            Identity: ICoreWebView2_2_Impl,
41594            const OFFSET: isize,
41595        >(
41596            this: *mut core::ffi::c_void,
41597            token: i64,
41598        ) -> windows_core::HRESULT {
41599            unsafe {
41600                let this: &Identity =
41601                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
41602                ICoreWebView2_2_Impl::remove_DOMContentLoaded(
41603                    this,
41604                    core::mem::transmute_copy(&token),
41605                )
41606                .into()
41607            }
41608        }
41609        unsafe extern "system" fn CookieManager<
41610            Identity: ICoreWebView2_2_Impl,
41611            const OFFSET: isize,
41612        >(
41613            this: *mut core::ffi::c_void,
41614            cookiemanager: *mut *mut core::ffi::c_void,
41615        ) -> windows_core::HRESULT {
41616            unsafe {
41617                let this: &Identity =
41618                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
41619                match ICoreWebView2_2_Impl::CookieManager(this) {
41620                    Ok(ok__) => {
41621                        cookiemanager.write(core::mem::transmute(ok__));
41622                        windows_core::HRESULT(0)
41623                    }
41624                    Err(err) => err.into(),
41625                }
41626            }
41627        }
41628        unsafe extern "system" fn Environment<
41629            Identity: ICoreWebView2_2_Impl,
41630            const OFFSET: isize,
41631        >(
41632            this: *mut core::ffi::c_void,
41633            environment: *mut *mut core::ffi::c_void,
41634        ) -> windows_core::HRESULT {
41635            unsafe {
41636                let this: &Identity =
41637                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
41638                match ICoreWebView2_2_Impl::Environment(this) {
41639                    Ok(ok__) => {
41640                        environment.write(core::mem::transmute(ok__));
41641                        windows_core::HRESULT(0)
41642                    }
41643                    Err(err) => err.into(),
41644                }
41645            }
41646        }
41647        Self {
41648            base__: ICoreWebView2_Vtbl::new::<Identity, OFFSET>(),
41649            add_WebResourceResponseReceived: add_WebResourceResponseReceived::<Identity, OFFSET>,
41650            remove_WebResourceResponseReceived: remove_WebResourceResponseReceived::<
41651                Identity,
41652                OFFSET,
41653            >,
41654            NavigateWithWebResourceRequest: NavigateWithWebResourceRequest::<Identity, OFFSET>,
41655            add_DOMContentLoaded: add_DOMContentLoaded::<Identity, OFFSET>,
41656            remove_DOMContentLoaded: remove_DOMContentLoaded::<Identity, OFFSET>,
41657            CookieManager: CookieManager::<Identity, OFFSET>,
41658            Environment: Environment::<Identity, OFFSET>,
41659        }
41660    }
41661    pub fn matches(iid: &windows_core::GUID) -> bool {
41662        iid == &<ICoreWebView2_2 as windows_core::Interface>::IID
41663            || iid == &<ICoreWebView2 as windows_core::Interface>::IID
41664    }
41665}
41666impl windows_core::RuntimeName for ICoreWebView2_2 {}
41667windows_core::imp::define_interface!(
41668    ICoreWebView2_20,
41669    ICoreWebView2_20_Vtbl,
41670    0xb4bc1926_7305_11ee_b962_0242ac120002
41671);
41672impl core::ops::Deref for ICoreWebView2_20 {
41673    type Target = ICoreWebView2_19;
41674    fn deref(&self) -> &Self::Target {
41675        unsafe { core::mem::transmute(self) }
41676    }
41677}
41678windows_core::imp::interface_hierarchy!(
41679    ICoreWebView2_20,
41680    windows_core::IUnknown,
41681    ICoreWebView2,
41682    ICoreWebView2_2,
41683    ICoreWebView2_3,
41684    ICoreWebView2_4,
41685    ICoreWebView2_5,
41686    ICoreWebView2_6,
41687    ICoreWebView2_7,
41688    ICoreWebView2_8,
41689    ICoreWebView2_9,
41690    ICoreWebView2_10,
41691    ICoreWebView2_11,
41692    ICoreWebView2_12,
41693    ICoreWebView2_13,
41694    ICoreWebView2_14,
41695    ICoreWebView2_15,
41696    ICoreWebView2_16,
41697    ICoreWebView2_17,
41698    ICoreWebView2_18,
41699    ICoreWebView2_19
41700);
41701impl ICoreWebView2_20 {
41702    pub unsafe fn FrameId(&self, value: *mut u32) -> windows_core::Result<()> {
41703        unsafe {
41704            (windows_core::Interface::vtable(self).FrameId)(
41705                windows_core::Interface::as_raw(self),
41706                value as _,
41707            )
41708            .ok()
41709        }
41710    }
41711}
41712#[repr(C)]
41713#[doc(hidden)]
41714pub struct ICoreWebView2_20_Vtbl {
41715    pub base__: ICoreWebView2_19_Vtbl,
41716    pub FrameId:
41717        unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
41718}
41719pub trait ICoreWebView2_20_Impl: ICoreWebView2_19_Impl {
41720    fn FrameId(&self, value: *mut u32) -> windows_core::Result<()>;
41721}
41722impl ICoreWebView2_20_Vtbl {
41723    pub const fn new<Identity: ICoreWebView2_20_Impl, const OFFSET: isize>() -> Self {
41724        unsafe extern "system" fn FrameId<Identity: ICoreWebView2_20_Impl, const OFFSET: isize>(
41725            this: *mut core::ffi::c_void,
41726            value: *mut u32,
41727        ) -> windows_core::HRESULT {
41728            unsafe {
41729                let this: &Identity =
41730                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
41731                ICoreWebView2_20_Impl::FrameId(this, core::mem::transmute_copy(&value)).into()
41732            }
41733        }
41734        Self {
41735            base__: ICoreWebView2_19_Vtbl::new::<Identity, OFFSET>(),
41736            FrameId: FrameId::<Identity, OFFSET>,
41737        }
41738    }
41739    pub fn matches(iid: &windows_core::GUID) -> bool {
41740        iid == &<ICoreWebView2_20 as windows_core::Interface>::IID
41741            || iid == &<ICoreWebView2 as windows_core::Interface>::IID
41742            || iid == &<ICoreWebView2_2 as windows_core::Interface>::IID
41743            || iid == &<ICoreWebView2_3 as windows_core::Interface>::IID
41744            || iid == &<ICoreWebView2_4 as windows_core::Interface>::IID
41745            || iid == &<ICoreWebView2_5 as windows_core::Interface>::IID
41746            || iid == &<ICoreWebView2_6 as windows_core::Interface>::IID
41747            || iid == &<ICoreWebView2_7 as windows_core::Interface>::IID
41748            || iid == &<ICoreWebView2_8 as windows_core::Interface>::IID
41749            || iid == &<ICoreWebView2_9 as windows_core::Interface>::IID
41750            || iid == &<ICoreWebView2_10 as windows_core::Interface>::IID
41751            || iid == &<ICoreWebView2_11 as windows_core::Interface>::IID
41752            || iid == &<ICoreWebView2_12 as windows_core::Interface>::IID
41753            || iid == &<ICoreWebView2_13 as windows_core::Interface>::IID
41754            || iid == &<ICoreWebView2_14 as windows_core::Interface>::IID
41755            || iid == &<ICoreWebView2_15 as windows_core::Interface>::IID
41756            || iid == &<ICoreWebView2_16 as windows_core::Interface>::IID
41757            || iid == &<ICoreWebView2_17 as windows_core::Interface>::IID
41758            || iid == &<ICoreWebView2_18 as windows_core::Interface>::IID
41759            || iid == &<ICoreWebView2_19 as windows_core::Interface>::IID
41760    }
41761}
41762impl windows_core::RuntimeName for ICoreWebView2_20 {}
41763windows_core::imp::define_interface!(
41764    ICoreWebView2_21,
41765    ICoreWebView2_21_Vtbl,
41766    0xc4980dea_587b_43b9_8143_3ef3bf552d95
41767);
41768impl core::ops::Deref for ICoreWebView2_21 {
41769    type Target = ICoreWebView2_20;
41770    fn deref(&self) -> &Self::Target {
41771        unsafe { core::mem::transmute(self) }
41772    }
41773}
41774windows_core::imp::interface_hierarchy!(
41775    ICoreWebView2_21,
41776    windows_core::IUnknown,
41777    ICoreWebView2,
41778    ICoreWebView2_2,
41779    ICoreWebView2_3,
41780    ICoreWebView2_4,
41781    ICoreWebView2_5,
41782    ICoreWebView2_6,
41783    ICoreWebView2_7,
41784    ICoreWebView2_8,
41785    ICoreWebView2_9,
41786    ICoreWebView2_10,
41787    ICoreWebView2_11,
41788    ICoreWebView2_12,
41789    ICoreWebView2_13,
41790    ICoreWebView2_14,
41791    ICoreWebView2_15,
41792    ICoreWebView2_16,
41793    ICoreWebView2_17,
41794    ICoreWebView2_18,
41795    ICoreWebView2_19,
41796    ICoreWebView2_20
41797);
41798impl ICoreWebView2_21 {
41799    pub unsafe fn ExecuteScriptWithResult<P0, P1>(
41800        &self,
41801        javascript: P0,
41802        handler: P1,
41803    ) -> windows_core::Result<()>
41804    where
41805        P0: windows_core::Param<windows_core::PCWSTR>,
41806        P1: windows_core::Param<ICoreWebView2ExecuteScriptWithResultCompletedHandler>,
41807    {
41808        unsafe {
41809            (windows_core::Interface::vtable(self).ExecuteScriptWithResult)(
41810                windows_core::Interface::as_raw(self),
41811                javascript.param().abi(),
41812                handler.param().abi(),
41813            )
41814            .ok()
41815        }
41816    }
41817}
41818#[repr(C)]
41819#[doc(hidden)]
41820pub struct ICoreWebView2_21_Vtbl {
41821    pub base__: ICoreWebView2_20_Vtbl,
41822    pub ExecuteScriptWithResult: unsafe extern "system" fn(
41823        *mut core::ffi::c_void,
41824        windows_core::PCWSTR,
41825        *mut core::ffi::c_void,
41826    ) -> windows_core::HRESULT,
41827}
41828pub trait ICoreWebView2_21_Impl: ICoreWebView2_20_Impl {
41829    fn ExecuteScriptWithResult(
41830        &self,
41831        javascript: &windows_core::PCWSTR,
41832        handler: windows_core::Ref<ICoreWebView2ExecuteScriptWithResultCompletedHandler>,
41833    ) -> windows_core::Result<()>;
41834}
41835impl ICoreWebView2_21_Vtbl {
41836    pub const fn new<Identity: ICoreWebView2_21_Impl, const OFFSET: isize>() -> Self {
41837        unsafe extern "system" fn ExecuteScriptWithResult<
41838            Identity: ICoreWebView2_21_Impl,
41839            const OFFSET: isize,
41840        >(
41841            this: *mut core::ffi::c_void,
41842            javascript: windows_core::PCWSTR,
41843            handler: *mut core::ffi::c_void,
41844        ) -> windows_core::HRESULT {
41845            unsafe {
41846                let this: &Identity =
41847                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
41848                ICoreWebView2_21_Impl::ExecuteScriptWithResult(
41849                    this,
41850                    core::mem::transmute(&javascript),
41851                    core::mem::transmute_copy(&handler),
41852                )
41853                .into()
41854            }
41855        }
41856        Self {
41857            base__: ICoreWebView2_20_Vtbl::new::<Identity, OFFSET>(),
41858            ExecuteScriptWithResult: ExecuteScriptWithResult::<Identity, OFFSET>,
41859        }
41860    }
41861    pub fn matches(iid: &windows_core::GUID) -> bool {
41862        iid == &<ICoreWebView2_21 as windows_core::Interface>::IID
41863            || iid == &<ICoreWebView2 as windows_core::Interface>::IID
41864            || iid == &<ICoreWebView2_2 as windows_core::Interface>::IID
41865            || iid == &<ICoreWebView2_3 as windows_core::Interface>::IID
41866            || iid == &<ICoreWebView2_4 as windows_core::Interface>::IID
41867            || iid == &<ICoreWebView2_5 as windows_core::Interface>::IID
41868            || iid == &<ICoreWebView2_6 as windows_core::Interface>::IID
41869            || iid == &<ICoreWebView2_7 as windows_core::Interface>::IID
41870            || iid == &<ICoreWebView2_8 as windows_core::Interface>::IID
41871            || iid == &<ICoreWebView2_9 as windows_core::Interface>::IID
41872            || iid == &<ICoreWebView2_10 as windows_core::Interface>::IID
41873            || iid == &<ICoreWebView2_11 as windows_core::Interface>::IID
41874            || iid == &<ICoreWebView2_12 as windows_core::Interface>::IID
41875            || iid == &<ICoreWebView2_13 as windows_core::Interface>::IID
41876            || iid == &<ICoreWebView2_14 as windows_core::Interface>::IID
41877            || iid == &<ICoreWebView2_15 as windows_core::Interface>::IID
41878            || iid == &<ICoreWebView2_16 as windows_core::Interface>::IID
41879            || iid == &<ICoreWebView2_17 as windows_core::Interface>::IID
41880            || iid == &<ICoreWebView2_18 as windows_core::Interface>::IID
41881            || iid == &<ICoreWebView2_19 as windows_core::Interface>::IID
41882            || iid == &<ICoreWebView2_20 as windows_core::Interface>::IID
41883    }
41884}
41885impl windows_core::RuntimeName for ICoreWebView2_21 {}
41886windows_core::imp::define_interface!(
41887    ICoreWebView2_22,
41888    ICoreWebView2_22_Vtbl,
41889    0xdb75dfc7_a857_4632_a398_6969dde26c0a
41890);
41891impl core::ops::Deref for ICoreWebView2_22 {
41892    type Target = ICoreWebView2_21;
41893    fn deref(&self) -> &Self::Target {
41894        unsafe { core::mem::transmute(self) }
41895    }
41896}
41897windows_core::imp::interface_hierarchy!(
41898    ICoreWebView2_22,
41899    windows_core::IUnknown,
41900    ICoreWebView2,
41901    ICoreWebView2_2,
41902    ICoreWebView2_3,
41903    ICoreWebView2_4,
41904    ICoreWebView2_5,
41905    ICoreWebView2_6,
41906    ICoreWebView2_7,
41907    ICoreWebView2_8,
41908    ICoreWebView2_9,
41909    ICoreWebView2_10,
41910    ICoreWebView2_11,
41911    ICoreWebView2_12,
41912    ICoreWebView2_13,
41913    ICoreWebView2_14,
41914    ICoreWebView2_15,
41915    ICoreWebView2_16,
41916    ICoreWebView2_17,
41917    ICoreWebView2_18,
41918    ICoreWebView2_19,
41919    ICoreWebView2_20,
41920    ICoreWebView2_21
41921);
41922impl ICoreWebView2_22 {
41923    pub unsafe fn AddWebResourceRequestedFilterWithRequestSourceKinds<P0>(
41924        &self,
41925        uri: P0,
41926        resourcecontext: COREWEBVIEW2_WEB_RESOURCE_CONTEXT,
41927        requestsourcekinds: COREWEBVIEW2_WEB_RESOURCE_REQUEST_SOURCE_KINDS,
41928    ) -> windows_core::Result<()>
41929    where
41930        P0: windows_core::Param<windows_core::PCWSTR>,
41931    {
41932        unsafe {
41933            (windows_core::Interface::vtable(self)
41934                .AddWebResourceRequestedFilterWithRequestSourceKinds)(
41935                windows_core::Interface::as_raw(self),
41936                uri.param().abi(),
41937                resourcecontext,
41938                requestsourcekinds,
41939            )
41940            .ok()
41941        }
41942    }
41943    pub unsafe fn RemoveWebResourceRequestedFilterWithRequestSourceKinds<P0>(
41944        &self,
41945        uri: P0,
41946        resourcecontext: COREWEBVIEW2_WEB_RESOURCE_CONTEXT,
41947        requestsourcekinds: COREWEBVIEW2_WEB_RESOURCE_REQUEST_SOURCE_KINDS,
41948    ) -> windows_core::Result<()>
41949    where
41950        P0: windows_core::Param<windows_core::PCWSTR>,
41951    {
41952        unsafe {
41953            (windows_core::Interface::vtable(self)
41954                .RemoveWebResourceRequestedFilterWithRequestSourceKinds)(
41955                windows_core::Interface::as_raw(self),
41956                uri.param().abi(),
41957                resourcecontext,
41958                requestsourcekinds,
41959            )
41960            .ok()
41961        }
41962    }
41963}
41964#[repr(C)]
41965#[doc(hidden)]
41966pub struct ICoreWebView2_22_Vtbl {
41967    pub base__: ICoreWebView2_21_Vtbl,
41968    pub AddWebResourceRequestedFilterWithRequestSourceKinds:
41969        unsafe extern "system" fn(
41970            *mut core::ffi::c_void,
41971            windows_core::PCWSTR,
41972            COREWEBVIEW2_WEB_RESOURCE_CONTEXT,
41973            COREWEBVIEW2_WEB_RESOURCE_REQUEST_SOURCE_KINDS,
41974        ) -> windows_core::HRESULT,
41975    pub RemoveWebResourceRequestedFilterWithRequestSourceKinds:
41976        unsafe extern "system" fn(
41977            *mut core::ffi::c_void,
41978            windows_core::PCWSTR,
41979            COREWEBVIEW2_WEB_RESOURCE_CONTEXT,
41980            COREWEBVIEW2_WEB_RESOURCE_REQUEST_SOURCE_KINDS,
41981        ) -> windows_core::HRESULT,
41982}
41983pub trait ICoreWebView2_22_Impl: ICoreWebView2_21_Impl {
41984    fn AddWebResourceRequestedFilterWithRequestSourceKinds(
41985        &self,
41986        uri: &windows_core::PCWSTR,
41987        resourcecontext: COREWEBVIEW2_WEB_RESOURCE_CONTEXT,
41988        requestsourcekinds: COREWEBVIEW2_WEB_RESOURCE_REQUEST_SOURCE_KINDS,
41989    ) -> windows_core::Result<()>;
41990    fn RemoveWebResourceRequestedFilterWithRequestSourceKinds(
41991        &self,
41992        uri: &windows_core::PCWSTR,
41993        resourcecontext: COREWEBVIEW2_WEB_RESOURCE_CONTEXT,
41994        requestsourcekinds: COREWEBVIEW2_WEB_RESOURCE_REQUEST_SOURCE_KINDS,
41995    ) -> windows_core::Result<()>;
41996}
41997impl ICoreWebView2_22_Vtbl {
41998    pub const fn new<Identity: ICoreWebView2_22_Impl, const OFFSET: isize>() -> Self {
41999        unsafe extern "system" fn AddWebResourceRequestedFilterWithRequestSourceKinds<
42000            Identity: ICoreWebView2_22_Impl,
42001            const OFFSET: isize,
42002        >(
42003            this: *mut core::ffi::c_void,
42004            uri: windows_core::PCWSTR,
42005            resourcecontext: COREWEBVIEW2_WEB_RESOURCE_CONTEXT,
42006            requestsourcekinds: COREWEBVIEW2_WEB_RESOURCE_REQUEST_SOURCE_KINDS,
42007        ) -> windows_core::HRESULT {
42008            unsafe {
42009                let this: &Identity =
42010                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
42011                ICoreWebView2_22_Impl::AddWebResourceRequestedFilterWithRequestSourceKinds(
42012                    this,
42013                    core::mem::transmute(&uri),
42014                    core::mem::transmute_copy(&resourcecontext),
42015                    core::mem::transmute_copy(&requestsourcekinds),
42016                )
42017                .into()
42018            }
42019        }
42020        unsafe extern "system" fn RemoveWebResourceRequestedFilterWithRequestSourceKinds<
42021            Identity: ICoreWebView2_22_Impl,
42022            const OFFSET: isize,
42023        >(
42024            this: *mut core::ffi::c_void,
42025            uri: windows_core::PCWSTR,
42026            resourcecontext: COREWEBVIEW2_WEB_RESOURCE_CONTEXT,
42027            requestsourcekinds: COREWEBVIEW2_WEB_RESOURCE_REQUEST_SOURCE_KINDS,
42028        ) -> windows_core::HRESULT {
42029            unsafe {
42030                let this: &Identity =
42031                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
42032                ICoreWebView2_22_Impl::RemoveWebResourceRequestedFilterWithRequestSourceKinds(
42033                    this,
42034                    core::mem::transmute(&uri),
42035                    core::mem::transmute_copy(&resourcecontext),
42036                    core::mem::transmute_copy(&requestsourcekinds),
42037                )
42038                .into()
42039            }
42040        }
42041        Self {
42042            base__: ICoreWebView2_21_Vtbl::new::<Identity, OFFSET>(),
42043            AddWebResourceRequestedFilterWithRequestSourceKinds:
42044                AddWebResourceRequestedFilterWithRequestSourceKinds::<Identity, OFFSET>,
42045            RemoveWebResourceRequestedFilterWithRequestSourceKinds:
42046                RemoveWebResourceRequestedFilterWithRequestSourceKinds::<Identity, OFFSET>,
42047        }
42048    }
42049    pub fn matches(iid: &windows_core::GUID) -> bool {
42050        iid == &<ICoreWebView2_22 as windows_core::Interface>::IID
42051            || iid == &<ICoreWebView2 as windows_core::Interface>::IID
42052            || iid == &<ICoreWebView2_2 as windows_core::Interface>::IID
42053            || iid == &<ICoreWebView2_3 as windows_core::Interface>::IID
42054            || iid == &<ICoreWebView2_4 as windows_core::Interface>::IID
42055            || iid == &<ICoreWebView2_5 as windows_core::Interface>::IID
42056            || iid == &<ICoreWebView2_6 as windows_core::Interface>::IID
42057            || iid == &<ICoreWebView2_7 as windows_core::Interface>::IID
42058            || iid == &<ICoreWebView2_8 as windows_core::Interface>::IID
42059            || iid == &<ICoreWebView2_9 as windows_core::Interface>::IID
42060            || iid == &<ICoreWebView2_10 as windows_core::Interface>::IID
42061            || iid == &<ICoreWebView2_11 as windows_core::Interface>::IID
42062            || iid == &<ICoreWebView2_12 as windows_core::Interface>::IID
42063            || iid == &<ICoreWebView2_13 as windows_core::Interface>::IID
42064            || iid == &<ICoreWebView2_14 as windows_core::Interface>::IID
42065            || iid == &<ICoreWebView2_15 as windows_core::Interface>::IID
42066            || iid == &<ICoreWebView2_16 as windows_core::Interface>::IID
42067            || iid == &<ICoreWebView2_17 as windows_core::Interface>::IID
42068            || iid == &<ICoreWebView2_18 as windows_core::Interface>::IID
42069            || iid == &<ICoreWebView2_19 as windows_core::Interface>::IID
42070            || iid == &<ICoreWebView2_20 as windows_core::Interface>::IID
42071            || iid == &<ICoreWebView2_21 as windows_core::Interface>::IID
42072    }
42073}
42074impl windows_core::RuntimeName for ICoreWebView2_22 {}
42075windows_core::imp::define_interface!(
42076    ICoreWebView2_23,
42077    ICoreWebView2_23_Vtbl,
42078    0x508f0db5_90c4_5872_90a7_267a91377502
42079);
42080impl core::ops::Deref for ICoreWebView2_23 {
42081    type Target = ICoreWebView2_22;
42082    fn deref(&self) -> &Self::Target {
42083        unsafe { core::mem::transmute(self) }
42084    }
42085}
42086windows_core::imp::interface_hierarchy!(
42087    ICoreWebView2_23,
42088    windows_core::IUnknown,
42089    ICoreWebView2,
42090    ICoreWebView2_2,
42091    ICoreWebView2_3,
42092    ICoreWebView2_4,
42093    ICoreWebView2_5,
42094    ICoreWebView2_6,
42095    ICoreWebView2_7,
42096    ICoreWebView2_8,
42097    ICoreWebView2_9,
42098    ICoreWebView2_10,
42099    ICoreWebView2_11,
42100    ICoreWebView2_12,
42101    ICoreWebView2_13,
42102    ICoreWebView2_14,
42103    ICoreWebView2_15,
42104    ICoreWebView2_16,
42105    ICoreWebView2_17,
42106    ICoreWebView2_18,
42107    ICoreWebView2_19,
42108    ICoreWebView2_20,
42109    ICoreWebView2_21,
42110    ICoreWebView2_22
42111);
42112impl ICoreWebView2_23 {
42113    pub unsafe fn PostWebMessageAsJsonWithAdditionalObjects<P0, P1>(
42114        &self,
42115        webmessageasjson: P0,
42116        additionalobjects: P1,
42117    ) -> windows_core::Result<()>
42118    where
42119        P0: windows_core::Param<windows_core::PCWSTR>,
42120        P1: windows_core::Param<ICoreWebView2ObjectCollectionView>,
42121    {
42122        unsafe {
42123            (windows_core::Interface::vtable(self).PostWebMessageAsJsonWithAdditionalObjects)(
42124                windows_core::Interface::as_raw(self),
42125                webmessageasjson.param().abi(),
42126                additionalobjects.param().abi(),
42127            )
42128            .ok()
42129        }
42130    }
42131}
42132#[repr(C)]
42133#[doc(hidden)]
42134pub struct ICoreWebView2_23_Vtbl {
42135    pub base__: ICoreWebView2_22_Vtbl,
42136    pub PostWebMessageAsJsonWithAdditionalObjects:
42137        unsafe extern "system" fn(
42138            *mut core::ffi::c_void,
42139            windows_core::PCWSTR,
42140            *mut core::ffi::c_void,
42141        ) -> windows_core::HRESULT,
42142}
42143pub trait ICoreWebView2_23_Impl: ICoreWebView2_22_Impl {
42144    fn PostWebMessageAsJsonWithAdditionalObjects(
42145        &self,
42146        webmessageasjson: &windows_core::PCWSTR,
42147        additionalobjects: windows_core::Ref<ICoreWebView2ObjectCollectionView>,
42148    ) -> windows_core::Result<()>;
42149}
42150impl ICoreWebView2_23_Vtbl {
42151    pub const fn new<Identity: ICoreWebView2_23_Impl, const OFFSET: isize>() -> Self {
42152        unsafe extern "system" fn PostWebMessageAsJsonWithAdditionalObjects<
42153            Identity: ICoreWebView2_23_Impl,
42154            const OFFSET: isize,
42155        >(
42156            this: *mut core::ffi::c_void,
42157            webmessageasjson: windows_core::PCWSTR,
42158            additionalobjects: *mut core::ffi::c_void,
42159        ) -> windows_core::HRESULT {
42160            unsafe {
42161                let this: &Identity =
42162                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
42163                ICoreWebView2_23_Impl::PostWebMessageAsJsonWithAdditionalObjects(
42164                    this,
42165                    core::mem::transmute(&webmessageasjson),
42166                    core::mem::transmute_copy(&additionalobjects),
42167                )
42168                .into()
42169            }
42170        }
42171        Self {
42172            base__: ICoreWebView2_22_Vtbl::new::<Identity, OFFSET>(),
42173            PostWebMessageAsJsonWithAdditionalObjects: PostWebMessageAsJsonWithAdditionalObjects::<
42174                Identity,
42175                OFFSET,
42176            >,
42177        }
42178    }
42179    pub fn matches(iid: &windows_core::GUID) -> bool {
42180        iid == &<ICoreWebView2_23 as windows_core::Interface>::IID
42181            || iid == &<ICoreWebView2 as windows_core::Interface>::IID
42182            || iid == &<ICoreWebView2_2 as windows_core::Interface>::IID
42183            || iid == &<ICoreWebView2_3 as windows_core::Interface>::IID
42184            || iid == &<ICoreWebView2_4 as windows_core::Interface>::IID
42185            || iid == &<ICoreWebView2_5 as windows_core::Interface>::IID
42186            || iid == &<ICoreWebView2_6 as windows_core::Interface>::IID
42187            || iid == &<ICoreWebView2_7 as windows_core::Interface>::IID
42188            || iid == &<ICoreWebView2_8 as windows_core::Interface>::IID
42189            || iid == &<ICoreWebView2_9 as windows_core::Interface>::IID
42190            || iid == &<ICoreWebView2_10 as windows_core::Interface>::IID
42191            || iid == &<ICoreWebView2_11 as windows_core::Interface>::IID
42192            || iid == &<ICoreWebView2_12 as windows_core::Interface>::IID
42193            || iid == &<ICoreWebView2_13 as windows_core::Interface>::IID
42194            || iid == &<ICoreWebView2_14 as windows_core::Interface>::IID
42195            || iid == &<ICoreWebView2_15 as windows_core::Interface>::IID
42196            || iid == &<ICoreWebView2_16 as windows_core::Interface>::IID
42197            || iid == &<ICoreWebView2_17 as windows_core::Interface>::IID
42198            || iid == &<ICoreWebView2_18 as windows_core::Interface>::IID
42199            || iid == &<ICoreWebView2_19 as windows_core::Interface>::IID
42200            || iid == &<ICoreWebView2_20 as windows_core::Interface>::IID
42201            || iid == &<ICoreWebView2_21 as windows_core::Interface>::IID
42202            || iid == &<ICoreWebView2_22 as windows_core::Interface>::IID
42203    }
42204}
42205impl windows_core::RuntimeName for ICoreWebView2_23 {}
42206windows_core::imp::define_interface!(
42207    ICoreWebView2_24,
42208    ICoreWebView2_24_Vtbl,
42209    0x39a7ad55_4287_5cc1_88a1_c6f458593824
42210);
42211impl core::ops::Deref for ICoreWebView2_24 {
42212    type Target = ICoreWebView2_23;
42213    fn deref(&self) -> &Self::Target {
42214        unsafe { core::mem::transmute(self) }
42215    }
42216}
42217windows_core::imp::interface_hierarchy!(
42218    ICoreWebView2_24,
42219    windows_core::IUnknown,
42220    ICoreWebView2,
42221    ICoreWebView2_2,
42222    ICoreWebView2_3,
42223    ICoreWebView2_4,
42224    ICoreWebView2_5,
42225    ICoreWebView2_6,
42226    ICoreWebView2_7,
42227    ICoreWebView2_8,
42228    ICoreWebView2_9,
42229    ICoreWebView2_10,
42230    ICoreWebView2_11,
42231    ICoreWebView2_12,
42232    ICoreWebView2_13,
42233    ICoreWebView2_14,
42234    ICoreWebView2_15,
42235    ICoreWebView2_16,
42236    ICoreWebView2_17,
42237    ICoreWebView2_18,
42238    ICoreWebView2_19,
42239    ICoreWebView2_20,
42240    ICoreWebView2_21,
42241    ICoreWebView2_22,
42242    ICoreWebView2_23
42243);
42244impl ICoreWebView2_24 {
42245    pub unsafe fn add_NotificationReceived<P0>(
42246        &self,
42247        eventhandler: P0,
42248        token: *mut i64,
42249    ) -> windows_core::Result<()>
42250    where
42251        P0: windows_core::Param<ICoreWebView2NotificationReceivedEventHandler>,
42252    {
42253        unsafe {
42254            (windows_core::Interface::vtable(self).add_NotificationReceived)(
42255                windows_core::Interface::as_raw(self),
42256                eventhandler.param().abi(),
42257                token as _,
42258            )
42259            .ok()
42260        }
42261    }
42262    pub unsafe fn remove_NotificationReceived(&self, token: i64) -> windows_core::Result<()> {
42263        unsafe {
42264            (windows_core::Interface::vtable(self).remove_NotificationReceived)(
42265                windows_core::Interface::as_raw(self),
42266                token,
42267            )
42268            .ok()
42269        }
42270    }
42271}
42272#[repr(C)]
42273#[doc(hidden)]
42274pub struct ICoreWebView2_24_Vtbl {
42275    pub base__: ICoreWebView2_23_Vtbl,
42276    pub add_NotificationReceived: unsafe extern "system" fn(
42277        *mut core::ffi::c_void,
42278        *mut core::ffi::c_void,
42279        *mut i64,
42280    ) -> windows_core::HRESULT,
42281    pub remove_NotificationReceived:
42282        unsafe extern "system" fn(*mut core::ffi::c_void, i64) -> windows_core::HRESULT,
42283}
42284pub trait ICoreWebView2_24_Impl: ICoreWebView2_23_Impl {
42285    fn add_NotificationReceived(
42286        &self,
42287        eventhandler: windows_core::Ref<ICoreWebView2NotificationReceivedEventHandler>,
42288        token: *mut i64,
42289    ) -> windows_core::Result<()>;
42290    fn remove_NotificationReceived(&self, token: i64) -> windows_core::Result<()>;
42291}
42292impl ICoreWebView2_24_Vtbl {
42293    pub const fn new<Identity: ICoreWebView2_24_Impl, const OFFSET: isize>() -> Self {
42294        unsafe extern "system" fn add_NotificationReceived<
42295            Identity: ICoreWebView2_24_Impl,
42296            const OFFSET: isize,
42297        >(
42298            this: *mut core::ffi::c_void,
42299            eventhandler: *mut core::ffi::c_void,
42300            token: *mut i64,
42301        ) -> windows_core::HRESULT {
42302            unsafe {
42303                let this: &Identity =
42304                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
42305                ICoreWebView2_24_Impl::add_NotificationReceived(
42306                    this,
42307                    core::mem::transmute_copy(&eventhandler),
42308                    core::mem::transmute_copy(&token),
42309                )
42310                .into()
42311            }
42312        }
42313        unsafe extern "system" fn remove_NotificationReceived<
42314            Identity: ICoreWebView2_24_Impl,
42315            const OFFSET: isize,
42316        >(
42317            this: *mut core::ffi::c_void,
42318            token: i64,
42319        ) -> windows_core::HRESULT {
42320            unsafe {
42321                let this: &Identity =
42322                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
42323                ICoreWebView2_24_Impl::remove_NotificationReceived(
42324                    this,
42325                    core::mem::transmute_copy(&token),
42326                )
42327                .into()
42328            }
42329        }
42330        Self {
42331            base__: ICoreWebView2_23_Vtbl::new::<Identity, OFFSET>(),
42332            add_NotificationReceived: add_NotificationReceived::<Identity, OFFSET>,
42333            remove_NotificationReceived: remove_NotificationReceived::<Identity, OFFSET>,
42334        }
42335    }
42336    pub fn matches(iid: &windows_core::GUID) -> bool {
42337        iid == &<ICoreWebView2_24 as windows_core::Interface>::IID
42338            || iid == &<ICoreWebView2 as windows_core::Interface>::IID
42339            || iid == &<ICoreWebView2_2 as windows_core::Interface>::IID
42340            || iid == &<ICoreWebView2_3 as windows_core::Interface>::IID
42341            || iid == &<ICoreWebView2_4 as windows_core::Interface>::IID
42342            || iid == &<ICoreWebView2_5 as windows_core::Interface>::IID
42343            || iid == &<ICoreWebView2_6 as windows_core::Interface>::IID
42344            || iid == &<ICoreWebView2_7 as windows_core::Interface>::IID
42345            || iid == &<ICoreWebView2_8 as windows_core::Interface>::IID
42346            || iid == &<ICoreWebView2_9 as windows_core::Interface>::IID
42347            || iid == &<ICoreWebView2_10 as windows_core::Interface>::IID
42348            || iid == &<ICoreWebView2_11 as windows_core::Interface>::IID
42349            || iid == &<ICoreWebView2_12 as windows_core::Interface>::IID
42350            || iid == &<ICoreWebView2_13 as windows_core::Interface>::IID
42351            || iid == &<ICoreWebView2_14 as windows_core::Interface>::IID
42352            || iid == &<ICoreWebView2_15 as windows_core::Interface>::IID
42353            || iid == &<ICoreWebView2_16 as windows_core::Interface>::IID
42354            || iid == &<ICoreWebView2_17 as windows_core::Interface>::IID
42355            || iid == &<ICoreWebView2_18 as windows_core::Interface>::IID
42356            || iid == &<ICoreWebView2_19 as windows_core::Interface>::IID
42357            || iid == &<ICoreWebView2_20 as windows_core::Interface>::IID
42358            || iid == &<ICoreWebView2_21 as windows_core::Interface>::IID
42359            || iid == &<ICoreWebView2_22 as windows_core::Interface>::IID
42360            || iid == &<ICoreWebView2_23 as windows_core::Interface>::IID
42361    }
42362}
42363impl windows_core::RuntimeName for ICoreWebView2_24 {}
42364windows_core::imp::define_interface!(
42365    ICoreWebView2_25,
42366    ICoreWebView2_25_Vtbl,
42367    0xb5a86092_df50_5b4f_a17b_6c8f8b40b771
42368);
42369impl core::ops::Deref for ICoreWebView2_25 {
42370    type Target = ICoreWebView2_24;
42371    fn deref(&self) -> &Self::Target {
42372        unsafe { core::mem::transmute(self) }
42373    }
42374}
42375windows_core::imp::interface_hierarchy!(
42376    ICoreWebView2_25,
42377    windows_core::IUnknown,
42378    ICoreWebView2,
42379    ICoreWebView2_2,
42380    ICoreWebView2_3,
42381    ICoreWebView2_4,
42382    ICoreWebView2_5,
42383    ICoreWebView2_6,
42384    ICoreWebView2_7,
42385    ICoreWebView2_8,
42386    ICoreWebView2_9,
42387    ICoreWebView2_10,
42388    ICoreWebView2_11,
42389    ICoreWebView2_12,
42390    ICoreWebView2_13,
42391    ICoreWebView2_14,
42392    ICoreWebView2_15,
42393    ICoreWebView2_16,
42394    ICoreWebView2_17,
42395    ICoreWebView2_18,
42396    ICoreWebView2_19,
42397    ICoreWebView2_20,
42398    ICoreWebView2_21,
42399    ICoreWebView2_22,
42400    ICoreWebView2_23,
42401    ICoreWebView2_24
42402);
42403impl ICoreWebView2_25 {
42404    pub unsafe fn add_SaveAsUIShowing<P0>(
42405        &self,
42406        eventhandler: P0,
42407        token: *mut i64,
42408    ) -> windows_core::Result<()>
42409    where
42410        P0: windows_core::Param<ICoreWebView2SaveAsUIShowingEventHandler>,
42411    {
42412        unsafe {
42413            (windows_core::Interface::vtable(self).add_SaveAsUIShowing)(
42414                windows_core::Interface::as_raw(self),
42415                eventhandler.param().abi(),
42416                token as _,
42417            )
42418            .ok()
42419        }
42420    }
42421    pub unsafe fn remove_SaveAsUIShowing(&self, token: i64) -> windows_core::Result<()> {
42422        unsafe {
42423            (windows_core::Interface::vtable(self).remove_SaveAsUIShowing)(
42424                windows_core::Interface::as_raw(self),
42425                token,
42426            )
42427            .ok()
42428        }
42429    }
42430    pub unsafe fn ShowSaveAsUI<P0>(&self, handler: P0) -> windows_core::Result<()>
42431    where
42432        P0: windows_core::Param<ICoreWebView2ShowSaveAsUICompletedHandler>,
42433    {
42434        unsafe {
42435            (windows_core::Interface::vtable(self).ShowSaveAsUI)(
42436                windows_core::Interface::as_raw(self),
42437                handler.param().abi(),
42438            )
42439            .ok()
42440        }
42441    }
42442}
42443#[repr(C)]
42444#[doc(hidden)]
42445pub struct ICoreWebView2_25_Vtbl {
42446    pub base__: ICoreWebView2_24_Vtbl,
42447    pub add_SaveAsUIShowing: unsafe extern "system" fn(
42448        *mut core::ffi::c_void,
42449        *mut core::ffi::c_void,
42450        *mut i64,
42451    ) -> windows_core::HRESULT,
42452    pub remove_SaveAsUIShowing:
42453        unsafe extern "system" fn(*mut core::ffi::c_void, i64) -> windows_core::HRESULT,
42454    pub ShowSaveAsUI: unsafe extern "system" fn(
42455        *mut core::ffi::c_void,
42456        *mut core::ffi::c_void,
42457    ) -> windows_core::HRESULT,
42458}
42459pub trait ICoreWebView2_25_Impl: ICoreWebView2_24_Impl {
42460    fn add_SaveAsUIShowing(
42461        &self,
42462        eventhandler: windows_core::Ref<ICoreWebView2SaveAsUIShowingEventHandler>,
42463        token: *mut i64,
42464    ) -> windows_core::Result<()>;
42465    fn remove_SaveAsUIShowing(&self, token: i64) -> windows_core::Result<()>;
42466    fn ShowSaveAsUI(
42467        &self,
42468        handler: windows_core::Ref<ICoreWebView2ShowSaveAsUICompletedHandler>,
42469    ) -> windows_core::Result<()>;
42470}
42471impl ICoreWebView2_25_Vtbl {
42472    pub const fn new<Identity: ICoreWebView2_25_Impl, const OFFSET: isize>() -> Self {
42473        unsafe extern "system" fn add_SaveAsUIShowing<
42474            Identity: ICoreWebView2_25_Impl,
42475            const OFFSET: isize,
42476        >(
42477            this: *mut core::ffi::c_void,
42478            eventhandler: *mut core::ffi::c_void,
42479            token: *mut i64,
42480        ) -> windows_core::HRESULT {
42481            unsafe {
42482                let this: &Identity =
42483                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
42484                ICoreWebView2_25_Impl::add_SaveAsUIShowing(
42485                    this,
42486                    core::mem::transmute_copy(&eventhandler),
42487                    core::mem::transmute_copy(&token),
42488                )
42489                .into()
42490            }
42491        }
42492        unsafe extern "system" fn remove_SaveAsUIShowing<
42493            Identity: ICoreWebView2_25_Impl,
42494            const OFFSET: isize,
42495        >(
42496            this: *mut core::ffi::c_void,
42497            token: i64,
42498        ) -> windows_core::HRESULT {
42499            unsafe {
42500                let this: &Identity =
42501                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
42502                ICoreWebView2_25_Impl::remove_SaveAsUIShowing(
42503                    this,
42504                    core::mem::transmute_copy(&token),
42505                )
42506                .into()
42507            }
42508        }
42509        unsafe extern "system" fn ShowSaveAsUI<
42510            Identity: ICoreWebView2_25_Impl,
42511            const OFFSET: isize,
42512        >(
42513            this: *mut core::ffi::c_void,
42514            handler: *mut core::ffi::c_void,
42515        ) -> windows_core::HRESULT {
42516            unsafe {
42517                let this: &Identity =
42518                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
42519                ICoreWebView2_25_Impl::ShowSaveAsUI(this, core::mem::transmute_copy(&handler))
42520                    .into()
42521            }
42522        }
42523        Self {
42524            base__: ICoreWebView2_24_Vtbl::new::<Identity, OFFSET>(),
42525            add_SaveAsUIShowing: add_SaveAsUIShowing::<Identity, OFFSET>,
42526            remove_SaveAsUIShowing: remove_SaveAsUIShowing::<Identity, OFFSET>,
42527            ShowSaveAsUI: ShowSaveAsUI::<Identity, OFFSET>,
42528        }
42529    }
42530    pub fn matches(iid: &windows_core::GUID) -> bool {
42531        iid == &<ICoreWebView2_25 as windows_core::Interface>::IID
42532            || iid == &<ICoreWebView2 as windows_core::Interface>::IID
42533            || iid == &<ICoreWebView2_2 as windows_core::Interface>::IID
42534            || iid == &<ICoreWebView2_3 as windows_core::Interface>::IID
42535            || iid == &<ICoreWebView2_4 as windows_core::Interface>::IID
42536            || iid == &<ICoreWebView2_5 as windows_core::Interface>::IID
42537            || iid == &<ICoreWebView2_6 as windows_core::Interface>::IID
42538            || iid == &<ICoreWebView2_7 as windows_core::Interface>::IID
42539            || iid == &<ICoreWebView2_8 as windows_core::Interface>::IID
42540            || iid == &<ICoreWebView2_9 as windows_core::Interface>::IID
42541            || iid == &<ICoreWebView2_10 as windows_core::Interface>::IID
42542            || iid == &<ICoreWebView2_11 as windows_core::Interface>::IID
42543            || iid == &<ICoreWebView2_12 as windows_core::Interface>::IID
42544            || iid == &<ICoreWebView2_13 as windows_core::Interface>::IID
42545            || iid == &<ICoreWebView2_14 as windows_core::Interface>::IID
42546            || iid == &<ICoreWebView2_15 as windows_core::Interface>::IID
42547            || iid == &<ICoreWebView2_16 as windows_core::Interface>::IID
42548            || iid == &<ICoreWebView2_17 as windows_core::Interface>::IID
42549            || iid == &<ICoreWebView2_18 as windows_core::Interface>::IID
42550            || iid == &<ICoreWebView2_19 as windows_core::Interface>::IID
42551            || iid == &<ICoreWebView2_20 as windows_core::Interface>::IID
42552            || iid == &<ICoreWebView2_21 as windows_core::Interface>::IID
42553            || iid == &<ICoreWebView2_22 as windows_core::Interface>::IID
42554            || iid == &<ICoreWebView2_23 as windows_core::Interface>::IID
42555            || iid == &<ICoreWebView2_24 as windows_core::Interface>::IID
42556    }
42557}
42558impl windows_core::RuntimeName for ICoreWebView2_25 {}
42559windows_core::imp::define_interface!(
42560    ICoreWebView2_26,
42561    ICoreWebView2_26_Vtbl,
42562    0x806268b8_f897_5685_88e5_c45fca0b1a48
42563);
42564impl core::ops::Deref for ICoreWebView2_26 {
42565    type Target = ICoreWebView2_25;
42566    fn deref(&self) -> &Self::Target {
42567        unsafe { core::mem::transmute(self) }
42568    }
42569}
42570windows_core::imp::interface_hierarchy!(
42571    ICoreWebView2_26,
42572    windows_core::IUnknown,
42573    ICoreWebView2,
42574    ICoreWebView2_2,
42575    ICoreWebView2_3,
42576    ICoreWebView2_4,
42577    ICoreWebView2_5,
42578    ICoreWebView2_6,
42579    ICoreWebView2_7,
42580    ICoreWebView2_8,
42581    ICoreWebView2_9,
42582    ICoreWebView2_10,
42583    ICoreWebView2_11,
42584    ICoreWebView2_12,
42585    ICoreWebView2_13,
42586    ICoreWebView2_14,
42587    ICoreWebView2_15,
42588    ICoreWebView2_16,
42589    ICoreWebView2_17,
42590    ICoreWebView2_18,
42591    ICoreWebView2_19,
42592    ICoreWebView2_20,
42593    ICoreWebView2_21,
42594    ICoreWebView2_22,
42595    ICoreWebView2_23,
42596    ICoreWebView2_24,
42597    ICoreWebView2_25
42598);
42599impl ICoreWebView2_26 {
42600    pub unsafe fn add_SaveFileSecurityCheckStarting<P0>(
42601        &self,
42602        eventhandler: P0,
42603        token: *mut i64,
42604    ) -> windows_core::Result<()>
42605    where
42606        P0: windows_core::Param<ICoreWebView2SaveFileSecurityCheckStartingEventHandler>,
42607    {
42608        unsafe {
42609            (windows_core::Interface::vtable(self).add_SaveFileSecurityCheckStarting)(
42610                windows_core::Interface::as_raw(self),
42611                eventhandler.param().abi(),
42612                token as _,
42613            )
42614            .ok()
42615        }
42616    }
42617    pub unsafe fn remove_SaveFileSecurityCheckStarting(
42618        &self,
42619        token: i64,
42620    ) -> windows_core::Result<()> {
42621        unsafe {
42622            (windows_core::Interface::vtable(self).remove_SaveFileSecurityCheckStarting)(
42623                windows_core::Interface::as_raw(self),
42624                token,
42625            )
42626            .ok()
42627        }
42628    }
42629}
42630#[repr(C)]
42631#[doc(hidden)]
42632pub struct ICoreWebView2_26_Vtbl {
42633    pub base__: ICoreWebView2_25_Vtbl,
42634    pub add_SaveFileSecurityCheckStarting: unsafe extern "system" fn(
42635        *mut core::ffi::c_void,
42636        *mut core::ffi::c_void,
42637        *mut i64,
42638    ) -> windows_core::HRESULT,
42639    pub remove_SaveFileSecurityCheckStarting:
42640        unsafe extern "system" fn(*mut core::ffi::c_void, i64) -> windows_core::HRESULT,
42641}
42642pub trait ICoreWebView2_26_Impl: ICoreWebView2_25_Impl {
42643    fn add_SaveFileSecurityCheckStarting(
42644        &self,
42645        eventhandler: windows_core::Ref<ICoreWebView2SaveFileSecurityCheckStartingEventHandler>,
42646        token: *mut i64,
42647    ) -> windows_core::Result<()>;
42648    fn remove_SaveFileSecurityCheckStarting(&self, token: i64) -> windows_core::Result<()>;
42649}
42650impl ICoreWebView2_26_Vtbl {
42651    pub const fn new<Identity: ICoreWebView2_26_Impl, const OFFSET: isize>() -> Self {
42652        unsafe extern "system" fn add_SaveFileSecurityCheckStarting<
42653            Identity: ICoreWebView2_26_Impl,
42654            const OFFSET: isize,
42655        >(
42656            this: *mut core::ffi::c_void,
42657            eventhandler: *mut core::ffi::c_void,
42658            token: *mut i64,
42659        ) -> windows_core::HRESULT {
42660            unsafe {
42661                let this: &Identity =
42662                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
42663                ICoreWebView2_26_Impl::add_SaveFileSecurityCheckStarting(
42664                    this,
42665                    core::mem::transmute_copy(&eventhandler),
42666                    core::mem::transmute_copy(&token),
42667                )
42668                .into()
42669            }
42670        }
42671        unsafe extern "system" fn remove_SaveFileSecurityCheckStarting<
42672            Identity: ICoreWebView2_26_Impl,
42673            const OFFSET: isize,
42674        >(
42675            this: *mut core::ffi::c_void,
42676            token: i64,
42677        ) -> windows_core::HRESULT {
42678            unsafe {
42679                let this: &Identity =
42680                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
42681                ICoreWebView2_26_Impl::remove_SaveFileSecurityCheckStarting(
42682                    this,
42683                    core::mem::transmute_copy(&token),
42684                )
42685                .into()
42686            }
42687        }
42688        Self {
42689            base__: ICoreWebView2_25_Vtbl::new::<Identity, OFFSET>(),
42690            add_SaveFileSecurityCheckStarting: add_SaveFileSecurityCheckStarting::<Identity, OFFSET>,
42691            remove_SaveFileSecurityCheckStarting: remove_SaveFileSecurityCheckStarting::<
42692                Identity,
42693                OFFSET,
42694            >,
42695        }
42696    }
42697    pub fn matches(iid: &windows_core::GUID) -> bool {
42698        iid == &<ICoreWebView2_26 as windows_core::Interface>::IID
42699            || iid == &<ICoreWebView2 as windows_core::Interface>::IID
42700            || iid == &<ICoreWebView2_2 as windows_core::Interface>::IID
42701            || iid == &<ICoreWebView2_3 as windows_core::Interface>::IID
42702            || iid == &<ICoreWebView2_4 as windows_core::Interface>::IID
42703            || iid == &<ICoreWebView2_5 as windows_core::Interface>::IID
42704            || iid == &<ICoreWebView2_6 as windows_core::Interface>::IID
42705            || iid == &<ICoreWebView2_7 as windows_core::Interface>::IID
42706            || iid == &<ICoreWebView2_8 as windows_core::Interface>::IID
42707            || iid == &<ICoreWebView2_9 as windows_core::Interface>::IID
42708            || iid == &<ICoreWebView2_10 as windows_core::Interface>::IID
42709            || iid == &<ICoreWebView2_11 as windows_core::Interface>::IID
42710            || iid == &<ICoreWebView2_12 as windows_core::Interface>::IID
42711            || iid == &<ICoreWebView2_13 as windows_core::Interface>::IID
42712            || iid == &<ICoreWebView2_14 as windows_core::Interface>::IID
42713            || iid == &<ICoreWebView2_15 as windows_core::Interface>::IID
42714            || iid == &<ICoreWebView2_16 as windows_core::Interface>::IID
42715            || iid == &<ICoreWebView2_17 as windows_core::Interface>::IID
42716            || iid == &<ICoreWebView2_18 as windows_core::Interface>::IID
42717            || iid == &<ICoreWebView2_19 as windows_core::Interface>::IID
42718            || iid == &<ICoreWebView2_20 as windows_core::Interface>::IID
42719            || iid == &<ICoreWebView2_21 as windows_core::Interface>::IID
42720            || iid == &<ICoreWebView2_22 as windows_core::Interface>::IID
42721            || iid == &<ICoreWebView2_23 as windows_core::Interface>::IID
42722            || iid == &<ICoreWebView2_24 as windows_core::Interface>::IID
42723            || iid == &<ICoreWebView2_25 as windows_core::Interface>::IID
42724    }
42725}
42726impl windows_core::RuntimeName for ICoreWebView2_26 {}
42727windows_core::imp::define_interface!(
42728    ICoreWebView2_27,
42729    ICoreWebView2_27_Vtbl,
42730    0x00fbe33b_8c07_517c_aa23_0ddd4b5f6fa0
42731);
42732impl core::ops::Deref for ICoreWebView2_27 {
42733    type Target = ICoreWebView2_26;
42734    fn deref(&self) -> &Self::Target {
42735        unsafe { core::mem::transmute(self) }
42736    }
42737}
42738windows_core::imp::interface_hierarchy!(
42739    ICoreWebView2_27,
42740    windows_core::IUnknown,
42741    ICoreWebView2,
42742    ICoreWebView2_2,
42743    ICoreWebView2_3,
42744    ICoreWebView2_4,
42745    ICoreWebView2_5,
42746    ICoreWebView2_6,
42747    ICoreWebView2_7,
42748    ICoreWebView2_8,
42749    ICoreWebView2_9,
42750    ICoreWebView2_10,
42751    ICoreWebView2_11,
42752    ICoreWebView2_12,
42753    ICoreWebView2_13,
42754    ICoreWebView2_14,
42755    ICoreWebView2_15,
42756    ICoreWebView2_16,
42757    ICoreWebView2_17,
42758    ICoreWebView2_18,
42759    ICoreWebView2_19,
42760    ICoreWebView2_20,
42761    ICoreWebView2_21,
42762    ICoreWebView2_22,
42763    ICoreWebView2_23,
42764    ICoreWebView2_24,
42765    ICoreWebView2_25,
42766    ICoreWebView2_26
42767);
42768impl ICoreWebView2_27 {
42769    pub unsafe fn add_ScreenCaptureStarting<P0>(
42770        &self,
42771        eventhandler: P0,
42772        token: *mut i64,
42773    ) -> windows_core::Result<()>
42774    where
42775        P0: windows_core::Param<ICoreWebView2ScreenCaptureStartingEventHandler>,
42776    {
42777        unsafe {
42778            (windows_core::Interface::vtable(self).add_ScreenCaptureStarting)(
42779                windows_core::Interface::as_raw(self),
42780                eventhandler.param().abi(),
42781                token as _,
42782            )
42783            .ok()
42784        }
42785    }
42786    pub unsafe fn remove_ScreenCaptureStarting(&self, token: i64) -> windows_core::Result<()> {
42787        unsafe {
42788            (windows_core::Interface::vtable(self).remove_ScreenCaptureStarting)(
42789                windows_core::Interface::as_raw(self),
42790                token,
42791            )
42792            .ok()
42793        }
42794    }
42795}
42796#[repr(C)]
42797#[doc(hidden)]
42798pub struct ICoreWebView2_27_Vtbl {
42799    pub base__: ICoreWebView2_26_Vtbl,
42800    pub add_ScreenCaptureStarting: unsafe extern "system" fn(
42801        *mut core::ffi::c_void,
42802        *mut core::ffi::c_void,
42803        *mut i64,
42804    ) -> windows_core::HRESULT,
42805    pub remove_ScreenCaptureStarting:
42806        unsafe extern "system" fn(*mut core::ffi::c_void, i64) -> windows_core::HRESULT,
42807}
42808pub trait ICoreWebView2_27_Impl: ICoreWebView2_26_Impl {
42809    fn add_ScreenCaptureStarting(
42810        &self,
42811        eventhandler: windows_core::Ref<ICoreWebView2ScreenCaptureStartingEventHandler>,
42812        token: *mut i64,
42813    ) -> windows_core::Result<()>;
42814    fn remove_ScreenCaptureStarting(&self, token: i64) -> windows_core::Result<()>;
42815}
42816impl ICoreWebView2_27_Vtbl {
42817    pub const fn new<Identity: ICoreWebView2_27_Impl, const OFFSET: isize>() -> Self {
42818        unsafe extern "system" fn add_ScreenCaptureStarting<
42819            Identity: ICoreWebView2_27_Impl,
42820            const OFFSET: isize,
42821        >(
42822            this: *mut core::ffi::c_void,
42823            eventhandler: *mut core::ffi::c_void,
42824            token: *mut i64,
42825        ) -> windows_core::HRESULT {
42826            unsafe {
42827                let this: &Identity =
42828                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
42829                ICoreWebView2_27_Impl::add_ScreenCaptureStarting(
42830                    this,
42831                    core::mem::transmute_copy(&eventhandler),
42832                    core::mem::transmute_copy(&token),
42833                )
42834                .into()
42835            }
42836        }
42837        unsafe extern "system" fn remove_ScreenCaptureStarting<
42838            Identity: ICoreWebView2_27_Impl,
42839            const OFFSET: isize,
42840        >(
42841            this: *mut core::ffi::c_void,
42842            token: i64,
42843        ) -> windows_core::HRESULT {
42844            unsafe {
42845                let this: &Identity =
42846                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
42847                ICoreWebView2_27_Impl::remove_ScreenCaptureStarting(
42848                    this,
42849                    core::mem::transmute_copy(&token),
42850                )
42851                .into()
42852            }
42853        }
42854        Self {
42855            base__: ICoreWebView2_26_Vtbl::new::<Identity, OFFSET>(),
42856            add_ScreenCaptureStarting: add_ScreenCaptureStarting::<Identity, OFFSET>,
42857            remove_ScreenCaptureStarting: remove_ScreenCaptureStarting::<Identity, OFFSET>,
42858        }
42859    }
42860    pub fn matches(iid: &windows_core::GUID) -> bool {
42861        iid == &<ICoreWebView2_27 as windows_core::Interface>::IID
42862            || iid == &<ICoreWebView2 as windows_core::Interface>::IID
42863            || iid == &<ICoreWebView2_2 as windows_core::Interface>::IID
42864            || iid == &<ICoreWebView2_3 as windows_core::Interface>::IID
42865            || iid == &<ICoreWebView2_4 as windows_core::Interface>::IID
42866            || iid == &<ICoreWebView2_5 as windows_core::Interface>::IID
42867            || iid == &<ICoreWebView2_6 as windows_core::Interface>::IID
42868            || iid == &<ICoreWebView2_7 as windows_core::Interface>::IID
42869            || iid == &<ICoreWebView2_8 as windows_core::Interface>::IID
42870            || iid == &<ICoreWebView2_9 as windows_core::Interface>::IID
42871            || iid == &<ICoreWebView2_10 as windows_core::Interface>::IID
42872            || iid == &<ICoreWebView2_11 as windows_core::Interface>::IID
42873            || iid == &<ICoreWebView2_12 as windows_core::Interface>::IID
42874            || iid == &<ICoreWebView2_13 as windows_core::Interface>::IID
42875            || iid == &<ICoreWebView2_14 as windows_core::Interface>::IID
42876            || iid == &<ICoreWebView2_15 as windows_core::Interface>::IID
42877            || iid == &<ICoreWebView2_16 as windows_core::Interface>::IID
42878            || iid == &<ICoreWebView2_17 as windows_core::Interface>::IID
42879            || iid == &<ICoreWebView2_18 as windows_core::Interface>::IID
42880            || iid == &<ICoreWebView2_19 as windows_core::Interface>::IID
42881            || iid == &<ICoreWebView2_20 as windows_core::Interface>::IID
42882            || iid == &<ICoreWebView2_21 as windows_core::Interface>::IID
42883            || iid == &<ICoreWebView2_22 as windows_core::Interface>::IID
42884            || iid == &<ICoreWebView2_23 as windows_core::Interface>::IID
42885            || iid == &<ICoreWebView2_24 as windows_core::Interface>::IID
42886            || iid == &<ICoreWebView2_25 as windows_core::Interface>::IID
42887            || iid == &<ICoreWebView2_26 as windows_core::Interface>::IID
42888    }
42889}
42890impl windows_core::RuntimeName for ICoreWebView2_27 {}
42891windows_core::imp::define_interface!(
42892    ICoreWebView2_28,
42893    ICoreWebView2_28_Vtbl,
42894    0x62e50381_5bf5_51a8_aae0_f20a3a9c8a90
42895);
42896impl core::ops::Deref for ICoreWebView2_28 {
42897    type Target = ICoreWebView2_27;
42898    fn deref(&self) -> &Self::Target {
42899        unsafe { core::mem::transmute(self) }
42900    }
42901}
42902windows_core::imp::interface_hierarchy!(
42903    ICoreWebView2_28,
42904    windows_core::IUnknown,
42905    ICoreWebView2,
42906    ICoreWebView2_2,
42907    ICoreWebView2_3,
42908    ICoreWebView2_4,
42909    ICoreWebView2_5,
42910    ICoreWebView2_6,
42911    ICoreWebView2_7,
42912    ICoreWebView2_8,
42913    ICoreWebView2_9,
42914    ICoreWebView2_10,
42915    ICoreWebView2_11,
42916    ICoreWebView2_12,
42917    ICoreWebView2_13,
42918    ICoreWebView2_14,
42919    ICoreWebView2_15,
42920    ICoreWebView2_16,
42921    ICoreWebView2_17,
42922    ICoreWebView2_18,
42923    ICoreWebView2_19,
42924    ICoreWebView2_20,
42925    ICoreWebView2_21,
42926    ICoreWebView2_22,
42927    ICoreWebView2_23,
42928    ICoreWebView2_24,
42929    ICoreWebView2_25,
42930    ICoreWebView2_26,
42931    ICoreWebView2_27
42932);
42933impl ICoreWebView2_28 {
42934    pub unsafe fn Find(&self) -> windows_core::Result<ICoreWebView2Find> {
42935        unsafe {
42936            let mut result__ = core::mem::zeroed();
42937            (windows_core::Interface::vtable(self).Find)(
42938                windows_core::Interface::as_raw(self),
42939                &mut result__,
42940            )
42941            .and_then(|| windows_core::Type::from_abi(result__))
42942        }
42943    }
42944}
42945#[repr(C)]
42946#[doc(hidden)]
42947pub struct ICoreWebView2_28_Vtbl {
42948    pub base__: ICoreWebView2_27_Vtbl,
42949    pub Find: unsafe extern "system" fn(
42950        *mut core::ffi::c_void,
42951        *mut *mut core::ffi::c_void,
42952    ) -> windows_core::HRESULT,
42953}
42954pub trait ICoreWebView2_28_Impl: ICoreWebView2_27_Impl {
42955    fn Find(&self) -> windows_core::Result<ICoreWebView2Find>;
42956}
42957impl ICoreWebView2_28_Vtbl {
42958    pub const fn new<Identity: ICoreWebView2_28_Impl, const OFFSET: isize>() -> Self {
42959        unsafe extern "system" fn Find<Identity: ICoreWebView2_28_Impl, const OFFSET: isize>(
42960            this: *mut core::ffi::c_void,
42961            value: *mut *mut core::ffi::c_void,
42962        ) -> windows_core::HRESULT {
42963            unsafe {
42964                let this: &Identity =
42965                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
42966                match ICoreWebView2_28_Impl::Find(this) {
42967                    Ok(ok__) => {
42968                        value.write(core::mem::transmute(ok__));
42969                        windows_core::HRESULT(0)
42970                    }
42971                    Err(err) => err.into(),
42972                }
42973            }
42974        }
42975        Self {
42976            base__: ICoreWebView2_27_Vtbl::new::<Identity, OFFSET>(),
42977            Find: Find::<Identity, OFFSET>,
42978        }
42979    }
42980    pub fn matches(iid: &windows_core::GUID) -> bool {
42981        iid == &<ICoreWebView2_28 as windows_core::Interface>::IID
42982            || iid == &<ICoreWebView2 as windows_core::Interface>::IID
42983            || iid == &<ICoreWebView2_2 as windows_core::Interface>::IID
42984            || iid == &<ICoreWebView2_3 as windows_core::Interface>::IID
42985            || iid == &<ICoreWebView2_4 as windows_core::Interface>::IID
42986            || iid == &<ICoreWebView2_5 as windows_core::Interface>::IID
42987            || iid == &<ICoreWebView2_6 as windows_core::Interface>::IID
42988            || iid == &<ICoreWebView2_7 as windows_core::Interface>::IID
42989            || iid == &<ICoreWebView2_8 as windows_core::Interface>::IID
42990            || iid == &<ICoreWebView2_9 as windows_core::Interface>::IID
42991            || iid == &<ICoreWebView2_10 as windows_core::Interface>::IID
42992            || iid == &<ICoreWebView2_11 as windows_core::Interface>::IID
42993            || iid == &<ICoreWebView2_12 as windows_core::Interface>::IID
42994            || iid == &<ICoreWebView2_13 as windows_core::Interface>::IID
42995            || iid == &<ICoreWebView2_14 as windows_core::Interface>::IID
42996            || iid == &<ICoreWebView2_15 as windows_core::Interface>::IID
42997            || iid == &<ICoreWebView2_16 as windows_core::Interface>::IID
42998            || iid == &<ICoreWebView2_17 as windows_core::Interface>::IID
42999            || iid == &<ICoreWebView2_18 as windows_core::Interface>::IID
43000            || iid == &<ICoreWebView2_19 as windows_core::Interface>::IID
43001            || iid == &<ICoreWebView2_20 as windows_core::Interface>::IID
43002            || iid == &<ICoreWebView2_21 as windows_core::Interface>::IID
43003            || iid == &<ICoreWebView2_22 as windows_core::Interface>::IID
43004            || iid == &<ICoreWebView2_23 as windows_core::Interface>::IID
43005            || iid == &<ICoreWebView2_24 as windows_core::Interface>::IID
43006            || iid == &<ICoreWebView2_25 as windows_core::Interface>::IID
43007            || iid == &<ICoreWebView2_26 as windows_core::Interface>::IID
43008            || iid == &<ICoreWebView2_27 as windows_core::Interface>::IID
43009    }
43010}
43011impl windows_core::RuntimeName for ICoreWebView2_28 {}
43012windows_core::imp::define_interface!(
43013    ICoreWebView2_3,
43014    ICoreWebView2_3_Vtbl,
43015    0xa0d6df20_3b92_416d_aa0c_437a9c727857
43016);
43017impl core::ops::Deref for ICoreWebView2_3 {
43018    type Target = ICoreWebView2_2;
43019    fn deref(&self) -> &Self::Target {
43020        unsafe { core::mem::transmute(self) }
43021    }
43022}
43023windows_core::imp::interface_hierarchy!(
43024    ICoreWebView2_3,
43025    windows_core::IUnknown,
43026    ICoreWebView2,
43027    ICoreWebView2_2
43028);
43029impl ICoreWebView2_3 {
43030    pub unsafe fn TrySuspend<P0>(&self, handler: P0) -> windows_core::Result<()>
43031    where
43032        P0: windows_core::Param<ICoreWebView2TrySuspendCompletedHandler>,
43033    {
43034        unsafe {
43035            (windows_core::Interface::vtable(self).TrySuspend)(
43036                windows_core::Interface::as_raw(self),
43037                handler.param().abi(),
43038            )
43039            .ok()
43040        }
43041    }
43042    pub unsafe fn Resume(&self) -> windows_core::Result<()> {
43043        unsafe {
43044            (windows_core::Interface::vtable(self).Resume)(windows_core::Interface::as_raw(self))
43045                .ok()
43046        }
43047    }
43048    pub unsafe fn IsSuspended(
43049        &self,
43050        issuspended: *mut windows_core::BOOL,
43051    ) -> windows_core::Result<()> {
43052        unsafe {
43053            (windows_core::Interface::vtable(self).IsSuspended)(
43054                windows_core::Interface::as_raw(self),
43055                issuspended as _,
43056            )
43057            .ok()
43058        }
43059    }
43060    pub unsafe fn SetVirtualHostNameToFolderMapping<P0, P1>(
43061        &self,
43062        hostname: P0,
43063        folderpath: P1,
43064        accesskind: COREWEBVIEW2_HOST_RESOURCE_ACCESS_KIND,
43065    ) -> windows_core::Result<()>
43066    where
43067        P0: windows_core::Param<windows_core::PCWSTR>,
43068        P1: windows_core::Param<windows_core::PCWSTR>,
43069    {
43070        unsafe {
43071            (windows_core::Interface::vtable(self).SetVirtualHostNameToFolderMapping)(
43072                windows_core::Interface::as_raw(self),
43073                hostname.param().abi(),
43074                folderpath.param().abi(),
43075                accesskind,
43076            )
43077            .ok()
43078        }
43079    }
43080    pub unsafe fn ClearVirtualHostNameToFolderMapping<P0>(
43081        &self,
43082        hostname: P0,
43083    ) -> windows_core::Result<()>
43084    where
43085        P0: windows_core::Param<windows_core::PCWSTR>,
43086    {
43087        unsafe {
43088            (windows_core::Interface::vtable(self).ClearVirtualHostNameToFolderMapping)(
43089                windows_core::Interface::as_raw(self),
43090                hostname.param().abi(),
43091            )
43092            .ok()
43093        }
43094    }
43095}
43096#[repr(C)]
43097#[doc(hidden)]
43098pub struct ICoreWebView2_3_Vtbl {
43099    pub base__: ICoreWebView2_2_Vtbl,
43100    pub TrySuspend: unsafe extern "system" fn(
43101        *mut core::ffi::c_void,
43102        *mut core::ffi::c_void,
43103    ) -> windows_core::HRESULT,
43104    pub Resume: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
43105    pub IsSuspended: unsafe extern "system" fn(
43106        *mut core::ffi::c_void,
43107        *mut windows_core::BOOL,
43108    ) -> windows_core::HRESULT,
43109    pub SetVirtualHostNameToFolderMapping: unsafe extern "system" fn(
43110        *mut core::ffi::c_void,
43111        windows_core::PCWSTR,
43112        windows_core::PCWSTR,
43113        COREWEBVIEW2_HOST_RESOURCE_ACCESS_KIND,
43114    ) -> windows_core::HRESULT,
43115    pub ClearVirtualHostNameToFolderMapping: unsafe extern "system" fn(
43116        *mut core::ffi::c_void,
43117        windows_core::PCWSTR,
43118    )
43119        -> windows_core::HRESULT,
43120}
43121pub trait ICoreWebView2_3_Impl: ICoreWebView2_2_Impl {
43122    fn TrySuspend(
43123        &self,
43124        handler: windows_core::Ref<ICoreWebView2TrySuspendCompletedHandler>,
43125    ) -> windows_core::Result<()>;
43126    fn Resume(&self) -> windows_core::Result<()>;
43127    fn IsSuspended(&self, issuspended: *mut windows_core::BOOL) -> windows_core::Result<()>;
43128    fn SetVirtualHostNameToFolderMapping(
43129        &self,
43130        hostname: &windows_core::PCWSTR,
43131        folderpath: &windows_core::PCWSTR,
43132        accesskind: COREWEBVIEW2_HOST_RESOURCE_ACCESS_KIND,
43133    ) -> windows_core::Result<()>;
43134    fn ClearVirtualHostNameToFolderMapping(
43135        &self,
43136        hostname: &windows_core::PCWSTR,
43137    ) -> windows_core::Result<()>;
43138}
43139impl ICoreWebView2_3_Vtbl {
43140    pub const fn new<Identity: ICoreWebView2_3_Impl, const OFFSET: isize>() -> Self {
43141        unsafe extern "system" fn TrySuspend<
43142            Identity: ICoreWebView2_3_Impl,
43143            const OFFSET: isize,
43144        >(
43145            this: *mut core::ffi::c_void,
43146            handler: *mut core::ffi::c_void,
43147        ) -> windows_core::HRESULT {
43148            unsafe {
43149                let this: &Identity =
43150                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
43151                ICoreWebView2_3_Impl::TrySuspend(this, core::mem::transmute_copy(&handler)).into()
43152            }
43153        }
43154        unsafe extern "system" fn Resume<Identity: ICoreWebView2_3_Impl, const OFFSET: isize>(
43155            this: *mut core::ffi::c_void,
43156        ) -> windows_core::HRESULT {
43157            unsafe {
43158                let this: &Identity =
43159                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
43160                ICoreWebView2_3_Impl::Resume(this).into()
43161            }
43162        }
43163        unsafe extern "system" fn IsSuspended<
43164            Identity: ICoreWebView2_3_Impl,
43165            const OFFSET: isize,
43166        >(
43167            this: *mut core::ffi::c_void,
43168            issuspended: *mut windows_core::BOOL,
43169        ) -> windows_core::HRESULT {
43170            unsafe {
43171                let this: &Identity =
43172                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
43173                ICoreWebView2_3_Impl::IsSuspended(this, core::mem::transmute_copy(&issuspended))
43174                    .into()
43175            }
43176        }
43177        unsafe extern "system" fn SetVirtualHostNameToFolderMapping<
43178            Identity: ICoreWebView2_3_Impl,
43179            const OFFSET: isize,
43180        >(
43181            this: *mut core::ffi::c_void,
43182            hostname: windows_core::PCWSTR,
43183            folderpath: windows_core::PCWSTR,
43184            accesskind: COREWEBVIEW2_HOST_RESOURCE_ACCESS_KIND,
43185        ) -> windows_core::HRESULT {
43186            unsafe {
43187                let this: &Identity =
43188                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
43189                ICoreWebView2_3_Impl::SetVirtualHostNameToFolderMapping(
43190                    this,
43191                    core::mem::transmute(&hostname),
43192                    core::mem::transmute(&folderpath),
43193                    core::mem::transmute_copy(&accesskind),
43194                )
43195                .into()
43196            }
43197        }
43198        unsafe extern "system" fn ClearVirtualHostNameToFolderMapping<
43199            Identity: ICoreWebView2_3_Impl,
43200            const OFFSET: isize,
43201        >(
43202            this: *mut core::ffi::c_void,
43203            hostname: windows_core::PCWSTR,
43204        ) -> windows_core::HRESULT {
43205            unsafe {
43206                let this: &Identity =
43207                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
43208                ICoreWebView2_3_Impl::ClearVirtualHostNameToFolderMapping(
43209                    this,
43210                    core::mem::transmute(&hostname),
43211                )
43212                .into()
43213            }
43214        }
43215        Self {
43216            base__: ICoreWebView2_2_Vtbl::new::<Identity, OFFSET>(),
43217            TrySuspend: TrySuspend::<Identity, OFFSET>,
43218            Resume: Resume::<Identity, OFFSET>,
43219            IsSuspended: IsSuspended::<Identity, OFFSET>,
43220            SetVirtualHostNameToFolderMapping: SetVirtualHostNameToFolderMapping::<Identity, OFFSET>,
43221            ClearVirtualHostNameToFolderMapping: ClearVirtualHostNameToFolderMapping::<
43222                Identity,
43223                OFFSET,
43224            >,
43225        }
43226    }
43227    pub fn matches(iid: &windows_core::GUID) -> bool {
43228        iid == &<ICoreWebView2_3 as windows_core::Interface>::IID
43229            || iid == &<ICoreWebView2 as windows_core::Interface>::IID
43230            || iid == &<ICoreWebView2_2 as windows_core::Interface>::IID
43231    }
43232}
43233impl windows_core::RuntimeName for ICoreWebView2_3 {}
43234windows_core::imp::define_interface!(
43235    ICoreWebView2_4,
43236    ICoreWebView2_4_Vtbl,
43237    0x20d02d59_6df2_42dc_bd06_f98a694b1302
43238);
43239impl core::ops::Deref for ICoreWebView2_4 {
43240    type Target = ICoreWebView2_3;
43241    fn deref(&self) -> &Self::Target {
43242        unsafe { core::mem::transmute(self) }
43243    }
43244}
43245windows_core::imp::interface_hierarchy!(
43246    ICoreWebView2_4,
43247    windows_core::IUnknown,
43248    ICoreWebView2,
43249    ICoreWebView2_2,
43250    ICoreWebView2_3
43251);
43252impl ICoreWebView2_4 {
43253    pub unsafe fn add_FrameCreated<P0>(
43254        &self,
43255        eventhandler: P0,
43256        token: *mut i64,
43257    ) -> windows_core::Result<()>
43258    where
43259        P0: windows_core::Param<ICoreWebView2FrameCreatedEventHandler>,
43260    {
43261        unsafe {
43262            (windows_core::Interface::vtable(self).add_FrameCreated)(
43263                windows_core::Interface::as_raw(self),
43264                eventhandler.param().abi(),
43265                token as _,
43266            )
43267            .ok()
43268        }
43269    }
43270    pub unsafe fn remove_FrameCreated(&self, token: i64) -> windows_core::Result<()> {
43271        unsafe {
43272            (windows_core::Interface::vtable(self).remove_FrameCreated)(
43273                windows_core::Interface::as_raw(self),
43274                token,
43275            )
43276            .ok()
43277        }
43278    }
43279    pub unsafe fn add_DownloadStarting<P0>(
43280        &self,
43281        eventhandler: P0,
43282        token: *mut i64,
43283    ) -> windows_core::Result<()>
43284    where
43285        P0: windows_core::Param<ICoreWebView2DownloadStartingEventHandler>,
43286    {
43287        unsafe {
43288            (windows_core::Interface::vtable(self).add_DownloadStarting)(
43289                windows_core::Interface::as_raw(self),
43290                eventhandler.param().abi(),
43291                token as _,
43292            )
43293            .ok()
43294        }
43295    }
43296    pub unsafe fn remove_DownloadStarting(&self, token: i64) -> windows_core::Result<()> {
43297        unsafe {
43298            (windows_core::Interface::vtable(self).remove_DownloadStarting)(
43299                windows_core::Interface::as_raw(self),
43300                token,
43301            )
43302            .ok()
43303        }
43304    }
43305}
43306#[repr(C)]
43307#[doc(hidden)]
43308pub struct ICoreWebView2_4_Vtbl {
43309    pub base__: ICoreWebView2_3_Vtbl,
43310    pub add_FrameCreated: unsafe extern "system" fn(
43311        *mut core::ffi::c_void,
43312        *mut core::ffi::c_void,
43313        *mut i64,
43314    ) -> windows_core::HRESULT,
43315    pub remove_FrameCreated:
43316        unsafe extern "system" fn(*mut core::ffi::c_void, i64) -> windows_core::HRESULT,
43317    pub add_DownloadStarting: unsafe extern "system" fn(
43318        *mut core::ffi::c_void,
43319        *mut core::ffi::c_void,
43320        *mut i64,
43321    ) -> windows_core::HRESULT,
43322    pub remove_DownloadStarting:
43323        unsafe extern "system" fn(*mut core::ffi::c_void, i64) -> windows_core::HRESULT,
43324}
43325pub trait ICoreWebView2_4_Impl: ICoreWebView2_3_Impl {
43326    fn add_FrameCreated(
43327        &self,
43328        eventhandler: windows_core::Ref<ICoreWebView2FrameCreatedEventHandler>,
43329        token: *mut i64,
43330    ) -> windows_core::Result<()>;
43331    fn remove_FrameCreated(&self, token: i64) -> windows_core::Result<()>;
43332    fn add_DownloadStarting(
43333        &self,
43334        eventhandler: windows_core::Ref<ICoreWebView2DownloadStartingEventHandler>,
43335        token: *mut i64,
43336    ) -> windows_core::Result<()>;
43337    fn remove_DownloadStarting(&self, token: i64) -> windows_core::Result<()>;
43338}
43339impl ICoreWebView2_4_Vtbl {
43340    pub const fn new<Identity: ICoreWebView2_4_Impl, const OFFSET: isize>() -> Self {
43341        unsafe extern "system" fn add_FrameCreated<
43342            Identity: ICoreWebView2_4_Impl,
43343            const OFFSET: isize,
43344        >(
43345            this: *mut core::ffi::c_void,
43346            eventhandler: *mut core::ffi::c_void,
43347            token: *mut i64,
43348        ) -> windows_core::HRESULT {
43349            unsafe {
43350                let this: &Identity =
43351                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
43352                ICoreWebView2_4_Impl::add_FrameCreated(
43353                    this,
43354                    core::mem::transmute_copy(&eventhandler),
43355                    core::mem::transmute_copy(&token),
43356                )
43357                .into()
43358            }
43359        }
43360        unsafe extern "system" fn remove_FrameCreated<
43361            Identity: ICoreWebView2_4_Impl,
43362            const OFFSET: isize,
43363        >(
43364            this: *mut core::ffi::c_void,
43365            token: i64,
43366        ) -> windows_core::HRESULT {
43367            unsafe {
43368                let this: &Identity =
43369                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
43370                ICoreWebView2_4_Impl::remove_FrameCreated(this, core::mem::transmute_copy(&token))
43371                    .into()
43372            }
43373        }
43374        unsafe extern "system" fn add_DownloadStarting<
43375            Identity: ICoreWebView2_4_Impl,
43376            const OFFSET: isize,
43377        >(
43378            this: *mut core::ffi::c_void,
43379            eventhandler: *mut core::ffi::c_void,
43380            token: *mut i64,
43381        ) -> windows_core::HRESULT {
43382            unsafe {
43383                let this: &Identity =
43384                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
43385                ICoreWebView2_4_Impl::add_DownloadStarting(
43386                    this,
43387                    core::mem::transmute_copy(&eventhandler),
43388                    core::mem::transmute_copy(&token),
43389                )
43390                .into()
43391            }
43392        }
43393        unsafe extern "system" fn remove_DownloadStarting<
43394            Identity: ICoreWebView2_4_Impl,
43395            const OFFSET: isize,
43396        >(
43397            this: *mut core::ffi::c_void,
43398            token: i64,
43399        ) -> windows_core::HRESULT {
43400            unsafe {
43401                let this: &Identity =
43402                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
43403                ICoreWebView2_4_Impl::remove_DownloadStarting(
43404                    this,
43405                    core::mem::transmute_copy(&token),
43406                )
43407                .into()
43408            }
43409        }
43410        Self {
43411            base__: ICoreWebView2_3_Vtbl::new::<Identity, OFFSET>(),
43412            add_FrameCreated: add_FrameCreated::<Identity, OFFSET>,
43413            remove_FrameCreated: remove_FrameCreated::<Identity, OFFSET>,
43414            add_DownloadStarting: add_DownloadStarting::<Identity, OFFSET>,
43415            remove_DownloadStarting: remove_DownloadStarting::<Identity, OFFSET>,
43416        }
43417    }
43418    pub fn matches(iid: &windows_core::GUID) -> bool {
43419        iid == &<ICoreWebView2_4 as windows_core::Interface>::IID
43420            || iid == &<ICoreWebView2 as windows_core::Interface>::IID
43421            || iid == &<ICoreWebView2_2 as windows_core::Interface>::IID
43422            || iid == &<ICoreWebView2_3 as windows_core::Interface>::IID
43423    }
43424}
43425impl windows_core::RuntimeName for ICoreWebView2_4 {}
43426windows_core::imp::define_interface!(
43427    ICoreWebView2_5,
43428    ICoreWebView2_5_Vtbl,
43429    0xbedb11b8_d63c_11eb_b8bc_0242ac130003
43430);
43431impl core::ops::Deref for ICoreWebView2_5 {
43432    type Target = ICoreWebView2_4;
43433    fn deref(&self) -> &Self::Target {
43434        unsafe { core::mem::transmute(self) }
43435    }
43436}
43437windows_core::imp::interface_hierarchy!(
43438    ICoreWebView2_5,
43439    windows_core::IUnknown,
43440    ICoreWebView2,
43441    ICoreWebView2_2,
43442    ICoreWebView2_3,
43443    ICoreWebView2_4
43444);
43445impl ICoreWebView2_5 {
43446    pub unsafe fn add_ClientCertificateRequested<P0>(
43447        &self,
43448        eventhandler: P0,
43449        token: *mut i64,
43450    ) -> windows_core::Result<()>
43451    where
43452        P0: windows_core::Param<ICoreWebView2ClientCertificateRequestedEventHandler>,
43453    {
43454        unsafe {
43455            (windows_core::Interface::vtable(self).add_ClientCertificateRequested)(
43456                windows_core::Interface::as_raw(self),
43457                eventhandler.param().abi(),
43458                token as _,
43459            )
43460            .ok()
43461        }
43462    }
43463    pub unsafe fn remove_ClientCertificateRequested(&self, token: i64) -> windows_core::Result<()> {
43464        unsafe {
43465            (windows_core::Interface::vtable(self).remove_ClientCertificateRequested)(
43466                windows_core::Interface::as_raw(self),
43467                token,
43468            )
43469            .ok()
43470        }
43471    }
43472}
43473#[repr(C)]
43474#[doc(hidden)]
43475pub struct ICoreWebView2_5_Vtbl {
43476    pub base__: ICoreWebView2_4_Vtbl,
43477    pub add_ClientCertificateRequested: unsafe extern "system" fn(
43478        *mut core::ffi::c_void,
43479        *mut core::ffi::c_void,
43480        *mut i64,
43481    ) -> windows_core::HRESULT,
43482    pub remove_ClientCertificateRequested:
43483        unsafe extern "system" fn(*mut core::ffi::c_void, i64) -> windows_core::HRESULT,
43484}
43485pub trait ICoreWebView2_5_Impl: ICoreWebView2_4_Impl {
43486    fn add_ClientCertificateRequested(
43487        &self,
43488        eventhandler: windows_core::Ref<ICoreWebView2ClientCertificateRequestedEventHandler>,
43489        token: *mut i64,
43490    ) -> windows_core::Result<()>;
43491    fn remove_ClientCertificateRequested(&self, token: i64) -> windows_core::Result<()>;
43492}
43493impl ICoreWebView2_5_Vtbl {
43494    pub const fn new<Identity: ICoreWebView2_5_Impl, const OFFSET: isize>() -> Self {
43495        unsafe extern "system" fn add_ClientCertificateRequested<
43496            Identity: ICoreWebView2_5_Impl,
43497            const OFFSET: isize,
43498        >(
43499            this: *mut core::ffi::c_void,
43500            eventhandler: *mut core::ffi::c_void,
43501            token: *mut i64,
43502        ) -> windows_core::HRESULT {
43503            unsafe {
43504                let this: &Identity =
43505                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
43506                ICoreWebView2_5_Impl::add_ClientCertificateRequested(
43507                    this,
43508                    core::mem::transmute_copy(&eventhandler),
43509                    core::mem::transmute_copy(&token),
43510                )
43511                .into()
43512            }
43513        }
43514        unsafe extern "system" fn remove_ClientCertificateRequested<
43515            Identity: ICoreWebView2_5_Impl,
43516            const OFFSET: isize,
43517        >(
43518            this: *mut core::ffi::c_void,
43519            token: i64,
43520        ) -> windows_core::HRESULT {
43521            unsafe {
43522                let this: &Identity =
43523                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
43524                ICoreWebView2_5_Impl::remove_ClientCertificateRequested(
43525                    this,
43526                    core::mem::transmute_copy(&token),
43527                )
43528                .into()
43529            }
43530        }
43531        Self {
43532            base__: ICoreWebView2_4_Vtbl::new::<Identity, OFFSET>(),
43533            add_ClientCertificateRequested: add_ClientCertificateRequested::<Identity, OFFSET>,
43534            remove_ClientCertificateRequested: remove_ClientCertificateRequested::<Identity, OFFSET>,
43535        }
43536    }
43537    pub fn matches(iid: &windows_core::GUID) -> bool {
43538        iid == &<ICoreWebView2_5 as windows_core::Interface>::IID
43539            || iid == &<ICoreWebView2 as windows_core::Interface>::IID
43540            || iid == &<ICoreWebView2_2 as windows_core::Interface>::IID
43541            || iid == &<ICoreWebView2_3 as windows_core::Interface>::IID
43542            || iid == &<ICoreWebView2_4 as windows_core::Interface>::IID
43543    }
43544}
43545impl windows_core::RuntimeName for ICoreWebView2_5 {}
43546windows_core::imp::define_interface!(
43547    ICoreWebView2_6,
43548    ICoreWebView2_6_Vtbl,
43549    0x499aadac_d92c_4589_8a75_111bfc167795
43550);
43551impl core::ops::Deref for ICoreWebView2_6 {
43552    type Target = ICoreWebView2_5;
43553    fn deref(&self) -> &Self::Target {
43554        unsafe { core::mem::transmute(self) }
43555    }
43556}
43557windows_core::imp::interface_hierarchy!(
43558    ICoreWebView2_6,
43559    windows_core::IUnknown,
43560    ICoreWebView2,
43561    ICoreWebView2_2,
43562    ICoreWebView2_3,
43563    ICoreWebView2_4,
43564    ICoreWebView2_5
43565);
43566impl ICoreWebView2_6 {
43567    pub unsafe fn OpenTaskManagerWindow(&self) -> windows_core::Result<()> {
43568        unsafe {
43569            (windows_core::Interface::vtable(self).OpenTaskManagerWindow)(
43570                windows_core::Interface::as_raw(self),
43571            )
43572            .ok()
43573        }
43574    }
43575}
43576#[repr(C)]
43577#[doc(hidden)]
43578pub struct ICoreWebView2_6_Vtbl {
43579    pub base__: ICoreWebView2_5_Vtbl,
43580    pub OpenTaskManagerWindow:
43581        unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
43582}
43583pub trait ICoreWebView2_6_Impl: ICoreWebView2_5_Impl {
43584    fn OpenTaskManagerWindow(&self) -> windows_core::Result<()>;
43585}
43586impl ICoreWebView2_6_Vtbl {
43587    pub const fn new<Identity: ICoreWebView2_6_Impl, const OFFSET: isize>() -> Self {
43588        unsafe extern "system" fn OpenTaskManagerWindow<
43589            Identity: ICoreWebView2_6_Impl,
43590            const OFFSET: isize,
43591        >(
43592            this: *mut core::ffi::c_void,
43593        ) -> windows_core::HRESULT {
43594            unsafe {
43595                let this: &Identity =
43596                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
43597                ICoreWebView2_6_Impl::OpenTaskManagerWindow(this).into()
43598            }
43599        }
43600        Self {
43601            base__: ICoreWebView2_5_Vtbl::new::<Identity, OFFSET>(),
43602            OpenTaskManagerWindow: OpenTaskManagerWindow::<Identity, OFFSET>,
43603        }
43604    }
43605    pub fn matches(iid: &windows_core::GUID) -> bool {
43606        iid == &<ICoreWebView2_6 as windows_core::Interface>::IID
43607            || iid == &<ICoreWebView2 as windows_core::Interface>::IID
43608            || iid == &<ICoreWebView2_2 as windows_core::Interface>::IID
43609            || iid == &<ICoreWebView2_3 as windows_core::Interface>::IID
43610            || iid == &<ICoreWebView2_4 as windows_core::Interface>::IID
43611            || iid == &<ICoreWebView2_5 as windows_core::Interface>::IID
43612    }
43613}
43614impl windows_core::RuntimeName for ICoreWebView2_6 {}
43615windows_core::imp::define_interface!(
43616    ICoreWebView2_7,
43617    ICoreWebView2_7_Vtbl,
43618    0x79c24d83_09a3_45ae_9418_487f32a58740
43619);
43620impl core::ops::Deref for ICoreWebView2_7 {
43621    type Target = ICoreWebView2_6;
43622    fn deref(&self) -> &Self::Target {
43623        unsafe { core::mem::transmute(self) }
43624    }
43625}
43626windows_core::imp::interface_hierarchy!(
43627    ICoreWebView2_7,
43628    windows_core::IUnknown,
43629    ICoreWebView2,
43630    ICoreWebView2_2,
43631    ICoreWebView2_3,
43632    ICoreWebView2_4,
43633    ICoreWebView2_5,
43634    ICoreWebView2_6
43635);
43636impl ICoreWebView2_7 {
43637    pub unsafe fn PrintToPdf<P0, P1, P2>(
43638        &self,
43639        resultfilepath: P0,
43640        printsettings: P1,
43641        handler: P2,
43642    ) -> windows_core::Result<()>
43643    where
43644        P0: windows_core::Param<windows_core::PCWSTR>,
43645        P1: windows_core::Param<ICoreWebView2PrintSettings>,
43646        P2: windows_core::Param<ICoreWebView2PrintToPdfCompletedHandler>,
43647    {
43648        unsafe {
43649            (windows_core::Interface::vtable(self).PrintToPdf)(
43650                windows_core::Interface::as_raw(self),
43651                resultfilepath.param().abi(),
43652                printsettings.param().abi(),
43653                handler.param().abi(),
43654            )
43655            .ok()
43656        }
43657    }
43658}
43659#[repr(C)]
43660#[doc(hidden)]
43661pub struct ICoreWebView2_7_Vtbl {
43662    pub base__: ICoreWebView2_6_Vtbl,
43663    pub PrintToPdf: unsafe extern "system" fn(
43664        *mut core::ffi::c_void,
43665        windows_core::PCWSTR,
43666        *mut core::ffi::c_void,
43667        *mut core::ffi::c_void,
43668    ) -> windows_core::HRESULT,
43669}
43670pub trait ICoreWebView2_7_Impl: ICoreWebView2_6_Impl {
43671    fn PrintToPdf(
43672        &self,
43673        resultfilepath: &windows_core::PCWSTR,
43674        printsettings: windows_core::Ref<ICoreWebView2PrintSettings>,
43675        handler: windows_core::Ref<ICoreWebView2PrintToPdfCompletedHandler>,
43676    ) -> windows_core::Result<()>;
43677}
43678impl ICoreWebView2_7_Vtbl {
43679    pub const fn new<Identity: ICoreWebView2_7_Impl, const OFFSET: isize>() -> Self {
43680        unsafe extern "system" fn PrintToPdf<
43681            Identity: ICoreWebView2_7_Impl,
43682            const OFFSET: isize,
43683        >(
43684            this: *mut core::ffi::c_void,
43685            resultfilepath: windows_core::PCWSTR,
43686            printsettings: *mut core::ffi::c_void,
43687            handler: *mut core::ffi::c_void,
43688        ) -> windows_core::HRESULT {
43689            unsafe {
43690                let this: &Identity =
43691                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
43692                ICoreWebView2_7_Impl::PrintToPdf(
43693                    this,
43694                    core::mem::transmute(&resultfilepath),
43695                    core::mem::transmute_copy(&printsettings),
43696                    core::mem::transmute_copy(&handler),
43697                )
43698                .into()
43699            }
43700        }
43701        Self {
43702            base__: ICoreWebView2_6_Vtbl::new::<Identity, OFFSET>(),
43703            PrintToPdf: PrintToPdf::<Identity, OFFSET>,
43704        }
43705    }
43706    pub fn matches(iid: &windows_core::GUID) -> bool {
43707        iid == &<ICoreWebView2_7 as windows_core::Interface>::IID
43708            || iid == &<ICoreWebView2 as windows_core::Interface>::IID
43709            || iid == &<ICoreWebView2_2 as windows_core::Interface>::IID
43710            || iid == &<ICoreWebView2_3 as windows_core::Interface>::IID
43711            || iid == &<ICoreWebView2_4 as windows_core::Interface>::IID
43712            || iid == &<ICoreWebView2_5 as windows_core::Interface>::IID
43713            || iid == &<ICoreWebView2_6 as windows_core::Interface>::IID
43714    }
43715}
43716impl windows_core::RuntimeName for ICoreWebView2_7 {}
43717windows_core::imp::define_interface!(
43718    ICoreWebView2_8,
43719    ICoreWebView2_8_Vtbl,
43720    0xe9632730_6e1e_43ab_b7b8_7b2c9e62e094
43721);
43722impl core::ops::Deref for ICoreWebView2_8 {
43723    type Target = ICoreWebView2_7;
43724    fn deref(&self) -> &Self::Target {
43725        unsafe { core::mem::transmute(self) }
43726    }
43727}
43728windows_core::imp::interface_hierarchy!(
43729    ICoreWebView2_8,
43730    windows_core::IUnknown,
43731    ICoreWebView2,
43732    ICoreWebView2_2,
43733    ICoreWebView2_3,
43734    ICoreWebView2_4,
43735    ICoreWebView2_5,
43736    ICoreWebView2_6,
43737    ICoreWebView2_7
43738);
43739impl ICoreWebView2_8 {
43740    pub unsafe fn add_IsMutedChanged<P0>(
43741        &self,
43742        eventhandler: P0,
43743        token: *mut i64,
43744    ) -> windows_core::Result<()>
43745    where
43746        P0: windows_core::Param<ICoreWebView2IsMutedChangedEventHandler>,
43747    {
43748        unsafe {
43749            (windows_core::Interface::vtable(self).add_IsMutedChanged)(
43750                windows_core::Interface::as_raw(self),
43751                eventhandler.param().abi(),
43752                token as _,
43753            )
43754            .ok()
43755        }
43756    }
43757    pub unsafe fn remove_IsMutedChanged(&self, token: i64) -> windows_core::Result<()> {
43758        unsafe {
43759            (windows_core::Interface::vtable(self).remove_IsMutedChanged)(
43760                windows_core::Interface::as_raw(self),
43761                token,
43762            )
43763            .ok()
43764        }
43765    }
43766    pub unsafe fn IsMuted(&self, value: *mut windows_core::BOOL) -> windows_core::Result<()> {
43767        unsafe {
43768            (windows_core::Interface::vtable(self).IsMuted)(
43769                windows_core::Interface::as_raw(self),
43770                value as _,
43771            )
43772            .ok()
43773        }
43774    }
43775    pub unsafe fn SetIsMuted(&self, value: bool) -> windows_core::Result<()> {
43776        unsafe {
43777            (windows_core::Interface::vtable(self).SetIsMuted)(
43778                windows_core::Interface::as_raw(self),
43779                value.into(),
43780            )
43781            .ok()
43782        }
43783    }
43784    pub unsafe fn add_IsDocumentPlayingAudioChanged<P0>(
43785        &self,
43786        eventhandler: P0,
43787        token: *mut i64,
43788    ) -> windows_core::Result<()>
43789    where
43790        P0: windows_core::Param<ICoreWebView2IsDocumentPlayingAudioChangedEventHandler>,
43791    {
43792        unsafe {
43793            (windows_core::Interface::vtable(self).add_IsDocumentPlayingAudioChanged)(
43794                windows_core::Interface::as_raw(self),
43795                eventhandler.param().abi(),
43796                token as _,
43797            )
43798            .ok()
43799        }
43800    }
43801    pub unsafe fn remove_IsDocumentPlayingAudioChanged(
43802        &self,
43803        token: i64,
43804    ) -> windows_core::Result<()> {
43805        unsafe {
43806            (windows_core::Interface::vtable(self).remove_IsDocumentPlayingAudioChanged)(
43807                windows_core::Interface::as_raw(self),
43808                token,
43809            )
43810            .ok()
43811        }
43812    }
43813    pub unsafe fn IsDocumentPlayingAudio(
43814        &self,
43815        value: *mut windows_core::BOOL,
43816    ) -> windows_core::Result<()> {
43817        unsafe {
43818            (windows_core::Interface::vtable(self).IsDocumentPlayingAudio)(
43819                windows_core::Interface::as_raw(self),
43820                value as _,
43821            )
43822            .ok()
43823        }
43824    }
43825}
43826#[repr(C)]
43827#[doc(hidden)]
43828pub struct ICoreWebView2_8_Vtbl {
43829    pub base__: ICoreWebView2_7_Vtbl,
43830    pub add_IsMutedChanged: unsafe extern "system" fn(
43831        *mut core::ffi::c_void,
43832        *mut core::ffi::c_void,
43833        *mut i64,
43834    ) -> windows_core::HRESULT,
43835    pub remove_IsMutedChanged:
43836        unsafe extern "system" fn(*mut core::ffi::c_void, i64) -> windows_core::HRESULT,
43837    pub IsMuted: unsafe extern "system" fn(
43838        *mut core::ffi::c_void,
43839        *mut windows_core::BOOL,
43840    ) -> windows_core::HRESULT,
43841    pub SetIsMuted: unsafe extern "system" fn(
43842        *mut core::ffi::c_void,
43843        windows_core::BOOL,
43844    ) -> windows_core::HRESULT,
43845    pub add_IsDocumentPlayingAudioChanged: unsafe extern "system" fn(
43846        *mut core::ffi::c_void,
43847        *mut core::ffi::c_void,
43848        *mut i64,
43849    ) -> windows_core::HRESULT,
43850    pub remove_IsDocumentPlayingAudioChanged:
43851        unsafe extern "system" fn(*mut core::ffi::c_void, i64) -> windows_core::HRESULT,
43852    pub IsDocumentPlayingAudio: unsafe extern "system" fn(
43853        *mut core::ffi::c_void,
43854        *mut windows_core::BOOL,
43855    ) -> windows_core::HRESULT,
43856}
43857pub trait ICoreWebView2_8_Impl: ICoreWebView2_7_Impl {
43858    fn add_IsMutedChanged(
43859        &self,
43860        eventhandler: windows_core::Ref<ICoreWebView2IsMutedChangedEventHandler>,
43861        token: *mut i64,
43862    ) -> windows_core::Result<()>;
43863    fn remove_IsMutedChanged(&self, token: i64) -> windows_core::Result<()>;
43864    fn IsMuted(&self, value: *mut windows_core::BOOL) -> windows_core::Result<()>;
43865    fn SetIsMuted(&self, value: windows_core::BOOL) -> windows_core::Result<()>;
43866    fn add_IsDocumentPlayingAudioChanged(
43867        &self,
43868        eventhandler: windows_core::Ref<ICoreWebView2IsDocumentPlayingAudioChangedEventHandler>,
43869        token: *mut i64,
43870    ) -> windows_core::Result<()>;
43871    fn remove_IsDocumentPlayingAudioChanged(&self, token: i64) -> windows_core::Result<()>;
43872    fn IsDocumentPlayingAudio(&self, value: *mut windows_core::BOOL) -> windows_core::Result<()>;
43873}
43874impl ICoreWebView2_8_Vtbl {
43875    pub const fn new<Identity: ICoreWebView2_8_Impl, const OFFSET: isize>() -> Self {
43876        unsafe extern "system" fn add_IsMutedChanged<
43877            Identity: ICoreWebView2_8_Impl,
43878            const OFFSET: isize,
43879        >(
43880            this: *mut core::ffi::c_void,
43881            eventhandler: *mut core::ffi::c_void,
43882            token: *mut i64,
43883        ) -> windows_core::HRESULT {
43884            unsafe {
43885                let this: &Identity =
43886                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
43887                ICoreWebView2_8_Impl::add_IsMutedChanged(
43888                    this,
43889                    core::mem::transmute_copy(&eventhandler),
43890                    core::mem::transmute_copy(&token),
43891                )
43892                .into()
43893            }
43894        }
43895        unsafe extern "system" fn remove_IsMutedChanged<
43896            Identity: ICoreWebView2_8_Impl,
43897            const OFFSET: isize,
43898        >(
43899            this: *mut core::ffi::c_void,
43900            token: i64,
43901        ) -> windows_core::HRESULT {
43902            unsafe {
43903                let this: &Identity =
43904                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
43905                ICoreWebView2_8_Impl::remove_IsMutedChanged(this, core::mem::transmute_copy(&token))
43906                    .into()
43907            }
43908        }
43909        unsafe extern "system" fn IsMuted<Identity: ICoreWebView2_8_Impl, const OFFSET: isize>(
43910            this: *mut core::ffi::c_void,
43911            value: *mut windows_core::BOOL,
43912        ) -> windows_core::HRESULT {
43913            unsafe {
43914                let this: &Identity =
43915                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
43916                ICoreWebView2_8_Impl::IsMuted(this, core::mem::transmute_copy(&value)).into()
43917            }
43918        }
43919        unsafe extern "system" fn SetIsMuted<
43920            Identity: ICoreWebView2_8_Impl,
43921            const OFFSET: isize,
43922        >(
43923            this: *mut core::ffi::c_void,
43924            value: windows_core::BOOL,
43925        ) -> windows_core::HRESULT {
43926            unsafe {
43927                let this: &Identity =
43928                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
43929                ICoreWebView2_8_Impl::SetIsMuted(this, core::mem::transmute_copy(&value)).into()
43930            }
43931        }
43932        unsafe extern "system" fn add_IsDocumentPlayingAudioChanged<
43933            Identity: ICoreWebView2_8_Impl,
43934            const OFFSET: isize,
43935        >(
43936            this: *mut core::ffi::c_void,
43937            eventhandler: *mut core::ffi::c_void,
43938            token: *mut i64,
43939        ) -> windows_core::HRESULT {
43940            unsafe {
43941                let this: &Identity =
43942                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
43943                ICoreWebView2_8_Impl::add_IsDocumentPlayingAudioChanged(
43944                    this,
43945                    core::mem::transmute_copy(&eventhandler),
43946                    core::mem::transmute_copy(&token),
43947                )
43948                .into()
43949            }
43950        }
43951        unsafe extern "system" fn remove_IsDocumentPlayingAudioChanged<
43952            Identity: ICoreWebView2_8_Impl,
43953            const OFFSET: isize,
43954        >(
43955            this: *mut core::ffi::c_void,
43956            token: i64,
43957        ) -> windows_core::HRESULT {
43958            unsafe {
43959                let this: &Identity =
43960                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
43961                ICoreWebView2_8_Impl::remove_IsDocumentPlayingAudioChanged(
43962                    this,
43963                    core::mem::transmute_copy(&token),
43964                )
43965                .into()
43966            }
43967        }
43968        unsafe extern "system" fn IsDocumentPlayingAudio<
43969            Identity: ICoreWebView2_8_Impl,
43970            const OFFSET: isize,
43971        >(
43972            this: *mut core::ffi::c_void,
43973            value: *mut windows_core::BOOL,
43974        ) -> windows_core::HRESULT {
43975            unsafe {
43976                let this: &Identity =
43977                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
43978                ICoreWebView2_8_Impl::IsDocumentPlayingAudio(
43979                    this,
43980                    core::mem::transmute_copy(&value),
43981                )
43982                .into()
43983            }
43984        }
43985        Self {
43986            base__: ICoreWebView2_7_Vtbl::new::<Identity, OFFSET>(),
43987            add_IsMutedChanged: add_IsMutedChanged::<Identity, OFFSET>,
43988            remove_IsMutedChanged: remove_IsMutedChanged::<Identity, OFFSET>,
43989            IsMuted: IsMuted::<Identity, OFFSET>,
43990            SetIsMuted: SetIsMuted::<Identity, OFFSET>,
43991            add_IsDocumentPlayingAudioChanged: add_IsDocumentPlayingAudioChanged::<Identity, OFFSET>,
43992            remove_IsDocumentPlayingAudioChanged: remove_IsDocumentPlayingAudioChanged::<
43993                Identity,
43994                OFFSET,
43995            >,
43996            IsDocumentPlayingAudio: IsDocumentPlayingAudio::<Identity, OFFSET>,
43997        }
43998    }
43999    pub fn matches(iid: &windows_core::GUID) -> bool {
44000        iid == &<ICoreWebView2_8 as windows_core::Interface>::IID
44001            || iid == &<ICoreWebView2 as windows_core::Interface>::IID
44002            || iid == &<ICoreWebView2_2 as windows_core::Interface>::IID
44003            || iid == &<ICoreWebView2_3 as windows_core::Interface>::IID
44004            || iid == &<ICoreWebView2_4 as windows_core::Interface>::IID
44005            || iid == &<ICoreWebView2_5 as windows_core::Interface>::IID
44006            || iid == &<ICoreWebView2_6 as windows_core::Interface>::IID
44007            || iid == &<ICoreWebView2_7 as windows_core::Interface>::IID
44008    }
44009}
44010impl windows_core::RuntimeName for ICoreWebView2_8 {}
44011windows_core::imp::define_interface!(
44012    ICoreWebView2_9,
44013    ICoreWebView2_9_Vtbl,
44014    0x4d7b2eab_9fdc_468d_b998_a9260b5ed651
44015);
44016impl core::ops::Deref for ICoreWebView2_9 {
44017    type Target = ICoreWebView2_8;
44018    fn deref(&self) -> &Self::Target {
44019        unsafe { core::mem::transmute(self) }
44020    }
44021}
44022windows_core::imp::interface_hierarchy!(
44023    ICoreWebView2_9,
44024    windows_core::IUnknown,
44025    ICoreWebView2,
44026    ICoreWebView2_2,
44027    ICoreWebView2_3,
44028    ICoreWebView2_4,
44029    ICoreWebView2_5,
44030    ICoreWebView2_6,
44031    ICoreWebView2_7,
44032    ICoreWebView2_8
44033);
44034impl ICoreWebView2_9 {
44035    pub unsafe fn add_IsDefaultDownloadDialogOpenChanged<P0>(
44036        &self,
44037        handler: P0,
44038        token: *mut i64,
44039    ) -> windows_core::Result<()>
44040    where
44041        P0: windows_core::Param<ICoreWebView2IsDefaultDownloadDialogOpenChangedEventHandler>,
44042    {
44043        unsafe {
44044            (windows_core::Interface::vtable(self).add_IsDefaultDownloadDialogOpenChanged)(
44045                windows_core::Interface::as_raw(self),
44046                handler.param().abi(),
44047                token as _,
44048            )
44049            .ok()
44050        }
44051    }
44052    pub unsafe fn remove_IsDefaultDownloadDialogOpenChanged(
44053        &self,
44054        token: i64,
44055    ) -> windows_core::Result<()> {
44056        unsafe {
44057            (windows_core::Interface::vtable(self).remove_IsDefaultDownloadDialogOpenChanged)(
44058                windows_core::Interface::as_raw(self),
44059                token,
44060            )
44061            .ok()
44062        }
44063    }
44064    pub unsafe fn IsDefaultDownloadDialogOpen(
44065        &self,
44066        value: *mut windows_core::BOOL,
44067    ) -> windows_core::Result<()> {
44068        unsafe {
44069            (windows_core::Interface::vtable(self).IsDefaultDownloadDialogOpen)(
44070                windows_core::Interface::as_raw(self),
44071                value as _,
44072            )
44073            .ok()
44074        }
44075    }
44076    pub unsafe fn OpenDefaultDownloadDialog(&self) -> windows_core::Result<()> {
44077        unsafe {
44078            (windows_core::Interface::vtable(self).OpenDefaultDownloadDialog)(
44079                windows_core::Interface::as_raw(self),
44080            )
44081            .ok()
44082        }
44083    }
44084    pub unsafe fn CloseDefaultDownloadDialog(&self) -> windows_core::Result<()> {
44085        unsafe {
44086            (windows_core::Interface::vtable(self).CloseDefaultDownloadDialog)(
44087                windows_core::Interface::as_raw(self),
44088            )
44089            .ok()
44090        }
44091    }
44092    pub unsafe fn DefaultDownloadDialogCornerAlignment(
44093        &self,
44094        value: *mut COREWEBVIEW2_DEFAULT_DOWNLOAD_DIALOG_CORNER_ALIGNMENT,
44095    ) -> windows_core::Result<()> {
44096        unsafe {
44097            (windows_core::Interface::vtable(self).DefaultDownloadDialogCornerAlignment)(
44098                windows_core::Interface::as_raw(self),
44099                value as _,
44100            )
44101            .ok()
44102        }
44103    }
44104    pub unsafe fn SetDefaultDownloadDialogCornerAlignment(
44105        &self,
44106        value: COREWEBVIEW2_DEFAULT_DOWNLOAD_DIALOG_CORNER_ALIGNMENT,
44107    ) -> windows_core::Result<()> {
44108        unsafe {
44109            (windows_core::Interface::vtable(self).SetDefaultDownloadDialogCornerAlignment)(
44110                windows_core::Interface::as_raw(self),
44111                value,
44112            )
44113            .ok()
44114        }
44115    }
44116    pub unsafe fn DefaultDownloadDialogMargin(
44117        &self,
44118        value: *mut windows::Win32::Foundation::POINT,
44119    ) -> windows_core::Result<()> {
44120        unsafe {
44121            (windows_core::Interface::vtable(self).DefaultDownloadDialogMargin)(
44122                windows_core::Interface::as_raw(self),
44123                value as _,
44124            )
44125            .ok()
44126        }
44127    }
44128    pub unsafe fn SetDefaultDownloadDialogMargin(
44129        &self,
44130        value: windows::Win32::Foundation::POINT,
44131    ) -> windows_core::Result<()> {
44132        unsafe {
44133            (windows_core::Interface::vtable(self).SetDefaultDownloadDialogMargin)(
44134                windows_core::Interface::as_raw(self),
44135                core::mem::transmute(value),
44136            )
44137            .ok()
44138        }
44139    }
44140}
44141#[repr(C)]
44142#[doc(hidden)]
44143pub struct ICoreWebView2_9_Vtbl {
44144    pub base__: ICoreWebView2_8_Vtbl,
44145    pub add_IsDefaultDownloadDialogOpenChanged: unsafe extern "system" fn(
44146        *mut core::ffi::c_void,
44147        *mut core::ffi::c_void,
44148        *mut i64,
44149    )
44150        -> windows_core::HRESULT,
44151    pub remove_IsDefaultDownloadDialogOpenChanged:
44152        unsafe extern "system" fn(*mut core::ffi::c_void, i64) -> windows_core::HRESULT,
44153    pub IsDefaultDownloadDialogOpen: unsafe extern "system" fn(
44154        *mut core::ffi::c_void,
44155        *mut windows_core::BOOL,
44156    ) -> windows_core::HRESULT,
44157    pub OpenDefaultDownloadDialog:
44158        unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
44159    pub CloseDefaultDownloadDialog:
44160        unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
44161    pub DefaultDownloadDialogCornerAlignment: unsafe extern "system" fn(
44162        *mut core::ffi::c_void,
44163        *mut COREWEBVIEW2_DEFAULT_DOWNLOAD_DIALOG_CORNER_ALIGNMENT,
44164    )
44165        -> windows_core::HRESULT,
44166    pub SetDefaultDownloadDialogCornerAlignment: unsafe extern "system" fn(
44167        *mut core::ffi::c_void,
44168        COREWEBVIEW2_DEFAULT_DOWNLOAD_DIALOG_CORNER_ALIGNMENT,
44169    )
44170        -> windows_core::HRESULT,
44171    pub DefaultDownloadDialogMargin: unsafe extern "system" fn(
44172        *mut core::ffi::c_void,
44173        *mut windows::Win32::Foundation::POINT,
44174    ) -> windows_core::HRESULT,
44175    pub SetDefaultDownloadDialogMargin: unsafe extern "system" fn(
44176        *mut core::ffi::c_void,
44177        windows::Win32::Foundation::POINT,
44178    ) -> windows_core::HRESULT,
44179}
44180pub trait ICoreWebView2_9_Impl: ICoreWebView2_8_Impl {
44181    fn add_IsDefaultDownloadDialogOpenChanged(
44182        &self,
44183        handler: windows_core::Ref<ICoreWebView2IsDefaultDownloadDialogOpenChangedEventHandler>,
44184        token: *mut i64,
44185    ) -> windows_core::Result<()>;
44186    fn remove_IsDefaultDownloadDialogOpenChanged(&self, token: i64) -> windows_core::Result<()>;
44187    fn IsDefaultDownloadDialogOpen(
44188        &self,
44189        value: *mut windows_core::BOOL,
44190    ) -> windows_core::Result<()>;
44191    fn OpenDefaultDownloadDialog(&self) -> windows_core::Result<()>;
44192    fn CloseDefaultDownloadDialog(&self) -> windows_core::Result<()>;
44193    fn DefaultDownloadDialogCornerAlignment(
44194        &self,
44195        value: *mut COREWEBVIEW2_DEFAULT_DOWNLOAD_DIALOG_CORNER_ALIGNMENT,
44196    ) -> windows_core::Result<()>;
44197    fn SetDefaultDownloadDialogCornerAlignment(
44198        &self,
44199        value: COREWEBVIEW2_DEFAULT_DOWNLOAD_DIALOG_CORNER_ALIGNMENT,
44200    ) -> windows_core::Result<()>;
44201    fn DefaultDownloadDialogMargin(
44202        &self,
44203        value: *mut windows::Win32::Foundation::POINT,
44204    ) -> windows_core::Result<()>;
44205    fn SetDefaultDownloadDialogMargin(
44206        &self,
44207        value: &windows::Win32::Foundation::POINT,
44208    ) -> windows_core::Result<()>;
44209}
44210impl ICoreWebView2_9_Vtbl {
44211    pub const fn new<Identity: ICoreWebView2_9_Impl, const OFFSET: isize>() -> Self {
44212        unsafe extern "system" fn add_IsDefaultDownloadDialogOpenChanged<
44213            Identity: ICoreWebView2_9_Impl,
44214            const OFFSET: isize,
44215        >(
44216            this: *mut core::ffi::c_void,
44217            handler: *mut core::ffi::c_void,
44218            token: *mut i64,
44219        ) -> windows_core::HRESULT {
44220            unsafe {
44221                let this: &Identity =
44222                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
44223                ICoreWebView2_9_Impl::add_IsDefaultDownloadDialogOpenChanged(
44224                    this,
44225                    core::mem::transmute_copy(&handler),
44226                    core::mem::transmute_copy(&token),
44227                )
44228                .into()
44229            }
44230        }
44231        unsafe extern "system" fn remove_IsDefaultDownloadDialogOpenChanged<
44232            Identity: ICoreWebView2_9_Impl,
44233            const OFFSET: isize,
44234        >(
44235            this: *mut core::ffi::c_void,
44236            token: i64,
44237        ) -> windows_core::HRESULT {
44238            unsafe {
44239                let this: &Identity =
44240                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
44241                ICoreWebView2_9_Impl::remove_IsDefaultDownloadDialogOpenChanged(
44242                    this,
44243                    core::mem::transmute_copy(&token),
44244                )
44245                .into()
44246            }
44247        }
44248        unsafe extern "system" fn IsDefaultDownloadDialogOpen<
44249            Identity: ICoreWebView2_9_Impl,
44250            const OFFSET: isize,
44251        >(
44252            this: *mut core::ffi::c_void,
44253            value: *mut windows_core::BOOL,
44254        ) -> windows_core::HRESULT {
44255            unsafe {
44256                let this: &Identity =
44257                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
44258                ICoreWebView2_9_Impl::IsDefaultDownloadDialogOpen(
44259                    this,
44260                    core::mem::transmute_copy(&value),
44261                )
44262                .into()
44263            }
44264        }
44265        unsafe extern "system" fn OpenDefaultDownloadDialog<
44266            Identity: ICoreWebView2_9_Impl,
44267            const OFFSET: isize,
44268        >(
44269            this: *mut core::ffi::c_void,
44270        ) -> windows_core::HRESULT {
44271            unsafe {
44272                let this: &Identity =
44273                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
44274                ICoreWebView2_9_Impl::OpenDefaultDownloadDialog(this).into()
44275            }
44276        }
44277        unsafe extern "system" fn CloseDefaultDownloadDialog<
44278            Identity: ICoreWebView2_9_Impl,
44279            const OFFSET: isize,
44280        >(
44281            this: *mut core::ffi::c_void,
44282        ) -> windows_core::HRESULT {
44283            unsafe {
44284                let this: &Identity =
44285                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
44286                ICoreWebView2_9_Impl::CloseDefaultDownloadDialog(this).into()
44287            }
44288        }
44289        unsafe extern "system" fn DefaultDownloadDialogCornerAlignment<
44290            Identity: ICoreWebView2_9_Impl,
44291            const OFFSET: isize,
44292        >(
44293            this: *mut core::ffi::c_void,
44294            value: *mut COREWEBVIEW2_DEFAULT_DOWNLOAD_DIALOG_CORNER_ALIGNMENT,
44295        ) -> windows_core::HRESULT {
44296            unsafe {
44297                let this: &Identity =
44298                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
44299                ICoreWebView2_9_Impl::DefaultDownloadDialogCornerAlignment(
44300                    this,
44301                    core::mem::transmute_copy(&value),
44302                )
44303                .into()
44304            }
44305        }
44306        unsafe extern "system" fn SetDefaultDownloadDialogCornerAlignment<
44307            Identity: ICoreWebView2_9_Impl,
44308            const OFFSET: isize,
44309        >(
44310            this: *mut core::ffi::c_void,
44311            value: COREWEBVIEW2_DEFAULT_DOWNLOAD_DIALOG_CORNER_ALIGNMENT,
44312        ) -> windows_core::HRESULT {
44313            unsafe {
44314                let this: &Identity =
44315                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
44316                ICoreWebView2_9_Impl::SetDefaultDownloadDialogCornerAlignment(
44317                    this,
44318                    core::mem::transmute_copy(&value),
44319                )
44320                .into()
44321            }
44322        }
44323        unsafe extern "system" fn DefaultDownloadDialogMargin<
44324            Identity: ICoreWebView2_9_Impl,
44325            const OFFSET: isize,
44326        >(
44327            this: *mut core::ffi::c_void,
44328            value: *mut windows::Win32::Foundation::POINT,
44329        ) -> windows_core::HRESULT {
44330            unsafe {
44331                let this: &Identity =
44332                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
44333                ICoreWebView2_9_Impl::DefaultDownloadDialogMargin(
44334                    this,
44335                    core::mem::transmute_copy(&value),
44336                )
44337                .into()
44338            }
44339        }
44340        unsafe extern "system" fn SetDefaultDownloadDialogMargin<
44341            Identity: ICoreWebView2_9_Impl,
44342            const OFFSET: isize,
44343        >(
44344            this: *mut core::ffi::c_void,
44345            value: windows::Win32::Foundation::POINT,
44346        ) -> windows_core::HRESULT {
44347            unsafe {
44348                let this: &Identity =
44349                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
44350                ICoreWebView2_9_Impl::SetDefaultDownloadDialogMargin(
44351                    this,
44352                    core::mem::transmute(&value),
44353                )
44354                .into()
44355            }
44356        }
44357        Self {
44358            base__: ICoreWebView2_8_Vtbl::new::<Identity, OFFSET>(),
44359            add_IsDefaultDownloadDialogOpenChanged: add_IsDefaultDownloadDialogOpenChanged::<
44360                Identity,
44361                OFFSET,
44362            >,
44363            remove_IsDefaultDownloadDialogOpenChanged: remove_IsDefaultDownloadDialogOpenChanged::<
44364                Identity,
44365                OFFSET,
44366            >,
44367            IsDefaultDownloadDialogOpen: IsDefaultDownloadDialogOpen::<Identity, OFFSET>,
44368            OpenDefaultDownloadDialog: OpenDefaultDownloadDialog::<Identity, OFFSET>,
44369            CloseDefaultDownloadDialog: CloseDefaultDownloadDialog::<Identity, OFFSET>,
44370            DefaultDownloadDialogCornerAlignment: DefaultDownloadDialogCornerAlignment::<
44371                Identity,
44372                OFFSET,
44373            >,
44374            SetDefaultDownloadDialogCornerAlignment: SetDefaultDownloadDialogCornerAlignment::<
44375                Identity,
44376                OFFSET,
44377            >,
44378            DefaultDownloadDialogMargin: DefaultDownloadDialogMargin::<Identity, OFFSET>,
44379            SetDefaultDownloadDialogMargin: SetDefaultDownloadDialogMargin::<Identity, OFFSET>,
44380        }
44381    }
44382    pub fn matches(iid: &windows_core::GUID) -> bool {
44383        iid == &<ICoreWebView2_9 as windows_core::Interface>::IID
44384            || iid == &<ICoreWebView2 as windows_core::Interface>::IID
44385            || iid == &<ICoreWebView2_2 as windows_core::Interface>::IID
44386            || iid == &<ICoreWebView2_3 as windows_core::Interface>::IID
44387            || iid == &<ICoreWebView2_4 as windows_core::Interface>::IID
44388            || iid == &<ICoreWebView2_5 as windows_core::Interface>::IID
44389            || iid == &<ICoreWebView2_6 as windows_core::Interface>::IID
44390            || iid == &<ICoreWebView2_7 as windows_core::Interface>::IID
44391            || iid == &<ICoreWebView2_8 as windows_core::Interface>::IID
44392    }
44393}
44394impl windows_core::RuntimeName for ICoreWebView2_9 {}