webview2_com_sys/
bindings.rs

1// Bindings generated by `windows-bindgen` 0.61.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_link::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_link::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_link::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_link::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_link::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!("134.0.3124.44");
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            '_,
2057            ICoreWebView2AddScriptToExecuteOnDocumentCreatedCompletedHandler,
2058        >,
2059    ) -> windows_core::Result<()>;
2060    fn RemoveScriptToExecuteOnDocumentCreated(
2061        &self,
2062        id: &windows_core::PCWSTR,
2063    ) -> windows_core::Result<()>;
2064    fn ExecuteScript(
2065        &self,
2066        javascript: &windows_core::PCWSTR,
2067        handler: windows_core::Ref<'_, ICoreWebView2ExecuteScriptCompletedHandler>,
2068    ) -> windows_core::Result<()>;
2069    fn CapturePreview(
2070        &self,
2071        imageformat: COREWEBVIEW2_CAPTURE_PREVIEW_IMAGE_FORMAT,
2072        imagestream: windows_core::Ref<'_, windows::Win32::System::Com::IStream>,
2073        handler: windows_core::Ref<'_, ICoreWebView2CapturePreviewCompletedHandler>,
2074    ) -> windows_core::Result<()>;
2075    fn Reload(&self) -> windows_core::Result<()>;
2076    fn PostWebMessageAsJson(
2077        &self,
2078        webmessageasjson: &windows_core::PCWSTR,
2079    ) -> windows_core::Result<()>;
2080    fn PostWebMessageAsString(
2081        &self,
2082        webmessageasstring: &windows_core::PCWSTR,
2083    ) -> windows_core::Result<()>;
2084    fn add_WebMessageReceived(
2085        &self,
2086        handler: windows_core::Ref<'_, ICoreWebView2WebMessageReceivedEventHandler>,
2087        token: *mut i64,
2088    ) -> windows_core::Result<()>;
2089    fn remove_WebMessageReceived(&self, token: i64) -> windows_core::Result<()>;
2090    fn CallDevToolsProtocolMethod(
2091        &self,
2092        methodname: &windows_core::PCWSTR,
2093        parametersasjson: &windows_core::PCWSTR,
2094        handler: windows_core::Ref<'_, ICoreWebView2CallDevToolsProtocolMethodCompletedHandler>,
2095    ) -> windows_core::Result<()>;
2096    fn BrowserProcessId(&self, value: *mut u32) -> windows_core::Result<()>;
2097    fn CanGoBack(&self, cangoback: *mut windows_core::BOOL) -> windows_core::Result<()>;
2098    fn CanGoForward(&self, cangoforward: *mut windows_core::BOOL) -> windows_core::Result<()>;
2099    fn GoBack(&self) -> windows_core::Result<()>;
2100    fn GoForward(&self) -> windows_core::Result<()>;
2101    fn GetDevToolsProtocolEventReceiver(
2102        &self,
2103        eventname: &windows_core::PCWSTR,
2104    ) -> windows_core::Result<ICoreWebView2DevToolsProtocolEventReceiver>;
2105    fn Stop(&self) -> windows_core::Result<()>;
2106    fn add_NewWindowRequested(
2107        &self,
2108        eventhandler: windows_core::Ref<'_, ICoreWebView2NewWindowRequestedEventHandler>,
2109        token: *mut i64,
2110    ) -> windows_core::Result<()>;
2111    fn remove_NewWindowRequested(&self, token: i64) -> windows_core::Result<()>;
2112    fn add_DocumentTitleChanged(
2113        &self,
2114        eventhandler: windows_core::Ref<'_, ICoreWebView2DocumentTitleChangedEventHandler>,
2115        token: *mut i64,
2116    ) -> windows_core::Result<()>;
2117    fn remove_DocumentTitleChanged(&self, token: i64) -> windows_core::Result<()>;
2118    fn DocumentTitle(&self, title: *mut windows_core::PWSTR) -> windows_core::Result<()>;
2119    fn AddHostObjectToScript(
2120        &self,
2121        name: &windows_core::PCWSTR,
2122        object: *mut windows::Win32::System::Variant::VARIANT,
2123    ) -> windows_core::Result<()>;
2124    fn RemoveHostObjectFromScript(&self, name: &windows_core::PCWSTR) -> windows_core::Result<()>;
2125    fn OpenDevToolsWindow(&self) -> windows_core::Result<()>;
2126    fn add_ContainsFullScreenElementChanged(
2127        &self,
2128        eventhandler: windows_core::Ref<
2129            '_,
2130            ICoreWebView2ContainsFullScreenElementChangedEventHandler,
2131        >,
2132        token: *mut i64,
2133    ) -> windows_core::Result<()>;
2134    fn remove_ContainsFullScreenElementChanged(&self, token: i64) -> windows_core::Result<()>;
2135    fn ContainsFullScreenElement(
2136        &self,
2137        containsfullscreenelement: *mut windows_core::BOOL,
2138    ) -> windows_core::Result<()>;
2139    fn add_WebResourceRequested(
2140        &self,
2141        eventhandler: windows_core::Ref<'_, ICoreWebView2WebResourceRequestedEventHandler>,
2142        token: *mut i64,
2143    ) -> windows_core::Result<()>;
2144    fn remove_WebResourceRequested(&self, token: i64) -> windows_core::Result<()>;
2145    fn AddWebResourceRequestedFilter(
2146        &self,
2147        uri: &windows_core::PCWSTR,
2148        resourcecontext: COREWEBVIEW2_WEB_RESOURCE_CONTEXT,
2149    ) -> windows_core::Result<()>;
2150    fn RemoveWebResourceRequestedFilter(
2151        &self,
2152        uri: &windows_core::PCWSTR,
2153        resourcecontext: COREWEBVIEW2_WEB_RESOURCE_CONTEXT,
2154    ) -> windows_core::Result<()>;
2155    fn add_WindowCloseRequested(
2156        &self,
2157        eventhandler: windows_core::Ref<'_, ICoreWebView2WindowCloseRequestedEventHandler>,
2158        token: *mut i64,
2159    ) -> windows_core::Result<()>;
2160    fn remove_WindowCloseRequested(&self, token: i64) -> windows_core::Result<()>;
2161}
2162impl ICoreWebView2_Vtbl {
2163    pub const fn new<Identity: ICoreWebView2_Impl, const OFFSET: isize>() -> Self {
2164        unsafe extern "system" fn Settings<Identity: ICoreWebView2_Impl, const OFFSET: isize>(
2165            this: *mut core::ffi::c_void,
2166            settings: *mut *mut core::ffi::c_void,
2167        ) -> windows_core::HRESULT {
2168            unsafe {
2169                let this: &Identity =
2170                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
2171                match ICoreWebView2_Impl::Settings(this) {
2172                    Ok(ok__) => {
2173                        settings.write(core::mem::transmute(ok__));
2174                        windows_core::HRESULT(0)
2175                    }
2176                    Err(err) => err.into(),
2177                }
2178            }
2179        }
2180        unsafe extern "system" fn Source<Identity: ICoreWebView2_Impl, const OFFSET: isize>(
2181            this: *mut core::ffi::c_void,
2182            uri: *mut windows_core::PWSTR,
2183        ) -> windows_core::HRESULT {
2184            unsafe {
2185                let this: &Identity =
2186                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
2187                ICoreWebView2_Impl::Source(this, core::mem::transmute_copy(&uri)).into()
2188            }
2189        }
2190        unsafe extern "system" fn Navigate<Identity: ICoreWebView2_Impl, const OFFSET: isize>(
2191            this: *mut core::ffi::c_void,
2192            uri: windows_core::PCWSTR,
2193        ) -> windows_core::HRESULT {
2194            unsafe {
2195                let this: &Identity =
2196                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
2197                ICoreWebView2_Impl::Navigate(this, core::mem::transmute(&uri)).into()
2198            }
2199        }
2200        unsafe extern "system" fn NavigateToString<
2201            Identity: ICoreWebView2_Impl,
2202            const OFFSET: isize,
2203        >(
2204            this: *mut core::ffi::c_void,
2205            htmlcontent: windows_core::PCWSTR,
2206        ) -> windows_core::HRESULT {
2207            unsafe {
2208                let this: &Identity =
2209                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
2210                ICoreWebView2_Impl::NavigateToString(this, core::mem::transmute(&htmlcontent))
2211                    .into()
2212            }
2213        }
2214        unsafe extern "system" fn add_NavigationStarting<
2215            Identity: ICoreWebView2_Impl,
2216            const OFFSET: isize,
2217        >(
2218            this: *mut core::ffi::c_void,
2219            eventhandler: *mut core::ffi::c_void,
2220            token: *mut i64,
2221        ) -> windows_core::HRESULT {
2222            unsafe {
2223                let this: &Identity =
2224                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
2225                ICoreWebView2_Impl::add_NavigationStarting(
2226                    this,
2227                    core::mem::transmute_copy(&eventhandler),
2228                    core::mem::transmute_copy(&token),
2229                )
2230                .into()
2231            }
2232        }
2233        unsafe extern "system" fn remove_NavigationStarting<
2234            Identity: ICoreWebView2_Impl,
2235            const OFFSET: isize,
2236        >(
2237            this: *mut core::ffi::c_void,
2238            token: i64,
2239        ) -> windows_core::HRESULT {
2240            unsafe {
2241                let this: &Identity =
2242                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
2243                ICoreWebView2_Impl::remove_NavigationStarting(
2244                    this,
2245                    core::mem::transmute_copy(&token),
2246                )
2247                .into()
2248            }
2249        }
2250        unsafe extern "system" fn add_ContentLoading<
2251            Identity: ICoreWebView2_Impl,
2252            const OFFSET: isize,
2253        >(
2254            this: *mut core::ffi::c_void,
2255            eventhandler: *mut core::ffi::c_void,
2256            token: *mut i64,
2257        ) -> windows_core::HRESULT {
2258            unsafe {
2259                let this: &Identity =
2260                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
2261                ICoreWebView2_Impl::add_ContentLoading(
2262                    this,
2263                    core::mem::transmute_copy(&eventhandler),
2264                    core::mem::transmute_copy(&token),
2265                )
2266                .into()
2267            }
2268        }
2269        unsafe extern "system" fn remove_ContentLoading<
2270            Identity: ICoreWebView2_Impl,
2271            const OFFSET: isize,
2272        >(
2273            this: *mut core::ffi::c_void,
2274            token: i64,
2275        ) -> windows_core::HRESULT {
2276            unsafe {
2277                let this: &Identity =
2278                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
2279                ICoreWebView2_Impl::remove_ContentLoading(this, core::mem::transmute_copy(&token))
2280                    .into()
2281            }
2282        }
2283        unsafe extern "system" fn add_SourceChanged<
2284            Identity: ICoreWebView2_Impl,
2285            const OFFSET: isize,
2286        >(
2287            this: *mut core::ffi::c_void,
2288            eventhandler: *mut core::ffi::c_void,
2289            token: *mut i64,
2290        ) -> windows_core::HRESULT {
2291            unsafe {
2292                let this: &Identity =
2293                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
2294                ICoreWebView2_Impl::add_SourceChanged(
2295                    this,
2296                    core::mem::transmute_copy(&eventhandler),
2297                    core::mem::transmute_copy(&token),
2298                )
2299                .into()
2300            }
2301        }
2302        unsafe extern "system" fn remove_SourceChanged<
2303            Identity: ICoreWebView2_Impl,
2304            const OFFSET: isize,
2305        >(
2306            this: *mut core::ffi::c_void,
2307            token: i64,
2308        ) -> windows_core::HRESULT {
2309            unsafe {
2310                let this: &Identity =
2311                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
2312                ICoreWebView2_Impl::remove_SourceChanged(this, core::mem::transmute_copy(&token))
2313                    .into()
2314            }
2315        }
2316        unsafe extern "system" fn add_HistoryChanged<
2317            Identity: ICoreWebView2_Impl,
2318            const OFFSET: isize,
2319        >(
2320            this: *mut core::ffi::c_void,
2321            eventhandler: *mut core::ffi::c_void,
2322            token: *mut i64,
2323        ) -> windows_core::HRESULT {
2324            unsafe {
2325                let this: &Identity =
2326                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
2327                ICoreWebView2_Impl::add_HistoryChanged(
2328                    this,
2329                    core::mem::transmute_copy(&eventhandler),
2330                    core::mem::transmute_copy(&token),
2331                )
2332                .into()
2333            }
2334        }
2335        unsafe extern "system" fn remove_HistoryChanged<
2336            Identity: ICoreWebView2_Impl,
2337            const OFFSET: isize,
2338        >(
2339            this: *mut core::ffi::c_void,
2340            token: i64,
2341        ) -> windows_core::HRESULT {
2342            unsafe {
2343                let this: &Identity =
2344                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
2345                ICoreWebView2_Impl::remove_HistoryChanged(this, core::mem::transmute_copy(&token))
2346                    .into()
2347            }
2348        }
2349        unsafe extern "system" fn add_NavigationCompleted<
2350            Identity: ICoreWebView2_Impl,
2351            const OFFSET: isize,
2352        >(
2353            this: *mut core::ffi::c_void,
2354            eventhandler: *mut core::ffi::c_void,
2355            token: *mut i64,
2356        ) -> windows_core::HRESULT {
2357            unsafe {
2358                let this: &Identity =
2359                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
2360                ICoreWebView2_Impl::add_NavigationCompleted(
2361                    this,
2362                    core::mem::transmute_copy(&eventhandler),
2363                    core::mem::transmute_copy(&token),
2364                )
2365                .into()
2366            }
2367        }
2368        unsafe extern "system" fn remove_NavigationCompleted<
2369            Identity: ICoreWebView2_Impl,
2370            const OFFSET: isize,
2371        >(
2372            this: *mut core::ffi::c_void,
2373            token: i64,
2374        ) -> windows_core::HRESULT {
2375            unsafe {
2376                let this: &Identity =
2377                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
2378                ICoreWebView2_Impl::remove_NavigationCompleted(
2379                    this,
2380                    core::mem::transmute_copy(&token),
2381                )
2382                .into()
2383            }
2384        }
2385        unsafe extern "system" fn add_FrameNavigationStarting<
2386            Identity: ICoreWebView2_Impl,
2387            const OFFSET: isize,
2388        >(
2389            this: *mut core::ffi::c_void,
2390            eventhandler: *mut core::ffi::c_void,
2391            token: *mut i64,
2392        ) -> windows_core::HRESULT {
2393            unsafe {
2394                let this: &Identity =
2395                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
2396                ICoreWebView2_Impl::add_FrameNavigationStarting(
2397                    this,
2398                    core::mem::transmute_copy(&eventhandler),
2399                    core::mem::transmute_copy(&token),
2400                )
2401                .into()
2402            }
2403        }
2404        unsafe extern "system" fn remove_FrameNavigationStarting<
2405            Identity: ICoreWebView2_Impl,
2406            const OFFSET: isize,
2407        >(
2408            this: *mut core::ffi::c_void,
2409            token: i64,
2410        ) -> windows_core::HRESULT {
2411            unsafe {
2412                let this: &Identity =
2413                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
2414                ICoreWebView2_Impl::remove_FrameNavigationStarting(
2415                    this,
2416                    core::mem::transmute_copy(&token),
2417                )
2418                .into()
2419            }
2420        }
2421        unsafe extern "system" fn add_FrameNavigationCompleted<
2422            Identity: ICoreWebView2_Impl,
2423            const OFFSET: isize,
2424        >(
2425            this: *mut core::ffi::c_void,
2426            eventhandler: *mut core::ffi::c_void,
2427            token: *mut i64,
2428        ) -> windows_core::HRESULT {
2429            unsafe {
2430                let this: &Identity =
2431                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
2432                ICoreWebView2_Impl::add_FrameNavigationCompleted(
2433                    this,
2434                    core::mem::transmute_copy(&eventhandler),
2435                    core::mem::transmute_copy(&token),
2436                )
2437                .into()
2438            }
2439        }
2440        unsafe extern "system" fn remove_FrameNavigationCompleted<
2441            Identity: ICoreWebView2_Impl,
2442            const OFFSET: isize,
2443        >(
2444            this: *mut core::ffi::c_void,
2445            token: i64,
2446        ) -> windows_core::HRESULT {
2447            unsafe {
2448                let this: &Identity =
2449                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
2450                ICoreWebView2_Impl::remove_FrameNavigationCompleted(
2451                    this,
2452                    core::mem::transmute_copy(&token),
2453                )
2454                .into()
2455            }
2456        }
2457        unsafe extern "system" fn add_ScriptDialogOpening<
2458            Identity: ICoreWebView2_Impl,
2459            const OFFSET: isize,
2460        >(
2461            this: *mut core::ffi::c_void,
2462            eventhandler: *mut core::ffi::c_void,
2463            token: *mut i64,
2464        ) -> windows_core::HRESULT {
2465            unsafe {
2466                let this: &Identity =
2467                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
2468                ICoreWebView2_Impl::add_ScriptDialogOpening(
2469                    this,
2470                    core::mem::transmute_copy(&eventhandler),
2471                    core::mem::transmute_copy(&token),
2472                )
2473                .into()
2474            }
2475        }
2476        unsafe extern "system" fn remove_ScriptDialogOpening<
2477            Identity: ICoreWebView2_Impl,
2478            const OFFSET: isize,
2479        >(
2480            this: *mut core::ffi::c_void,
2481            token: i64,
2482        ) -> windows_core::HRESULT {
2483            unsafe {
2484                let this: &Identity =
2485                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
2486                ICoreWebView2_Impl::remove_ScriptDialogOpening(
2487                    this,
2488                    core::mem::transmute_copy(&token),
2489                )
2490                .into()
2491            }
2492        }
2493        unsafe extern "system" fn add_PermissionRequested<
2494            Identity: ICoreWebView2_Impl,
2495            const OFFSET: isize,
2496        >(
2497            this: *mut core::ffi::c_void,
2498            eventhandler: *mut core::ffi::c_void,
2499            token: *mut i64,
2500        ) -> windows_core::HRESULT {
2501            unsafe {
2502                let this: &Identity =
2503                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
2504                ICoreWebView2_Impl::add_PermissionRequested(
2505                    this,
2506                    core::mem::transmute_copy(&eventhandler),
2507                    core::mem::transmute_copy(&token),
2508                )
2509                .into()
2510            }
2511        }
2512        unsafe extern "system" fn remove_PermissionRequested<
2513            Identity: ICoreWebView2_Impl,
2514            const OFFSET: isize,
2515        >(
2516            this: *mut core::ffi::c_void,
2517            token: i64,
2518        ) -> windows_core::HRESULT {
2519            unsafe {
2520                let this: &Identity =
2521                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
2522                ICoreWebView2_Impl::remove_PermissionRequested(
2523                    this,
2524                    core::mem::transmute_copy(&token),
2525                )
2526                .into()
2527            }
2528        }
2529        unsafe extern "system" fn add_ProcessFailed<
2530            Identity: ICoreWebView2_Impl,
2531            const OFFSET: isize,
2532        >(
2533            this: *mut core::ffi::c_void,
2534            eventhandler: *mut core::ffi::c_void,
2535            token: *mut i64,
2536        ) -> windows_core::HRESULT {
2537            unsafe {
2538                let this: &Identity =
2539                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
2540                ICoreWebView2_Impl::add_ProcessFailed(
2541                    this,
2542                    core::mem::transmute_copy(&eventhandler),
2543                    core::mem::transmute_copy(&token),
2544                )
2545                .into()
2546            }
2547        }
2548        unsafe extern "system" fn remove_ProcessFailed<
2549            Identity: ICoreWebView2_Impl,
2550            const OFFSET: isize,
2551        >(
2552            this: *mut core::ffi::c_void,
2553            token: i64,
2554        ) -> windows_core::HRESULT {
2555            unsafe {
2556                let this: &Identity =
2557                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
2558                ICoreWebView2_Impl::remove_ProcessFailed(this, core::mem::transmute_copy(&token))
2559                    .into()
2560            }
2561        }
2562        unsafe extern "system" fn AddScriptToExecuteOnDocumentCreated<
2563            Identity: ICoreWebView2_Impl,
2564            const OFFSET: isize,
2565        >(
2566            this: *mut core::ffi::c_void,
2567            javascript: windows_core::PCWSTR,
2568            handler: *mut core::ffi::c_void,
2569        ) -> windows_core::HRESULT {
2570            unsafe {
2571                let this: &Identity =
2572                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
2573                ICoreWebView2_Impl::AddScriptToExecuteOnDocumentCreated(
2574                    this,
2575                    core::mem::transmute(&javascript),
2576                    core::mem::transmute_copy(&handler),
2577                )
2578                .into()
2579            }
2580        }
2581        unsafe extern "system" fn RemoveScriptToExecuteOnDocumentCreated<
2582            Identity: ICoreWebView2_Impl,
2583            const OFFSET: isize,
2584        >(
2585            this: *mut core::ffi::c_void,
2586            id: windows_core::PCWSTR,
2587        ) -> windows_core::HRESULT {
2588            unsafe {
2589                let this: &Identity =
2590                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
2591                ICoreWebView2_Impl::RemoveScriptToExecuteOnDocumentCreated(
2592                    this,
2593                    core::mem::transmute(&id),
2594                )
2595                .into()
2596            }
2597        }
2598        unsafe extern "system" fn ExecuteScript<
2599            Identity: ICoreWebView2_Impl,
2600            const OFFSET: isize,
2601        >(
2602            this: *mut core::ffi::c_void,
2603            javascript: windows_core::PCWSTR,
2604            handler: *mut core::ffi::c_void,
2605        ) -> windows_core::HRESULT {
2606            unsafe {
2607                let this: &Identity =
2608                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
2609                ICoreWebView2_Impl::ExecuteScript(
2610                    this,
2611                    core::mem::transmute(&javascript),
2612                    core::mem::transmute_copy(&handler),
2613                )
2614                .into()
2615            }
2616        }
2617        unsafe extern "system" fn CapturePreview<
2618            Identity: ICoreWebView2_Impl,
2619            const OFFSET: isize,
2620        >(
2621            this: *mut core::ffi::c_void,
2622            imageformat: COREWEBVIEW2_CAPTURE_PREVIEW_IMAGE_FORMAT,
2623            imagestream: *mut core::ffi::c_void,
2624            handler: *mut core::ffi::c_void,
2625        ) -> windows_core::HRESULT {
2626            unsafe {
2627                let this: &Identity =
2628                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
2629                ICoreWebView2_Impl::CapturePreview(
2630                    this,
2631                    core::mem::transmute_copy(&imageformat),
2632                    core::mem::transmute_copy(&imagestream),
2633                    core::mem::transmute_copy(&handler),
2634                )
2635                .into()
2636            }
2637        }
2638        unsafe extern "system" fn Reload<Identity: ICoreWebView2_Impl, const OFFSET: isize>(
2639            this: *mut core::ffi::c_void,
2640        ) -> windows_core::HRESULT {
2641            unsafe {
2642                let this: &Identity =
2643                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
2644                ICoreWebView2_Impl::Reload(this).into()
2645            }
2646        }
2647        unsafe extern "system" fn PostWebMessageAsJson<
2648            Identity: ICoreWebView2_Impl,
2649            const OFFSET: isize,
2650        >(
2651            this: *mut core::ffi::c_void,
2652            webmessageasjson: windows_core::PCWSTR,
2653        ) -> windows_core::HRESULT {
2654            unsafe {
2655                let this: &Identity =
2656                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
2657                ICoreWebView2_Impl::PostWebMessageAsJson(
2658                    this,
2659                    core::mem::transmute(&webmessageasjson),
2660                )
2661                .into()
2662            }
2663        }
2664        unsafe extern "system" fn PostWebMessageAsString<
2665            Identity: ICoreWebView2_Impl,
2666            const OFFSET: isize,
2667        >(
2668            this: *mut core::ffi::c_void,
2669            webmessageasstring: windows_core::PCWSTR,
2670        ) -> windows_core::HRESULT {
2671            unsafe {
2672                let this: &Identity =
2673                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
2674                ICoreWebView2_Impl::PostWebMessageAsString(
2675                    this,
2676                    core::mem::transmute(&webmessageasstring),
2677                )
2678                .into()
2679            }
2680        }
2681        unsafe extern "system" fn add_WebMessageReceived<
2682            Identity: ICoreWebView2_Impl,
2683            const OFFSET: isize,
2684        >(
2685            this: *mut core::ffi::c_void,
2686            handler: *mut core::ffi::c_void,
2687            token: *mut i64,
2688        ) -> windows_core::HRESULT {
2689            unsafe {
2690                let this: &Identity =
2691                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
2692                ICoreWebView2_Impl::add_WebMessageReceived(
2693                    this,
2694                    core::mem::transmute_copy(&handler),
2695                    core::mem::transmute_copy(&token),
2696                )
2697                .into()
2698            }
2699        }
2700        unsafe extern "system" fn remove_WebMessageReceived<
2701            Identity: ICoreWebView2_Impl,
2702            const OFFSET: isize,
2703        >(
2704            this: *mut core::ffi::c_void,
2705            token: i64,
2706        ) -> windows_core::HRESULT {
2707            unsafe {
2708                let this: &Identity =
2709                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
2710                ICoreWebView2_Impl::remove_WebMessageReceived(
2711                    this,
2712                    core::mem::transmute_copy(&token),
2713                )
2714                .into()
2715            }
2716        }
2717        unsafe extern "system" fn CallDevToolsProtocolMethod<
2718            Identity: ICoreWebView2_Impl,
2719            const OFFSET: isize,
2720        >(
2721            this: *mut core::ffi::c_void,
2722            methodname: windows_core::PCWSTR,
2723            parametersasjson: windows_core::PCWSTR,
2724            handler: *mut core::ffi::c_void,
2725        ) -> windows_core::HRESULT {
2726            unsafe {
2727                let this: &Identity =
2728                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
2729                ICoreWebView2_Impl::CallDevToolsProtocolMethod(
2730                    this,
2731                    core::mem::transmute(&methodname),
2732                    core::mem::transmute(&parametersasjson),
2733                    core::mem::transmute_copy(&handler),
2734                )
2735                .into()
2736            }
2737        }
2738        unsafe extern "system" fn BrowserProcessId<
2739            Identity: ICoreWebView2_Impl,
2740            const OFFSET: isize,
2741        >(
2742            this: *mut core::ffi::c_void,
2743            value: *mut u32,
2744        ) -> windows_core::HRESULT {
2745            unsafe {
2746                let this: &Identity =
2747                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
2748                ICoreWebView2_Impl::BrowserProcessId(this, core::mem::transmute_copy(&value)).into()
2749            }
2750        }
2751        unsafe extern "system" fn CanGoBack<Identity: ICoreWebView2_Impl, const OFFSET: isize>(
2752            this: *mut core::ffi::c_void,
2753            cangoback: *mut windows_core::BOOL,
2754        ) -> windows_core::HRESULT {
2755            unsafe {
2756                let this: &Identity =
2757                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
2758                ICoreWebView2_Impl::CanGoBack(this, core::mem::transmute_copy(&cangoback)).into()
2759            }
2760        }
2761        unsafe extern "system" fn CanGoForward<
2762            Identity: ICoreWebView2_Impl,
2763            const OFFSET: isize,
2764        >(
2765            this: *mut core::ffi::c_void,
2766            cangoforward: *mut windows_core::BOOL,
2767        ) -> windows_core::HRESULT {
2768            unsafe {
2769                let this: &Identity =
2770                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
2771                ICoreWebView2_Impl::CanGoForward(this, core::mem::transmute_copy(&cangoforward))
2772                    .into()
2773            }
2774        }
2775        unsafe extern "system" fn GoBack<Identity: ICoreWebView2_Impl, const OFFSET: isize>(
2776            this: *mut core::ffi::c_void,
2777        ) -> windows_core::HRESULT {
2778            unsafe {
2779                let this: &Identity =
2780                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
2781                ICoreWebView2_Impl::GoBack(this).into()
2782            }
2783        }
2784        unsafe extern "system" fn GoForward<Identity: ICoreWebView2_Impl, const OFFSET: isize>(
2785            this: *mut core::ffi::c_void,
2786        ) -> windows_core::HRESULT {
2787            unsafe {
2788                let this: &Identity =
2789                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
2790                ICoreWebView2_Impl::GoForward(this).into()
2791            }
2792        }
2793        unsafe extern "system" fn GetDevToolsProtocolEventReceiver<
2794            Identity: ICoreWebView2_Impl,
2795            const OFFSET: isize,
2796        >(
2797            this: *mut core::ffi::c_void,
2798            eventname: windows_core::PCWSTR,
2799            receiver: *mut *mut core::ffi::c_void,
2800        ) -> windows_core::HRESULT {
2801            unsafe {
2802                let this: &Identity =
2803                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
2804                match ICoreWebView2_Impl::GetDevToolsProtocolEventReceiver(
2805                    this,
2806                    core::mem::transmute(&eventname),
2807                ) {
2808                    Ok(ok__) => {
2809                        receiver.write(core::mem::transmute(ok__));
2810                        windows_core::HRESULT(0)
2811                    }
2812                    Err(err) => err.into(),
2813                }
2814            }
2815        }
2816        unsafe extern "system" fn Stop<Identity: ICoreWebView2_Impl, const OFFSET: isize>(
2817            this: *mut core::ffi::c_void,
2818        ) -> windows_core::HRESULT {
2819            unsafe {
2820                let this: &Identity =
2821                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
2822                ICoreWebView2_Impl::Stop(this).into()
2823            }
2824        }
2825        unsafe extern "system" fn add_NewWindowRequested<
2826            Identity: ICoreWebView2_Impl,
2827            const OFFSET: isize,
2828        >(
2829            this: *mut core::ffi::c_void,
2830            eventhandler: *mut core::ffi::c_void,
2831            token: *mut i64,
2832        ) -> windows_core::HRESULT {
2833            unsafe {
2834                let this: &Identity =
2835                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
2836                ICoreWebView2_Impl::add_NewWindowRequested(
2837                    this,
2838                    core::mem::transmute_copy(&eventhandler),
2839                    core::mem::transmute_copy(&token),
2840                )
2841                .into()
2842            }
2843        }
2844        unsafe extern "system" fn remove_NewWindowRequested<
2845            Identity: ICoreWebView2_Impl,
2846            const OFFSET: isize,
2847        >(
2848            this: *mut core::ffi::c_void,
2849            token: i64,
2850        ) -> windows_core::HRESULT {
2851            unsafe {
2852                let this: &Identity =
2853                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
2854                ICoreWebView2_Impl::remove_NewWindowRequested(
2855                    this,
2856                    core::mem::transmute_copy(&token),
2857                )
2858                .into()
2859            }
2860        }
2861        unsafe extern "system" fn add_DocumentTitleChanged<
2862            Identity: ICoreWebView2_Impl,
2863            const OFFSET: isize,
2864        >(
2865            this: *mut core::ffi::c_void,
2866            eventhandler: *mut core::ffi::c_void,
2867            token: *mut i64,
2868        ) -> windows_core::HRESULT {
2869            unsafe {
2870                let this: &Identity =
2871                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
2872                ICoreWebView2_Impl::add_DocumentTitleChanged(
2873                    this,
2874                    core::mem::transmute_copy(&eventhandler),
2875                    core::mem::transmute_copy(&token),
2876                )
2877                .into()
2878            }
2879        }
2880        unsafe extern "system" fn remove_DocumentTitleChanged<
2881            Identity: ICoreWebView2_Impl,
2882            const OFFSET: isize,
2883        >(
2884            this: *mut core::ffi::c_void,
2885            token: i64,
2886        ) -> windows_core::HRESULT {
2887            unsafe {
2888                let this: &Identity =
2889                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
2890                ICoreWebView2_Impl::remove_DocumentTitleChanged(
2891                    this,
2892                    core::mem::transmute_copy(&token),
2893                )
2894                .into()
2895            }
2896        }
2897        unsafe extern "system" fn DocumentTitle<
2898            Identity: ICoreWebView2_Impl,
2899            const OFFSET: isize,
2900        >(
2901            this: *mut core::ffi::c_void,
2902            title: *mut windows_core::PWSTR,
2903        ) -> windows_core::HRESULT {
2904            unsafe {
2905                let this: &Identity =
2906                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
2907                ICoreWebView2_Impl::DocumentTitle(this, core::mem::transmute_copy(&title)).into()
2908            }
2909        }
2910        unsafe extern "system" fn AddHostObjectToScript<
2911            Identity: ICoreWebView2_Impl,
2912            const OFFSET: isize,
2913        >(
2914            this: *mut core::ffi::c_void,
2915            name: windows_core::PCWSTR,
2916            object: *mut windows::Win32::System::Variant::VARIANT,
2917        ) -> windows_core::HRESULT {
2918            unsafe {
2919                let this: &Identity =
2920                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
2921                ICoreWebView2_Impl::AddHostObjectToScript(
2922                    this,
2923                    core::mem::transmute(&name),
2924                    core::mem::transmute_copy(&object),
2925                )
2926                .into()
2927            }
2928        }
2929        unsafe extern "system" fn RemoveHostObjectFromScript<
2930            Identity: ICoreWebView2_Impl,
2931            const OFFSET: isize,
2932        >(
2933            this: *mut core::ffi::c_void,
2934            name: windows_core::PCWSTR,
2935        ) -> windows_core::HRESULT {
2936            unsafe {
2937                let this: &Identity =
2938                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
2939                ICoreWebView2_Impl::RemoveHostObjectFromScript(this, core::mem::transmute(&name))
2940                    .into()
2941            }
2942        }
2943        unsafe extern "system" fn OpenDevToolsWindow<
2944            Identity: ICoreWebView2_Impl,
2945            const OFFSET: isize,
2946        >(
2947            this: *mut core::ffi::c_void,
2948        ) -> windows_core::HRESULT {
2949            unsafe {
2950                let this: &Identity =
2951                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
2952                ICoreWebView2_Impl::OpenDevToolsWindow(this).into()
2953            }
2954        }
2955        unsafe extern "system" fn add_ContainsFullScreenElementChanged<
2956            Identity: ICoreWebView2_Impl,
2957            const OFFSET: isize,
2958        >(
2959            this: *mut core::ffi::c_void,
2960            eventhandler: *mut core::ffi::c_void,
2961            token: *mut i64,
2962        ) -> windows_core::HRESULT {
2963            unsafe {
2964                let this: &Identity =
2965                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
2966                ICoreWebView2_Impl::add_ContainsFullScreenElementChanged(
2967                    this,
2968                    core::mem::transmute_copy(&eventhandler),
2969                    core::mem::transmute_copy(&token),
2970                )
2971                .into()
2972            }
2973        }
2974        unsafe extern "system" fn remove_ContainsFullScreenElementChanged<
2975            Identity: ICoreWebView2_Impl,
2976            const OFFSET: isize,
2977        >(
2978            this: *mut core::ffi::c_void,
2979            token: i64,
2980        ) -> windows_core::HRESULT {
2981            unsafe {
2982                let this: &Identity =
2983                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
2984                ICoreWebView2_Impl::remove_ContainsFullScreenElementChanged(
2985                    this,
2986                    core::mem::transmute_copy(&token),
2987                )
2988                .into()
2989            }
2990        }
2991        unsafe extern "system" fn ContainsFullScreenElement<
2992            Identity: ICoreWebView2_Impl,
2993            const OFFSET: isize,
2994        >(
2995            this: *mut core::ffi::c_void,
2996            containsfullscreenelement: *mut windows_core::BOOL,
2997        ) -> windows_core::HRESULT {
2998            unsafe {
2999                let this: &Identity =
3000                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
3001                ICoreWebView2_Impl::ContainsFullScreenElement(
3002                    this,
3003                    core::mem::transmute_copy(&containsfullscreenelement),
3004                )
3005                .into()
3006            }
3007        }
3008        unsafe extern "system" fn add_WebResourceRequested<
3009            Identity: ICoreWebView2_Impl,
3010            const OFFSET: isize,
3011        >(
3012            this: *mut core::ffi::c_void,
3013            eventhandler: *mut core::ffi::c_void,
3014            token: *mut i64,
3015        ) -> windows_core::HRESULT {
3016            unsafe {
3017                let this: &Identity =
3018                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
3019                ICoreWebView2_Impl::add_WebResourceRequested(
3020                    this,
3021                    core::mem::transmute_copy(&eventhandler),
3022                    core::mem::transmute_copy(&token),
3023                )
3024                .into()
3025            }
3026        }
3027        unsafe extern "system" fn remove_WebResourceRequested<
3028            Identity: ICoreWebView2_Impl,
3029            const OFFSET: isize,
3030        >(
3031            this: *mut core::ffi::c_void,
3032            token: i64,
3033        ) -> windows_core::HRESULT {
3034            unsafe {
3035                let this: &Identity =
3036                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
3037                ICoreWebView2_Impl::remove_WebResourceRequested(
3038                    this,
3039                    core::mem::transmute_copy(&token),
3040                )
3041                .into()
3042            }
3043        }
3044        unsafe extern "system" fn AddWebResourceRequestedFilter<
3045            Identity: ICoreWebView2_Impl,
3046            const OFFSET: isize,
3047        >(
3048            this: *mut core::ffi::c_void,
3049            uri: windows_core::PCWSTR,
3050            resourcecontext: COREWEBVIEW2_WEB_RESOURCE_CONTEXT,
3051        ) -> windows_core::HRESULT {
3052            unsafe {
3053                let this: &Identity =
3054                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
3055                ICoreWebView2_Impl::AddWebResourceRequestedFilter(
3056                    this,
3057                    core::mem::transmute(&uri),
3058                    core::mem::transmute_copy(&resourcecontext),
3059                )
3060                .into()
3061            }
3062        }
3063        unsafe extern "system" fn RemoveWebResourceRequestedFilter<
3064            Identity: ICoreWebView2_Impl,
3065            const OFFSET: isize,
3066        >(
3067            this: *mut core::ffi::c_void,
3068            uri: windows_core::PCWSTR,
3069            resourcecontext: COREWEBVIEW2_WEB_RESOURCE_CONTEXT,
3070        ) -> windows_core::HRESULT {
3071            unsafe {
3072                let this: &Identity =
3073                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
3074                ICoreWebView2_Impl::RemoveWebResourceRequestedFilter(
3075                    this,
3076                    core::mem::transmute(&uri),
3077                    core::mem::transmute_copy(&resourcecontext),
3078                )
3079                .into()
3080            }
3081        }
3082        unsafe extern "system" fn add_WindowCloseRequested<
3083            Identity: ICoreWebView2_Impl,
3084            const OFFSET: isize,
3085        >(
3086            this: *mut core::ffi::c_void,
3087            eventhandler: *mut core::ffi::c_void,
3088            token: *mut i64,
3089        ) -> windows_core::HRESULT {
3090            unsafe {
3091                let this: &Identity =
3092                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
3093                ICoreWebView2_Impl::add_WindowCloseRequested(
3094                    this,
3095                    core::mem::transmute_copy(&eventhandler),
3096                    core::mem::transmute_copy(&token),
3097                )
3098                .into()
3099            }
3100        }
3101        unsafe extern "system" fn remove_WindowCloseRequested<
3102            Identity: ICoreWebView2_Impl,
3103            const OFFSET: isize,
3104        >(
3105            this: *mut core::ffi::c_void,
3106            token: i64,
3107        ) -> windows_core::HRESULT {
3108            unsafe {
3109                let this: &Identity =
3110                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
3111                ICoreWebView2_Impl::remove_WindowCloseRequested(
3112                    this,
3113                    core::mem::transmute_copy(&token),
3114                )
3115                .into()
3116            }
3117        }
3118        Self {
3119            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
3120            Settings: Settings::<Identity, OFFSET>,
3121            Source: Source::<Identity, OFFSET>,
3122            Navigate: Navigate::<Identity, OFFSET>,
3123            NavigateToString: NavigateToString::<Identity, OFFSET>,
3124            add_NavigationStarting: add_NavigationStarting::<Identity, OFFSET>,
3125            remove_NavigationStarting: remove_NavigationStarting::<Identity, OFFSET>,
3126            add_ContentLoading: add_ContentLoading::<Identity, OFFSET>,
3127            remove_ContentLoading: remove_ContentLoading::<Identity, OFFSET>,
3128            add_SourceChanged: add_SourceChanged::<Identity, OFFSET>,
3129            remove_SourceChanged: remove_SourceChanged::<Identity, OFFSET>,
3130            add_HistoryChanged: add_HistoryChanged::<Identity, OFFSET>,
3131            remove_HistoryChanged: remove_HistoryChanged::<Identity, OFFSET>,
3132            add_NavigationCompleted: add_NavigationCompleted::<Identity, OFFSET>,
3133            remove_NavigationCompleted: remove_NavigationCompleted::<Identity, OFFSET>,
3134            add_FrameNavigationStarting: add_FrameNavigationStarting::<Identity, OFFSET>,
3135            remove_FrameNavigationStarting: remove_FrameNavigationStarting::<Identity, OFFSET>,
3136            add_FrameNavigationCompleted: add_FrameNavigationCompleted::<Identity, OFFSET>,
3137            remove_FrameNavigationCompleted: remove_FrameNavigationCompleted::<Identity, OFFSET>,
3138            add_ScriptDialogOpening: add_ScriptDialogOpening::<Identity, OFFSET>,
3139            remove_ScriptDialogOpening: remove_ScriptDialogOpening::<Identity, OFFSET>,
3140            add_PermissionRequested: add_PermissionRequested::<Identity, OFFSET>,
3141            remove_PermissionRequested: remove_PermissionRequested::<Identity, OFFSET>,
3142            add_ProcessFailed: add_ProcessFailed::<Identity, OFFSET>,
3143            remove_ProcessFailed: remove_ProcessFailed::<Identity, OFFSET>,
3144            AddScriptToExecuteOnDocumentCreated: AddScriptToExecuteOnDocumentCreated::<
3145                Identity,
3146                OFFSET,
3147            >,
3148            RemoveScriptToExecuteOnDocumentCreated: RemoveScriptToExecuteOnDocumentCreated::<
3149                Identity,
3150                OFFSET,
3151            >,
3152            ExecuteScript: ExecuteScript::<Identity, OFFSET>,
3153            CapturePreview: CapturePreview::<Identity, OFFSET>,
3154            Reload: Reload::<Identity, OFFSET>,
3155            PostWebMessageAsJson: PostWebMessageAsJson::<Identity, OFFSET>,
3156            PostWebMessageAsString: PostWebMessageAsString::<Identity, OFFSET>,
3157            add_WebMessageReceived: add_WebMessageReceived::<Identity, OFFSET>,
3158            remove_WebMessageReceived: remove_WebMessageReceived::<Identity, OFFSET>,
3159            CallDevToolsProtocolMethod: CallDevToolsProtocolMethod::<Identity, OFFSET>,
3160            BrowserProcessId: BrowserProcessId::<Identity, OFFSET>,
3161            CanGoBack: CanGoBack::<Identity, OFFSET>,
3162            CanGoForward: CanGoForward::<Identity, OFFSET>,
3163            GoBack: GoBack::<Identity, OFFSET>,
3164            GoForward: GoForward::<Identity, OFFSET>,
3165            GetDevToolsProtocolEventReceiver: GetDevToolsProtocolEventReceiver::<Identity, OFFSET>,
3166            Stop: Stop::<Identity, OFFSET>,
3167            add_NewWindowRequested: add_NewWindowRequested::<Identity, OFFSET>,
3168            remove_NewWindowRequested: remove_NewWindowRequested::<Identity, OFFSET>,
3169            add_DocumentTitleChanged: add_DocumentTitleChanged::<Identity, OFFSET>,
3170            remove_DocumentTitleChanged: remove_DocumentTitleChanged::<Identity, OFFSET>,
3171            DocumentTitle: DocumentTitle::<Identity, OFFSET>,
3172            AddHostObjectToScript: AddHostObjectToScript::<Identity, OFFSET>,
3173            RemoveHostObjectFromScript: RemoveHostObjectFromScript::<Identity, OFFSET>,
3174            OpenDevToolsWindow: OpenDevToolsWindow::<Identity, OFFSET>,
3175            add_ContainsFullScreenElementChanged: add_ContainsFullScreenElementChanged::<
3176                Identity,
3177                OFFSET,
3178            >,
3179            remove_ContainsFullScreenElementChanged: remove_ContainsFullScreenElementChanged::<
3180                Identity,
3181                OFFSET,
3182            >,
3183            ContainsFullScreenElement: ContainsFullScreenElement::<Identity, OFFSET>,
3184            add_WebResourceRequested: add_WebResourceRequested::<Identity, OFFSET>,
3185            remove_WebResourceRequested: remove_WebResourceRequested::<Identity, OFFSET>,
3186            AddWebResourceRequestedFilter: AddWebResourceRequestedFilter::<Identity, OFFSET>,
3187            RemoveWebResourceRequestedFilter: RemoveWebResourceRequestedFilter::<Identity, OFFSET>,
3188            add_WindowCloseRequested: add_WindowCloseRequested::<Identity, OFFSET>,
3189            remove_WindowCloseRequested: remove_WindowCloseRequested::<Identity, OFFSET>,
3190        }
3191    }
3192    pub fn matches(iid: &windows_core::GUID) -> bool {
3193        iid == &<ICoreWebView2 as windows_core::Interface>::IID
3194    }
3195}
3196impl windows_core::RuntimeName for ICoreWebView2 {}
3197windows_core::imp::define_interface!(
3198    ICoreWebView2AcceleratorKeyPressedEventArgs,
3199    ICoreWebView2AcceleratorKeyPressedEventArgs_Vtbl,
3200    0x9f760f8a_fb79_42be_9990_7b56900fa9c7
3201);
3202windows_core::imp::interface_hierarchy!(
3203    ICoreWebView2AcceleratorKeyPressedEventArgs,
3204    windows_core::IUnknown
3205);
3206impl ICoreWebView2AcceleratorKeyPressedEventArgs {
3207    pub unsafe fn KeyEventKind(
3208        &self,
3209        keyeventkind: *mut COREWEBVIEW2_KEY_EVENT_KIND,
3210    ) -> windows_core::Result<()> {
3211        unsafe {
3212            (windows_core::Interface::vtable(self).KeyEventKind)(
3213                windows_core::Interface::as_raw(self),
3214                keyeventkind as _,
3215            )
3216            .ok()
3217        }
3218    }
3219    pub unsafe fn VirtualKey(&self, virtualkey: *mut u32) -> windows_core::Result<()> {
3220        unsafe {
3221            (windows_core::Interface::vtable(self).VirtualKey)(
3222                windows_core::Interface::as_raw(self),
3223                virtualkey as _,
3224            )
3225            .ok()
3226        }
3227    }
3228    pub unsafe fn KeyEventLParam(&self, lparam: *mut i32) -> windows_core::Result<()> {
3229        unsafe {
3230            (windows_core::Interface::vtable(self).KeyEventLParam)(
3231                windows_core::Interface::as_raw(self),
3232                lparam as _,
3233            )
3234            .ok()
3235        }
3236    }
3237    pub unsafe fn PhysicalKeyStatus(
3238        &self,
3239        physicalkeystatus: *mut COREWEBVIEW2_PHYSICAL_KEY_STATUS,
3240    ) -> windows_core::Result<()> {
3241        unsafe {
3242            (windows_core::Interface::vtable(self).PhysicalKeyStatus)(
3243                windows_core::Interface::as_raw(self),
3244                physicalkeystatus as _,
3245            )
3246            .ok()
3247        }
3248    }
3249    pub unsafe fn Handled(&self, handled: *mut windows_core::BOOL) -> windows_core::Result<()> {
3250        unsafe {
3251            (windows_core::Interface::vtable(self).Handled)(
3252                windows_core::Interface::as_raw(self),
3253                handled as _,
3254            )
3255            .ok()
3256        }
3257    }
3258    pub unsafe fn SetHandled(&self, handled: bool) -> windows_core::Result<()> {
3259        unsafe {
3260            (windows_core::Interface::vtable(self).SetHandled)(
3261                windows_core::Interface::as_raw(self),
3262                handled.into(),
3263            )
3264            .ok()
3265        }
3266    }
3267}
3268#[repr(C)]
3269#[doc(hidden)]
3270pub struct ICoreWebView2AcceleratorKeyPressedEventArgs_Vtbl {
3271    pub base__: windows_core::IUnknown_Vtbl,
3272    pub KeyEventKind: unsafe extern "system" fn(
3273        *mut core::ffi::c_void,
3274        *mut COREWEBVIEW2_KEY_EVENT_KIND,
3275    ) -> windows_core::HRESULT,
3276    pub VirtualKey:
3277        unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
3278    pub KeyEventLParam:
3279        unsafe extern "system" fn(*mut core::ffi::c_void, *mut i32) -> windows_core::HRESULT,
3280    pub PhysicalKeyStatus: unsafe extern "system" fn(
3281        *mut core::ffi::c_void,
3282        *mut COREWEBVIEW2_PHYSICAL_KEY_STATUS,
3283    ) -> windows_core::HRESULT,
3284    pub Handled: unsafe extern "system" fn(
3285        *mut core::ffi::c_void,
3286        *mut windows_core::BOOL,
3287    ) -> windows_core::HRESULT,
3288    pub SetHandled: unsafe extern "system" fn(
3289        *mut core::ffi::c_void,
3290        windows_core::BOOL,
3291    ) -> windows_core::HRESULT,
3292}
3293pub trait ICoreWebView2AcceleratorKeyPressedEventArgs_Impl: windows_core::IUnknownImpl {
3294    fn KeyEventKind(
3295        &self,
3296        keyeventkind: *mut COREWEBVIEW2_KEY_EVENT_KIND,
3297    ) -> windows_core::Result<()>;
3298    fn VirtualKey(&self, virtualkey: *mut u32) -> windows_core::Result<()>;
3299    fn KeyEventLParam(&self, lparam: *mut i32) -> windows_core::Result<()>;
3300    fn PhysicalKeyStatus(
3301        &self,
3302        physicalkeystatus: *mut COREWEBVIEW2_PHYSICAL_KEY_STATUS,
3303    ) -> windows_core::Result<()>;
3304    fn Handled(&self, handled: *mut windows_core::BOOL) -> windows_core::Result<()>;
3305    fn SetHandled(&self, handled: windows_core::BOOL) -> windows_core::Result<()>;
3306}
3307impl ICoreWebView2AcceleratorKeyPressedEventArgs_Vtbl {
3308    pub const fn new<
3309        Identity: ICoreWebView2AcceleratorKeyPressedEventArgs_Impl,
3310        const OFFSET: isize,
3311    >() -> Self {
3312        unsafe extern "system" fn KeyEventKind<
3313            Identity: ICoreWebView2AcceleratorKeyPressedEventArgs_Impl,
3314            const OFFSET: isize,
3315        >(
3316            this: *mut core::ffi::c_void,
3317            keyeventkind: *mut COREWEBVIEW2_KEY_EVENT_KIND,
3318        ) -> windows_core::HRESULT {
3319            unsafe {
3320                let this: &Identity =
3321                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
3322                ICoreWebView2AcceleratorKeyPressedEventArgs_Impl::KeyEventKind(
3323                    this,
3324                    core::mem::transmute_copy(&keyeventkind),
3325                )
3326                .into()
3327            }
3328        }
3329        unsafe extern "system" fn VirtualKey<
3330            Identity: ICoreWebView2AcceleratorKeyPressedEventArgs_Impl,
3331            const OFFSET: isize,
3332        >(
3333            this: *mut core::ffi::c_void,
3334            virtualkey: *mut u32,
3335        ) -> windows_core::HRESULT {
3336            unsafe {
3337                let this: &Identity =
3338                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
3339                ICoreWebView2AcceleratorKeyPressedEventArgs_Impl::VirtualKey(
3340                    this,
3341                    core::mem::transmute_copy(&virtualkey),
3342                )
3343                .into()
3344            }
3345        }
3346        unsafe extern "system" fn KeyEventLParam<
3347            Identity: ICoreWebView2AcceleratorKeyPressedEventArgs_Impl,
3348            const OFFSET: isize,
3349        >(
3350            this: *mut core::ffi::c_void,
3351            lparam: *mut i32,
3352        ) -> windows_core::HRESULT {
3353            unsafe {
3354                let this: &Identity =
3355                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
3356                ICoreWebView2AcceleratorKeyPressedEventArgs_Impl::KeyEventLParam(
3357                    this,
3358                    core::mem::transmute_copy(&lparam),
3359                )
3360                .into()
3361            }
3362        }
3363        unsafe extern "system" fn PhysicalKeyStatus<
3364            Identity: ICoreWebView2AcceleratorKeyPressedEventArgs_Impl,
3365            const OFFSET: isize,
3366        >(
3367            this: *mut core::ffi::c_void,
3368            physicalkeystatus: *mut COREWEBVIEW2_PHYSICAL_KEY_STATUS,
3369        ) -> windows_core::HRESULT {
3370            unsafe {
3371                let this: &Identity =
3372                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
3373                ICoreWebView2AcceleratorKeyPressedEventArgs_Impl::PhysicalKeyStatus(
3374                    this,
3375                    core::mem::transmute_copy(&physicalkeystatus),
3376                )
3377                .into()
3378            }
3379        }
3380        unsafe extern "system" fn Handled<
3381            Identity: ICoreWebView2AcceleratorKeyPressedEventArgs_Impl,
3382            const OFFSET: isize,
3383        >(
3384            this: *mut core::ffi::c_void,
3385            handled: *mut windows_core::BOOL,
3386        ) -> windows_core::HRESULT {
3387            unsafe {
3388                let this: &Identity =
3389                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
3390                ICoreWebView2AcceleratorKeyPressedEventArgs_Impl::Handled(
3391                    this,
3392                    core::mem::transmute_copy(&handled),
3393                )
3394                .into()
3395            }
3396        }
3397        unsafe extern "system" fn SetHandled<
3398            Identity: ICoreWebView2AcceleratorKeyPressedEventArgs_Impl,
3399            const OFFSET: isize,
3400        >(
3401            this: *mut core::ffi::c_void,
3402            handled: windows_core::BOOL,
3403        ) -> windows_core::HRESULT {
3404            unsafe {
3405                let this: &Identity =
3406                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
3407                ICoreWebView2AcceleratorKeyPressedEventArgs_Impl::SetHandled(
3408                    this,
3409                    core::mem::transmute_copy(&handled),
3410                )
3411                .into()
3412            }
3413        }
3414        Self {
3415            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
3416            KeyEventKind: KeyEventKind::<Identity, OFFSET>,
3417            VirtualKey: VirtualKey::<Identity, OFFSET>,
3418            KeyEventLParam: KeyEventLParam::<Identity, OFFSET>,
3419            PhysicalKeyStatus: PhysicalKeyStatus::<Identity, OFFSET>,
3420            Handled: Handled::<Identity, OFFSET>,
3421            SetHandled: SetHandled::<Identity, OFFSET>,
3422        }
3423    }
3424    pub fn matches(iid: &windows_core::GUID) -> bool {
3425        iid == &<ICoreWebView2AcceleratorKeyPressedEventArgs as windows_core::Interface>::IID
3426    }
3427}
3428impl windows_core::RuntimeName for ICoreWebView2AcceleratorKeyPressedEventArgs {}
3429windows_core::imp::define_interface!(
3430    ICoreWebView2AcceleratorKeyPressedEventArgs2,
3431    ICoreWebView2AcceleratorKeyPressedEventArgs2_Vtbl,
3432    0x03b2c8c8_7799_4e34_bd66_ed26aa85f2bf
3433);
3434impl core::ops::Deref for ICoreWebView2AcceleratorKeyPressedEventArgs2 {
3435    type Target = ICoreWebView2AcceleratorKeyPressedEventArgs;
3436    fn deref(&self) -> &Self::Target {
3437        unsafe { core::mem::transmute(self) }
3438    }
3439}
3440windows_core::imp::interface_hierarchy!(
3441    ICoreWebView2AcceleratorKeyPressedEventArgs2,
3442    windows_core::IUnknown,
3443    ICoreWebView2AcceleratorKeyPressedEventArgs
3444);
3445impl ICoreWebView2AcceleratorKeyPressedEventArgs2 {
3446    pub unsafe fn IsBrowserAcceleratorKeyEnabled(
3447        &self,
3448        value: *mut windows_core::BOOL,
3449    ) -> windows_core::Result<()> {
3450        unsafe {
3451            (windows_core::Interface::vtable(self).IsBrowserAcceleratorKeyEnabled)(
3452                windows_core::Interface::as_raw(self),
3453                value as _,
3454            )
3455            .ok()
3456        }
3457    }
3458    pub unsafe fn SetIsBrowserAcceleratorKeyEnabled(
3459        &self,
3460        value: bool,
3461    ) -> windows_core::Result<()> {
3462        unsafe {
3463            (windows_core::Interface::vtable(self).SetIsBrowserAcceleratorKeyEnabled)(
3464                windows_core::Interface::as_raw(self),
3465                value.into(),
3466            )
3467            .ok()
3468        }
3469    }
3470}
3471#[repr(C)]
3472#[doc(hidden)]
3473pub struct ICoreWebView2AcceleratorKeyPressedEventArgs2_Vtbl {
3474    pub base__: ICoreWebView2AcceleratorKeyPressedEventArgs_Vtbl,
3475    pub IsBrowserAcceleratorKeyEnabled: unsafe extern "system" fn(
3476        *mut core::ffi::c_void,
3477        *mut windows_core::BOOL,
3478    ) -> windows_core::HRESULT,
3479    pub SetIsBrowserAcceleratorKeyEnabled: unsafe extern "system" fn(
3480        *mut core::ffi::c_void,
3481        windows_core::BOOL,
3482    ) -> windows_core::HRESULT,
3483}
3484pub trait ICoreWebView2AcceleratorKeyPressedEventArgs2_Impl:
3485    ICoreWebView2AcceleratorKeyPressedEventArgs_Impl
3486{
3487    fn IsBrowserAcceleratorKeyEnabled(
3488        &self,
3489        value: *mut windows_core::BOOL,
3490    ) -> windows_core::Result<()>;
3491    fn SetIsBrowserAcceleratorKeyEnabled(
3492        &self,
3493        value: windows_core::BOOL,
3494    ) -> windows_core::Result<()>;
3495}
3496impl ICoreWebView2AcceleratorKeyPressedEventArgs2_Vtbl {
3497    pub const fn new<
3498        Identity: ICoreWebView2AcceleratorKeyPressedEventArgs2_Impl,
3499        const OFFSET: isize,
3500    >() -> Self {
3501        unsafe extern "system" fn IsBrowserAcceleratorKeyEnabled<
3502            Identity: ICoreWebView2AcceleratorKeyPressedEventArgs2_Impl,
3503            const OFFSET: isize,
3504        >(
3505            this: *mut core::ffi::c_void,
3506            value: *mut windows_core::BOOL,
3507        ) -> windows_core::HRESULT {
3508            unsafe {
3509                let this: &Identity =
3510                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
3511                ICoreWebView2AcceleratorKeyPressedEventArgs2_Impl::IsBrowserAcceleratorKeyEnabled(
3512                    this,
3513                    core::mem::transmute_copy(&value),
3514                )
3515                .into()
3516            }
3517        }
3518        unsafe extern "system" fn SetIsBrowserAcceleratorKeyEnabled<
3519            Identity: ICoreWebView2AcceleratorKeyPressedEventArgs2_Impl,
3520            const OFFSET: isize,
3521        >(
3522            this: *mut core::ffi::c_void,
3523            value: windows_core::BOOL,
3524        ) -> windows_core::HRESULT {
3525            unsafe {
3526                let this: &Identity =
3527                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
3528                ICoreWebView2AcceleratorKeyPressedEventArgs2_Impl:: SetIsBrowserAcceleratorKeyEnabled ( this , core::mem::transmute_copy ( & value ) , ) . into ( )
3529            }
3530        }
3531        Self {
3532            base__: ICoreWebView2AcceleratorKeyPressedEventArgs_Vtbl::new::<Identity, OFFSET>(),
3533            IsBrowserAcceleratorKeyEnabled: IsBrowserAcceleratorKeyEnabled::<Identity, OFFSET>,
3534            SetIsBrowserAcceleratorKeyEnabled: SetIsBrowserAcceleratorKeyEnabled::<Identity, OFFSET>,
3535        }
3536    }
3537    pub fn matches(iid: &windows_core::GUID) -> bool {
3538        iid == &<ICoreWebView2AcceleratorKeyPressedEventArgs2 as windows_core::Interface>::IID
3539            || iid == &<ICoreWebView2AcceleratorKeyPressedEventArgs as windows_core::Interface>::IID
3540    }
3541}
3542impl windows_core::RuntimeName for ICoreWebView2AcceleratorKeyPressedEventArgs2 {}
3543windows_core::imp::define_interface!(
3544    ICoreWebView2AcceleratorKeyPressedEventHandler,
3545    ICoreWebView2AcceleratorKeyPressedEventHandler_Vtbl,
3546    0xb29c7e28_fa79_41a8_8e44_65811c76dcb2
3547);
3548windows_core::imp::interface_hierarchy!(
3549    ICoreWebView2AcceleratorKeyPressedEventHandler,
3550    windows_core::IUnknown
3551);
3552impl ICoreWebView2AcceleratorKeyPressedEventHandler {
3553    pub unsafe fn Invoke<P0, P1>(&self, sender: P0, args: P1) -> windows_core::Result<()>
3554    where
3555        P0: windows_core::Param<ICoreWebView2Controller>,
3556        P1: windows_core::Param<ICoreWebView2AcceleratorKeyPressedEventArgs>,
3557    {
3558        unsafe {
3559            (windows_core::Interface::vtable(self).Invoke)(
3560                windows_core::Interface::as_raw(self),
3561                sender.param().abi(),
3562                args.param().abi(),
3563            )
3564            .ok()
3565        }
3566    }
3567}
3568#[repr(C)]
3569#[doc(hidden)]
3570pub struct ICoreWebView2AcceleratorKeyPressedEventHandler_Vtbl {
3571    pub base__: windows_core::IUnknown_Vtbl,
3572    pub Invoke: unsafe extern "system" fn(
3573        *mut core::ffi::c_void,
3574        *mut core::ffi::c_void,
3575        *mut core::ffi::c_void,
3576    ) -> windows_core::HRESULT,
3577}
3578pub trait ICoreWebView2AcceleratorKeyPressedEventHandler_Impl: windows_core::IUnknownImpl {
3579    fn Invoke(
3580        &self,
3581        sender: windows_core::Ref<'_, ICoreWebView2Controller>,
3582        args: windows_core::Ref<'_, ICoreWebView2AcceleratorKeyPressedEventArgs>,
3583    ) -> windows_core::Result<()>;
3584}
3585impl ICoreWebView2AcceleratorKeyPressedEventHandler_Vtbl {
3586    pub const fn new<
3587        Identity: ICoreWebView2AcceleratorKeyPressedEventHandler_Impl,
3588        const OFFSET: isize,
3589    >() -> Self {
3590        unsafe extern "system" fn Invoke<
3591            Identity: ICoreWebView2AcceleratorKeyPressedEventHandler_Impl,
3592            const OFFSET: isize,
3593        >(
3594            this: *mut core::ffi::c_void,
3595            sender: *mut core::ffi::c_void,
3596            args: *mut core::ffi::c_void,
3597        ) -> windows_core::HRESULT {
3598            unsafe {
3599                let this: &Identity =
3600                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
3601                ICoreWebView2AcceleratorKeyPressedEventHandler_Impl::Invoke(
3602                    this,
3603                    core::mem::transmute_copy(&sender),
3604                    core::mem::transmute_copy(&args),
3605                )
3606                .into()
3607            }
3608        }
3609        Self {
3610            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
3611            Invoke: Invoke::<Identity, OFFSET>,
3612        }
3613    }
3614    pub fn matches(iid: &windows_core::GUID) -> bool {
3615        iid == &<ICoreWebView2AcceleratorKeyPressedEventHandler as windows_core::Interface>::IID
3616    }
3617}
3618impl windows_core::RuntimeName for ICoreWebView2AcceleratorKeyPressedEventHandler {}
3619windows_core::imp::define_interface!(
3620    ICoreWebView2AddScriptToExecuteOnDocumentCreatedCompletedHandler,
3621    ICoreWebView2AddScriptToExecuteOnDocumentCreatedCompletedHandler_Vtbl,
3622    0xb99369f3_9b11_47b5_bc6f_8e7895fcea17
3623);
3624windows_core::imp::interface_hierarchy!(
3625    ICoreWebView2AddScriptToExecuteOnDocumentCreatedCompletedHandler,
3626    windows_core::IUnknown
3627);
3628impl ICoreWebView2AddScriptToExecuteOnDocumentCreatedCompletedHandler {
3629    pub unsafe fn Invoke<P1>(
3630        &self,
3631        errorcode: windows_core::HRESULT,
3632        result: P1,
3633    ) -> windows_core::Result<()>
3634    where
3635        P1: windows_core::Param<windows_core::PCWSTR>,
3636    {
3637        unsafe {
3638            (windows_core::Interface::vtable(self).Invoke)(
3639                windows_core::Interface::as_raw(self),
3640                errorcode,
3641                result.param().abi(),
3642            )
3643            .ok()
3644        }
3645    }
3646}
3647#[repr(C)]
3648#[doc(hidden)]
3649pub struct ICoreWebView2AddScriptToExecuteOnDocumentCreatedCompletedHandler_Vtbl {
3650    pub base__: windows_core::IUnknown_Vtbl,
3651    pub Invoke: unsafe extern "system" fn(
3652        *mut core::ffi::c_void,
3653        windows_core::HRESULT,
3654        windows_core::PCWSTR,
3655    ) -> windows_core::HRESULT,
3656}
3657pub trait ICoreWebView2AddScriptToExecuteOnDocumentCreatedCompletedHandler_Impl:
3658    windows_core::IUnknownImpl
3659{
3660    fn Invoke(
3661        &self,
3662        errorcode: windows_core::HRESULT,
3663        result: &windows_core::PCWSTR,
3664    ) -> windows_core::Result<()>;
3665}
3666impl ICoreWebView2AddScriptToExecuteOnDocumentCreatedCompletedHandler_Vtbl {
3667    pub const fn new<
3668        Identity: ICoreWebView2AddScriptToExecuteOnDocumentCreatedCompletedHandler_Impl,
3669        const OFFSET: isize,
3670    >() -> Self {
3671        unsafe extern "system" fn Invoke<
3672            Identity: ICoreWebView2AddScriptToExecuteOnDocumentCreatedCompletedHandler_Impl,
3673            const OFFSET: isize,
3674        >(
3675            this: *mut core::ffi::c_void,
3676            errorcode: windows_core::HRESULT,
3677            result: windows_core::PCWSTR,
3678        ) -> windows_core::HRESULT {
3679            unsafe {
3680                let this: &Identity =
3681                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
3682                ICoreWebView2AddScriptToExecuteOnDocumentCreatedCompletedHandler_Impl::Invoke(
3683                    this,
3684                    core::mem::transmute_copy(&errorcode),
3685                    core::mem::transmute(&result),
3686                )
3687                .into()
3688            }
3689        }
3690        Self {
3691            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
3692            Invoke: Invoke::<Identity, OFFSET>,
3693        }
3694    }
3695    pub fn matches(iid: &windows_core::GUID) -> bool {
3696        iid == & < ICoreWebView2AddScriptToExecuteOnDocumentCreatedCompletedHandler as windows_core::Interface >::IID
3697    }
3698}
3699impl windows_core::RuntimeName
3700    for ICoreWebView2AddScriptToExecuteOnDocumentCreatedCompletedHandler
3701{
3702}
3703windows_core::imp::define_interface!(
3704    ICoreWebView2BasicAuthenticationRequestedEventArgs,
3705    ICoreWebView2BasicAuthenticationRequestedEventArgs_Vtbl,
3706    0xef05516f_d897_4f9e_b672_d8e2307a3fb0
3707);
3708windows_core::imp::interface_hierarchy!(
3709    ICoreWebView2BasicAuthenticationRequestedEventArgs,
3710    windows_core::IUnknown
3711);
3712impl ICoreWebView2BasicAuthenticationRequestedEventArgs {
3713    pub unsafe fn Uri(&self, value: *mut windows_core::PWSTR) -> windows_core::Result<()> {
3714        unsafe {
3715            (windows_core::Interface::vtable(self).Uri)(
3716                windows_core::Interface::as_raw(self),
3717                value as _,
3718            )
3719            .ok()
3720        }
3721    }
3722    pub unsafe fn Challenge(
3723        &self,
3724        challenge: *mut windows_core::PWSTR,
3725    ) -> windows_core::Result<()> {
3726        unsafe {
3727            (windows_core::Interface::vtable(self).Challenge)(
3728                windows_core::Interface::as_raw(self),
3729                challenge as _,
3730            )
3731            .ok()
3732        }
3733    }
3734    pub unsafe fn Response(
3735        &self,
3736    ) -> windows_core::Result<ICoreWebView2BasicAuthenticationResponse> {
3737        unsafe {
3738            let mut result__ = core::mem::zeroed();
3739            (windows_core::Interface::vtable(self).Response)(
3740                windows_core::Interface::as_raw(self),
3741                &mut result__,
3742            )
3743            .and_then(|| windows_core::Type::from_abi(result__))
3744        }
3745    }
3746    pub unsafe fn Cancel(&self, cancel: *mut windows_core::BOOL) -> windows_core::Result<()> {
3747        unsafe {
3748            (windows_core::Interface::vtable(self).Cancel)(
3749                windows_core::Interface::as_raw(self),
3750                cancel as _,
3751            )
3752            .ok()
3753        }
3754    }
3755    pub unsafe fn SetCancel(&self, cancel: bool) -> windows_core::Result<()> {
3756        unsafe {
3757            (windows_core::Interface::vtable(self).SetCancel)(
3758                windows_core::Interface::as_raw(self),
3759                cancel.into(),
3760            )
3761            .ok()
3762        }
3763    }
3764    pub unsafe fn GetDeferral(&self) -> windows_core::Result<ICoreWebView2Deferral> {
3765        unsafe {
3766            let mut result__ = core::mem::zeroed();
3767            (windows_core::Interface::vtable(self).GetDeferral)(
3768                windows_core::Interface::as_raw(self),
3769                &mut result__,
3770            )
3771            .and_then(|| windows_core::Type::from_abi(result__))
3772        }
3773    }
3774}
3775#[repr(C)]
3776#[doc(hidden)]
3777pub struct ICoreWebView2BasicAuthenticationRequestedEventArgs_Vtbl {
3778    pub base__: windows_core::IUnknown_Vtbl,
3779    pub Uri: unsafe extern "system" fn(
3780        *mut core::ffi::c_void,
3781        *mut windows_core::PWSTR,
3782    ) -> windows_core::HRESULT,
3783    pub Challenge: unsafe extern "system" fn(
3784        *mut core::ffi::c_void,
3785        *mut windows_core::PWSTR,
3786    ) -> windows_core::HRESULT,
3787    pub Response: unsafe extern "system" fn(
3788        *mut core::ffi::c_void,
3789        *mut *mut core::ffi::c_void,
3790    ) -> windows_core::HRESULT,
3791    pub Cancel: unsafe extern "system" fn(
3792        *mut core::ffi::c_void,
3793        *mut windows_core::BOOL,
3794    ) -> windows_core::HRESULT,
3795    pub SetCancel: unsafe extern "system" fn(
3796        *mut core::ffi::c_void,
3797        windows_core::BOOL,
3798    ) -> windows_core::HRESULT,
3799    pub GetDeferral: unsafe extern "system" fn(
3800        *mut core::ffi::c_void,
3801        *mut *mut core::ffi::c_void,
3802    ) -> windows_core::HRESULT,
3803}
3804pub trait ICoreWebView2BasicAuthenticationRequestedEventArgs_Impl:
3805    windows_core::IUnknownImpl
3806{
3807    fn Uri(&self, value: *mut windows_core::PWSTR) -> windows_core::Result<()>;
3808    fn Challenge(&self, challenge: *mut windows_core::PWSTR) -> windows_core::Result<()>;
3809    fn Response(&self) -> windows_core::Result<ICoreWebView2BasicAuthenticationResponse>;
3810    fn Cancel(&self, cancel: *mut windows_core::BOOL) -> windows_core::Result<()>;
3811    fn SetCancel(&self, cancel: windows_core::BOOL) -> windows_core::Result<()>;
3812    fn GetDeferral(&self) -> windows_core::Result<ICoreWebView2Deferral>;
3813}
3814impl ICoreWebView2BasicAuthenticationRequestedEventArgs_Vtbl {
3815    pub const fn new<
3816        Identity: ICoreWebView2BasicAuthenticationRequestedEventArgs_Impl,
3817        const OFFSET: isize,
3818    >() -> Self {
3819        unsafe extern "system" fn Uri<
3820            Identity: ICoreWebView2BasicAuthenticationRequestedEventArgs_Impl,
3821            const OFFSET: isize,
3822        >(
3823            this: *mut core::ffi::c_void,
3824            value: *mut windows_core::PWSTR,
3825        ) -> windows_core::HRESULT {
3826            unsafe {
3827                let this: &Identity =
3828                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
3829                ICoreWebView2BasicAuthenticationRequestedEventArgs_Impl::Uri(
3830                    this,
3831                    core::mem::transmute_copy(&value),
3832                )
3833                .into()
3834            }
3835        }
3836        unsafe extern "system" fn Challenge<
3837            Identity: ICoreWebView2BasicAuthenticationRequestedEventArgs_Impl,
3838            const OFFSET: isize,
3839        >(
3840            this: *mut core::ffi::c_void,
3841            challenge: *mut windows_core::PWSTR,
3842        ) -> windows_core::HRESULT {
3843            unsafe {
3844                let this: &Identity =
3845                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
3846                ICoreWebView2BasicAuthenticationRequestedEventArgs_Impl::Challenge(
3847                    this,
3848                    core::mem::transmute_copy(&challenge),
3849                )
3850                .into()
3851            }
3852        }
3853        unsafe extern "system" fn Response<
3854            Identity: ICoreWebView2BasicAuthenticationRequestedEventArgs_Impl,
3855            const OFFSET: isize,
3856        >(
3857            this: *mut core::ffi::c_void,
3858            response: *mut *mut core::ffi::c_void,
3859        ) -> windows_core::HRESULT {
3860            unsafe {
3861                let this: &Identity =
3862                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
3863                match ICoreWebView2BasicAuthenticationRequestedEventArgs_Impl::Response(this) {
3864                    Ok(ok__) => {
3865                        response.write(core::mem::transmute(ok__));
3866                        windows_core::HRESULT(0)
3867                    }
3868                    Err(err) => err.into(),
3869                }
3870            }
3871        }
3872        unsafe extern "system" fn Cancel<
3873            Identity: ICoreWebView2BasicAuthenticationRequestedEventArgs_Impl,
3874            const OFFSET: isize,
3875        >(
3876            this: *mut core::ffi::c_void,
3877            cancel: *mut windows_core::BOOL,
3878        ) -> windows_core::HRESULT {
3879            unsafe {
3880                let this: &Identity =
3881                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
3882                ICoreWebView2BasicAuthenticationRequestedEventArgs_Impl::Cancel(
3883                    this,
3884                    core::mem::transmute_copy(&cancel),
3885                )
3886                .into()
3887            }
3888        }
3889        unsafe extern "system" fn SetCancel<
3890            Identity: ICoreWebView2BasicAuthenticationRequestedEventArgs_Impl,
3891            const OFFSET: isize,
3892        >(
3893            this: *mut core::ffi::c_void,
3894            cancel: windows_core::BOOL,
3895        ) -> windows_core::HRESULT {
3896            unsafe {
3897                let this: &Identity =
3898                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
3899                ICoreWebView2BasicAuthenticationRequestedEventArgs_Impl::SetCancel(
3900                    this,
3901                    core::mem::transmute_copy(&cancel),
3902                )
3903                .into()
3904            }
3905        }
3906        unsafe extern "system" fn GetDeferral<
3907            Identity: ICoreWebView2BasicAuthenticationRequestedEventArgs_Impl,
3908            const OFFSET: isize,
3909        >(
3910            this: *mut core::ffi::c_void,
3911            deferral: *mut *mut core::ffi::c_void,
3912        ) -> windows_core::HRESULT {
3913            unsafe {
3914                let this: &Identity =
3915                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
3916                match ICoreWebView2BasicAuthenticationRequestedEventArgs_Impl::GetDeferral(this) {
3917                    Ok(ok__) => {
3918                        deferral.write(core::mem::transmute(ok__));
3919                        windows_core::HRESULT(0)
3920                    }
3921                    Err(err) => err.into(),
3922                }
3923            }
3924        }
3925        Self {
3926            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
3927            Uri: Uri::<Identity, OFFSET>,
3928            Challenge: Challenge::<Identity, OFFSET>,
3929            Response: Response::<Identity, OFFSET>,
3930            Cancel: Cancel::<Identity, OFFSET>,
3931            SetCancel: SetCancel::<Identity, OFFSET>,
3932            GetDeferral: GetDeferral::<Identity, OFFSET>,
3933        }
3934    }
3935    pub fn matches(iid: &windows_core::GUID) -> bool {
3936        iid == &<ICoreWebView2BasicAuthenticationRequestedEventArgs as windows_core::Interface>::IID
3937    }
3938}
3939impl windows_core::RuntimeName for ICoreWebView2BasicAuthenticationRequestedEventArgs {}
3940windows_core::imp::define_interface!(
3941    ICoreWebView2BasicAuthenticationRequestedEventHandler,
3942    ICoreWebView2BasicAuthenticationRequestedEventHandler_Vtbl,
3943    0x58b4d6c2_18d4_497e_b39b_9a96533fa278
3944);
3945windows_core::imp::interface_hierarchy!(
3946    ICoreWebView2BasicAuthenticationRequestedEventHandler,
3947    windows_core::IUnknown
3948);
3949impl ICoreWebView2BasicAuthenticationRequestedEventHandler {
3950    pub unsafe fn Invoke<P0, P1>(&self, sender: P0, args: P1) -> windows_core::Result<()>
3951    where
3952        P0: windows_core::Param<ICoreWebView2>,
3953        P1: windows_core::Param<ICoreWebView2BasicAuthenticationRequestedEventArgs>,
3954    {
3955        unsafe {
3956            (windows_core::Interface::vtable(self).Invoke)(
3957                windows_core::Interface::as_raw(self),
3958                sender.param().abi(),
3959                args.param().abi(),
3960            )
3961            .ok()
3962        }
3963    }
3964}
3965#[repr(C)]
3966#[doc(hidden)]
3967pub struct ICoreWebView2BasicAuthenticationRequestedEventHandler_Vtbl {
3968    pub base__: windows_core::IUnknown_Vtbl,
3969    pub Invoke: unsafe extern "system" fn(
3970        *mut core::ffi::c_void,
3971        *mut core::ffi::c_void,
3972        *mut core::ffi::c_void,
3973    ) -> windows_core::HRESULT,
3974}
3975pub trait ICoreWebView2BasicAuthenticationRequestedEventHandler_Impl:
3976    windows_core::IUnknownImpl
3977{
3978    fn Invoke(
3979        &self,
3980        sender: windows_core::Ref<'_, ICoreWebView2>,
3981        args: windows_core::Ref<'_, ICoreWebView2BasicAuthenticationRequestedEventArgs>,
3982    ) -> windows_core::Result<()>;
3983}
3984impl ICoreWebView2BasicAuthenticationRequestedEventHandler_Vtbl {
3985    pub const fn new<
3986        Identity: ICoreWebView2BasicAuthenticationRequestedEventHandler_Impl,
3987        const OFFSET: isize,
3988    >() -> Self {
3989        unsafe extern "system" fn Invoke<
3990            Identity: ICoreWebView2BasicAuthenticationRequestedEventHandler_Impl,
3991            const OFFSET: isize,
3992        >(
3993            this: *mut core::ffi::c_void,
3994            sender: *mut core::ffi::c_void,
3995            args: *mut core::ffi::c_void,
3996        ) -> windows_core::HRESULT {
3997            unsafe {
3998                let this: &Identity =
3999                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
4000                ICoreWebView2BasicAuthenticationRequestedEventHandler_Impl::Invoke(
4001                    this,
4002                    core::mem::transmute_copy(&sender),
4003                    core::mem::transmute_copy(&args),
4004                )
4005                .into()
4006            }
4007        }
4008        Self {
4009            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
4010            Invoke: Invoke::<Identity, OFFSET>,
4011        }
4012    }
4013    pub fn matches(iid: &windows_core::GUID) -> bool {
4014        iid == & < ICoreWebView2BasicAuthenticationRequestedEventHandler as windows_core::Interface >::IID
4015    }
4016}
4017impl windows_core::RuntimeName for ICoreWebView2BasicAuthenticationRequestedEventHandler {}
4018windows_core::imp::define_interface!(
4019    ICoreWebView2BasicAuthenticationResponse,
4020    ICoreWebView2BasicAuthenticationResponse_Vtbl,
4021    0x07023f7d_2d77_4d67_9040_6e7d428c6a40
4022);
4023windows_core::imp::interface_hierarchy!(
4024    ICoreWebView2BasicAuthenticationResponse,
4025    windows_core::IUnknown
4026);
4027impl ICoreWebView2BasicAuthenticationResponse {
4028    pub unsafe fn UserName(&self, username: *mut windows_core::PWSTR) -> windows_core::Result<()> {
4029        unsafe {
4030            (windows_core::Interface::vtable(self).UserName)(
4031                windows_core::Interface::as_raw(self),
4032                username as _,
4033            )
4034            .ok()
4035        }
4036    }
4037    pub unsafe fn SetUserName<P0>(&self, username: P0) -> windows_core::Result<()>
4038    where
4039        P0: windows_core::Param<windows_core::PCWSTR>,
4040    {
4041        unsafe {
4042            (windows_core::Interface::vtable(self).SetUserName)(
4043                windows_core::Interface::as_raw(self),
4044                username.param().abi(),
4045            )
4046            .ok()
4047        }
4048    }
4049    pub unsafe fn Password(&self, password: *mut windows_core::PWSTR) -> windows_core::Result<()> {
4050        unsafe {
4051            (windows_core::Interface::vtable(self).Password)(
4052                windows_core::Interface::as_raw(self),
4053                password as _,
4054            )
4055            .ok()
4056        }
4057    }
4058    pub unsafe fn SetPassword<P0>(&self, password: P0) -> windows_core::Result<()>
4059    where
4060        P0: windows_core::Param<windows_core::PCWSTR>,
4061    {
4062        unsafe {
4063            (windows_core::Interface::vtable(self).SetPassword)(
4064                windows_core::Interface::as_raw(self),
4065                password.param().abi(),
4066            )
4067            .ok()
4068        }
4069    }
4070}
4071#[repr(C)]
4072#[doc(hidden)]
4073pub struct ICoreWebView2BasicAuthenticationResponse_Vtbl {
4074    pub base__: windows_core::IUnknown_Vtbl,
4075    pub UserName: unsafe extern "system" fn(
4076        *mut core::ffi::c_void,
4077        *mut windows_core::PWSTR,
4078    ) -> windows_core::HRESULT,
4079    pub SetUserName: unsafe extern "system" fn(
4080        *mut core::ffi::c_void,
4081        windows_core::PCWSTR,
4082    ) -> windows_core::HRESULT,
4083    pub Password: unsafe extern "system" fn(
4084        *mut core::ffi::c_void,
4085        *mut windows_core::PWSTR,
4086    ) -> windows_core::HRESULT,
4087    pub SetPassword: unsafe extern "system" fn(
4088        *mut core::ffi::c_void,
4089        windows_core::PCWSTR,
4090    ) -> windows_core::HRESULT,
4091}
4092pub trait ICoreWebView2BasicAuthenticationResponse_Impl: windows_core::IUnknownImpl {
4093    fn UserName(&self, username: *mut windows_core::PWSTR) -> windows_core::Result<()>;
4094    fn SetUserName(&self, username: &windows_core::PCWSTR) -> windows_core::Result<()>;
4095    fn Password(&self, password: *mut windows_core::PWSTR) -> windows_core::Result<()>;
4096    fn SetPassword(&self, password: &windows_core::PCWSTR) -> windows_core::Result<()>;
4097}
4098impl ICoreWebView2BasicAuthenticationResponse_Vtbl {
4099    pub const fn new<
4100        Identity: ICoreWebView2BasicAuthenticationResponse_Impl,
4101        const OFFSET: isize,
4102    >() -> Self {
4103        unsafe extern "system" fn UserName<
4104            Identity: ICoreWebView2BasicAuthenticationResponse_Impl,
4105            const OFFSET: isize,
4106        >(
4107            this: *mut core::ffi::c_void,
4108            username: *mut windows_core::PWSTR,
4109        ) -> windows_core::HRESULT {
4110            unsafe {
4111                let this: &Identity =
4112                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
4113                ICoreWebView2BasicAuthenticationResponse_Impl::UserName(
4114                    this,
4115                    core::mem::transmute_copy(&username),
4116                )
4117                .into()
4118            }
4119        }
4120        unsafe extern "system" fn SetUserName<
4121            Identity: ICoreWebView2BasicAuthenticationResponse_Impl,
4122            const OFFSET: isize,
4123        >(
4124            this: *mut core::ffi::c_void,
4125            username: windows_core::PCWSTR,
4126        ) -> windows_core::HRESULT {
4127            unsafe {
4128                let this: &Identity =
4129                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
4130                ICoreWebView2BasicAuthenticationResponse_Impl::SetUserName(
4131                    this,
4132                    core::mem::transmute(&username),
4133                )
4134                .into()
4135            }
4136        }
4137        unsafe extern "system" fn Password<
4138            Identity: ICoreWebView2BasicAuthenticationResponse_Impl,
4139            const OFFSET: isize,
4140        >(
4141            this: *mut core::ffi::c_void,
4142            password: *mut windows_core::PWSTR,
4143        ) -> windows_core::HRESULT {
4144            unsafe {
4145                let this: &Identity =
4146                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
4147                ICoreWebView2BasicAuthenticationResponse_Impl::Password(
4148                    this,
4149                    core::mem::transmute_copy(&password),
4150                )
4151                .into()
4152            }
4153        }
4154        unsafe extern "system" fn SetPassword<
4155            Identity: ICoreWebView2BasicAuthenticationResponse_Impl,
4156            const OFFSET: isize,
4157        >(
4158            this: *mut core::ffi::c_void,
4159            password: windows_core::PCWSTR,
4160        ) -> windows_core::HRESULT {
4161            unsafe {
4162                let this: &Identity =
4163                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
4164                ICoreWebView2BasicAuthenticationResponse_Impl::SetPassword(
4165                    this,
4166                    core::mem::transmute(&password),
4167                )
4168                .into()
4169            }
4170        }
4171        Self {
4172            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
4173            UserName: UserName::<Identity, OFFSET>,
4174            SetUserName: SetUserName::<Identity, OFFSET>,
4175            Password: Password::<Identity, OFFSET>,
4176            SetPassword: SetPassword::<Identity, OFFSET>,
4177        }
4178    }
4179    pub fn matches(iid: &windows_core::GUID) -> bool {
4180        iid == &<ICoreWebView2BasicAuthenticationResponse as windows_core::Interface>::IID
4181    }
4182}
4183impl windows_core::RuntimeName for ICoreWebView2BasicAuthenticationResponse {}
4184windows_core::imp::define_interface!(
4185    ICoreWebView2BrowserExtension,
4186    ICoreWebView2BrowserExtension_Vtbl,
4187    0x7ef7ffa0_fac5_462c_b189_3d9edbe575da
4188);
4189windows_core::imp::interface_hierarchy!(ICoreWebView2BrowserExtension, windows_core::IUnknown);
4190impl ICoreWebView2BrowserExtension {
4191    pub unsafe fn Id(&self, value: *mut windows_core::PWSTR) -> windows_core::Result<()> {
4192        unsafe {
4193            (windows_core::Interface::vtable(self).Id)(
4194                windows_core::Interface::as_raw(self),
4195                value as _,
4196            )
4197            .ok()
4198        }
4199    }
4200    pub unsafe fn Name(&self, value: *mut windows_core::PWSTR) -> windows_core::Result<()> {
4201        unsafe {
4202            (windows_core::Interface::vtable(self).Name)(
4203                windows_core::Interface::as_raw(self),
4204                value as _,
4205            )
4206            .ok()
4207        }
4208    }
4209    pub unsafe fn Remove<P0>(&self, handler: P0) -> windows_core::Result<()>
4210    where
4211        P0: windows_core::Param<ICoreWebView2BrowserExtensionRemoveCompletedHandler>,
4212    {
4213        unsafe {
4214            (windows_core::Interface::vtable(self).Remove)(
4215                windows_core::Interface::as_raw(self),
4216                handler.param().abi(),
4217            )
4218            .ok()
4219        }
4220    }
4221    pub unsafe fn IsEnabled(&self, value: *mut windows_core::BOOL) -> windows_core::Result<()> {
4222        unsafe {
4223            (windows_core::Interface::vtable(self).IsEnabled)(
4224                windows_core::Interface::as_raw(self),
4225                value as _,
4226            )
4227            .ok()
4228        }
4229    }
4230    pub unsafe fn Enable<P1>(&self, isenabled: bool, handler: P1) -> windows_core::Result<()>
4231    where
4232        P1: windows_core::Param<ICoreWebView2BrowserExtensionEnableCompletedHandler>,
4233    {
4234        unsafe {
4235            (windows_core::Interface::vtable(self).Enable)(
4236                windows_core::Interface::as_raw(self),
4237                isenabled.into(),
4238                handler.param().abi(),
4239            )
4240            .ok()
4241        }
4242    }
4243}
4244#[repr(C)]
4245#[doc(hidden)]
4246pub struct ICoreWebView2BrowserExtension_Vtbl {
4247    pub base__: windows_core::IUnknown_Vtbl,
4248    pub Id: unsafe extern "system" fn(
4249        *mut core::ffi::c_void,
4250        *mut windows_core::PWSTR,
4251    ) -> windows_core::HRESULT,
4252    pub Name: unsafe extern "system" fn(
4253        *mut core::ffi::c_void,
4254        *mut windows_core::PWSTR,
4255    ) -> windows_core::HRESULT,
4256    pub Remove: unsafe extern "system" fn(
4257        *mut core::ffi::c_void,
4258        *mut core::ffi::c_void,
4259    ) -> windows_core::HRESULT,
4260    pub IsEnabled: unsafe extern "system" fn(
4261        *mut core::ffi::c_void,
4262        *mut windows_core::BOOL,
4263    ) -> windows_core::HRESULT,
4264    pub Enable: unsafe extern "system" fn(
4265        *mut core::ffi::c_void,
4266        windows_core::BOOL,
4267        *mut core::ffi::c_void,
4268    ) -> windows_core::HRESULT,
4269}
4270pub trait ICoreWebView2BrowserExtension_Impl: windows_core::IUnknownImpl {
4271    fn Id(&self, value: *mut windows_core::PWSTR) -> windows_core::Result<()>;
4272    fn Name(&self, value: *mut windows_core::PWSTR) -> windows_core::Result<()>;
4273    fn Remove(
4274        &self,
4275        handler: windows_core::Ref<'_, ICoreWebView2BrowserExtensionRemoveCompletedHandler>,
4276    ) -> windows_core::Result<()>;
4277    fn IsEnabled(&self, value: *mut windows_core::BOOL) -> windows_core::Result<()>;
4278    fn Enable(
4279        &self,
4280        isenabled: windows_core::BOOL,
4281        handler: windows_core::Ref<'_, ICoreWebView2BrowserExtensionEnableCompletedHandler>,
4282    ) -> windows_core::Result<()>;
4283}
4284impl ICoreWebView2BrowserExtension_Vtbl {
4285    pub const fn new<Identity: ICoreWebView2BrowserExtension_Impl, const OFFSET: isize>() -> Self {
4286        unsafe extern "system" fn Id<
4287            Identity: ICoreWebView2BrowserExtension_Impl,
4288            const OFFSET: isize,
4289        >(
4290            this: *mut core::ffi::c_void,
4291            value: *mut windows_core::PWSTR,
4292        ) -> windows_core::HRESULT {
4293            unsafe {
4294                let this: &Identity =
4295                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
4296                ICoreWebView2BrowserExtension_Impl::Id(this, core::mem::transmute_copy(&value))
4297                    .into()
4298            }
4299        }
4300        unsafe extern "system" fn Name<
4301            Identity: ICoreWebView2BrowserExtension_Impl,
4302            const OFFSET: isize,
4303        >(
4304            this: *mut core::ffi::c_void,
4305            value: *mut windows_core::PWSTR,
4306        ) -> windows_core::HRESULT {
4307            unsafe {
4308                let this: &Identity =
4309                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
4310                ICoreWebView2BrowserExtension_Impl::Name(this, core::mem::transmute_copy(&value))
4311                    .into()
4312            }
4313        }
4314        unsafe extern "system" fn Remove<
4315            Identity: ICoreWebView2BrowserExtension_Impl,
4316            const OFFSET: isize,
4317        >(
4318            this: *mut core::ffi::c_void,
4319            handler: *mut core::ffi::c_void,
4320        ) -> windows_core::HRESULT {
4321            unsafe {
4322                let this: &Identity =
4323                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
4324                ICoreWebView2BrowserExtension_Impl::Remove(
4325                    this,
4326                    core::mem::transmute_copy(&handler),
4327                )
4328                .into()
4329            }
4330        }
4331        unsafe extern "system" fn IsEnabled<
4332            Identity: ICoreWebView2BrowserExtension_Impl,
4333            const OFFSET: isize,
4334        >(
4335            this: *mut core::ffi::c_void,
4336            value: *mut windows_core::BOOL,
4337        ) -> windows_core::HRESULT {
4338            unsafe {
4339                let this: &Identity =
4340                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
4341                ICoreWebView2BrowserExtension_Impl::IsEnabled(
4342                    this,
4343                    core::mem::transmute_copy(&value),
4344                )
4345                .into()
4346            }
4347        }
4348        unsafe extern "system" fn Enable<
4349            Identity: ICoreWebView2BrowserExtension_Impl,
4350            const OFFSET: isize,
4351        >(
4352            this: *mut core::ffi::c_void,
4353            isenabled: windows_core::BOOL,
4354            handler: *mut core::ffi::c_void,
4355        ) -> windows_core::HRESULT {
4356            unsafe {
4357                let this: &Identity =
4358                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
4359                ICoreWebView2BrowserExtension_Impl::Enable(
4360                    this,
4361                    core::mem::transmute_copy(&isenabled),
4362                    core::mem::transmute_copy(&handler),
4363                )
4364                .into()
4365            }
4366        }
4367        Self {
4368            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
4369            Id: Id::<Identity, OFFSET>,
4370            Name: Name::<Identity, OFFSET>,
4371            Remove: Remove::<Identity, OFFSET>,
4372            IsEnabled: IsEnabled::<Identity, OFFSET>,
4373            Enable: Enable::<Identity, OFFSET>,
4374        }
4375    }
4376    pub fn matches(iid: &windows_core::GUID) -> bool {
4377        iid == &<ICoreWebView2BrowserExtension as windows_core::Interface>::IID
4378    }
4379}
4380impl windows_core::RuntimeName for ICoreWebView2BrowserExtension {}
4381windows_core::imp::define_interface!(
4382    ICoreWebView2BrowserExtensionEnableCompletedHandler,
4383    ICoreWebView2BrowserExtensionEnableCompletedHandler_Vtbl,
4384    0x30c186ce_7fad_421f_a3bc_a8eaf071ddb8
4385);
4386windows_core::imp::interface_hierarchy!(
4387    ICoreWebView2BrowserExtensionEnableCompletedHandler,
4388    windows_core::IUnknown
4389);
4390impl ICoreWebView2BrowserExtensionEnableCompletedHandler {
4391    pub unsafe fn Invoke(&self, errorcode: windows_core::HRESULT) -> windows_core::Result<()> {
4392        unsafe {
4393            (windows_core::Interface::vtable(self).Invoke)(
4394                windows_core::Interface::as_raw(self),
4395                errorcode,
4396            )
4397            .ok()
4398        }
4399    }
4400}
4401#[repr(C)]
4402#[doc(hidden)]
4403pub struct ICoreWebView2BrowserExtensionEnableCompletedHandler_Vtbl {
4404    pub base__: windows_core::IUnknown_Vtbl,
4405    pub Invoke: unsafe extern "system" fn(
4406        *mut core::ffi::c_void,
4407        windows_core::HRESULT,
4408    ) -> windows_core::HRESULT,
4409}
4410pub trait ICoreWebView2BrowserExtensionEnableCompletedHandler_Impl:
4411    windows_core::IUnknownImpl
4412{
4413    fn Invoke(&self, errorcode: windows_core::HRESULT) -> windows_core::Result<()>;
4414}
4415impl ICoreWebView2BrowserExtensionEnableCompletedHandler_Vtbl {
4416    pub const fn new<
4417        Identity: ICoreWebView2BrowserExtensionEnableCompletedHandler_Impl,
4418        const OFFSET: isize,
4419    >() -> Self {
4420        unsafe extern "system" fn Invoke<
4421            Identity: ICoreWebView2BrowserExtensionEnableCompletedHandler_Impl,
4422            const OFFSET: isize,
4423        >(
4424            this: *mut core::ffi::c_void,
4425            errorcode: windows_core::HRESULT,
4426        ) -> windows_core::HRESULT {
4427            unsafe {
4428                let this: &Identity =
4429                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
4430                ICoreWebView2BrowserExtensionEnableCompletedHandler_Impl::Invoke(
4431                    this,
4432                    core::mem::transmute_copy(&errorcode),
4433                )
4434                .into()
4435            }
4436        }
4437        Self {
4438            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
4439            Invoke: Invoke::<Identity, OFFSET>,
4440        }
4441    }
4442    pub fn matches(iid: &windows_core::GUID) -> bool {
4443        iid == & < ICoreWebView2BrowserExtensionEnableCompletedHandler as windows_core::Interface >::IID
4444    }
4445}
4446impl windows_core::RuntimeName for ICoreWebView2BrowserExtensionEnableCompletedHandler {}
4447windows_core::imp::define_interface!(
4448    ICoreWebView2BrowserExtensionList,
4449    ICoreWebView2BrowserExtensionList_Vtbl,
4450    0x2ef3d2dc_bd5f_4f4d_90af_fd67798f0c2f
4451);
4452windows_core::imp::interface_hierarchy!(ICoreWebView2BrowserExtensionList, windows_core::IUnknown);
4453impl ICoreWebView2BrowserExtensionList {
4454    pub unsafe fn Count(&self, value: *mut u32) -> windows_core::Result<()> {
4455        unsafe {
4456            (windows_core::Interface::vtable(self).Count)(
4457                windows_core::Interface::as_raw(self),
4458                value as _,
4459            )
4460            .ok()
4461        }
4462    }
4463    pub unsafe fn GetValueAtIndex(
4464        &self,
4465        index: u32,
4466    ) -> windows_core::Result<ICoreWebView2BrowserExtension> {
4467        unsafe {
4468            let mut result__ = core::mem::zeroed();
4469            (windows_core::Interface::vtable(self).GetValueAtIndex)(
4470                windows_core::Interface::as_raw(self),
4471                index,
4472                &mut result__,
4473            )
4474            .and_then(|| windows_core::Type::from_abi(result__))
4475        }
4476    }
4477}
4478#[repr(C)]
4479#[doc(hidden)]
4480pub struct ICoreWebView2BrowserExtensionList_Vtbl {
4481    pub base__: windows_core::IUnknown_Vtbl,
4482    pub Count: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
4483    pub GetValueAtIndex: unsafe extern "system" fn(
4484        *mut core::ffi::c_void,
4485        u32,
4486        *mut *mut core::ffi::c_void,
4487    ) -> windows_core::HRESULT,
4488}
4489pub trait ICoreWebView2BrowserExtensionList_Impl: windows_core::IUnknownImpl {
4490    fn Count(&self, value: *mut u32) -> windows_core::Result<()>;
4491    fn GetValueAtIndex(&self, index: u32) -> windows_core::Result<ICoreWebView2BrowserExtension>;
4492}
4493impl ICoreWebView2BrowserExtensionList_Vtbl {
4494    pub const fn new<Identity: ICoreWebView2BrowserExtensionList_Impl, const OFFSET: isize>() -> Self
4495    {
4496        unsafe extern "system" fn Count<
4497            Identity: ICoreWebView2BrowserExtensionList_Impl,
4498            const OFFSET: isize,
4499        >(
4500            this: *mut core::ffi::c_void,
4501            value: *mut u32,
4502        ) -> windows_core::HRESULT {
4503            unsafe {
4504                let this: &Identity =
4505                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
4506                ICoreWebView2BrowserExtensionList_Impl::Count(
4507                    this,
4508                    core::mem::transmute_copy(&value),
4509                )
4510                .into()
4511            }
4512        }
4513        unsafe extern "system" fn GetValueAtIndex<
4514            Identity: ICoreWebView2BrowserExtensionList_Impl,
4515            const OFFSET: isize,
4516        >(
4517            this: *mut core::ffi::c_void,
4518            index: u32,
4519            value: *mut *mut core::ffi::c_void,
4520        ) -> windows_core::HRESULT {
4521            unsafe {
4522                let this: &Identity =
4523                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
4524                match ICoreWebView2BrowserExtensionList_Impl::GetValueAtIndex(
4525                    this,
4526                    core::mem::transmute_copy(&index),
4527                ) {
4528                    Ok(ok__) => {
4529                        value.write(core::mem::transmute(ok__));
4530                        windows_core::HRESULT(0)
4531                    }
4532                    Err(err) => err.into(),
4533                }
4534            }
4535        }
4536        Self {
4537            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
4538            Count: Count::<Identity, OFFSET>,
4539            GetValueAtIndex: GetValueAtIndex::<Identity, OFFSET>,
4540        }
4541    }
4542    pub fn matches(iid: &windows_core::GUID) -> bool {
4543        iid == &<ICoreWebView2BrowserExtensionList as windows_core::Interface>::IID
4544    }
4545}
4546impl windows_core::RuntimeName for ICoreWebView2BrowserExtensionList {}
4547windows_core::imp::define_interface!(
4548    ICoreWebView2BrowserExtensionRemoveCompletedHandler,
4549    ICoreWebView2BrowserExtensionRemoveCompletedHandler_Vtbl,
4550    0x8e41909a_9b18_4bb1_8cdf_930f467a50be
4551);
4552windows_core::imp::interface_hierarchy!(
4553    ICoreWebView2BrowserExtensionRemoveCompletedHandler,
4554    windows_core::IUnknown
4555);
4556impl ICoreWebView2BrowserExtensionRemoveCompletedHandler {
4557    pub unsafe fn Invoke(&self, errorcode: windows_core::HRESULT) -> windows_core::Result<()> {
4558        unsafe {
4559            (windows_core::Interface::vtable(self).Invoke)(
4560                windows_core::Interface::as_raw(self),
4561                errorcode,
4562            )
4563            .ok()
4564        }
4565    }
4566}
4567#[repr(C)]
4568#[doc(hidden)]
4569pub struct ICoreWebView2BrowserExtensionRemoveCompletedHandler_Vtbl {
4570    pub base__: windows_core::IUnknown_Vtbl,
4571    pub Invoke: unsafe extern "system" fn(
4572        *mut core::ffi::c_void,
4573        windows_core::HRESULT,
4574    ) -> windows_core::HRESULT,
4575}
4576pub trait ICoreWebView2BrowserExtensionRemoveCompletedHandler_Impl:
4577    windows_core::IUnknownImpl
4578{
4579    fn Invoke(&self, errorcode: windows_core::HRESULT) -> windows_core::Result<()>;
4580}
4581impl ICoreWebView2BrowserExtensionRemoveCompletedHandler_Vtbl {
4582    pub const fn new<
4583        Identity: ICoreWebView2BrowserExtensionRemoveCompletedHandler_Impl,
4584        const OFFSET: isize,
4585    >() -> Self {
4586        unsafe extern "system" fn Invoke<
4587            Identity: ICoreWebView2BrowserExtensionRemoveCompletedHandler_Impl,
4588            const OFFSET: isize,
4589        >(
4590            this: *mut core::ffi::c_void,
4591            errorcode: windows_core::HRESULT,
4592        ) -> windows_core::HRESULT {
4593            unsafe {
4594                let this: &Identity =
4595                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
4596                ICoreWebView2BrowserExtensionRemoveCompletedHandler_Impl::Invoke(
4597                    this,
4598                    core::mem::transmute_copy(&errorcode),
4599                )
4600                .into()
4601            }
4602        }
4603        Self {
4604            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
4605            Invoke: Invoke::<Identity, OFFSET>,
4606        }
4607    }
4608    pub fn matches(iid: &windows_core::GUID) -> bool {
4609        iid == & < ICoreWebView2BrowserExtensionRemoveCompletedHandler as windows_core::Interface >::IID
4610    }
4611}
4612impl windows_core::RuntimeName for ICoreWebView2BrowserExtensionRemoveCompletedHandler {}
4613windows_core::imp::define_interface!(
4614    ICoreWebView2BrowserProcessExitedEventArgs,
4615    ICoreWebView2BrowserProcessExitedEventArgs_Vtbl,
4616    0x1f00663f_af8c_4782_9cdd_dd01c52e34cb
4617);
4618windows_core::imp::interface_hierarchy!(
4619    ICoreWebView2BrowserProcessExitedEventArgs,
4620    windows_core::IUnknown
4621);
4622impl ICoreWebView2BrowserProcessExitedEventArgs {
4623    pub unsafe fn BrowserProcessExitKind(
4624        &self,
4625        value: *mut COREWEBVIEW2_BROWSER_PROCESS_EXIT_KIND,
4626    ) -> windows_core::Result<()> {
4627        unsafe {
4628            (windows_core::Interface::vtable(self).BrowserProcessExitKind)(
4629                windows_core::Interface::as_raw(self),
4630                value as _,
4631            )
4632            .ok()
4633        }
4634    }
4635    pub unsafe fn BrowserProcessId(&self, value: *mut u32) -> windows_core::Result<()> {
4636        unsafe {
4637            (windows_core::Interface::vtable(self).BrowserProcessId)(
4638                windows_core::Interface::as_raw(self),
4639                value as _,
4640            )
4641            .ok()
4642        }
4643    }
4644}
4645#[repr(C)]
4646#[doc(hidden)]
4647pub struct ICoreWebView2BrowserProcessExitedEventArgs_Vtbl {
4648    pub base__: windows_core::IUnknown_Vtbl,
4649    pub BrowserProcessExitKind: unsafe extern "system" fn(
4650        *mut core::ffi::c_void,
4651        *mut COREWEBVIEW2_BROWSER_PROCESS_EXIT_KIND,
4652    ) -> windows_core::HRESULT,
4653    pub BrowserProcessId:
4654        unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
4655}
4656pub trait ICoreWebView2BrowserProcessExitedEventArgs_Impl: windows_core::IUnknownImpl {
4657    fn BrowserProcessExitKind(
4658        &self,
4659        value: *mut COREWEBVIEW2_BROWSER_PROCESS_EXIT_KIND,
4660    ) -> windows_core::Result<()>;
4661    fn BrowserProcessId(&self, value: *mut u32) -> windows_core::Result<()>;
4662}
4663impl ICoreWebView2BrowserProcessExitedEventArgs_Vtbl {
4664    pub const fn new<
4665        Identity: ICoreWebView2BrowserProcessExitedEventArgs_Impl,
4666        const OFFSET: isize,
4667    >() -> Self {
4668        unsafe extern "system" fn BrowserProcessExitKind<
4669            Identity: ICoreWebView2BrowserProcessExitedEventArgs_Impl,
4670            const OFFSET: isize,
4671        >(
4672            this: *mut core::ffi::c_void,
4673            value: *mut COREWEBVIEW2_BROWSER_PROCESS_EXIT_KIND,
4674        ) -> windows_core::HRESULT {
4675            unsafe {
4676                let this: &Identity =
4677                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
4678                ICoreWebView2BrowserProcessExitedEventArgs_Impl::BrowserProcessExitKind(
4679                    this,
4680                    core::mem::transmute_copy(&value),
4681                )
4682                .into()
4683            }
4684        }
4685        unsafe extern "system" fn BrowserProcessId<
4686            Identity: ICoreWebView2BrowserProcessExitedEventArgs_Impl,
4687            const OFFSET: isize,
4688        >(
4689            this: *mut core::ffi::c_void,
4690            value: *mut u32,
4691        ) -> windows_core::HRESULT {
4692            unsafe {
4693                let this: &Identity =
4694                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
4695                ICoreWebView2BrowserProcessExitedEventArgs_Impl::BrowserProcessId(
4696                    this,
4697                    core::mem::transmute_copy(&value),
4698                )
4699                .into()
4700            }
4701        }
4702        Self {
4703            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
4704            BrowserProcessExitKind: BrowserProcessExitKind::<Identity, OFFSET>,
4705            BrowserProcessId: BrowserProcessId::<Identity, OFFSET>,
4706        }
4707    }
4708    pub fn matches(iid: &windows_core::GUID) -> bool {
4709        iid == &<ICoreWebView2BrowserProcessExitedEventArgs as windows_core::Interface>::IID
4710    }
4711}
4712impl windows_core::RuntimeName for ICoreWebView2BrowserProcessExitedEventArgs {}
4713windows_core::imp::define_interface!(
4714    ICoreWebView2BrowserProcessExitedEventHandler,
4715    ICoreWebView2BrowserProcessExitedEventHandler_Vtbl,
4716    0xfa504257_a216_4911_a860_fe8825712861
4717);
4718windows_core::imp::interface_hierarchy!(
4719    ICoreWebView2BrowserProcessExitedEventHandler,
4720    windows_core::IUnknown
4721);
4722impl ICoreWebView2BrowserProcessExitedEventHandler {
4723    pub unsafe fn Invoke<P0, P1>(&self, sender: P0, args: P1) -> windows_core::Result<()>
4724    where
4725        P0: windows_core::Param<ICoreWebView2Environment>,
4726        P1: windows_core::Param<ICoreWebView2BrowserProcessExitedEventArgs>,
4727    {
4728        unsafe {
4729            (windows_core::Interface::vtable(self).Invoke)(
4730                windows_core::Interface::as_raw(self),
4731                sender.param().abi(),
4732                args.param().abi(),
4733            )
4734            .ok()
4735        }
4736    }
4737}
4738#[repr(C)]
4739#[doc(hidden)]
4740pub struct ICoreWebView2BrowserProcessExitedEventHandler_Vtbl {
4741    pub base__: windows_core::IUnknown_Vtbl,
4742    pub Invoke: unsafe extern "system" fn(
4743        *mut core::ffi::c_void,
4744        *mut core::ffi::c_void,
4745        *mut core::ffi::c_void,
4746    ) -> windows_core::HRESULT,
4747}
4748pub trait ICoreWebView2BrowserProcessExitedEventHandler_Impl: windows_core::IUnknownImpl {
4749    fn Invoke(
4750        &self,
4751        sender: windows_core::Ref<'_, ICoreWebView2Environment>,
4752        args: windows_core::Ref<'_, ICoreWebView2BrowserProcessExitedEventArgs>,
4753    ) -> windows_core::Result<()>;
4754}
4755impl ICoreWebView2BrowserProcessExitedEventHandler_Vtbl {
4756    pub const fn new<
4757        Identity: ICoreWebView2BrowserProcessExitedEventHandler_Impl,
4758        const OFFSET: isize,
4759    >() -> Self {
4760        unsafe extern "system" fn Invoke<
4761            Identity: ICoreWebView2BrowserProcessExitedEventHandler_Impl,
4762            const OFFSET: isize,
4763        >(
4764            this: *mut core::ffi::c_void,
4765            sender: *mut core::ffi::c_void,
4766            args: *mut core::ffi::c_void,
4767        ) -> windows_core::HRESULT {
4768            unsafe {
4769                let this: &Identity =
4770                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
4771                ICoreWebView2BrowserProcessExitedEventHandler_Impl::Invoke(
4772                    this,
4773                    core::mem::transmute_copy(&sender),
4774                    core::mem::transmute_copy(&args),
4775                )
4776                .into()
4777            }
4778        }
4779        Self {
4780            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
4781            Invoke: Invoke::<Identity, OFFSET>,
4782        }
4783    }
4784    pub fn matches(iid: &windows_core::GUID) -> bool {
4785        iid == &<ICoreWebView2BrowserProcessExitedEventHandler as windows_core::Interface>::IID
4786    }
4787}
4788impl windows_core::RuntimeName for ICoreWebView2BrowserProcessExitedEventHandler {}
4789windows_core::imp::define_interface!(
4790    ICoreWebView2BytesReceivedChangedEventHandler,
4791    ICoreWebView2BytesReceivedChangedEventHandler_Vtbl,
4792    0x828e8ab6_d94c_4264_9cef_5217170d6251
4793);
4794windows_core::imp::interface_hierarchy!(
4795    ICoreWebView2BytesReceivedChangedEventHandler,
4796    windows_core::IUnknown
4797);
4798impl ICoreWebView2BytesReceivedChangedEventHandler {
4799    pub unsafe fn Invoke<P0, P1>(&self, sender: P0, args: P1) -> windows_core::Result<()>
4800    where
4801        P0: windows_core::Param<ICoreWebView2DownloadOperation>,
4802        P1: windows_core::Param<windows_core::IUnknown>,
4803    {
4804        unsafe {
4805            (windows_core::Interface::vtable(self).Invoke)(
4806                windows_core::Interface::as_raw(self),
4807                sender.param().abi(),
4808                args.param().abi(),
4809            )
4810            .ok()
4811        }
4812    }
4813}
4814#[repr(C)]
4815#[doc(hidden)]
4816pub struct ICoreWebView2BytesReceivedChangedEventHandler_Vtbl {
4817    pub base__: windows_core::IUnknown_Vtbl,
4818    pub Invoke: unsafe extern "system" fn(
4819        *mut core::ffi::c_void,
4820        *mut core::ffi::c_void,
4821        *mut core::ffi::c_void,
4822    ) -> windows_core::HRESULT,
4823}
4824pub trait ICoreWebView2BytesReceivedChangedEventHandler_Impl: windows_core::IUnknownImpl {
4825    fn Invoke(
4826        &self,
4827        sender: windows_core::Ref<'_, ICoreWebView2DownloadOperation>,
4828        args: windows_core::Ref<'_, windows_core::IUnknown>,
4829    ) -> windows_core::Result<()>;
4830}
4831impl ICoreWebView2BytesReceivedChangedEventHandler_Vtbl {
4832    pub const fn new<
4833        Identity: ICoreWebView2BytesReceivedChangedEventHandler_Impl,
4834        const OFFSET: isize,
4835    >() -> Self {
4836        unsafe extern "system" fn Invoke<
4837            Identity: ICoreWebView2BytesReceivedChangedEventHandler_Impl,
4838            const OFFSET: isize,
4839        >(
4840            this: *mut core::ffi::c_void,
4841            sender: *mut core::ffi::c_void,
4842            args: *mut core::ffi::c_void,
4843        ) -> windows_core::HRESULT {
4844            unsafe {
4845                let this: &Identity =
4846                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
4847                ICoreWebView2BytesReceivedChangedEventHandler_Impl::Invoke(
4848                    this,
4849                    core::mem::transmute_copy(&sender),
4850                    core::mem::transmute_copy(&args),
4851                )
4852                .into()
4853            }
4854        }
4855        Self {
4856            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
4857            Invoke: Invoke::<Identity, OFFSET>,
4858        }
4859    }
4860    pub fn matches(iid: &windows_core::GUID) -> bool {
4861        iid == &<ICoreWebView2BytesReceivedChangedEventHandler as windows_core::Interface>::IID
4862    }
4863}
4864impl windows_core::RuntimeName for ICoreWebView2BytesReceivedChangedEventHandler {}
4865windows_core::imp::define_interface!(
4866    ICoreWebView2CallDevToolsProtocolMethodCompletedHandler,
4867    ICoreWebView2CallDevToolsProtocolMethodCompletedHandler_Vtbl,
4868    0x5c4889f0_5ef6_4c5a_952c_d8f1b92d0574
4869);
4870windows_core::imp::interface_hierarchy!(
4871    ICoreWebView2CallDevToolsProtocolMethodCompletedHandler,
4872    windows_core::IUnknown
4873);
4874impl ICoreWebView2CallDevToolsProtocolMethodCompletedHandler {
4875    pub unsafe fn Invoke<P1>(
4876        &self,
4877        errorcode: windows_core::HRESULT,
4878        result: P1,
4879    ) -> windows_core::Result<()>
4880    where
4881        P1: windows_core::Param<windows_core::PCWSTR>,
4882    {
4883        unsafe {
4884            (windows_core::Interface::vtable(self).Invoke)(
4885                windows_core::Interface::as_raw(self),
4886                errorcode,
4887                result.param().abi(),
4888            )
4889            .ok()
4890        }
4891    }
4892}
4893#[repr(C)]
4894#[doc(hidden)]
4895pub struct ICoreWebView2CallDevToolsProtocolMethodCompletedHandler_Vtbl {
4896    pub base__: windows_core::IUnknown_Vtbl,
4897    pub Invoke: unsafe extern "system" fn(
4898        *mut core::ffi::c_void,
4899        windows_core::HRESULT,
4900        windows_core::PCWSTR,
4901    ) -> windows_core::HRESULT,
4902}
4903pub trait ICoreWebView2CallDevToolsProtocolMethodCompletedHandler_Impl:
4904    windows_core::IUnknownImpl
4905{
4906    fn Invoke(
4907        &self,
4908        errorcode: windows_core::HRESULT,
4909        result: &windows_core::PCWSTR,
4910    ) -> windows_core::Result<()>;
4911}
4912impl ICoreWebView2CallDevToolsProtocolMethodCompletedHandler_Vtbl {
4913    pub const fn new<
4914        Identity: ICoreWebView2CallDevToolsProtocolMethodCompletedHandler_Impl,
4915        const OFFSET: isize,
4916    >() -> Self {
4917        unsafe extern "system" fn Invoke<
4918            Identity: ICoreWebView2CallDevToolsProtocolMethodCompletedHandler_Impl,
4919            const OFFSET: isize,
4920        >(
4921            this: *mut core::ffi::c_void,
4922            errorcode: windows_core::HRESULT,
4923            result: windows_core::PCWSTR,
4924        ) -> windows_core::HRESULT {
4925            unsafe {
4926                let this: &Identity =
4927                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
4928                ICoreWebView2CallDevToolsProtocolMethodCompletedHandler_Impl::Invoke(
4929                    this,
4930                    core::mem::transmute_copy(&errorcode),
4931                    core::mem::transmute(&result),
4932                )
4933                .into()
4934            }
4935        }
4936        Self {
4937            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
4938            Invoke: Invoke::<Identity, OFFSET>,
4939        }
4940    }
4941    pub fn matches(iid: &windows_core::GUID) -> bool {
4942        iid == & < ICoreWebView2CallDevToolsProtocolMethodCompletedHandler as windows_core::Interface >::IID
4943    }
4944}
4945impl windows_core::RuntimeName for ICoreWebView2CallDevToolsProtocolMethodCompletedHandler {}
4946windows_core::imp::define_interface!(
4947    ICoreWebView2CapturePreviewCompletedHandler,
4948    ICoreWebView2CapturePreviewCompletedHandler_Vtbl,
4949    0x697e05e9_3d8f_45fa_96f4_8ffe1ededaf5
4950);
4951windows_core::imp::interface_hierarchy!(
4952    ICoreWebView2CapturePreviewCompletedHandler,
4953    windows_core::IUnknown
4954);
4955impl ICoreWebView2CapturePreviewCompletedHandler {
4956    pub unsafe fn Invoke(&self, errorcode: windows_core::HRESULT) -> windows_core::Result<()> {
4957        unsafe {
4958            (windows_core::Interface::vtable(self).Invoke)(
4959                windows_core::Interface::as_raw(self),
4960                errorcode,
4961            )
4962            .ok()
4963        }
4964    }
4965}
4966#[repr(C)]
4967#[doc(hidden)]
4968pub struct ICoreWebView2CapturePreviewCompletedHandler_Vtbl {
4969    pub base__: windows_core::IUnknown_Vtbl,
4970    pub Invoke: unsafe extern "system" fn(
4971        *mut core::ffi::c_void,
4972        windows_core::HRESULT,
4973    ) -> windows_core::HRESULT,
4974}
4975pub trait ICoreWebView2CapturePreviewCompletedHandler_Impl: windows_core::IUnknownImpl {
4976    fn Invoke(&self, errorcode: windows_core::HRESULT) -> windows_core::Result<()>;
4977}
4978impl ICoreWebView2CapturePreviewCompletedHandler_Vtbl {
4979    pub const fn new<
4980        Identity: ICoreWebView2CapturePreviewCompletedHandler_Impl,
4981        const OFFSET: isize,
4982    >() -> Self {
4983        unsafe extern "system" fn Invoke<
4984            Identity: ICoreWebView2CapturePreviewCompletedHandler_Impl,
4985            const OFFSET: isize,
4986        >(
4987            this: *mut core::ffi::c_void,
4988            errorcode: windows_core::HRESULT,
4989        ) -> windows_core::HRESULT {
4990            unsafe {
4991                let this: &Identity =
4992                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
4993                ICoreWebView2CapturePreviewCompletedHandler_Impl::Invoke(
4994                    this,
4995                    core::mem::transmute_copy(&errorcode),
4996                )
4997                .into()
4998            }
4999        }
5000        Self {
5001            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
5002            Invoke: Invoke::<Identity, OFFSET>,
5003        }
5004    }
5005    pub fn matches(iid: &windows_core::GUID) -> bool {
5006        iid == &<ICoreWebView2CapturePreviewCompletedHandler as windows_core::Interface>::IID
5007    }
5008}
5009impl windows_core::RuntimeName for ICoreWebView2CapturePreviewCompletedHandler {}
5010windows_core::imp::define_interface!(
5011    ICoreWebView2Certificate,
5012    ICoreWebView2Certificate_Vtbl,
5013    0xc5fb2fce_1cac_4aee_9c79_5ed0362eaae0
5014);
5015windows_core::imp::interface_hierarchy!(ICoreWebView2Certificate, windows_core::IUnknown);
5016impl ICoreWebView2Certificate {
5017    pub unsafe fn Subject(&self, value: *mut windows_core::PWSTR) -> windows_core::Result<()> {
5018        unsafe {
5019            (windows_core::Interface::vtable(self).Subject)(
5020                windows_core::Interface::as_raw(self),
5021                value as _,
5022            )
5023            .ok()
5024        }
5025    }
5026    pub unsafe fn Issuer(&self, value: *mut windows_core::PWSTR) -> windows_core::Result<()> {
5027        unsafe {
5028            (windows_core::Interface::vtable(self).Issuer)(
5029                windows_core::Interface::as_raw(self),
5030                value as _,
5031            )
5032            .ok()
5033        }
5034    }
5035    pub unsafe fn ValidFrom(&self, value: *mut f64) -> windows_core::Result<()> {
5036        unsafe {
5037            (windows_core::Interface::vtable(self).ValidFrom)(
5038                windows_core::Interface::as_raw(self),
5039                value as _,
5040            )
5041            .ok()
5042        }
5043    }
5044    pub unsafe fn ValidTo(&self, value: *mut f64) -> windows_core::Result<()> {
5045        unsafe {
5046            (windows_core::Interface::vtable(self).ValidTo)(
5047                windows_core::Interface::as_raw(self),
5048                value as _,
5049            )
5050            .ok()
5051        }
5052    }
5053    pub unsafe fn DerEncodedSerialNumber(
5054        &self,
5055        value: *mut windows_core::PWSTR,
5056    ) -> windows_core::Result<()> {
5057        unsafe {
5058            (windows_core::Interface::vtable(self).DerEncodedSerialNumber)(
5059                windows_core::Interface::as_raw(self),
5060                value as _,
5061            )
5062            .ok()
5063        }
5064    }
5065    pub unsafe fn DisplayName(&self, value: *mut windows_core::PWSTR) -> windows_core::Result<()> {
5066        unsafe {
5067            (windows_core::Interface::vtable(self).DisplayName)(
5068                windows_core::Interface::as_raw(self),
5069                value as _,
5070            )
5071            .ok()
5072        }
5073    }
5074    pub unsafe fn ToPemEncoding(
5075        &self,
5076        pemencodeddata: *mut windows_core::PWSTR,
5077    ) -> windows_core::Result<()> {
5078        unsafe {
5079            (windows_core::Interface::vtable(self).ToPemEncoding)(
5080                windows_core::Interface::as_raw(self),
5081                pemencodeddata as _,
5082            )
5083            .ok()
5084        }
5085    }
5086    pub unsafe fn PemEncodedIssuerCertificateChain(
5087        &self,
5088    ) -> windows_core::Result<ICoreWebView2StringCollection> {
5089        unsafe {
5090            let mut result__ = core::mem::zeroed();
5091            (windows_core::Interface::vtable(self).PemEncodedIssuerCertificateChain)(
5092                windows_core::Interface::as_raw(self),
5093                &mut result__,
5094            )
5095            .and_then(|| windows_core::Type::from_abi(result__))
5096        }
5097    }
5098}
5099#[repr(C)]
5100#[doc(hidden)]
5101pub struct ICoreWebView2Certificate_Vtbl {
5102    pub base__: windows_core::IUnknown_Vtbl,
5103    pub Subject: unsafe extern "system" fn(
5104        *mut core::ffi::c_void,
5105        *mut windows_core::PWSTR,
5106    ) -> windows_core::HRESULT,
5107    pub Issuer: unsafe extern "system" fn(
5108        *mut core::ffi::c_void,
5109        *mut windows_core::PWSTR,
5110    ) -> windows_core::HRESULT,
5111    pub ValidFrom:
5112        unsafe extern "system" fn(*mut core::ffi::c_void, *mut f64) -> windows_core::HRESULT,
5113    pub ValidTo:
5114        unsafe extern "system" fn(*mut core::ffi::c_void, *mut f64) -> windows_core::HRESULT,
5115    pub DerEncodedSerialNumber: unsafe extern "system" fn(
5116        *mut core::ffi::c_void,
5117        *mut windows_core::PWSTR,
5118    ) -> windows_core::HRESULT,
5119    pub DisplayName: unsafe extern "system" fn(
5120        *mut core::ffi::c_void,
5121        *mut windows_core::PWSTR,
5122    ) -> windows_core::HRESULT,
5123    pub ToPemEncoding: unsafe extern "system" fn(
5124        *mut core::ffi::c_void,
5125        *mut windows_core::PWSTR,
5126    ) -> windows_core::HRESULT,
5127    pub PemEncodedIssuerCertificateChain: unsafe extern "system" fn(
5128        *mut core::ffi::c_void,
5129        *mut *mut core::ffi::c_void,
5130    ) -> windows_core::HRESULT,
5131}
5132pub trait ICoreWebView2Certificate_Impl: windows_core::IUnknownImpl {
5133    fn Subject(&self, value: *mut windows_core::PWSTR) -> windows_core::Result<()>;
5134    fn Issuer(&self, value: *mut windows_core::PWSTR) -> windows_core::Result<()>;
5135    fn ValidFrom(&self, value: *mut f64) -> windows_core::Result<()>;
5136    fn ValidTo(&self, value: *mut f64) -> windows_core::Result<()>;
5137    fn DerEncodedSerialNumber(&self, value: *mut windows_core::PWSTR) -> windows_core::Result<()>;
5138    fn DisplayName(&self, value: *mut windows_core::PWSTR) -> windows_core::Result<()>;
5139    fn ToPemEncoding(&self, pemencodeddata: *mut windows_core::PWSTR) -> windows_core::Result<()>;
5140    fn PemEncodedIssuerCertificateChain(
5141        &self,
5142    ) -> windows_core::Result<ICoreWebView2StringCollection>;
5143}
5144impl ICoreWebView2Certificate_Vtbl {
5145    pub const fn new<Identity: ICoreWebView2Certificate_Impl, const OFFSET: isize>() -> Self {
5146        unsafe extern "system" fn Subject<
5147            Identity: ICoreWebView2Certificate_Impl,
5148            const OFFSET: isize,
5149        >(
5150            this: *mut core::ffi::c_void,
5151            value: *mut windows_core::PWSTR,
5152        ) -> windows_core::HRESULT {
5153            unsafe {
5154                let this: &Identity =
5155                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
5156                ICoreWebView2Certificate_Impl::Subject(this, core::mem::transmute_copy(&value))
5157                    .into()
5158            }
5159        }
5160        unsafe extern "system" fn Issuer<
5161            Identity: ICoreWebView2Certificate_Impl,
5162            const OFFSET: isize,
5163        >(
5164            this: *mut core::ffi::c_void,
5165            value: *mut windows_core::PWSTR,
5166        ) -> windows_core::HRESULT {
5167            unsafe {
5168                let this: &Identity =
5169                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
5170                ICoreWebView2Certificate_Impl::Issuer(this, core::mem::transmute_copy(&value))
5171                    .into()
5172            }
5173        }
5174        unsafe extern "system" fn ValidFrom<
5175            Identity: ICoreWebView2Certificate_Impl,
5176            const OFFSET: isize,
5177        >(
5178            this: *mut core::ffi::c_void,
5179            value: *mut f64,
5180        ) -> windows_core::HRESULT {
5181            unsafe {
5182                let this: &Identity =
5183                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
5184                ICoreWebView2Certificate_Impl::ValidFrom(this, core::mem::transmute_copy(&value))
5185                    .into()
5186            }
5187        }
5188        unsafe extern "system" fn ValidTo<
5189            Identity: ICoreWebView2Certificate_Impl,
5190            const OFFSET: isize,
5191        >(
5192            this: *mut core::ffi::c_void,
5193            value: *mut f64,
5194        ) -> windows_core::HRESULT {
5195            unsafe {
5196                let this: &Identity =
5197                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
5198                ICoreWebView2Certificate_Impl::ValidTo(this, core::mem::transmute_copy(&value))
5199                    .into()
5200            }
5201        }
5202        unsafe extern "system" fn DerEncodedSerialNumber<
5203            Identity: ICoreWebView2Certificate_Impl,
5204            const OFFSET: isize,
5205        >(
5206            this: *mut core::ffi::c_void,
5207            value: *mut windows_core::PWSTR,
5208        ) -> windows_core::HRESULT {
5209            unsafe {
5210                let this: &Identity =
5211                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
5212                ICoreWebView2Certificate_Impl::DerEncodedSerialNumber(
5213                    this,
5214                    core::mem::transmute_copy(&value),
5215                )
5216                .into()
5217            }
5218        }
5219        unsafe extern "system" fn DisplayName<
5220            Identity: ICoreWebView2Certificate_Impl,
5221            const OFFSET: isize,
5222        >(
5223            this: *mut core::ffi::c_void,
5224            value: *mut windows_core::PWSTR,
5225        ) -> windows_core::HRESULT {
5226            unsafe {
5227                let this: &Identity =
5228                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
5229                ICoreWebView2Certificate_Impl::DisplayName(this, core::mem::transmute_copy(&value))
5230                    .into()
5231            }
5232        }
5233        unsafe extern "system" fn ToPemEncoding<
5234            Identity: ICoreWebView2Certificate_Impl,
5235            const OFFSET: isize,
5236        >(
5237            this: *mut core::ffi::c_void,
5238            pemencodeddata: *mut windows_core::PWSTR,
5239        ) -> windows_core::HRESULT {
5240            unsafe {
5241                let this: &Identity =
5242                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
5243                ICoreWebView2Certificate_Impl::ToPemEncoding(
5244                    this,
5245                    core::mem::transmute_copy(&pemencodeddata),
5246                )
5247                .into()
5248            }
5249        }
5250        unsafe extern "system" fn PemEncodedIssuerCertificateChain<
5251            Identity: ICoreWebView2Certificate_Impl,
5252            const OFFSET: isize,
5253        >(
5254            this: *mut core::ffi::c_void,
5255            value: *mut *mut core::ffi::c_void,
5256        ) -> windows_core::HRESULT {
5257            unsafe {
5258                let this: &Identity =
5259                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
5260                match ICoreWebView2Certificate_Impl::PemEncodedIssuerCertificateChain(this) {
5261                    Ok(ok__) => {
5262                        value.write(core::mem::transmute(ok__));
5263                        windows_core::HRESULT(0)
5264                    }
5265                    Err(err) => err.into(),
5266                }
5267            }
5268        }
5269        Self {
5270            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
5271            Subject: Subject::<Identity, OFFSET>,
5272            Issuer: Issuer::<Identity, OFFSET>,
5273            ValidFrom: ValidFrom::<Identity, OFFSET>,
5274            ValidTo: ValidTo::<Identity, OFFSET>,
5275            DerEncodedSerialNumber: DerEncodedSerialNumber::<Identity, OFFSET>,
5276            DisplayName: DisplayName::<Identity, OFFSET>,
5277            ToPemEncoding: ToPemEncoding::<Identity, OFFSET>,
5278            PemEncodedIssuerCertificateChain: PemEncodedIssuerCertificateChain::<Identity, OFFSET>,
5279        }
5280    }
5281    pub fn matches(iid: &windows_core::GUID) -> bool {
5282        iid == &<ICoreWebView2Certificate as windows_core::Interface>::IID
5283    }
5284}
5285impl windows_core::RuntimeName for ICoreWebView2Certificate {}
5286windows_core::imp::define_interface!(
5287    ICoreWebView2ClearBrowsingDataCompletedHandler,
5288    ICoreWebView2ClearBrowsingDataCompletedHandler_Vtbl,
5289    0xe9710a06_1d1d_49b2_8234_226f35846ae5
5290);
5291windows_core::imp::interface_hierarchy!(
5292    ICoreWebView2ClearBrowsingDataCompletedHandler,
5293    windows_core::IUnknown
5294);
5295impl ICoreWebView2ClearBrowsingDataCompletedHandler {
5296    pub unsafe fn Invoke(&self, errorcode: windows_core::HRESULT) -> windows_core::Result<()> {
5297        unsafe {
5298            (windows_core::Interface::vtable(self).Invoke)(
5299                windows_core::Interface::as_raw(self),
5300                errorcode,
5301            )
5302            .ok()
5303        }
5304    }
5305}
5306#[repr(C)]
5307#[doc(hidden)]
5308pub struct ICoreWebView2ClearBrowsingDataCompletedHandler_Vtbl {
5309    pub base__: windows_core::IUnknown_Vtbl,
5310    pub Invoke: unsafe extern "system" fn(
5311        *mut core::ffi::c_void,
5312        windows_core::HRESULT,
5313    ) -> windows_core::HRESULT,
5314}
5315pub trait ICoreWebView2ClearBrowsingDataCompletedHandler_Impl: windows_core::IUnknownImpl {
5316    fn Invoke(&self, errorcode: windows_core::HRESULT) -> windows_core::Result<()>;
5317}
5318impl ICoreWebView2ClearBrowsingDataCompletedHandler_Vtbl {
5319    pub const fn new<
5320        Identity: ICoreWebView2ClearBrowsingDataCompletedHandler_Impl,
5321        const OFFSET: isize,
5322    >() -> Self {
5323        unsafe extern "system" fn Invoke<
5324            Identity: ICoreWebView2ClearBrowsingDataCompletedHandler_Impl,
5325            const OFFSET: isize,
5326        >(
5327            this: *mut core::ffi::c_void,
5328            errorcode: windows_core::HRESULT,
5329        ) -> windows_core::HRESULT {
5330            unsafe {
5331                let this: &Identity =
5332                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
5333                ICoreWebView2ClearBrowsingDataCompletedHandler_Impl::Invoke(
5334                    this,
5335                    core::mem::transmute_copy(&errorcode),
5336                )
5337                .into()
5338            }
5339        }
5340        Self {
5341            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
5342            Invoke: Invoke::<Identity, OFFSET>,
5343        }
5344    }
5345    pub fn matches(iid: &windows_core::GUID) -> bool {
5346        iid == &<ICoreWebView2ClearBrowsingDataCompletedHandler as windows_core::Interface>::IID
5347    }
5348}
5349impl windows_core::RuntimeName for ICoreWebView2ClearBrowsingDataCompletedHandler {}
5350windows_core::imp::define_interface!(
5351    ICoreWebView2ClearServerCertificateErrorActionsCompletedHandler,
5352    ICoreWebView2ClearServerCertificateErrorActionsCompletedHandler_Vtbl,
5353    0x3b40aac6_acfe_4ffd_8211_f607b96e2d5b
5354);
5355windows_core::imp::interface_hierarchy!(
5356    ICoreWebView2ClearServerCertificateErrorActionsCompletedHandler,
5357    windows_core::IUnknown
5358);
5359impl ICoreWebView2ClearServerCertificateErrorActionsCompletedHandler {
5360    pub unsafe fn Invoke(&self, errorcode: windows_core::HRESULT) -> windows_core::Result<()> {
5361        unsafe {
5362            (windows_core::Interface::vtable(self).Invoke)(
5363                windows_core::Interface::as_raw(self),
5364                errorcode,
5365            )
5366            .ok()
5367        }
5368    }
5369}
5370#[repr(C)]
5371#[doc(hidden)]
5372pub struct ICoreWebView2ClearServerCertificateErrorActionsCompletedHandler_Vtbl {
5373    pub base__: windows_core::IUnknown_Vtbl,
5374    pub Invoke: unsafe extern "system" fn(
5375        *mut core::ffi::c_void,
5376        windows_core::HRESULT,
5377    ) -> windows_core::HRESULT,
5378}
5379pub trait ICoreWebView2ClearServerCertificateErrorActionsCompletedHandler_Impl:
5380    windows_core::IUnknownImpl
5381{
5382    fn Invoke(&self, errorcode: windows_core::HRESULT) -> windows_core::Result<()>;
5383}
5384impl ICoreWebView2ClearServerCertificateErrorActionsCompletedHandler_Vtbl {
5385    pub const fn new<
5386        Identity: ICoreWebView2ClearServerCertificateErrorActionsCompletedHandler_Impl,
5387        const OFFSET: isize,
5388    >() -> Self {
5389        unsafe extern "system" fn Invoke<
5390            Identity: ICoreWebView2ClearServerCertificateErrorActionsCompletedHandler_Impl,
5391            const OFFSET: isize,
5392        >(
5393            this: *mut core::ffi::c_void,
5394            errorcode: windows_core::HRESULT,
5395        ) -> windows_core::HRESULT {
5396            unsafe {
5397                let this: &Identity =
5398                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
5399                ICoreWebView2ClearServerCertificateErrorActionsCompletedHandler_Impl::Invoke(
5400                    this,
5401                    core::mem::transmute_copy(&errorcode),
5402                )
5403                .into()
5404            }
5405        }
5406        Self {
5407            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
5408            Invoke: Invoke::<Identity, OFFSET>,
5409        }
5410    }
5411    pub fn matches(iid: &windows_core::GUID) -> bool {
5412        iid == & < ICoreWebView2ClearServerCertificateErrorActionsCompletedHandler as windows_core::Interface >::IID
5413    }
5414}
5415impl windows_core::RuntimeName for ICoreWebView2ClearServerCertificateErrorActionsCompletedHandler {}
5416windows_core::imp::define_interface!(
5417    ICoreWebView2ClientCertificate,
5418    ICoreWebView2ClientCertificate_Vtbl,
5419    0xe7188076_bcc3_11eb_8529_0242ac130003
5420);
5421windows_core::imp::interface_hierarchy!(ICoreWebView2ClientCertificate, windows_core::IUnknown);
5422impl ICoreWebView2ClientCertificate {
5423    pub unsafe fn Subject(&self, value: *mut windows_core::PWSTR) -> windows_core::Result<()> {
5424        unsafe {
5425            (windows_core::Interface::vtable(self).Subject)(
5426                windows_core::Interface::as_raw(self),
5427                value as _,
5428            )
5429            .ok()
5430        }
5431    }
5432    pub unsafe fn Issuer(&self, value: *mut windows_core::PWSTR) -> windows_core::Result<()> {
5433        unsafe {
5434            (windows_core::Interface::vtable(self).Issuer)(
5435                windows_core::Interface::as_raw(self),
5436                value as _,
5437            )
5438            .ok()
5439        }
5440    }
5441    pub unsafe fn ValidFrom(&self, value: *mut f64) -> windows_core::Result<()> {
5442        unsafe {
5443            (windows_core::Interface::vtable(self).ValidFrom)(
5444                windows_core::Interface::as_raw(self),
5445                value as _,
5446            )
5447            .ok()
5448        }
5449    }
5450    pub unsafe fn ValidTo(&self, value: *mut f64) -> windows_core::Result<()> {
5451        unsafe {
5452            (windows_core::Interface::vtable(self).ValidTo)(
5453                windows_core::Interface::as_raw(self),
5454                value as _,
5455            )
5456            .ok()
5457        }
5458    }
5459    pub unsafe fn DerEncodedSerialNumber(
5460        &self,
5461        value: *mut windows_core::PWSTR,
5462    ) -> windows_core::Result<()> {
5463        unsafe {
5464            (windows_core::Interface::vtable(self).DerEncodedSerialNumber)(
5465                windows_core::Interface::as_raw(self),
5466                value as _,
5467            )
5468            .ok()
5469        }
5470    }
5471    pub unsafe fn DisplayName(&self, value: *mut windows_core::PWSTR) -> windows_core::Result<()> {
5472        unsafe {
5473            (windows_core::Interface::vtable(self).DisplayName)(
5474                windows_core::Interface::as_raw(self),
5475                value as _,
5476            )
5477            .ok()
5478        }
5479    }
5480    pub unsafe fn ToPemEncoding(
5481        &self,
5482        pemencodeddata: *mut windows_core::PWSTR,
5483    ) -> windows_core::Result<()> {
5484        unsafe {
5485            (windows_core::Interface::vtable(self).ToPemEncoding)(
5486                windows_core::Interface::as_raw(self),
5487                pemencodeddata as _,
5488            )
5489            .ok()
5490        }
5491    }
5492    pub unsafe fn PemEncodedIssuerCertificateChain(
5493        &self,
5494    ) -> windows_core::Result<ICoreWebView2StringCollection> {
5495        unsafe {
5496            let mut result__ = core::mem::zeroed();
5497            (windows_core::Interface::vtable(self).PemEncodedIssuerCertificateChain)(
5498                windows_core::Interface::as_raw(self),
5499                &mut result__,
5500            )
5501            .and_then(|| windows_core::Type::from_abi(result__))
5502        }
5503    }
5504    pub unsafe fn Kind(
5505        &self,
5506        value: *mut COREWEBVIEW2_CLIENT_CERTIFICATE_KIND,
5507    ) -> windows_core::Result<()> {
5508        unsafe {
5509            (windows_core::Interface::vtable(self).Kind)(
5510                windows_core::Interface::as_raw(self),
5511                value as _,
5512            )
5513            .ok()
5514        }
5515    }
5516}
5517#[repr(C)]
5518#[doc(hidden)]
5519pub struct ICoreWebView2ClientCertificate_Vtbl {
5520    pub base__: windows_core::IUnknown_Vtbl,
5521    pub Subject: unsafe extern "system" fn(
5522        *mut core::ffi::c_void,
5523        *mut windows_core::PWSTR,
5524    ) -> windows_core::HRESULT,
5525    pub Issuer: unsafe extern "system" fn(
5526        *mut core::ffi::c_void,
5527        *mut windows_core::PWSTR,
5528    ) -> windows_core::HRESULT,
5529    pub ValidFrom:
5530        unsafe extern "system" fn(*mut core::ffi::c_void, *mut f64) -> windows_core::HRESULT,
5531    pub ValidTo:
5532        unsafe extern "system" fn(*mut core::ffi::c_void, *mut f64) -> windows_core::HRESULT,
5533    pub DerEncodedSerialNumber: unsafe extern "system" fn(
5534        *mut core::ffi::c_void,
5535        *mut windows_core::PWSTR,
5536    ) -> windows_core::HRESULT,
5537    pub DisplayName: unsafe extern "system" fn(
5538        *mut core::ffi::c_void,
5539        *mut windows_core::PWSTR,
5540    ) -> windows_core::HRESULT,
5541    pub ToPemEncoding: unsafe extern "system" fn(
5542        *mut core::ffi::c_void,
5543        *mut windows_core::PWSTR,
5544    ) -> windows_core::HRESULT,
5545    pub PemEncodedIssuerCertificateChain: unsafe extern "system" fn(
5546        *mut core::ffi::c_void,
5547        *mut *mut core::ffi::c_void,
5548    ) -> windows_core::HRESULT,
5549    pub Kind: unsafe extern "system" fn(
5550        *mut core::ffi::c_void,
5551        *mut COREWEBVIEW2_CLIENT_CERTIFICATE_KIND,
5552    ) -> windows_core::HRESULT,
5553}
5554pub trait ICoreWebView2ClientCertificate_Impl: windows_core::IUnknownImpl {
5555    fn Subject(&self, value: *mut windows_core::PWSTR) -> windows_core::Result<()>;
5556    fn Issuer(&self, value: *mut windows_core::PWSTR) -> windows_core::Result<()>;
5557    fn ValidFrom(&self, value: *mut f64) -> windows_core::Result<()>;
5558    fn ValidTo(&self, value: *mut f64) -> windows_core::Result<()>;
5559    fn DerEncodedSerialNumber(&self, value: *mut windows_core::PWSTR) -> windows_core::Result<()>;
5560    fn DisplayName(&self, value: *mut windows_core::PWSTR) -> windows_core::Result<()>;
5561    fn ToPemEncoding(&self, pemencodeddata: *mut windows_core::PWSTR) -> windows_core::Result<()>;
5562    fn PemEncodedIssuerCertificateChain(
5563        &self,
5564    ) -> windows_core::Result<ICoreWebView2StringCollection>;
5565    fn Kind(&self, value: *mut COREWEBVIEW2_CLIENT_CERTIFICATE_KIND) -> windows_core::Result<()>;
5566}
5567impl ICoreWebView2ClientCertificate_Vtbl {
5568    pub const fn new<Identity: ICoreWebView2ClientCertificate_Impl, const OFFSET: isize>() -> Self {
5569        unsafe extern "system" fn Subject<
5570            Identity: ICoreWebView2ClientCertificate_Impl,
5571            const OFFSET: isize,
5572        >(
5573            this: *mut core::ffi::c_void,
5574            value: *mut windows_core::PWSTR,
5575        ) -> windows_core::HRESULT {
5576            unsafe {
5577                let this: &Identity =
5578                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
5579                ICoreWebView2ClientCertificate_Impl::Subject(
5580                    this,
5581                    core::mem::transmute_copy(&value),
5582                )
5583                .into()
5584            }
5585        }
5586        unsafe extern "system" fn Issuer<
5587            Identity: ICoreWebView2ClientCertificate_Impl,
5588            const OFFSET: isize,
5589        >(
5590            this: *mut core::ffi::c_void,
5591            value: *mut windows_core::PWSTR,
5592        ) -> windows_core::HRESULT {
5593            unsafe {
5594                let this: &Identity =
5595                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
5596                ICoreWebView2ClientCertificate_Impl::Issuer(this, core::mem::transmute_copy(&value))
5597                    .into()
5598            }
5599        }
5600        unsafe extern "system" fn ValidFrom<
5601            Identity: ICoreWebView2ClientCertificate_Impl,
5602            const OFFSET: isize,
5603        >(
5604            this: *mut core::ffi::c_void,
5605            value: *mut f64,
5606        ) -> windows_core::HRESULT {
5607            unsafe {
5608                let this: &Identity =
5609                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
5610                ICoreWebView2ClientCertificate_Impl::ValidFrom(
5611                    this,
5612                    core::mem::transmute_copy(&value),
5613                )
5614                .into()
5615            }
5616        }
5617        unsafe extern "system" fn ValidTo<
5618            Identity: ICoreWebView2ClientCertificate_Impl,
5619            const OFFSET: isize,
5620        >(
5621            this: *mut core::ffi::c_void,
5622            value: *mut f64,
5623        ) -> windows_core::HRESULT {
5624            unsafe {
5625                let this: &Identity =
5626                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
5627                ICoreWebView2ClientCertificate_Impl::ValidTo(
5628                    this,
5629                    core::mem::transmute_copy(&value),
5630                )
5631                .into()
5632            }
5633        }
5634        unsafe extern "system" fn DerEncodedSerialNumber<
5635            Identity: ICoreWebView2ClientCertificate_Impl,
5636            const OFFSET: isize,
5637        >(
5638            this: *mut core::ffi::c_void,
5639            value: *mut windows_core::PWSTR,
5640        ) -> windows_core::HRESULT {
5641            unsafe {
5642                let this: &Identity =
5643                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
5644                ICoreWebView2ClientCertificate_Impl::DerEncodedSerialNumber(
5645                    this,
5646                    core::mem::transmute_copy(&value),
5647                )
5648                .into()
5649            }
5650        }
5651        unsafe extern "system" fn DisplayName<
5652            Identity: ICoreWebView2ClientCertificate_Impl,
5653            const OFFSET: isize,
5654        >(
5655            this: *mut core::ffi::c_void,
5656            value: *mut windows_core::PWSTR,
5657        ) -> windows_core::HRESULT {
5658            unsafe {
5659                let this: &Identity =
5660                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
5661                ICoreWebView2ClientCertificate_Impl::DisplayName(
5662                    this,
5663                    core::mem::transmute_copy(&value),
5664                )
5665                .into()
5666            }
5667        }
5668        unsafe extern "system" fn ToPemEncoding<
5669            Identity: ICoreWebView2ClientCertificate_Impl,
5670            const OFFSET: isize,
5671        >(
5672            this: *mut core::ffi::c_void,
5673            pemencodeddata: *mut windows_core::PWSTR,
5674        ) -> windows_core::HRESULT {
5675            unsafe {
5676                let this: &Identity =
5677                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
5678                ICoreWebView2ClientCertificate_Impl::ToPemEncoding(
5679                    this,
5680                    core::mem::transmute_copy(&pemencodeddata),
5681                )
5682                .into()
5683            }
5684        }
5685        unsafe extern "system" fn PemEncodedIssuerCertificateChain<
5686            Identity: ICoreWebView2ClientCertificate_Impl,
5687            const OFFSET: isize,
5688        >(
5689            this: *mut core::ffi::c_void,
5690            value: *mut *mut core::ffi::c_void,
5691        ) -> windows_core::HRESULT {
5692            unsafe {
5693                let this: &Identity =
5694                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
5695                match ICoreWebView2ClientCertificate_Impl::PemEncodedIssuerCertificateChain(this) {
5696                    Ok(ok__) => {
5697                        value.write(core::mem::transmute(ok__));
5698                        windows_core::HRESULT(0)
5699                    }
5700                    Err(err) => err.into(),
5701                }
5702            }
5703        }
5704        unsafe extern "system" fn Kind<
5705            Identity: ICoreWebView2ClientCertificate_Impl,
5706            const OFFSET: isize,
5707        >(
5708            this: *mut core::ffi::c_void,
5709            value: *mut COREWEBVIEW2_CLIENT_CERTIFICATE_KIND,
5710        ) -> windows_core::HRESULT {
5711            unsafe {
5712                let this: &Identity =
5713                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
5714                ICoreWebView2ClientCertificate_Impl::Kind(this, core::mem::transmute_copy(&value))
5715                    .into()
5716            }
5717        }
5718        Self {
5719            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
5720            Subject: Subject::<Identity, OFFSET>,
5721            Issuer: Issuer::<Identity, OFFSET>,
5722            ValidFrom: ValidFrom::<Identity, OFFSET>,
5723            ValidTo: ValidTo::<Identity, OFFSET>,
5724            DerEncodedSerialNumber: DerEncodedSerialNumber::<Identity, OFFSET>,
5725            DisplayName: DisplayName::<Identity, OFFSET>,
5726            ToPemEncoding: ToPemEncoding::<Identity, OFFSET>,
5727            PemEncodedIssuerCertificateChain: PemEncodedIssuerCertificateChain::<Identity, OFFSET>,
5728            Kind: Kind::<Identity, OFFSET>,
5729        }
5730    }
5731    pub fn matches(iid: &windows_core::GUID) -> bool {
5732        iid == &<ICoreWebView2ClientCertificate as windows_core::Interface>::IID
5733    }
5734}
5735impl windows_core::RuntimeName for ICoreWebView2ClientCertificate {}
5736windows_core::imp::define_interface!(
5737    ICoreWebView2ClientCertificateCollection,
5738    ICoreWebView2ClientCertificateCollection_Vtbl,
5739    0xef5674d2_bcc3_11eb_8529_0242ac130003
5740);
5741windows_core::imp::interface_hierarchy!(
5742    ICoreWebView2ClientCertificateCollection,
5743    windows_core::IUnknown
5744);
5745impl ICoreWebView2ClientCertificateCollection {
5746    pub unsafe fn Count(&self, value: *mut u32) -> windows_core::Result<()> {
5747        unsafe {
5748            (windows_core::Interface::vtable(self).Count)(
5749                windows_core::Interface::as_raw(self),
5750                value as _,
5751            )
5752            .ok()
5753        }
5754    }
5755    pub unsafe fn GetValueAtIndex(
5756        &self,
5757        index: u32,
5758    ) -> windows_core::Result<ICoreWebView2ClientCertificate> {
5759        unsafe {
5760            let mut result__ = core::mem::zeroed();
5761            (windows_core::Interface::vtable(self).GetValueAtIndex)(
5762                windows_core::Interface::as_raw(self),
5763                index,
5764                &mut result__,
5765            )
5766            .and_then(|| windows_core::Type::from_abi(result__))
5767        }
5768    }
5769}
5770#[repr(C)]
5771#[doc(hidden)]
5772pub struct ICoreWebView2ClientCertificateCollection_Vtbl {
5773    pub base__: windows_core::IUnknown_Vtbl,
5774    pub Count: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
5775    pub GetValueAtIndex: unsafe extern "system" fn(
5776        *mut core::ffi::c_void,
5777        u32,
5778        *mut *mut core::ffi::c_void,
5779    ) -> windows_core::HRESULT,
5780}
5781pub trait ICoreWebView2ClientCertificateCollection_Impl: windows_core::IUnknownImpl {
5782    fn Count(&self, value: *mut u32) -> windows_core::Result<()>;
5783    fn GetValueAtIndex(&self, index: u32) -> windows_core::Result<ICoreWebView2ClientCertificate>;
5784}
5785impl ICoreWebView2ClientCertificateCollection_Vtbl {
5786    pub const fn new<
5787        Identity: ICoreWebView2ClientCertificateCollection_Impl,
5788        const OFFSET: isize,
5789    >() -> Self {
5790        unsafe extern "system" fn Count<
5791            Identity: ICoreWebView2ClientCertificateCollection_Impl,
5792            const OFFSET: isize,
5793        >(
5794            this: *mut core::ffi::c_void,
5795            value: *mut u32,
5796        ) -> windows_core::HRESULT {
5797            unsafe {
5798                let this: &Identity =
5799                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
5800                ICoreWebView2ClientCertificateCollection_Impl::Count(
5801                    this,
5802                    core::mem::transmute_copy(&value),
5803                )
5804                .into()
5805            }
5806        }
5807        unsafe extern "system" fn GetValueAtIndex<
5808            Identity: ICoreWebView2ClientCertificateCollection_Impl,
5809            const OFFSET: isize,
5810        >(
5811            this: *mut core::ffi::c_void,
5812            index: u32,
5813            value: *mut *mut core::ffi::c_void,
5814        ) -> windows_core::HRESULT {
5815            unsafe {
5816                let this: &Identity =
5817                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
5818                match ICoreWebView2ClientCertificateCollection_Impl::GetValueAtIndex(
5819                    this,
5820                    core::mem::transmute_copy(&index),
5821                ) {
5822                    Ok(ok__) => {
5823                        value.write(core::mem::transmute(ok__));
5824                        windows_core::HRESULT(0)
5825                    }
5826                    Err(err) => err.into(),
5827                }
5828            }
5829        }
5830        Self {
5831            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
5832            Count: Count::<Identity, OFFSET>,
5833            GetValueAtIndex: GetValueAtIndex::<Identity, OFFSET>,
5834        }
5835    }
5836    pub fn matches(iid: &windows_core::GUID) -> bool {
5837        iid == &<ICoreWebView2ClientCertificateCollection as windows_core::Interface>::IID
5838    }
5839}
5840impl windows_core::RuntimeName for ICoreWebView2ClientCertificateCollection {}
5841windows_core::imp::define_interface!(
5842    ICoreWebView2ClientCertificateRequestedEventArgs,
5843    ICoreWebView2ClientCertificateRequestedEventArgs_Vtbl,
5844    0xbc59db28_bcc3_11eb_8529_0242ac130003
5845);
5846windows_core::imp::interface_hierarchy!(
5847    ICoreWebView2ClientCertificateRequestedEventArgs,
5848    windows_core::IUnknown
5849);
5850impl ICoreWebView2ClientCertificateRequestedEventArgs {
5851    pub unsafe fn Host(&self, value: *mut windows_core::PWSTR) -> windows_core::Result<()> {
5852        unsafe {
5853            (windows_core::Interface::vtable(self).Host)(
5854                windows_core::Interface::as_raw(self),
5855                value as _,
5856            )
5857            .ok()
5858        }
5859    }
5860    pub unsafe fn Port(&self, value: *mut i32) -> windows_core::Result<()> {
5861        unsafe {
5862            (windows_core::Interface::vtable(self).Port)(
5863                windows_core::Interface::as_raw(self),
5864                value as _,
5865            )
5866            .ok()
5867        }
5868    }
5869    pub unsafe fn IsProxy(&self, value: *mut windows_core::BOOL) -> windows_core::Result<()> {
5870        unsafe {
5871            (windows_core::Interface::vtable(self).IsProxy)(
5872                windows_core::Interface::as_raw(self),
5873                value as _,
5874            )
5875            .ok()
5876        }
5877    }
5878    pub unsafe fn AllowedCertificateAuthorities(
5879        &self,
5880    ) -> windows_core::Result<ICoreWebView2StringCollection> {
5881        unsafe {
5882            let mut result__ = core::mem::zeroed();
5883            (windows_core::Interface::vtable(self).AllowedCertificateAuthorities)(
5884                windows_core::Interface::as_raw(self),
5885                &mut result__,
5886            )
5887            .and_then(|| windows_core::Type::from_abi(result__))
5888        }
5889    }
5890    pub unsafe fn MutuallyTrustedCertificates(
5891        &self,
5892    ) -> windows_core::Result<ICoreWebView2ClientCertificateCollection> {
5893        unsafe {
5894            let mut result__ = core::mem::zeroed();
5895            (windows_core::Interface::vtable(self).MutuallyTrustedCertificates)(
5896                windows_core::Interface::as_raw(self),
5897                &mut result__,
5898            )
5899            .and_then(|| windows_core::Type::from_abi(result__))
5900        }
5901    }
5902    pub unsafe fn SelectedCertificate(
5903        &self,
5904    ) -> windows_core::Result<ICoreWebView2ClientCertificate> {
5905        unsafe {
5906            let mut result__ = core::mem::zeroed();
5907            (windows_core::Interface::vtable(self).SelectedCertificate)(
5908                windows_core::Interface::as_raw(self),
5909                &mut result__,
5910            )
5911            .and_then(|| windows_core::Type::from_abi(result__))
5912        }
5913    }
5914    pub unsafe fn SetSelectedCertificate<P0>(&self, value: P0) -> windows_core::Result<()>
5915    where
5916        P0: windows_core::Param<ICoreWebView2ClientCertificate>,
5917    {
5918        unsafe {
5919            (windows_core::Interface::vtable(self).SetSelectedCertificate)(
5920                windows_core::Interface::as_raw(self),
5921                value.param().abi(),
5922            )
5923            .ok()
5924        }
5925    }
5926    pub unsafe fn Cancel(&self, value: *mut windows_core::BOOL) -> windows_core::Result<()> {
5927        unsafe {
5928            (windows_core::Interface::vtable(self).Cancel)(
5929                windows_core::Interface::as_raw(self),
5930                value as _,
5931            )
5932            .ok()
5933        }
5934    }
5935    pub unsafe fn SetCancel(&self, value: bool) -> windows_core::Result<()> {
5936        unsafe {
5937            (windows_core::Interface::vtable(self).SetCancel)(
5938                windows_core::Interface::as_raw(self),
5939                value.into(),
5940            )
5941            .ok()
5942        }
5943    }
5944    pub unsafe fn Handled(&self, value: *mut windows_core::BOOL) -> windows_core::Result<()> {
5945        unsafe {
5946            (windows_core::Interface::vtable(self).Handled)(
5947                windows_core::Interface::as_raw(self),
5948                value as _,
5949            )
5950            .ok()
5951        }
5952    }
5953    pub unsafe fn SetHandled(&self, value: bool) -> windows_core::Result<()> {
5954        unsafe {
5955            (windows_core::Interface::vtable(self).SetHandled)(
5956                windows_core::Interface::as_raw(self),
5957                value.into(),
5958            )
5959            .ok()
5960        }
5961    }
5962    pub unsafe fn GetDeferral(&self) -> windows_core::Result<ICoreWebView2Deferral> {
5963        unsafe {
5964            let mut result__ = core::mem::zeroed();
5965            (windows_core::Interface::vtable(self).GetDeferral)(
5966                windows_core::Interface::as_raw(self),
5967                &mut result__,
5968            )
5969            .and_then(|| windows_core::Type::from_abi(result__))
5970        }
5971    }
5972}
5973#[repr(C)]
5974#[doc(hidden)]
5975pub struct ICoreWebView2ClientCertificateRequestedEventArgs_Vtbl {
5976    pub base__: windows_core::IUnknown_Vtbl,
5977    pub Host: unsafe extern "system" fn(
5978        *mut core::ffi::c_void,
5979        *mut windows_core::PWSTR,
5980    ) -> windows_core::HRESULT,
5981    pub Port: unsafe extern "system" fn(*mut core::ffi::c_void, *mut i32) -> windows_core::HRESULT,
5982    pub IsProxy: unsafe extern "system" fn(
5983        *mut core::ffi::c_void,
5984        *mut windows_core::BOOL,
5985    ) -> windows_core::HRESULT,
5986    pub AllowedCertificateAuthorities: unsafe extern "system" fn(
5987        *mut core::ffi::c_void,
5988        *mut *mut core::ffi::c_void,
5989    ) -> windows_core::HRESULT,
5990    pub MutuallyTrustedCertificates: unsafe extern "system" fn(
5991        *mut core::ffi::c_void,
5992        *mut *mut core::ffi::c_void,
5993    ) -> windows_core::HRESULT,
5994    pub SelectedCertificate: unsafe extern "system" fn(
5995        *mut core::ffi::c_void,
5996        *mut *mut core::ffi::c_void,
5997    ) -> windows_core::HRESULT,
5998    pub SetSelectedCertificate: unsafe extern "system" fn(
5999        *mut core::ffi::c_void,
6000        *mut core::ffi::c_void,
6001    ) -> windows_core::HRESULT,
6002    pub Cancel: unsafe extern "system" fn(
6003        *mut core::ffi::c_void,
6004        *mut windows_core::BOOL,
6005    ) -> windows_core::HRESULT,
6006    pub SetCancel: unsafe extern "system" fn(
6007        *mut core::ffi::c_void,
6008        windows_core::BOOL,
6009    ) -> windows_core::HRESULT,
6010    pub Handled: unsafe extern "system" fn(
6011        *mut core::ffi::c_void,
6012        *mut windows_core::BOOL,
6013    ) -> windows_core::HRESULT,
6014    pub SetHandled: unsafe extern "system" fn(
6015        *mut core::ffi::c_void,
6016        windows_core::BOOL,
6017    ) -> windows_core::HRESULT,
6018    pub GetDeferral: unsafe extern "system" fn(
6019        *mut core::ffi::c_void,
6020        *mut *mut core::ffi::c_void,
6021    ) -> windows_core::HRESULT,
6022}
6023pub trait ICoreWebView2ClientCertificateRequestedEventArgs_Impl:
6024    windows_core::IUnknownImpl
6025{
6026    fn Host(&self, value: *mut windows_core::PWSTR) -> windows_core::Result<()>;
6027    fn Port(&self, value: *mut i32) -> windows_core::Result<()>;
6028    fn IsProxy(&self, value: *mut windows_core::BOOL) -> windows_core::Result<()>;
6029    fn AllowedCertificateAuthorities(&self) -> windows_core::Result<ICoreWebView2StringCollection>;
6030    fn MutuallyTrustedCertificates(
6031        &self,
6032    ) -> windows_core::Result<ICoreWebView2ClientCertificateCollection>;
6033    fn SelectedCertificate(&self) -> windows_core::Result<ICoreWebView2ClientCertificate>;
6034    fn SetSelectedCertificate(
6035        &self,
6036        value: windows_core::Ref<'_, ICoreWebView2ClientCertificate>,
6037    ) -> windows_core::Result<()>;
6038    fn Cancel(&self, value: *mut windows_core::BOOL) -> windows_core::Result<()>;
6039    fn SetCancel(&self, value: windows_core::BOOL) -> windows_core::Result<()>;
6040    fn Handled(&self, value: *mut windows_core::BOOL) -> windows_core::Result<()>;
6041    fn SetHandled(&self, value: windows_core::BOOL) -> windows_core::Result<()>;
6042    fn GetDeferral(&self) -> windows_core::Result<ICoreWebView2Deferral>;
6043}
6044impl ICoreWebView2ClientCertificateRequestedEventArgs_Vtbl {
6045    pub const fn new<
6046        Identity: ICoreWebView2ClientCertificateRequestedEventArgs_Impl,
6047        const OFFSET: isize,
6048    >() -> Self {
6049        unsafe extern "system" fn Host<
6050            Identity: ICoreWebView2ClientCertificateRequestedEventArgs_Impl,
6051            const OFFSET: isize,
6052        >(
6053            this: *mut core::ffi::c_void,
6054            value: *mut windows_core::PWSTR,
6055        ) -> windows_core::HRESULT {
6056            unsafe {
6057                let this: &Identity =
6058                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
6059                ICoreWebView2ClientCertificateRequestedEventArgs_Impl::Host(
6060                    this,
6061                    core::mem::transmute_copy(&value),
6062                )
6063                .into()
6064            }
6065        }
6066        unsafe extern "system" fn Port<
6067            Identity: ICoreWebView2ClientCertificateRequestedEventArgs_Impl,
6068            const OFFSET: isize,
6069        >(
6070            this: *mut core::ffi::c_void,
6071            value: *mut i32,
6072        ) -> windows_core::HRESULT {
6073            unsafe {
6074                let this: &Identity =
6075                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
6076                ICoreWebView2ClientCertificateRequestedEventArgs_Impl::Port(
6077                    this,
6078                    core::mem::transmute_copy(&value),
6079                )
6080                .into()
6081            }
6082        }
6083        unsafe extern "system" fn IsProxy<
6084            Identity: ICoreWebView2ClientCertificateRequestedEventArgs_Impl,
6085            const OFFSET: isize,
6086        >(
6087            this: *mut core::ffi::c_void,
6088            value: *mut windows_core::BOOL,
6089        ) -> windows_core::HRESULT {
6090            unsafe {
6091                let this: &Identity =
6092                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
6093                ICoreWebView2ClientCertificateRequestedEventArgs_Impl::IsProxy(
6094                    this,
6095                    core::mem::transmute_copy(&value),
6096                )
6097                .into()
6098            }
6099        }
6100        unsafe extern "system" fn AllowedCertificateAuthorities<
6101            Identity: ICoreWebView2ClientCertificateRequestedEventArgs_Impl,
6102            const OFFSET: isize,
6103        >(
6104            this: *mut core::ffi::c_void,
6105            value: *mut *mut core::ffi::c_void,
6106        ) -> windows_core::HRESULT {
6107            unsafe {
6108                let this: &Identity =
6109                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
6110                match ICoreWebView2ClientCertificateRequestedEventArgs_Impl:: AllowedCertificateAuthorities ( this , ) { Ok ( ok__ ) => { value . write ( core::mem::transmute ( ok__ ) ) ; windows_core::HRESULT ( 0 ) } Err ( err ) => err . into ( ) }
6111            }
6112        }
6113        unsafe extern "system" fn MutuallyTrustedCertificates<
6114            Identity: ICoreWebView2ClientCertificateRequestedEventArgs_Impl,
6115            const OFFSET: isize,
6116        >(
6117            this: *mut core::ffi::c_void,
6118            value: *mut *mut core::ffi::c_void,
6119        ) -> windows_core::HRESULT {
6120            unsafe {
6121                let this: &Identity =
6122                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
6123                match ICoreWebView2ClientCertificateRequestedEventArgs_Impl:: MutuallyTrustedCertificates ( this , ) { Ok ( ok__ ) => { value . write ( core::mem::transmute ( ok__ ) ) ; windows_core::HRESULT ( 0 ) } Err ( err ) => err . into ( ) }
6124            }
6125        }
6126        unsafe extern "system" fn SelectedCertificate<
6127            Identity: ICoreWebView2ClientCertificateRequestedEventArgs_Impl,
6128            const OFFSET: isize,
6129        >(
6130            this: *mut core::ffi::c_void,
6131            value: *mut *mut core::ffi::c_void,
6132        ) -> windows_core::HRESULT {
6133            unsafe {
6134                let this: &Identity =
6135                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
6136                match ICoreWebView2ClientCertificateRequestedEventArgs_Impl::SelectedCertificate(
6137                    this,
6138                ) {
6139                    Ok(ok__) => {
6140                        value.write(core::mem::transmute(ok__));
6141                        windows_core::HRESULT(0)
6142                    }
6143                    Err(err) => err.into(),
6144                }
6145            }
6146        }
6147        unsafe extern "system" fn SetSelectedCertificate<
6148            Identity: ICoreWebView2ClientCertificateRequestedEventArgs_Impl,
6149            const OFFSET: isize,
6150        >(
6151            this: *mut core::ffi::c_void,
6152            value: *mut core::ffi::c_void,
6153        ) -> windows_core::HRESULT {
6154            unsafe {
6155                let this: &Identity =
6156                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
6157                ICoreWebView2ClientCertificateRequestedEventArgs_Impl::SetSelectedCertificate(
6158                    this,
6159                    core::mem::transmute_copy(&value),
6160                )
6161                .into()
6162            }
6163        }
6164        unsafe extern "system" fn Cancel<
6165            Identity: ICoreWebView2ClientCertificateRequestedEventArgs_Impl,
6166            const OFFSET: isize,
6167        >(
6168            this: *mut core::ffi::c_void,
6169            value: *mut windows_core::BOOL,
6170        ) -> windows_core::HRESULT {
6171            unsafe {
6172                let this: &Identity =
6173                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
6174                ICoreWebView2ClientCertificateRequestedEventArgs_Impl::Cancel(
6175                    this,
6176                    core::mem::transmute_copy(&value),
6177                )
6178                .into()
6179            }
6180        }
6181        unsafe extern "system" fn SetCancel<
6182            Identity: ICoreWebView2ClientCertificateRequestedEventArgs_Impl,
6183            const OFFSET: isize,
6184        >(
6185            this: *mut core::ffi::c_void,
6186            value: windows_core::BOOL,
6187        ) -> windows_core::HRESULT {
6188            unsafe {
6189                let this: &Identity =
6190                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
6191                ICoreWebView2ClientCertificateRequestedEventArgs_Impl::SetCancel(
6192                    this,
6193                    core::mem::transmute_copy(&value),
6194                )
6195                .into()
6196            }
6197        }
6198        unsafe extern "system" fn Handled<
6199            Identity: ICoreWebView2ClientCertificateRequestedEventArgs_Impl,
6200            const OFFSET: isize,
6201        >(
6202            this: *mut core::ffi::c_void,
6203            value: *mut windows_core::BOOL,
6204        ) -> windows_core::HRESULT {
6205            unsafe {
6206                let this: &Identity =
6207                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
6208                ICoreWebView2ClientCertificateRequestedEventArgs_Impl::Handled(
6209                    this,
6210                    core::mem::transmute_copy(&value),
6211                )
6212                .into()
6213            }
6214        }
6215        unsafe extern "system" fn SetHandled<
6216            Identity: ICoreWebView2ClientCertificateRequestedEventArgs_Impl,
6217            const OFFSET: isize,
6218        >(
6219            this: *mut core::ffi::c_void,
6220            value: windows_core::BOOL,
6221        ) -> windows_core::HRESULT {
6222            unsafe {
6223                let this: &Identity =
6224                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
6225                ICoreWebView2ClientCertificateRequestedEventArgs_Impl::SetHandled(
6226                    this,
6227                    core::mem::transmute_copy(&value),
6228                )
6229                .into()
6230            }
6231        }
6232        unsafe extern "system" fn GetDeferral<
6233            Identity: ICoreWebView2ClientCertificateRequestedEventArgs_Impl,
6234            const OFFSET: isize,
6235        >(
6236            this: *mut core::ffi::c_void,
6237            deferral: *mut *mut core::ffi::c_void,
6238        ) -> windows_core::HRESULT {
6239            unsafe {
6240                let this: &Identity =
6241                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
6242                match ICoreWebView2ClientCertificateRequestedEventArgs_Impl::GetDeferral(this) {
6243                    Ok(ok__) => {
6244                        deferral.write(core::mem::transmute(ok__));
6245                        windows_core::HRESULT(0)
6246                    }
6247                    Err(err) => err.into(),
6248                }
6249            }
6250        }
6251        Self {
6252            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
6253            Host: Host::<Identity, OFFSET>,
6254            Port: Port::<Identity, OFFSET>,
6255            IsProxy: IsProxy::<Identity, OFFSET>,
6256            AllowedCertificateAuthorities: AllowedCertificateAuthorities::<Identity, OFFSET>,
6257            MutuallyTrustedCertificates: MutuallyTrustedCertificates::<Identity, OFFSET>,
6258            SelectedCertificate: SelectedCertificate::<Identity, OFFSET>,
6259            SetSelectedCertificate: SetSelectedCertificate::<Identity, OFFSET>,
6260            Cancel: Cancel::<Identity, OFFSET>,
6261            SetCancel: SetCancel::<Identity, OFFSET>,
6262            Handled: Handled::<Identity, OFFSET>,
6263            SetHandled: SetHandled::<Identity, OFFSET>,
6264            GetDeferral: GetDeferral::<Identity, OFFSET>,
6265        }
6266    }
6267    pub fn matches(iid: &windows_core::GUID) -> bool {
6268        iid == &<ICoreWebView2ClientCertificateRequestedEventArgs as windows_core::Interface>::IID
6269    }
6270}
6271impl windows_core::RuntimeName for ICoreWebView2ClientCertificateRequestedEventArgs {}
6272windows_core::imp::define_interface!(
6273    ICoreWebView2ClientCertificateRequestedEventHandler,
6274    ICoreWebView2ClientCertificateRequestedEventHandler_Vtbl,
6275    0xd7175ba2_bcc3_11eb_8529_0242ac130003
6276);
6277windows_core::imp::interface_hierarchy!(
6278    ICoreWebView2ClientCertificateRequestedEventHandler,
6279    windows_core::IUnknown
6280);
6281impl ICoreWebView2ClientCertificateRequestedEventHandler {
6282    pub unsafe fn Invoke<P0, P1>(&self, sender: P0, args: P1) -> windows_core::Result<()>
6283    where
6284        P0: windows_core::Param<ICoreWebView2>,
6285        P1: windows_core::Param<ICoreWebView2ClientCertificateRequestedEventArgs>,
6286    {
6287        unsafe {
6288            (windows_core::Interface::vtable(self).Invoke)(
6289                windows_core::Interface::as_raw(self),
6290                sender.param().abi(),
6291                args.param().abi(),
6292            )
6293            .ok()
6294        }
6295    }
6296}
6297#[repr(C)]
6298#[doc(hidden)]
6299pub struct ICoreWebView2ClientCertificateRequestedEventHandler_Vtbl {
6300    pub base__: windows_core::IUnknown_Vtbl,
6301    pub Invoke: unsafe extern "system" fn(
6302        *mut core::ffi::c_void,
6303        *mut core::ffi::c_void,
6304        *mut core::ffi::c_void,
6305    ) -> windows_core::HRESULT,
6306}
6307pub trait ICoreWebView2ClientCertificateRequestedEventHandler_Impl:
6308    windows_core::IUnknownImpl
6309{
6310    fn Invoke(
6311        &self,
6312        sender: windows_core::Ref<'_, ICoreWebView2>,
6313        args: windows_core::Ref<'_, ICoreWebView2ClientCertificateRequestedEventArgs>,
6314    ) -> windows_core::Result<()>;
6315}
6316impl ICoreWebView2ClientCertificateRequestedEventHandler_Vtbl {
6317    pub const fn new<
6318        Identity: ICoreWebView2ClientCertificateRequestedEventHandler_Impl,
6319        const OFFSET: isize,
6320    >() -> Self {
6321        unsafe extern "system" fn Invoke<
6322            Identity: ICoreWebView2ClientCertificateRequestedEventHandler_Impl,
6323            const OFFSET: isize,
6324        >(
6325            this: *mut core::ffi::c_void,
6326            sender: *mut core::ffi::c_void,
6327            args: *mut core::ffi::c_void,
6328        ) -> windows_core::HRESULT {
6329            unsafe {
6330                let this: &Identity =
6331                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
6332                ICoreWebView2ClientCertificateRequestedEventHandler_Impl::Invoke(
6333                    this,
6334                    core::mem::transmute_copy(&sender),
6335                    core::mem::transmute_copy(&args),
6336                )
6337                .into()
6338            }
6339        }
6340        Self {
6341            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
6342            Invoke: Invoke::<Identity, OFFSET>,
6343        }
6344    }
6345    pub fn matches(iid: &windows_core::GUID) -> bool {
6346        iid == & < ICoreWebView2ClientCertificateRequestedEventHandler as windows_core::Interface >::IID
6347    }
6348}
6349impl windows_core::RuntimeName for ICoreWebView2ClientCertificateRequestedEventHandler {}
6350windows_core::imp::define_interface!(
6351    ICoreWebView2CompositionController,
6352    ICoreWebView2CompositionController_Vtbl,
6353    0x3df9b733_b9ae_4a15_86b4_eb9ee9826469
6354);
6355windows_core::imp::interface_hierarchy!(ICoreWebView2CompositionController, windows_core::IUnknown);
6356impl ICoreWebView2CompositionController {
6357    pub unsafe fn RootVisualTarget(&self) -> windows_core::Result<windows_core::IUnknown> {
6358        unsafe {
6359            let mut result__ = core::mem::zeroed();
6360            (windows_core::Interface::vtable(self).RootVisualTarget)(
6361                windows_core::Interface::as_raw(self),
6362                &mut result__,
6363            )
6364            .and_then(|| windows_core::Type::from_abi(result__))
6365        }
6366    }
6367    pub unsafe fn SetRootVisualTarget<P0>(&self, target: P0) -> windows_core::Result<()>
6368    where
6369        P0: windows_core::Param<windows_core::IUnknown>,
6370    {
6371        unsafe {
6372            (windows_core::Interface::vtable(self).SetRootVisualTarget)(
6373                windows_core::Interface::as_raw(self),
6374                target.param().abi(),
6375            )
6376            .ok()
6377        }
6378    }
6379    pub unsafe fn SendMouseInput(
6380        &self,
6381        eventkind: COREWEBVIEW2_MOUSE_EVENT_KIND,
6382        virtualkeys: COREWEBVIEW2_MOUSE_EVENT_VIRTUAL_KEYS,
6383        mousedata: u32,
6384        point: windows::Win32::Foundation::POINT,
6385    ) -> windows_core::Result<()> {
6386        unsafe {
6387            (windows_core::Interface::vtable(self).SendMouseInput)(
6388                windows_core::Interface::as_raw(self),
6389                eventkind,
6390                virtualkeys,
6391                mousedata,
6392                core::mem::transmute(point),
6393            )
6394            .ok()
6395        }
6396    }
6397    pub unsafe fn SendPointerInput<P1>(
6398        &self,
6399        eventkind: COREWEBVIEW2_POINTER_EVENT_KIND,
6400        pointerinfo: P1,
6401    ) -> windows_core::Result<()>
6402    where
6403        P1: windows_core::Param<ICoreWebView2PointerInfo>,
6404    {
6405        unsafe {
6406            (windows_core::Interface::vtable(self).SendPointerInput)(
6407                windows_core::Interface::as_raw(self),
6408                eventkind,
6409                pointerinfo.param().abi(),
6410            )
6411            .ok()
6412        }
6413    }
6414    pub unsafe fn Cursor(
6415        &self,
6416        cursor: *mut windows::Win32::UI::WindowsAndMessaging::HCURSOR,
6417    ) -> windows_core::Result<()> {
6418        unsafe {
6419            (windows_core::Interface::vtable(self).Cursor)(
6420                windows_core::Interface::as_raw(self),
6421                cursor as _,
6422            )
6423            .ok()
6424        }
6425    }
6426    pub unsafe fn SystemCursorId(&self, systemcursorid: *mut u32) -> windows_core::Result<()> {
6427        unsafe {
6428            (windows_core::Interface::vtable(self).SystemCursorId)(
6429                windows_core::Interface::as_raw(self),
6430                systemcursorid as _,
6431            )
6432            .ok()
6433        }
6434    }
6435    pub unsafe fn add_CursorChanged<P0>(
6436        &self,
6437        eventhandler: P0,
6438        token: *mut i64,
6439    ) -> windows_core::Result<()>
6440    where
6441        P0: windows_core::Param<ICoreWebView2CursorChangedEventHandler>,
6442    {
6443        unsafe {
6444            (windows_core::Interface::vtable(self).add_CursorChanged)(
6445                windows_core::Interface::as_raw(self),
6446                eventhandler.param().abi(),
6447                token as _,
6448            )
6449            .ok()
6450        }
6451    }
6452    pub unsafe fn remove_CursorChanged(&self, token: i64) -> windows_core::Result<()> {
6453        unsafe {
6454            (windows_core::Interface::vtable(self).remove_CursorChanged)(
6455                windows_core::Interface::as_raw(self),
6456                token,
6457            )
6458            .ok()
6459        }
6460    }
6461}
6462#[repr(C)]
6463#[doc(hidden)]
6464pub struct ICoreWebView2CompositionController_Vtbl {
6465    pub base__: windows_core::IUnknown_Vtbl,
6466    pub RootVisualTarget: unsafe extern "system" fn(
6467        *mut core::ffi::c_void,
6468        *mut *mut core::ffi::c_void,
6469    ) -> windows_core::HRESULT,
6470    pub SetRootVisualTarget: unsafe extern "system" fn(
6471        *mut core::ffi::c_void,
6472        *mut core::ffi::c_void,
6473    ) -> windows_core::HRESULT,
6474    pub SendMouseInput: unsafe extern "system" fn(
6475        *mut core::ffi::c_void,
6476        COREWEBVIEW2_MOUSE_EVENT_KIND,
6477        COREWEBVIEW2_MOUSE_EVENT_VIRTUAL_KEYS,
6478        u32,
6479        windows::Win32::Foundation::POINT,
6480    ) -> windows_core::HRESULT,
6481    pub SendPointerInput: unsafe extern "system" fn(
6482        *mut core::ffi::c_void,
6483        COREWEBVIEW2_POINTER_EVENT_KIND,
6484        *mut core::ffi::c_void,
6485    ) -> windows_core::HRESULT,
6486    pub Cursor: unsafe extern "system" fn(
6487        *mut core::ffi::c_void,
6488        *mut windows::Win32::UI::WindowsAndMessaging::HCURSOR,
6489    ) -> windows_core::HRESULT,
6490    pub SystemCursorId:
6491        unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
6492    pub add_CursorChanged: unsafe extern "system" fn(
6493        *mut core::ffi::c_void,
6494        *mut core::ffi::c_void,
6495        *mut i64,
6496    ) -> windows_core::HRESULT,
6497    pub remove_CursorChanged:
6498        unsafe extern "system" fn(*mut core::ffi::c_void, i64) -> windows_core::HRESULT,
6499}
6500pub trait ICoreWebView2CompositionController_Impl: windows_core::IUnknownImpl {
6501    fn RootVisualTarget(&self) -> windows_core::Result<windows_core::IUnknown>;
6502    fn SetRootVisualTarget(
6503        &self,
6504        target: windows_core::Ref<'_, windows_core::IUnknown>,
6505    ) -> windows_core::Result<()>;
6506    fn SendMouseInput(
6507        &self,
6508        eventkind: COREWEBVIEW2_MOUSE_EVENT_KIND,
6509        virtualkeys: COREWEBVIEW2_MOUSE_EVENT_VIRTUAL_KEYS,
6510        mousedata: u32,
6511        point: &windows::Win32::Foundation::POINT,
6512    ) -> windows_core::Result<()>;
6513    fn SendPointerInput(
6514        &self,
6515        eventkind: COREWEBVIEW2_POINTER_EVENT_KIND,
6516        pointerinfo: windows_core::Ref<'_, ICoreWebView2PointerInfo>,
6517    ) -> windows_core::Result<()>;
6518    fn Cursor(
6519        &self,
6520        cursor: *mut windows::Win32::UI::WindowsAndMessaging::HCURSOR,
6521    ) -> windows_core::Result<()>;
6522    fn SystemCursorId(&self, systemcursorid: *mut u32) -> windows_core::Result<()>;
6523    fn add_CursorChanged(
6524        &self,
6525        eventhandler: windows_core::Ref<'_, ICoreWebView2CursorChangedEventHandler>,
6526        token: *mut i64,
6527    ) -> windows_core::Result<()>;
6528    fn remove_CursorChanged(&self, token: i64) -> windows_core::Result<()>;
6529}
6530impl ICoreWebView2CompositionController_Vtbl {
6531    pub const fn new<Identity: ICoreWebView2CompositionController_Impl, const OFFSET: isize>(
6532    ) -> Self {
6533        unsafe extern "system" fn RootVisualTarget<
6534            Identity: ICoreWebView2CompositionController_Impl,
6535            const OFFSET: isize,
6536        >(
6537            this: *mut core::ffi::c_void,
6538            target: *mut *mut core::ffi::c_void,
6539        ) -> windows_core::HRESULT {
6540            unsafe {
6541                let this: &Identity =
6542                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
6543                match ICoreWebView2CompositionController_Impl::RootVisualTarget(this) {
6544                    Ok(ok__) => {
6545                        target.write(core::mem::transmute(ok__));
6546                        windows_core::HRESULT(0)
6547                    }
6548                    Err(err) => err.into(),
6549                }
6550            }
6551        }
6552        unsafe extern "system" fn SetRootVisualTarget<
6553            Identity: ICoreWebView2CompositionController_Impl,
6554            const OFFSET: isize,
6555        >(
6556            this: *mut core::ffi::c_void,
6557            target: *mut core::ffi::c_void,
6558        ) -> windows_core::HRESULT {
6559            unsafe {
6560                let this: &Identity =
6561                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
6562                ICoreWebView2CompositionController_Impl::SetRootVisualTarget(
6563                    this,
6564                    core::mem::transmute_copy(&target),
6565                )
6566                .into()
6567            }
6568        }
6569        unsafe extern "system" fn SendMouseInput<
6570            Identity: ICoreWebView2CompositionController_Impl,
6571            const OFFSET: isize,
6572        >(
6573            this: *mut core::ffi::c_void,
6574            eventkind: COREWEBVIEW2_MOUSE_EVENT_KIND,
6575            virtualkeys: COREWEBVIEW2_MOUSE_EVENT_VIRTUAL_KEYS,
6576            mousedata: u32,
6577            point: windows::Win32::Foundation::POINT,
6578        ) -> windows_core::HRESULT {
6579            unsafe {
6580                let this: &Identity =
6581                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
6582                ICoreWebView2CompositionController_Impl::SendMouseInput(
6583                    this,
6584                    core::mem::transmute_copy(&eventkind),
6585                    core::mem::transmute_copy(&virtualkeys),
6586                    core::mem::transmute_copy(&mousedata),
6587                    core::mem::transmute(&point),
6588                )
6589                .into()
6590            }
6591        }
6592        unsafe extern "system" fn SendPointerInput<
6593            Identity: ICoreWebView2CompositionController_Impl,
6594            const OFFSET: isize,
6595        >(
6596            this: *mut core::ffi::c_void,
6597            eventkind: COREWEBVIEW2_POINTER_EVENT_KIND,
6598            pointerinfo: *mut core::ffi::c_void,
6599        ) -> windows_core::HRESULT {
6600            unsafe {
6601                let this: &Identity =
6602                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
6603                ICoreWebView2CompositionController_Impl::SendPointerInput(
6604                    this,
6605                    core::mem::transmute_copy(&eventkind),
6606                    core::mem::transmute_copy(&pointerinfo),
6607                )
6608                .into()
6609            }
6610        }
6611        unsafe extern "system" fn Cursor<
6612            Identity: ICoreWebView2CompositionController_Impl,
6613            const OFFSET: isize,
6614        >(
6615            this: *mut core::ffi::c_void,
6616            cursor: *mut windows::Win32::UI::WindowsAndMessaging::HCURSOR,
6617        ) -> windows_core::HRESULT {
6618            unsafe {
6619                let this: &Identity =
6620                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
6621                ICoreWebView2CompositionController_Impl::Cursor(
6622                    this,
6623                    core::mem::transmute_copy(&cursor),
6624                )
6625                .into()
6626            }
6627        }
6628        unsafe extern "system" fn SystemCursorId<
6629            Identity: ICoreWebView2CompositionController_Impl,
6630            const OFFSET: isize,
6631        >(
6632            this: *mut core::ffi::c_void,
6633            systemcursorid: *mut u32,
6634        ) -> windows_core::HRESULT {
6635            unsafe {
6636                let this: &Identity =
6637                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
6638                ICoreWebView2CompositionController_Impl::SystemCursorId(
6639                    this,
6640                    core::mem::transmute_copy(&systemcursorid),
6641                )
6642                .into()
6643            }
6644        }
6645        unsafe extern "system" fn add_CursorChanged<
6646            Identity: ICoreWebView2CompositionController_Impl,
6647            const OFFSET: isize,
6648        >(
6649            this: *mut core::ffi::c_void,
6650            eventhandler: *mut core::ffi::c_void,
6651            token: *mut i64,
6652        ) -> windows_core::HRESULT {
6653            unsafe {
6654                let this: &Identity =
6655                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
6656                ICoreWebView2CompositionController_Impl::add_CursorChanged(
6657                    this,
6658                    core::mem::transmute_copy(&eventhandler),
6659                    core::mem::transmute_copy(&token),
6660                )
6661                .into()
6662            }
6663        }
6664        unsafe extern "system" fn remove_CursorChanged<
6665            Identity: ICoreWebView2CompositionController_Impl,
6666            const OFFSET: isize,
6667        >(
6668            this: *mut core::ffi::c_void,
6669            token: i64,
6670        ) -> windows_core::HRESULT {
6671            unsafe {
6672                let this: &Identity =
6673                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
6674                ICoreWebView2CompositionController_Impl::remove_CursorChanged(
6675                    this,
6676                    core::mem::transmute_copy(&token),
6677                )
6678                .into()
6679            }
6680        }
6681        Self {
6682            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
6683            RootVisualTarget: RootVisualTarget::<Identity, OFFSET>,
6684            SetRootVisualTarget: SetRootVisualTarget::<Identity, OFFSET>,
6685            SendMouseInput: SendMouseInput::<Identity, OFFSET>,
6686            SendPointerInput: SendPointerInput::<Identity, OFFSET>,
6687            Cursor: Cursor::<Identity, OFFSET>,
6688            SystemCursorId: SystemCursorId::<Identity, OFFSET>,
6689            add_CursorChanged: add_CursorChanged::<Identity, OFFSET>,
6690            remove_CursorChanged: remove_CursorChanged::<Identity, OFFSET>,
6691        }
6692    }
6693    pub fn matches(iid: &windows_core::GUID) -> bool {
6694        iid == &<ICoreWebView2CompositionController as windows_core::Interface>::IID
6695    }
6696}
6697impl windows_core::RuntimeName for ICoreWebView2CompositionController {}
6698windows_core::imp::define_interface!(
6699    ICoreWebView2CompositionController2,
6700    ICoreWebView2CompositionController2_Vtbl,
6701    0x0b6a3d24_49cb_4806_ba20_b5e0734a7b26
6702);
6703impl core::ops::Deref for ICoreWebView2CompositionController2 {
6704    type Target = ICoreWebView2CompositionController;
6705    fn deref(&self) -> &Self::Target {
6706        unsafe { core::mem::transmute(self) }
6707    }
6708}
6709windows_core::imp::interface_hierarchy!(
6710    ICoreWebView2CompositionController2,
6711    windows_core::IUnknown,
6712    ICoreWebView2CompositionController
6713);
6714impl ICoreWebView2CompositionController2 {
6715    pub unsafe fn AutomationProvider(&self) -> windows_core::Result<windows_core::IUnknown> {
6716        unsafe {
6717            let mut result__ = core::mem::zeroed();
6718            (windows_core::Interface::vtable(self).AutomationProvider)(
6719                windows_core::Interface::as_raw(self),
6720                &mut result__,
6721            )
6722            .and_then(|| windows_core::Type::from_abi(result__))
6723        }
6724    }
6725}
6726#[repr(C)]
6727#[doc(hidden)]
6728pub struct ICoreWebView2CompositionController2_Vtbl {
6729    pub base__: ICoreWebView2CompositionController_Vtbl,
6730    pub AutomationProvider: unsafe extern "system" fn(
6731        *mut core::ffi::c_void,
6732        *mut *mut core::ffi::c_void,
6733    ) -> windows_core::HRESULT,
6734}
6735pub trait ICoreWebView2CompositionController2_Impl:
6736    ICoreWebView2CompositionController_Impl
6737{
6738    fn AutomationProvider(&self) -> windows_core::Result<windows_core::IUnknown>;
6739}
6740impl ICoreWebView2CompositionController2_Vtbl {
6741    pub const fn new<Identity: ICoreWebView2CompositionController2_Impl, const OFFSET: isize>(
6742    ) -> Self {
6743        unsafe extern "system" fn AutomationProvider<
6744            Identity: ICoreWebView2CompositionController2_Impl,
6745            const OFFSET: isize,
6746        >(
6747            this: *mut core::ffi::c_void,
6748            value: *mut *mut core::ffi::c_void,
6749        ) -> windows_core::HRESULT {
6750            unsafe {
6751                let this: &Identity =
6752                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
6753                match ICoreWebView2CompositionController2_Impl::AutomationProvider(this) {
6754                    Ok(ok__) => {
6755                        value.write(core::mem::transmute(ok__));
6756                        windows_core::HRESULT(0)
6757                    }
6758                    Err(err) => err.into(),
6759                }
6760            }
6761        }
6762        Self {
6763            base__: ICoreWebView2CompositionController_Vtbl::new::<Identity, OFFSET>(),
6764            AutomationProvider: AutomationProvider::<Identity, OFFSET>,
6765        }
6766    }
6767    pub fn matches(iid: &windows_core::GUID) -> bool {
6768        iid == &<ICoreWebView2CompositionController2 as windows_core::Interface>::IID
6769            || iid == &<ICoreWebView2CompositionController as windows_core::Interface>::IID
6770    }
6771}
6772impl windows_core::RuntimeName for ICoreWebView2CompositionController2 {}
6773windows_core::imp::define_interface!(
6774    ICoreWebView2CompositionController3,
6775    ICoreWebView2CompositionController3_Vtbl,
6776    0x9570570e_4d76_4361_9ee1_f04d0dbdfb1e
6777);
6778impl core::ops::Deref for ICoreWebView2CompositionController3 {
6779    type Target = ICoreWebView2CompositionController2;
6780    fn deref(&self) -> &Self::Target {
6781        unsafe { core::mem::transmute(self) }
6782    }
6783}
6784windows_core::imp::interface_hierarchy!(
6785    ICoreWebView2CompositionController3,
6786    windows_core::IUnknown,
6787    ICoreWebView2CompositionController,
6788    ICoreWebView2CompositionController2
6789);
6790impl ICoreWebView2CompositionController3 {
6791    pub unsafe fn DragEnter<P0>(
6792        &self,
6793        dataobject: P0,
6794        keystate: u32,
6795        point: windows::Win32::Foundation::POINT,
6796        effect: *mut u32,
6797    ) -> windows_core::Result<()>
6798    where
6799        P0: windows_core::Param<windows::Win32::System::Com::IDataObject>,
6800    {
6801        unsafe {
6802            (windows_core::Interface::vtable(self).DragEnter)(
6803                windows_core::Interface::as_raw(self),
6804                dataobject.param().abi(),
6805                keystate,
6806                core::mem::transmute(point),
6807                effect as _,
6808            )
6809            .ok()
6810        }
6811    }
6812    pub unsafe fn DragLeave(&self) -> windows_core::Result<()> {
6813        unsafe {
6814            (windows_core::Interface::vtable(self).DragLeave)(windows_core::Interface::as_raw(self))
6815                .ok()
6816        }
6817    }
6818    pub unsafe fn DragOver(
6819        &self,
6820        keystate: u32,
6821        point: windows::Win32::Foundation::POINT,
6822        effect: *mut u32,
6823    ) -> windows_core::Result<()> {
6824        unsafe {
6825            (windows_core::Interface::vtable(self).DragOver)(
6826                windows_core::Interface::as_raw(self),
6827                keystate,
6828                core::mem::transmute(point),
6829                effect as _,
6830            )
6831            .ok()
6832        }
6833    }
6834    pub unsafe fn Drop<P0>(
6835        &self,
6836        dataobject: P0,
6837        keystate: u32,
6838        point: windows::Win32::Foundation::POINT,
6839        effect: *mut u32,
6840    ) -> windows_core::Result<()>
6841    where
6842        P0: windows_core::Param<windows::Win32::System::Com::IDataObject>,
6843    {
6844        unsafe {
6845            (windows_core::Interface::vtable(self).Drop)(
6846                windows_core::Interface::as_raw(self),
6847                dataobject.param().abi(),
6848                keystate,
6849                core::mem::transmute(point),
6850                effect as _,
6851            )
6852            .ok()
6853        }
6854    }
6855}
6856#[repr(C)]
6857#[doc(hidden)]
6858pub struct ICoreWebView2CompositionController3_Vtbl {
6859    pub base__: ICoreWebView2CompositionController2_Vtbl,
6860    pub DragEnter: unsafe extern "system" fn(
6861        *mut core::ffi::c_void,
6862        *mut core::ffi::c_void,
6863        u32,
6864        windows::Win32::Foundation::POINT,
6865        *mut u32,
6866    ) -> windows_core::HRESULT,
6867    pub DragLeave: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
6868    pub DragOver: unsafe extern "system" fn(
6869        *mut core::ffi::c_void,
6870        u32,
6871        windows::Win32::Foundation::POINT,
6872        *mut u32,
6873    ) -> windows_core::HRESULT,
6874    pub Drop: unsafe extern "system" fn(
6875        *mut core::ffi::c_void,
6876        *mut core::ffi::c_void,
6877        u32,
6878        windows::Win32::Foundation::POINT,
6879        *mut u32,
6880    ) -> windows_core::HRESULT,
6881}
6882pub trait ICoreWebView2CompositionController3_Impl:
6883    ICoreWebView2CompositionController2_Impl
6884{
6885    fn DragEnter(
6886        &self,
6887        dataobject: windows_core::Ref<'_, windows::Win32::System::Com::IDataObject>,
6888        keystate: u32,
6889        point: &windows::Win32::Foundation::POINT,
6890        effect: *mut u32,
6891    ) -> windows_core::Result<()>;
6892    fn DragLeave(&self) -> windows_core::Result<()>;
6893    fn DragOver(
6894        &self,
6895        keystate: u32,
6896        point: &windows::Win32::Foundation::POINT,
6897        effect: *mut u32,
6898    ) -> windows_core::Result<()>;
6899    fn Drop(
6900        &self,
6901        dataobject: windows_core::Ref<'_, windows::Win32::System::Com::IDataObject>,
6902        keystate: u32,
6903        point: &windows::Win32::Foundation::POINT,
6904        effect: *mut u32,
6905    ) -> windows_core::Result<()>;
6906}
6907impl ICoreWebView2CompositionController3_Vtbl {
6908    pub const fn new<Identity: ICoreWebView2CompositionController3_Impl, const OFFSET: isize>(
6909    ) -> Self {
6910        unsafe extern "system" fn DragEnter<
6911            Identity: ICoreWebView2CompositionController3_Impl,
6912            const OFFSET: isize,
6913        >(
6914            this: *mut core::ffi::c_void,
6915            dataobject: *mut core::ffi::c_void,
6916            keystate: u32,
6917            point: windows::Win32::Foundation::POINT,
6918            effect: *mut u32,
6919        ) -> windows_core::HRESULT {
6920            unsafe {
6921                let this: &Identity =
6922                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
6923                ICoreWebView2CompositionController3_Impl::DragEnter(
6924                    this,
6925                    core::mem::transmute_copy(&dataobject),
6926                    core::mem::transmute_copy(&keystate),
6927                    core::mem::transmute(&point),
6928                    core::mem::transmute_copy(&effect),
6929                )
6930                .into()
6931            }
6932        }
6933        unsafe extern "system" fn DragLeave<
6934            Identity: ICoreWebView2CompositionController3_Impl,
6935            const OFFSET: isize,
6936        >(
6937            this: *mut core::ffi::c_void,
6938        ) -> windows_core::HRESULT {
6939            unsafe {
6940                let this: &Identity =
6941                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
6942                ICoreWebView2CompositionController3_Impl::DragLeave(this).into()
6943            }
6944        }
6945        unsafe extern "system" fn DragOver<
6946            Identity: ICoreWebView2CompositionController3_Impl,
6947            const OFFSET: isize,
6948        >(
6949            this: *mut core::ffi::c_void,
6950            keystate: u32,
6951            point: windows::Win32::Foundation::POINT,
6952            effect: *mut u32,
6953        ) -> windows_core::HRESULT {
6954            unsafe {
6955                let this: &Identity =
6956                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
6957                ICoreWebView2CompositionController3_Impl::DragOver(
6958                    this,
6959                    core::mem::transmute_copy(&keystate),
6960                    core::mem::transmute(&point),
6961                    core::mem::transmute_copy(&effect),
6962                )
6963                .into()
6964            }
6965        }
6966        unsafe extern "system" fn Drop<
6967            Identity: ICoreWebView2CompositionController3_Impl,
6968            const OFFSET: isize,
6969        >(
6970            this: *mut core::ffi::c_void,
6971            dataobject: *mut core::ffi::c_void,
6972            keystate: u32,
6973            point: windows::Win32::Foundation::POINT,
6974            effect: *mut u32,
6975        ) -> windows_core::HRESULT {
6976            unsafe {
6977                let this: &Identity =
6978                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
6979                ICoreWebView2CompositionController3_Impl::Drop(
6980                    this,
6981                    core::mem::transmute_copy(&dataobject),
6982                    core::mem::transmute_copy(&keystate),
6983                    core::mem::transmute(&point),
6984                    core::mem::transmute_copy(&effect),
6985                )
6986                .into()
6987            }
6988        }
6989        Self {
6990            base__: ICoreWebView2CompositionController2_Vtbl::new::<Identity, OFFSET>(),
6991            DragEnter: DragEnter::<Identity, OFFSET>,
6992            DragLeave: DragLeave::<Identity, OFFSET>,
6993            DragOver: DragOver::<Identity, OFFSET>,
6994            Drop: Drop::<Identity, OFFSET>,
6995        }
6996    }
6997    pub fn matches(iid: &windows_core::GUID) -> bool {
6998        iid == &<ICoreWebView2CompositionController3 as windows_core::Interface>::IID
6999            || iid == &<ICoreWebView2CompositionController as windows_core::Interface>::IID
7000            || iid == &<ICoreWebView2CompositionController2 as windows_core::Interface>::IID
7001    }
7002}
7003impl windows_core::RuntimeName for ICoreWebView2CompositionController3 {}
7004windows_core::imp::define_interface!(
7005    ICoreWebView2CompositionController4,
7006    ICoreWebView2CompositionController4_Vtbl,
7007    0x7c367b9b_3d2b_450f_9e58_d61a20f486aa
7008);
7009impl core::ops::Deref for ICoreWebView2CompositionController4 {
7010    type Target = ICoreWebView2CompositionController3;
7011    fn deref(&self) -> &Self::Target {
7012        unsafe { core::mem::transmute(self) }
7013    }
7014}
7015windows_core::imp::interface_hierarchy!(
7016    ICoreWebView2CompositionController4,
7017    windows_core::IUnknown,
7018    ICoreWebView2CompositionController,
7019    ICoreWebView2CompositionController2,
7020    ICoreWebView2CompositionController3
7021);
7022impl ICoreWebView2CompositionController4 {
7023    pub unsafe fn GetNonClientRegionAtPoint(
7024        &self,
7025        point: windows::Win32::Foundation::POINT,
7026        value: *mut COREWEBVIEW2_NON_CLIENT_REGION_KIND,
7027    ) -> windows_core::Result<()> {
7028        unsafe {
7029            (windows_core::Interface::vtable(self).GetNonClientRegionAtPoint)(
7030                windows_core::Interface::as_raw(self),
7031                core::mem::transmute(point),
7032                value as _,
7033            )
7034            .ok()
7035        }
7036    }
7037    pub unsafe fn QueryNonClientRegion(
7038        &self,
7039        kind: COREWEBVIEW2_NON_CLIENT_REGION_KIND,
7040    ) -> windows_core::Result<ICoreWebView2RegionRectCollectionView> {
7041        unsafe {
7042            let mut result__ = core::mem::zeroed();
7043            (windows_core::Interface::vtable(self).QueryNonClientRegion)(
7044                windows_core::Interface::as_raw(self),
7045                kind,
7046                &mut result__,
7047            )
7048            .and_then(|| windows_core::Type::from_abi(result__))
7049        }
7050    }
7051    pub unsafe fn add_NonClientRegionChanged<P0>(
7052        &self,
7053        eventhandler: P0,
7054        token: *mut i64,
7055    ) -> windows_core::Result<()>
7056    where
7057        P0: windows_core::Param<ICoreWebView2NonClientRegionChangedEventHandler>,
7058    {
7059        unsafe {
7060            (windows_core::Interface::vtable(self).add_NonClientRegionChanged)(
7061                windows_core::Interface::as_raw(self),
7062                eventhandler.param().abi(),
7063                token as _,
7064            )
7065            .ok()
7066        }
7067    }
7068    pub unsafe fn remove_NonClientRegionChanged(&self, token: i64) -> windows_core::Result<()> {
7069        unsafe {
7070            (windows_core::Interface::vtable(self).remove_NonClientRegionChanged)(
7071                windows_core::Interface::as_raw(self),
7072                token,
7073            )
7074            .ok()
7075        }
7076    }
7077}
7078#[repr(C)]
7079#[doc(hidden)]
7080pub struct ICoreWebView2CompositionController4_Vtbl {
7081    pub base__: ICoreWebView2CompositionController3_Vtbl,
7082    pub GetNonClientRegionAtPoint: unsafe extern "system" fn(
7083        *mut core::ffi::c_void,
7084        windows::Win32::Foundation::POINT,
7085        *mut COREWEBVIEW2_NON_CLIENT_REGION_KIND,
7086    ) -> windows_core::HRESULT,
7087    pub QueryNonClientRegion: unsafe extern "system" fn(
7088        *mut core::ffi::c_void,
7089        COREWEBVIEW2_NON_CLIENT_REGION_KIND,
7090        *mut *mut core::ffi::c_void,
7091    ) -> windows_core::HRESULT,
7092    pub add_NonClientRegionChanged: unsafe extern "system" fn(
7093        *mut core::ffi::c_void,
7094        *mut core::ffi::c_void,
7095        *mut i64,
7096    ) -> windows_core::HRESULT,
7097    pub remove_NonClientRegionChanged:
7098        unsafe extern "system" fn(*mut core::ffi::c_void, i64) -> windows_core::HRESULT,
7099}
7100pub trait ICoreWebView2CompositionController4_Impl:
7101    ICoreWebView2CompositionController3_Impl
7102{
7103    fn GetNonClientRegionAtPoint(
7104        &self,
7105        point: &windows::Win32::Foundation::POINT,
7106        value: *mut COREWEBVIEW2_NON_CLIENT_REGION_KIND,
7107    ) -> windows_core::Result<()>;
7108    fn QueryNonClientRegion(
7109        &self,
7110        kind: COREWEBVIEW2_NON_CLIENT_REGION_KIND,
7111    ) -> windows_core::Result<ICoreWebView2RegionRectCollectionView>;
7112    fn add_NonClientRegionChanged(
7113        &self,
7114        eventhandler: windows_core::Ref<'_, ICoreWebView2NonClientRegionChangedEventHandler>,
7115        token: *mut i64,
7116    ) -> windows_core::Result<()>;
7117    fn remove_NonClientRegionChanged(&self, token: i64) -> windows_core::Result<()>;
7118}
7119impl ICoreWebView2CompositionController4_Vtbl {
7120    pub const fn new<Identity: ICoreWebView2CompositionController4_Impl, const OFFSET: isize>(
7121    ) -> Self {
7122        unsafe extern "system" fn GetNonClientRegionAtPoint<
7123            Identity: ICoreWebView2CompositionController4_Impl,
7124            const OFFSET: isize,
7125        >(
7126            this: *mut core::ffi::c_void,
7127            point: windows::Win32::Foundation::POINT,
7128            value: *mut COREWEBVIEW2_NON_CLIENT_REGION_KIND,
7129        ) -> windows_core::HRESULT {
7130            unsafe {
7131                let this: &Identity =
7132                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
7133                ICoreWebView2CompositionController4_Impl::GetNonClientRegionAtPoint(
7134                    this,
7135                    core::mem::transmute(&point),
7136                    core::mem::transmute_copy(&value),
7137                )
7138                .into()
7139            }
7140        }
7141        unsafe extern "system" fn QueryNonClientRegion<
7142            Identity: ICoreWebView2CompositionController4_Impl,
7143            const OFFSET: isize,
7144        >(
7145            this: *mut core::ffi::c_void,
7146            kind: COREWEBVIEW2_NON_CLIENT_REGION_KIND,
7147            rects: *mut *mut core::ffi::c_void,
7148        ) -> windows_core::HRESULT {
7149            unsafe {
7150                let this: &Identity =
7151                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
7152                match ICoreWebView2CompositionController4_Impl::QueryNonClientRegion(
7153                    this,
7154                    core::mem::transmute_copy(&kind),
7155                ) {
7156                    Ok(ok__) => {
7157                        rects.write(core::mem::transmute(ok__));
7158                        windows_core::HRESULT(0)
7159                    }
7160                    Err(err) => err.into(),
7161                }
7162            }
7163        }
7164        unsafe extern "system" fn add_NonClientRegionChanged<
7165            Identity: ICoreWebView2CompositionController4_Impl,
7166            const OFFSET: isize,
7167        >(
7168            this: *mut core::ffi::c_void,
7169            eventhandler: *mut core::ffi::c_void,
7170            token: *mut i64,
7171        ) -> windows_core::HRESULT {
7172            unsafe {
7173                let this: &Identity =
7174                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
7175                ICoreWebView2CompositionController4_Impl::add_NonClientRegionChanged(
7176                    this,
7177                    core::mem::transmute_copy(&eventhandler),
7178                    core::mem::transmute_copy(&token),
7179                )
7180                .into()
7181            }
7182        }
7183        unsafe extern "system" fn remove_NonClientRegionChanged<
7184            Identity: ICoreWebView2CompositionController4_Impl,
7185            const OFFSET: isize,
7186        >(
7187            this: *mut core::ffi::c_void,
7188            token: i64,
7189        ) -> windows_core::HRESULT {
7190            unsafe {
7191                let this: &Identity =
7192                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
7193                ICoreWebView2CompositionController4_Impl::remove_NonClientRegionChanged(
7194                    this,
7195                    core::mem::transmute_copy(&token),
7196                )
7197                .into()
7198            }
7199        }
7200        Self {
7201            base__: ICoreWebView2CompositionController3_Vtbl::new::<Identity, OFFSET>(),
7202            GetNonClientRegionAtPoint: GetNonClientRegionAtPoint::<Identity, OFFSET>,
7203            QueryNonClientRegion: QueryNonClientRegion::<Identity, OFFSET>,
7204            add_NonClientRegionChanged: add_NonClientRegionChanged::<Identity, OFFSET>,
7205            remove_NonClientRegionChanged: remove_NonClientRegionChanged::<Identity, OFFSET>,
7206        }
7207    }
7208    pub fn matches(iid: &windows_core::GUID) -> bool {
7209        iid == &<ICoreWebView2CompositionController4 as windows_core::Interface>::IID
7210            || iid == &<ICoreWebView2CompositionController as windows_core::Interface>::IID
7211            || iid == &<ICoreWebView2CompositionController2 as windows_core::Interface>::IID
7212            || iid == &<ICoreWebView2CompositionController3 as windows_core::Interface>::IID
7213    }
7214}
7215impl windows_core::RuntimeName for ICoreWebView2CompositionController4 {}
7216windows_core::imp::define_interface!(
7217    ICoreWebView2ContainsFullScreenElementChangedEventHandler,
7218    ICoreWebView2ContainsFullScreenElementChangedEventHandler_Vtbl,
7219    0xe45d98b1_afef_45be_8baf_6c7728867f73
7220);
7221windows_core::imp::interface_hierarchy!(
7222    ICoreWebView2ContainsFullScreenElementChangedEventHandler,
7223    windows_core::IUnknown
7224);
7225impl ICoreWebView2ContainsFullScreenElementChangedEventHandler {
7226    pub unsafe fn Invoke<P0, P1>(&self, sender: P0, args: P1) -> windows_core::Result<()>
7227    where
7228        P0: windows_core::Param<ICoreWebView2>,
7229        P1: windows_core::Param<windows_core::IUnknown>,
7230    {
7231        unsafe {
7232            (windows_core::Interface::vtable(self).Invoke)(
7233                windows_core::Interface::as_raw(self),
7234                sender.param().abi(),
7235                args.param().abi(),
7236            )
7237            .ok()
7238        }
7239    }
7240}
7241#[repr(C)]
7242#[doc(hidden)]
7243pub struct ICoreWebView2ContainsFullScreenElementChangedEventHandler_Vtbl {
7244    pub base__: windows_core::IUnknown_Vtbl,
7245    pub Invoke: unsafe extern "system" fn(
7246        *mut core::ffi::c_void,
7247        *mut core::ffi::c_void,
7248        *mut core::ffi::c_void,
7249    ) -> windows_core::HRESULT,
7250}
7251pub trait ICoreWebView2ContainsFullScreenElementChangedEventHandler_Impl:
7252    windows_core::IUnknownImpl
7253{
7254    fn Invoke(
7255        &self,
7256        sender: windows_core::Ref<'_, ICoreWebView2>,
7257        args: windows_core::Ref<'_, windows_core::IUnknown>,
7258    ) -> windows_core::Result<()>;
7259}
7260impl ICoreWebView2ContainsFullScreenElementChangedEventHandler_Vtbl {
7261    pub const fn new<
7262        Identity: ICoreWebView2ContainsFullScreenElementChangedEventHandler_Impl,
7263        const OFFSET: isize,
7264    >() -> Self {
7265        unsafe extern "system" fn Invoke<
7266            Identity: ICoreWebView2ContainsFullScreenElementChangedEventHandler_Impl,
7267            const OFFSET: isize,
7268        >(
7269            this: *mut core::ffi::c_void,
7270            sender: *mut core::ffi::c_void,
7271            args: *mut core::ffi::c_void,
7272        ) -> windows_core::HRESULT {
7273            unsafe {
7274                let this: &Identity =
7275                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
7276                ICoreWebView2ContainsFullScreenElementChangedEventHandler_Impl::Invoke(
7277                    this,
7278                    core::mem::transmute_copy(&sender),
7279                    core::mem::transmute_copy(&args),
7280                )
7281                .into()
7282            }
7283        }
7284        Self {
7285            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
7286            Invoke: Invoke::<Identity, OFFSET>,
7287        }
7288    }
7289    pub fn matches(iid: &windows_core::GUID) -> bool {
7290        iid == & < ICoreWebView2ContainsFullScreenElementChangedEventHandler as windows_core::Interface >::IID
7291    }
7292}
7293impl windows_core::RuntimeName for ICoreWebView2ContainsFullScreenElementChangedEventHandler {}
7294windows_core::imp::define_interface!(
7295    ICoreWebView2ContentLoadingEventArgs,
7296    ICoreWebView2ContentLoadingEventArgs_Vtbl,
7297    0x0c8a1275_9b6b_4901_87ad_70df25bafa6e
7298);
7299windows_core::imp::interface_hierarchy!(
7300    ICoreWebView2ContentLoadingEventArgs,
7301    windows_core::IUnknown
7302);
7303impl ICoreWebView2ContentLoadingEventArgs {
7304    pub unsafe fn IsErrorPage(&self, value: *mut windows_core::BOOL) -> windows_core::Result<()> {
7305        unsafe {
7306            (windows_core::Interface::vtable(self).IsErrorPage)(
7307                windows_core::Interface::as_raw(self),
7308                value as _,
7309            )
7310            .ok()
7311        }
7312    }
7313    pub unsafe fn NavigationId(&self, value: *mut u64) -> windows_core::Result<()> {
7314        unsafe {
7315            (windows_core::Interface::vtable(self).NavigationId)(
7316                windows_core::Interface::as_raw(self),
7317                value as _,
7318            )
7319            .ok()
7320        }
7321    }
7322}
7323#[repr(C)]
7324#[doc(hidden)]
7325pub struct ICoreWebView2ContentLoadingEventArgs_Vtbl {
7326    pub base__: windows_core::IUnknown_Vtbl,
7327    pub IsErrorPage: unsafe extern "system" fn(
7328        *mut core::ffi::c_void,
7329        *mut windows_core::BOOL,
7330    ) -> windows_core::HRESULT,
7331    pub NavigationId:
7332        unsafe extern "system" fn(*mut core::ffi::c_void, *mut u64) -> windows_core::HRESULT,
7333}
7334pub trait ICoreWebView2ContentLoadingEventArgs_Impl: windows_core::IUnknownImpl {
7335    fn IsErrorPage(&self, value: *mut windows_core::BOOL) -> windows_core::Result<()>;
7336    fn NavigationId(&self, value: *mut u64) -> windows_core::Result<()>;
7337}
7338impl ICoreWebView2ContentLoadingEventArgs_Vtbl {
7339    pub const fn new<Identity: ICoreWebView2ContentLoadingEventArgs_Impl, const OFFSET: isize>(
7340    ) -> Self {
7341        unsafe extern "system" fn IsErrorPage<
7342            Identity: ICoreWebView2ContentLoadingEventArgs_Impl,
7343            const OFFSET: isize,
7344        >(
7345            this: *mut core::ffi::c_void,
7346            value: *mut windows_core::BOOL,
7347        ) -> windows_core::HRESULT {
7348            unsafe {
7349                let this: &Identity =
7350                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
7351                ICoreWebView2ContentLoadingEventArgs_Impl::IsErrorPage(
7352                    this,
7353                    core::mem::transmute_copy(&value),
7354                )
7355                .into()
7356            }
7357        }
7358        unsafe extern "system" fn NavigationId<
7359            Identity: ICoreWebView2ContentLoadingEventArgs_Impl,
7360            const OFFSET: isize,
7361        >(
7362            this: *mut core::ffi::c_void,
7363            value: *mut u64,
7364        ) -> windows_core::HRESULT {
7365            unsafe {
7366                let this: &Identity =
7367                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
7368                ICoreWebView2ContentLoadingEventArgs_Impl::NavigationId(
7369                    this,
7370                    core::mem::transmute_copy(&value),
7371                )
7372                .into()
7373            }
7374        }
7375        Self {
7376            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
7377            IsErrorPage: IsErrorPage::<Identity, OFFSET>,
7378            NavigationId: NavigationId::<Identity, OFFSET>,
7379        }
7380    }
7381    pub fn matches(iid: &windows_core::GUID) -> bool {
7382        iid == &<ICoreWebView2ContentLoadingEventArgs as windows_core::Interface>::IID
7383    }
7384}
7385impl windows_core::RuntimeName for ICoreWebView2ContentLoadingEventArgs {}
7386windows_core::imp::define_interface!(
7387    ICoreWebView2ContentLoadingEventHandler,
7388    ICoreWebView2ContentLoadingEventHandler_Vtbl,
7389    0x364471e7_f2be_4910_bdba_d72077d51c4b
7390);
7391windows_core::imp::interface_hierarchy!(
7392    ICoreWebView2ContentLoadingEventHandler,
7393    windows_core::IUnknown
7394);
7395impl ICoreWebView2ContentLoadingEventHandler {
7396    pub unsafe fn Invoke<P0, P1>(&self, sender: P0, args: P1) -> windows_core::Result<()>
7397    where
7398        P0: windows_core::Param<ICoreWebView2>,
7399        P1: windows_core::Param<ICoreWebView2ContentLoadingEventArgs>,
7400    {
7401        unsafe {
7402            (windows_core::Interface::vtable(self).Invoke)(
7403                windows_core::Interface::as_raw(self),
7404                sender.param().abi(),
7405                args.param().abi(),
7406            )
7407            .ok()
7408        }
7409    }
7410}
7411#[repr(C)]
7412#[doc(hidden)]
7413pub struct ICoreWebView2ContentLoadingEventHandler_Vtbl {
7414    pub base__: windows_core::IUnknown_Vtbl,
7415    pub Invoke: unsafe extern "system" fn(
7416        *mut core::ffi::c_void,
7417        *mut core::ffi::c_void,
7418        *mut core::ffi::c_void,
7419    ) -> windows_core::HRESULT,
7420}
7421pub trait ICoreWebView2ContentLoadingEventHandler_Impl: windows_core::IUnknownImpl {
7422    fn Invoke(
7423        &self,
7424        sender: windows_core::Ref<'_, ICoreWebView2>,
7425        args: windows_core::Ref<'_, ICoreWebView2ContentLoadingEventArgs>,
7426    ) -> windows_core::Result<()>;
7427}
7428impl ICoreWebView2ContentLoadingEventHandler_Vtbl {
7429    pub const fn new<
7430        Identity: ICoreWebView2ContentLoadingEventHandler_Impl,
7431        const OFFSET: isize,
7432    >() -> Self {
7433        unsafe extern "system" fn Invoke<
7434            Identity: ICoreWebView2ContentLoadingEventHandler_Impl,
7435            const OFFSET: isize,
7436        >(
7437            this: *mut core::ffi::c_void,
7438            sender: *mut core::ffi::c_void,
7439            args: *mut core::ffi::c_void,
7440        ) -> windows_core::HRESULT {
7441            unsafe {
7442                let this: &Identity =
7443                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
7444                ICoreWebView2ContentLoadingEventHandler_Impl::Invoke(
7445                    this,
7446                    core::mem::transmute_copy(&sender),
7447                    core::mem::transmute_copy(&args),
7448                )
7449                .into()
7450            }
7451        }
7452        Self {
7453            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
7454            Invoke: Invoke::<Identity, OFFSET>,
7455        }
7456    }
7457    pub fn matches(iid: &windows_core::GUID) -> bool {
7458        iid == &<ICoreWebView2ContentLoadingEventHandler as windows_core::Interface>::IID
7459    }
7460}
7461impl windows_core::RuntimeName for ICoreWebView2ContentLoadingEventHandler {}
7462windows_core::imp::define_interface!(
7463    ICoreWebView2ContextMenuItem,
7464    ICoreWebView2ContextMenuItem_Vtbl,
7465    0x7aed49e3_a93f_497a_811c_749c6b6b6c65
7466);
7467windows_core::imp::interface_hierarchy!(ICoreWebView2ContextMenuItem, windows_core::IUnknown);
7468impl ICoreWebView2ContextMenuItem {
7469    pub unsafe fn Name(&self, value: *mut windows_core::PWSTR) -> windows_core::Result<()> {
7470        unsafe {
7471            (windows_core::Interface::vtable(self).Name)(
7472                windows_core::Interface::as_raw(self),
7473                value as _,
7474            )
7475            .ok()
7476        }
7477    }
7478    pub unsafe fn Label(&self, value: *mut windows_core::PWSTR) -> windows_core::Result<()> {
7479        unsafe {
7480            (windows_core::Interface::vtable(self).Label)(
7481                windows_core::Interface::as_raw(self),
7482                value as _,
7483            )
7484            .ok()
7485        }
7486    }
7487    pub unsafe fn CommandId(&self, value: *mut i32) -> windows_core::Result<()> {
7488        unsafe {
7489            (windows_core::Interface::vtable(self).CommandId)(
7490                windows_core::Interface::as_raw(self),
7491                value as _,
7492            )
7493            .ok()
7494        }
7495    }
7496    pub unsafe fn ShortcutKeyDescription(
7497        &self,
7498        value: *mut windows_core::PWSTR,
7499    ) -> windows_core::Result<()> {
7500        unsafe {
7501            (windows_core::Interface::vtable(self).ShortcutKeyDescription)(
7502                windows_core::Interface::as_raw(self),
7503                value as _,
7504            )
7505            .ok()
7506        }
7507    }
7508    pub unsafe fn Icon(&self) -> windows_core::Result<windows::Win32::System::Com::IStream> {
7509        unsafe {
7510            let mut result__ = core::mem::zeroed();
7511            (windows_core::Interface::vtable(self).Icon)(
7512                windows_core::Interface::as_raw(self),
7513                &mut result__,
7514            )
7515            .and_then(|| windows_core::Type::from_abi(result__))
7516        }
7517    }
7518    pub unsafe fn Kind(
7519        &self,
7520        value: *mut COREWEBVIEW2_CONTEXT_MENU_ITEM_KIND,
7521    ) -> windows_core::Result<()> {
7522        unsafe {
7523            (windows_core::Interface::vtable(self).Kind)(
7524                windows_core::Interface::as_raw(self),
7525                value as _,
7526            )
7527            .ok()
7528        }
7529    }
7530    pub unsafe fn SetIsEnabled(&self, value: bool) -> windows_core::Result<()> {
7531        unsafe {
7532            (windows_core::Interface::vtable(self).SetIsEnabled)(
7533                windows_core::Interface::as_raw(self),
7534                value.into(),
7535            )
7536            .ok()
7537        }
7538    }
7539    pub unsafe fn IsEnabled(&self, value: *mut windows_core::BOOL) -> windows_core::Result<()> {
7540        unsafe {
7541            (windows_core::Interface::vtable(self).IsEnabled)(
7542                windows_core::Interface::as_raw(self),
7543                value as _,
7544            )
7545            .ok()
7546        }
7547    }
7548    pub unsafe fn SetIsChecked(&self, value: bool) -> windows_core::Result<()> {
7549        unsafe {
7550            (windows_core::Interface::vtable(self).SetIsChecked)(
7551                windows_core::Interface::as_raw(self),
7552                value.into(),
7553            )
7554            .ok()
7555        }
7556    }
7557    pub unsafe fn IsChecked(&self, value: *mut windows_core::BOOL) -> windows_core::Result<()> {
7558        unsafe {
7559            (windows_core::Interface::vtable(self).IsChecked)(
7560                windows_core::Interface::as_raw(self),
7561                value as _,
7562            )
7563            .ok()
7564        }
7565    }
7566    pub unsafe fn Children(&self) -> windows_core::Result<ICoreWebView2ContextMenuItemCollection> {
7567        unsafe {
7568            let mut result__ = core::mem::zeroed();
7569            (windows_core::Interface::vtable(self).Children)(
7570                windows_core::Interface::as_raw(self),
7571                &mut result__,
7572            )
7573            .and_then(|| windows_core::Type::from_abi(result__))
7574        }
7575    }
7576    pub unsafe fn add_CustomItemSelected<P0>(
7577        &self,
7578        eventhandler: P0,
7579        token: *mut i64,
7580    ) -> windows_core::Result<()>
7581    where
7582        P0: windows_core::Param<ICoreWebView2CustomItemSelectedEventHandler>,
7583    {
7584        unsafe {
7585            (windows_core::Interface::vtable(self).add_CustomItemSelected)(
7586                windows_core::Interface::as_raw(self),
7587                eventhandler.param().abi(),
7588                token as _,
7589            )
7590            .ok()
7591        }
7592    }
7593    pub unsafe fn remove_CustomItemSelected(&self, token: i64) -> windows_core::Result<()> {
7594        unsafe {
7595            (windows_core::Interface::vtable(self).remove_CustomItemSelected)(
7596                windows_core::Interface::as_raw(self),
7597                token,
7598            )
7599            .ok()
7600        }
7601    }
7602}
7603#[repr(C)]
7604#[doc(hidden)]
7605pub struct ICoreWebView2ContextMenuItem_Vtbl {
7606    pub base__: windows_core::IUnknown_Vtbl,
7607    pub Name: unsafe extern "system" fn(
7608        *mut core::ffi::c_void,
7609        *mut windows_core::PWSTR,
7610    ) -> windows_core::HRESULT,
7611    pub Label: unsafe extern "system" fn(
7612        *mut core::ffi::c_void,
7613        *mut windows_core::PWSTR,
7614    ) -> windows_core::HRESULT,
7615    pub CommandId:
7616        unsafe extern "system" fn(*mut core::ffi::c_void, *mut i32) -> windows_core::HRESULT,
7617    pub ShortcutKeyDescription: unsafe extern "system" fn(
7618        *mut core::ffi::c_void,
7619        *mut windows_core::PWSTR,
7620    ) -> windows_core::HRESULT,
7621    pub Icon: unsafe extern "system" fn(
7622        *mut core::ffi::c_void,
7623        *mut *mut core::ffi::c_void,
7624    ) -> windows_core::HRESULT,
7625    pub Kind: unsafe extern "system" fn(
7626        *mut core::ffi::c_void,
7627        *mut COREWEBVIEW2_CONTEXT_MENU_ITEM_KIND,
7628    ) -> windows_core::HRESULT,
7629    pub SetIsEnabled: unsafe extern "system" fn(
7630        *mut core::ffi::c_void,
7631        windows_core::BOOL,
7632    ) -> windows_core::HRESULT,
7633    pub IsEnabled: unsafe extern "system" fn(
7634        *mut core::ffi::c_void,
7635        *mut windows_core::BOOL,
7636    ) -> windows_core::HRESULT,
7637    pub SetIsChecked: unsafe extern "system" fn(
7638        *mut core::ffi::c_void,
7639        windows_core::BOOL,
7640    ) -> windows_core::HRESULT,
7641    pub IsChecked: unsafe extern "system" fn(
7642        *mut core::ffi::c_void,
7643        *mut windows_core::BOOL,
7644    ) -> windows_core::HRESULT,
7645    pub Children: unsafe extern "system" fn(
7646        *mut core::ffi::c_void,
7647        *mut *mut core::ffi::c_void,
7648    ) -> windows_core::HRESULT,
7649    pub add_CustomItemSelected: unsafe extern "system" fn(
7650        *mut core::ffi::c_void,
7651        *mut core::ffi::c_void,
7652        *mut i64,
7653    ) -> windows_core::HRESULT,
7654    pub remove_CustomItemSelected:
7655        unsafe extern "system" fn(*mut core::ffi::c_void, i64) -> windows_core::HRESULT,
7656}
7657pub trait ICoreWebView2ContextMenuItem_Impl: windows_core::IUnknownImpl {
7658    fn Name(&self, value: *mut windows_core::PWSTR) -> windows_core::Result<()>;
7659    fn Label(&self, value: *mut windows_core::PWSTR) -> windows_core::Result<()>;
7660    fn CommandId(&self, value: *mut i32) -> windows_core::Result<()>;
7661    fn ShortcutKeyDescription(&self, value: *mut windows_core::PWSTR) -> windows_core::Result<()>;
7662    fn Icon(&self) -> windows_core::Result<windows::Win32::System::Com::IStream>;
7663    fn Kind(&self, value: *mut COREWEBVIEW2_CONTEXT_MENU_ITEM_KIND) -> windows_core::Result<()>;
7664    fn SetIsEnabled(&self, value: windows_core::BOOL) -> windows_core::Result<()>;
7665    fn IsEnabled(&self, value: *mut windows_core::BOOL) -> windows_core::Result<()>;
7666    fn SetIsChecked(&self, value: windows_core::BOOL) -> windows_core::Result<()>;
7667    fn IsChecked(&self, value: *mut windows_core::BOOL) -> windows_core::Result<()>;
7668    fn Children(&self) -> windows_core::Result<ICoreWebView2ContextMenuItemCollection>;
7669    fn add_CustomItemSelected(
7670        &self,
7671        eventhandler: windows_core::Ref<'_, ICoreWebView2CustomItemSelectedEventHandler>,
7672        token: *mut i64,
7673    ) -> windows_core::Result<()>;
7674    fn remove_CustomItemSelected(&self, token: i64) -> windows_core::Result<()>;
7675}
7676impl ICoreWebView2ContextMenuItem_Vtbl {
7677    pub const fn new<Identity: ICoreWebView2ContextMenuItem_Impl, const OFFSET: isize>() -> Self {
7678        unsafe extern "system" fn Name<
7679            Identity: ICoreWebView2ContextMenuItem_Impl,
7680            const OFFSET: isize,
7681        >(
7682            this: *mut core::ffi::c_void,
7683            value: *mut windows_core::PWSTR,
7684        ) -> windows_core::HRESULT {
7685            unsafe {
7686                let this: &Identity =
7687                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
7688                ICoreWebView2ContextMenuItem_Impl::Name(this, core::mem::transmute_copy(&value))
7689                    .into()
7690            }
7691        }
7692        unsafe extern "system" fn Label<
7693            Identity: ICoreWebView2ContextMenuItem_Impl,
7694            const OFFSET: isize,
7695        >(
7696            this: *mut core::ffi::c_void,
7697            value: *mut windows_core::PWSTR,
7698        ) -> windows_core::HRESULT {
7699            unsafe {
7700                let this: &Identity =
7701                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
7702                ICoreWebView2ContextMenuItem_Impl::Label(this, core::mem::transmute_copy(&value))
7703                    .into()
7704            }
7705        }
7706        unsafe extern "system" fn CommandId<
7707            Identity: ICoreWebView2ContextMenuItem_Impl,
7708            const OFFSET: isize,
7709        >(
7710            this: *mut core::ffi::c_void,
7711            value: *mut i32,
7712        ) -> windows_core::HRESULT {
7713            unsafe {
7714                let this: &Identity =
7715                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
7716                ICoreWebView2ContextMenuItem_Impl::CommandId(
7717                    this,
7718                    core::mem::transmute_copy(&value),
7719                )
7720                .into()
7721            }
7722        }
7723        unsafe extern "system" fn ShortcutKeyDescription<
7724            Identity: ICoreWebView2ContextMenuItem_Impl,
7725            const OFFSET: isize,
7726        >(
7727            this: *mut core::ffi::c_void,
7728            value: *mut windows_core::PWSTR,
7729        ) -> windows_core::HRESULT {
7730            unsafe {
7731                let this: &Identity =
7732                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
7733                ICoreWebView2ContextMenuItem_Impl::ShortcutKeyDescription(
7734                    this,
7735                    core::mem::transmute_copy(&value),
7736                )
7737                .into()
7738            }
7739        }
7740        unsafe extern "system" fn Icon<
7741            Identity: ICoreWebView2ContextMenuItem_Impl,
7742            const OFFSET: isize,
7743        >(
7744            this: *mut core::ffi::c_void,
7745            value: *mut *mut core::ffi::c_void,
7746        ) -> windows_core::HRESULT {
7747            unsafe {
7748                let this: &Identity =
7749                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
7750                match ICoreWebView2ContextMenuItem_Impl::Icon(this) {
7751                    Ok(ok__) => {
7752                        value.write(core::mem::transmute(ok__));
7753                        windows_core::HRESULT(0)
7754                    }
7755                    Err(err) => err.into(),
7756                }
7757            }
7758        }
7759        unsafe extern "system" fn Kind<
7760            Identity: ICoreWebView2ContextMenuItem_Impl,
7761            const OFFSET: isize,
7762        >(
7763            this: *mut core::ffi::c_void,
7764            value: *mut COREWEBVIEW2_CONTEXT_MENU_ITEM_KIND,
7765        ) -> windows_core::HRESULT {
7766            unsafe {
7767                let this: &Identity =
7768                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
7769                ICoreWebView2ContextMenuItem_Impl::Kind(this, core::mem::transmute_copy(&value))
7770                    .into()
7771            }
7772        }
7773        unsafe extern "system" fn SetIsEnabled<
7774            Identity: ICoreWebView2ContextMenuItem_Impl,
7775            const OFFSET: isize,
7776        >(
7777            this: *mut core::ffi::c_void,
7778            value: windows_core::BOOL,
7779        ) -> windows_core::HRESULT {
7780            unsafe {
7781                let this: &Identity =
7782                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
7783                ICoreWebView2ContextMenuItem_Impl::SetIsEnabled(
7784                    this,
7785                    core::mem::transmute_copy(&value),
7786                )
7787                .into()
7788            }
7789        }
7790        unsafe extern "system" fn IsEnabled<
7791            Identity: ICoreWebView2ContextMenuItem_Impl,
7792            const OFFSET: isize,
7793        >(
7794            this: *mut core::ffi::c_void,
7795            value: *mut windows_core::BOOL,
7796        ) -> windows_core::HRESULT {
7797            unsafe {
7798                let this: &Identity =
7799                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
7800                ICoreWebView2ContextMenuItem_Impl::IsEnabled(
7801                    this,
7802                    core::mem::transmute_copy(&value),
7803                )
7804                .into()
7805            }
7806        }
7807        unsafe extern "system" fn SetIsChecked<
7808            Identity: ICoreWebView2ContextMenuItem_Impl,
7809            const OFFSET: isize,
7810        >(
7811            this: *mut core::ffi::c_void,
7812            value: windows_core::BOOL,
7813        ) -> windows_core::HRESULT {
7814            unsafe {
7815                let this: &Identity =
7816                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
7817                ICoreWebView2ContextMenuItem_Impl::SetIsChecked(
7818                    this,
7819                    core::mem::transmute_copy(&value),
7820                )
7821                .into()
7822            }
7823        }
7824        unsafe extern "system" fn IsChecked<
7825            Identity: ICoreWebView2ContextMenuItem_Impl,
7826            const OFFSET: isize,
7827        >(
7828            this: *mut core::ffi::c_void,
7829            value: *mut windows_core::BOOL,
7830        ) -> windows_core::HRESULT {
7831            unsafe {
7832                let this: &Identity =
7833                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
7834                ICoreWebView2ContextMenuItem_Impl::IsChecked(
7835                    this,
7836                    core::mem::transmute_copy(&value),
7837                )
7838                .into()
7839            }
7840        }
7841        unsafe extern "system" fn Children<
7842            Identity: ICoreWebView2ContextMenuItem_Impl,
7843            const OFFSET: isize,
7844        >(
7845            this: *mut core::ffi::c_void,
7846            value: *mut *mut core::ffi::c_void,
7847        ) -> windows_core::HRESULT {
7848            unsafe {
7849                let this: &Identity =
7850                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
7851                match ICoreWebView2ContextMenuItem_Impl::Children(this) {
7852                    Ok(ok__) => {
7853                        value.write(core::mem::transmute(ok__));
7854                        windows_core::HRESULT(0)
7855                    }
7856                    Err(err) => err.into(),
7857                }
7858            }
7859        }
7860        unsafe extern "system" fn add_CustomItemSelected<
7861            Identity: ICoreWebView2ContextMenuItem_Impl,
7862            const OFFSET: isize,
7863        >(
7864            this: *mut core::ffi::c_void,
7865            eventhandler: *mut core::ffi::c_void,
7866            token: *mut i64,
7867        ) -> windows_core::HRESULT {
7868            unsafe {
7869                let this: &Identity =
7870                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
7871                ICoreWebView2ContextMenuItem_Impl::add_CustomItemSelected(
7872                    this,
7873                    core::mem::transmute_copy(&eventhandler),
7874                    core::mem::transmute_copy(&token),
7875                )
7876                .into()
7877            }
7878        }
7879        unsafe extern "system" fn remove_CustomItemSelected<
7880            Identity: ICoreWebView2ContextMenuItem_Impl,
7881            const OFFSET: isize,
7882        >(
7883            this: *mut core::ffi::c_void,
7884            token: i64,
7885        ) -> windows_core::HRESULT {
7886            unsafe {
7887                let this: &Identity =
7888                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
7889                ICoreWebView2ContextMenuItem_Impl::remove_CustomItemSelected(
7890                    this,
7891                    core::mem::transmute_copy(&token),
7892                )
7893                .into()
7894            }
7895        }
7896        Self {
7897            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
7898            Name: Name::<Identity, OFFSET>,
7899            Label: Label::<Identity, OFFSET>,
7900            CommandId: CommandId::<Identity, OFFSET>,
7901            ShortcutKeyDescription: ShortcutKeyDescription::<Identity, OFFSET>,
7902            Icon: Icon::<Identity, OFFSET>,
7903            Kind: Kind::<Identity, OFFSET>,
7904            SetIsEnabled: SetIsEnabled::<Identity, OFFSET>,
7905            IsEnabled: IsEnabled::<Identity, OFFSET>,
7906            SetIsChecked: SetIsChecked::<Identity, OFFSET>,
7907            IsChecked: IsChecked::<Identity, OFFSET>,
7908            Children: Children::<Identity, OFFSET>,
7909            add_CustomItemSelected: add_CustomItemSelected::<Identity, OFFSET>,
7910            remove_CustomItemSelected: remove_CustomItemSelected::<Identity, OFFSET>,
7911        }
7912    }
7913    pub fn matches(iid: &windows_core::GUID) -> bool {
7914        iid == &<ICoreWebView2ContextMenuItem as windows_core::Interface>::IID
7915    }
7916}
7917impl windows_core::RuntimeName for ICoreWebView2ContextMenuItem {}
7918windows_core::imp::define_interface!(
7919    ICoreWebView2ContextMenuItemCollection,
7920    ICoreWebView2ContextMenuItemCollection_Vtbl,
7921    0xf562a2f5_c415_45cf_b909_d4b7c1e276d3
7922);
7923windows_core::imp::interface_hierarchy!(
7924    ICoreWebView2ContextMenuItemCollection,
7925    windows_core::IUnknown
7926);
7927impl ICoreWebView2ContextMenuItemCollection {
7928    pub unsafe fn Count(&self, value: *mut u32) -> windows_core::Result<()> {
7929        unsafe {
7930            (windows_core::Interface::vtable(self).Count)(
7931                windows_core::Interface::as_raw(self),
7932                value as _,
7933            )
7934            .ok()
7935        }
7936    }
7937    pub unsafe fn GetValueAtIndex(
7938        &self,
7939        index: u32,
7940    ) -> windows_core::Result<ICoreWebView2ContextMenuItem> {
7941        unsafe {
7942            let mut result__ = core::mem::zeroed();
7943            (windows_core::Interface::vtable(self).GetValueAtIndex)(
7944                windows_core::Interface::as_raw(self),
7945                index,
7946                &mut result__,
7947            )
7948            .and_then(|| windows_core::Type::from_abi(result__))
7949        }
7950    }
7951    pub unsafe fn RemoveValueAtIndex(&self, index: u32) -> windows_core::Result<()> {
7952        unsafe {
7953            (windows_core::Interface::vtable(self).RemoveValueAtIndex)(
7954                windows_core::Interface::as_raw(self),
7955                index,
7956            )
7957            .ok()
7958        }
7959    }
7960    pub unsafe fn InsertValueAtIndex<P1>(&self, index: u32, value: P1) -> windows_core::Result<()>
7961    where
7962        P1: windows_core::Param<ICoreWebView2ContextMenuItem>,
7963    {
7964        unsafe {
7965            (windows_core::Interface::vtable(self).InsertValueAtIndex)(
7966                windows_core::Interface::as_raw(self),
7967                index,
7968                value.param().abi(),
7969            )
7970            .ok()
7971        }
7972    }
7973}
7974#[repr(C)]
7975#[doc(hidden)]
7976pub struct ICoreWebView2ContextMenuItemCollection_Vtbl {
7977    pub base__: windows_core::IUnknown_Vtbl,
7978    pub Count: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
7979    pub GetValueAtIndex: unsafe extern "system" fn(
7980        *mut core::ffi::c_void,
7981        u32,
7982        *mut *mut core::ffi::c_void,
7983    ) -> windows_core::HRESULT,
7984    pub RemoveValueAtIndex:
7985        unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
7986    pub InsertValueAtIndex: unsafe extern "system" fn(
7987        *mut core::ffi::c_void,
7988        u32,
7989        *mut core::ffi::c_void,
7990    ) -> windows_core::HRESULT,
7991}
7992pub trait ICoreWebView2ContextMenuItemCollection_Impl: windows_core::IUnknownImpl {
7993    fn Count(&self, value: *mut u32) -> windows_core::Result<()>;
7994    fn GetValueAtIndex(&self, index: u32) -> windows_core::Result<ICoreWebView2ContextMenuItem>;
7995    fn RemoveValueAtIndex(&self, index: u32) -> windows_core::Result<()>;
7996    fn InsertValueAtIndex(
7997        &self,
7998        index: u32,
7999        value: windows_core::Ref<'_, ICoreWebView2ContextMenuItem>,
8000    ) -> windows_core::Result<()>;
8001}
8002impl ICoreWebView2ContextMenuItemCollection_Vtbl {
8003    pub const fn new<Identity: ICoreWebView2ContextMenuItemCollection_Impl, const OFFSET: isize>(
8004    ) -> Self {
8005        unsafe extern "system" fn Count<
8006            Identity: ICoreWebView2ContextMenuItemCollection_Impl,
8007            const OFFSET: isize,
8008        >(
8009            this: *mut core::ffi::c_void,
8010            value: *mut u32,
8011        ) -> windows_core::HRESULT {
8012            unsafe {
8013                let this: &Identity =
8014                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
8015                ICoreWebView2ContextMenuItemCollection_Impl::Count(
8016                    this,
8017                    core::mem::transmute_copy(&value),
8018                )
8019                .into()
8020            }
8021        }
8022        unsafe extern "system" fn GetValueAtIndex<
8023            Identity: ICoreWebView2ContextMenuItemCollection_Impl,
8024            const OFFSET: isize,
8025        >(
8026            this: *mut core::ffi::c_void,
8027            index: u32,
8028            value: *mut *mut core::ffi::c_void,
8029        ) -> windows_core::HRESULT {
8030            unsafe {
8031                let this: &Identity =
8032                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
8033                match ICoreWebView2ContextMenuItemCollection_Impl::GetValueAtIndex(
8034                    this,
8035                    core::mem::transmute_copy(&index),
8036                ) {
8037                    Ok(ok__) => {
8038                        value.write(core::mem::transmute(ok__));
8039                        windows_core::HRESULT(0)
8040                    }
8041                    Err(err) => err.into(),
8042                }
8043            }
8044        }
8045        unsafe extern "system" fn RemoveValueAtIndex<
8046            Identity: ICoreWebView2ContextMenuItemCollection_Impl,
8047            const OFFSET: isize,
8048        >(
8049            this: *mut core::ffi::c_void,
8050            index: u32,
8051        ) -> windows_core::HRESULT {
8052            unsafe {
8053                let this: &Identity =
8054                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
8055                ICoreWebView2ContextMenuItemCollection_Impl::RemoveValueAtIndex(
8056                    this,
8057                    core::mem::transmute_copy(&index),
8058                )
8059                .into()
8060            }
8061        }
8062        unsafe extern "system" fn InsertValueAtIndex<
8063            Identity: ICoreWebView2ContextMenuItemCollection_Impl,
8064            const OFFSET: isize,
8065        >(
8066            this: *mut core::ffi::c_void,
8067            index: u32,
8068            value: *mut core::ffi::c_void,
8069        ) -> windows_core::HRESULT {
8070            unsafe {
8071                let this: &Identity =
8072                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
8073                ICoreWebView2ContextMenuItemCollection_Impl::InsertValueAtIndex(
8074                    this,
8075                    core::mem::transmute_copy(&index),
8076                    core::mem::transmute_copy(&value),
8077                )
8078                .into()
8079            }
8080        }
8081        Self {
8082            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
8083            Count: Count::<Identity, OFFSET>,
8084            GetValueAtIndex: GetValueAtIndex::<Identity, OFFSET>,
8085            RemoveValueAtIndex: RemoveValueAtIndex::<Identity, OFFSET>,
8086            InsertValueAtIndex: InsertValueAtIndex::<Identity, OFFSET>,
8087        }
8088    }
8089    pub fn matches(iid: &windows_core::GUID) -> bool {
8090        iid == &<ICoreWebView2ContextMenuItemCollection as windows_core::Interface>::IID
8091    }
8092}
8093impl windows_core::RuntimeName for ICoreWebView2ContextMenuItemCollection {}
8094windows_core::imp::define_interface!(
8095    ICoreWebView2ContextMenuRequestedEventArgs,
8096    ICoreWebView2ContextMenuRequestedEventArgs_Vtbl,
8097    0xa1d309ee_c03f_11eb_8529_0242ac130003
8098);
8099windows_core::imp::interface_hierarchy!(
8100    ICoreWebView2ContextMenuRequestedEventArgs,
8101    windows_core::IUnknown
8102);
8103impl ICoreWebView2ContextMenuRequestedEventArgs {
8104    pub unsafe fn MenuItems(&self) -> windows_core::Result<ICoreWebView2ContextMenuItemCollection> {
8105        unsafe {
8106            let mut result__ = core::mem::zeroed();
8107            (windows_core::Interface::vtable(self).MenuItems)(
8108                windows_core::Interface::as_raw(self),
8109                &mut result__,
8110            )
8111            .and_then(|| windows_core::Type::from_abi(result__))
8112        }
8113    }
8114    pub unsafe fn ContextMenuTarget(&self) -> windows_core::Result<ICoreWebView2ContextMenuTarget> {
8115        unsafe {
8116            let mut result__ = core::mem::zeroed();
8117            (windows_core::Interface::vtable(self).ContextMenuTarget)(
8118                windows_core::Interface::as_raw(self),
8119                &mut result__,
8120            )
8121            .and_then(|| windows_core::Type::from_abi(result__))
8122        }
8123    }
8124    pub unsafe fn Location(
8125        &self,
8126        value: *mut windows::Win32::Foundation::POINT,
8127    ) -> windows_core::Result<()> {
8128        unsafe {
8129            (windows_core::Interface::vtable(self).Location)(
8130                windows_core::Interface::as_raw(self),
8131                value as _,
8132            )
8133            .ok()
8134        }
8135    }
8136    pub unsafe fn SetSelectedCommandId(&self, value: i32) -> windows_core::Result<()> {
8137        unsafe {
8138            (windows_core::Interface::vtable(self).SetSelectedCommandId)(
8139                windows_core::Interface::as_raw(self),
8140                value,
8141            )
8142            .ok()
8143        }
8144    }
8145    pub unsafe fn SelectedCommandId(&self, value: *mut i32) -> windows_core::Result<()> {
8146        unsafe {
8147            (windows_core::Interface::vtable(self).SelectedCommandId)(
8148                windows_core::Interface::as_raw(self),
8149                value as _,
8150            )
8151            .ok()
8152        }
8153    }
8154    pub unsafe fn SetHandled(&self, value: bool) -> windows_core::Result<()> {
8155        unsafe {
8156            (windows_core::Interface::vtable(self).SetHandled)(
8157                windows_core::Interface::as_raw(self),
8158                value.into(),
8159            )
8160            .ok()
8161        }
8162    }
8163    pub unsafe fn Handled(&self, value: *mut windows_core::BOOL) -> windows_core::Result<()> {
8164        unsafe {
8165            (windows_core::Interface::vtable(self).Handled)(
8166                windows_core::Interface::as_raw(self),
8167                value as _,
8168            )
8169            .ok()
8170        }
8171    }
8172    pub unsafe fn GetDeferral(&self) -> windows_core::Result<ICoreWebView2Deferral> {
8173        unsafe {
8174            let mut result__ = core::mem::zeroed();
8175            (windows_core::Interface::vtable(self).GetDeferral)(
8176                windows_core::Interface::as_raw(self),
8177                &mut result__,
8178            )
8179            .and_then(|| windows_core::Type::from_abi(result__))
8180        }
8181    }
8182}
8183#[repr(C)]
8184#[doc(hidden)]
8185pub struct ICoreWebView2ContextMenuRequestedEventArgs_Vtbl {
8186    pub base__: windows_core::IUnknown_Vtbl,
8187    pub MenuItems: unsafe extern "system" fn(
8188        *mut core::ffi::c_void,
8189        *mut *mut core::ffi::c_void,
8190    ) -> windows_core::HRESULT,
8191    pub ContextMenuTarget: unsafe extern "system" fn(
8192        *mut core::ffi::c_void,
8193        *mut *mut core::ffi::c_void,
8194    ) -> windows_core::HRESULT,
8195    pub Location: unsafe extern "system" fn(
8196        *mut core::ffi::c_void,
8197        *mut windows::Win32::Foundation::POINT,
8198    ) -> windows_core::HRESULT,
8199    pub SetSelectedCommandId:
8200        unsafe extern "system" fn(*mut core::ffi::c_void, i32) -> windows_core::HRESULT,
8201    pub SelectedCommandId:
8202        unsafe extern "system" fn(*mut core::ffi::c_void, *mut i32) -> windows_core::HRESULT,
8203    pub SetHandled: unsafe extern "system" fn(
8204        *mut core::ffi::c_void,
8205        windows_core::BOOL,
8206    ) -> windows_core::HRESULT,
8207    pub Handled: unsafe extern "system" fn(
8208        *mut core::ffi::c_void,
8209        *mut windows_core::BOOL,
8210    ) -> windows_core::HRESULT,
8211    pub GetDeferral: unsafe extern "system" fn(
8212        *mut core::ffi::c_void,
8213        *mut *mut core::ffi::c_void,
8214    ) -> windows_core::HRESULT,
8215}
8216pub trait ICoreWebView2ContextMenuRequestedEventArgs_Impl: windows_core::IUnknownImpl {
8217    fn MenuItems(&self) -> windows_core::Result<ICoreWebView2ContextMenuItemCollection>;
8218    fn ContextMenuTarget(&self) -> windows_core::Result<ICoreWebView2ContextMenuTarget>;
8219    fn Location(&self, value: *mut windows::Win32::Foundation::POINT) -> windows_core::Result<()>;
8220    fn SetSelectedCommandId(&self, value: i32) -> windows_core::Result<()>;
8221    fn SelectedCommandId(&self, value: *mut i32) -> windows_core::Result<()>;
8222    fn SetHandled(&self, value: windows_core::BOOL) -> windows_core::Result<()>;
8223    fn Handled(&self, value: *mut windows_core::BOOL) -> windows_core::Result<()>;
8224    fn GetDeferral(&self) -> windows_core::Result<ICoreWebView2Deferral>;
8225}
8226impl ICoreWebView2ContextMenuRequestedEventArgs_Vtbl {
8227    pub const fn new<
8228        Identity: ICoreWebView2ContextMenuRequestedEventArgs_Impl,
8229        const OFFSET: isize,
8230    >() -> Self {
8231        unsafe extern "system" fn MenuItems<
8232            Identity: ICoreWebView2ContextMenuRequestedEventArgs_Impl,
8233            const OFFSET: isize,
8234        >(
8235            this: *mut core::ffi::c_void,
8236            value: *mut *mut core::ffi::c_void,
8237        ) -> windows_core::HRESULT {
8238            unsafe {
8239                let this: &Identity =
8240                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
8241                match ICoreWebView2ContextMenuRequestedEventArgs_Impl::MenuItems(this) {
8242                    Ok(ok__) => {
8243                        value.write(core::mem::transmute(ok__));
8244                        windows_core::HRESULT(0)
8245                    }
8246                    Err(err) => err.into(),
8247                }
8248            }
8249        }
8250        unsafe extern "system" fn ContextMenuTarget<
8251            Identity: ICoreWebView2ContextMenuRequestedEventArgs_Impl,
8252            const OFFSET: isize,
8253        >(
8254            this: *mut core::ffi::c_void,
8255            value: *mut *mut core::ffi::c_void,
8256        ) -> windows_core::HRESULT {
8257            unsafe {
8258                let this: &Identity =
8259                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
8260                match ICoreWebView2ContextMenuRequestedEventArgs_Impl::ContextMenuTarget(this) {
8261                    Ok(ok__) => {
8262                        value.write(core::mem::transmute(ok__));
8263                        windows_core::HRESULT(0)
8264                    }
8265                    Err(err) => err.into(),
8266                }
8267            }
8268        }
8269        unsafe extern "system" fn Location<
8270            Identity: ICoreWebView2ContextMenuRequestedEventArgs_Impl,
8271            const OFFSET: isize,
8272        >(
8273            this: *mut core::ffi::c_void,
8274            value: *mut windows::Win32::Foundation::POINT,
8275        ) -> windows_core::HRESULT {
8276            unsafe {
8277                let this: &Identity =
8278                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
8279                ICoreWebView2ContextMenuRequestedEventArgs_Impl::Location(
8280                    this,
8281                    core::mem::transmute_copy(&value),
8282                )
8283                .into()
8284            }
8285        }
8286        unsafe extern "system" fn SetSelectedCommandId<
8287            Identity: ICoreWebView2ContextMenuRequestedEventArgs_Impl,
8288            const OFFSET: isize,
8289        >(
8290            this: *mut core::ffi::c_void,
8291            value: i32,
8292        ) -> windows_core::HRESULT {
8293            unsafe {
8294                let this: &Identity =
8295                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
8296                ICoreWebView2ContextMenuRequestedEventArgs_Impl::SetSelectedCommandId(
8297                    this,
8298                    core::mem::transmute_copy(&value),
8299                )
8300                .into()
8301            }
8302        }
8303        unsafe extern "system" fn SelectedCommandId<
8304            Identity: ICoreWebView2ContextMenuRequestedEventArgs_Impl,
8305            const OFFSET: isize,
8306        >(
8307            this: *mut core::ffi::c_void,
8308            value: *mut i32,
8309        ) -> windows_core::HRESULT {
8310            unsafe {
8311                let this: &Identity =
8312                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
8313                ICoreWebView2ContextMenuRequestedEventArgs_Impl::SelectedCommandId(
8314                    this,
8315                    core::mem::transmute_copy(&value),
8316                )
8317                .into()
8318            }
8319        }
8320        unsafe extern "system" fn SetHandled<
8321            Identity: ICoreWebView2ContextMenuRequestedEventArgs_Impl,
8322            const OFFSET: isize,
8323        >(
8324            this: *mut core::ffi::c_void,
8325            value: windows_core::BOOL,
8326        ) -> windows_core::HRESULT {
8327            unsafe {
8328                let this: &Identity =
8329                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
8330                ICoreWebView2ContextMenuRequestedEventArgs_Impl::SetHandled(
8331                    this,
8332                    core::mem::transmute_copy(&value),
8333                )
8334                .into()
8335            }
8336        }
8337        unsafe extern "system" fn Handled<
8338            Identity: ICoreWebView2ContextMenuRequestedEventArgs_Impl,
8339            const OFFSET: isize,
8340        >(
8341            this: *mut core::ffi::c_void,
8342            value: *mut windows_core::BOOL,
8343        ) -> windows_core::HRESULT {
8344            unsafe {
8345                let this: &Identity =
8346                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
8347                ICoreWebView2ContextMenuRequestedEventArgs_Impl::Handled(
8348                    this,
8349                    core::mem::transmute_copy(&value),
8350                )
8351                .into()
8352            }
8353        }
8354        unsafe extern "system" fn GetDeferral<
8355            Identity: ICoreWebView2ContextMenuRequestedEventArgs_Impl,
8356            const OFFSET: isize,
8357        >(
8358            this: *mut core::ffi::c_void,
8359            deferral: *mut *mut core::ffi::c_void,
8360        ) -> windows_core::HRESULT {
8361            unsafe {
8362                let this: &Identity =
8363                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
8364                match ICoreWebView2ContextMenuRequestedEventArgs_Impl::GetDeferral(this) {
8365                    Ok(ok__) => {
8366                        deferral.write(core::mem::transmute(ok__));
8367                        windows_core::HRESULT(0)
8368                    }
8369                    Err(err) => err.into(),
8370                }
8371            }
8372        }
8373        Self {
8374            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
8375            MenuItems: MenuItems::<Identity, OFFSET>,
8376            ContextMenuTarget: ContextMenuTarget::<Identity, OFFSET>,
8377            Location: Location::<Identity, OFFSET>,
8378            SetSelectedCommandId: SetSelectedCommandId::<Identity, OFFSET>,
8379            SelectedCommandId: SelectedCommandId::<Identity, OFFSET>,
8380            SetHandled: SetHandled::<Identity, OFFSET>,
8381            Handled: Handled::<Identity, OFFSET>,
8382            GetDeferral: GetDeferral::<Identity, OFFSET>,
8383        }
8384    }
8385    pub fn matches(iid: &windows_core::GUID) -> bool {
8386        iid == &<ICoreWebView2ContextMenuRequestedEventArgs as windows_core::Interface>::IID
8387    }
8388}
8389impl windows_core::RuntimeName for ICoreWebView2ContextMenuRequestedEventArgs {}
8390windows_core::imp::define_interface!(
8391    ICoreWebView2ContextMenuRequestedEventHandler,
8392    ICoreWebView2ContextMenuRequestedEventHandler_Vtbl,
8393    0x04d3fe1d_ab87_42fb_a898_da241d35b63c
8394);
8395windows_core::imp::interface_hierarchy!(
8396    ICoreWebView2ContextMenuRequestedEventHandler,
8397    windows_core::IUnknown
8398);
8399impl ICoreWebView2ContextMenuRequestedEventHandler {
8400    pub unsafe fn Invoke<P0, P1>(&self, sender: P0, args: P1) -> windows_core::Result<()>
8401    where
8402        P0: windows_core::Param<ICoreWebView2>,
8403        P1: windows_core::Param<ICoreWebView2ContextMenuRequestedEventArgs>,
8404    {
8405        unsafe {
8406            (windows_core::Interface::vtable(self).Invoke)(
8407                windows_core::Interface::as_raw(self),
8408                sender.param().abi(),
8409                args.param().abi(),
8410            )
8411            .ok()
8412        }
8413    }
8414}
8415#[repr(C)]
8416#[doc(hidden)]
8417pub struct ICoreWebView2ContextMenuRequestedEventHandler_Vtbl {
8418    pub base__: windows_core::IUnknown_Vtbl,
8419    pub Invoke: unsafe extern "system" fn(
8420        *mut core::ffi::c_void,
8421        *mut core::ffi::c_void,
8422        *mut core::ffi::c_void,
8423    ) -> windows_core::HRESULT,
8424}
8425pub trait ICoreWebView2ContextMenuRequestedEventHandler_Impl: windows_core::IUnknownImpl {
8426    fn Invoke(
8427        &self,
8428        sender: windows_core::Ref<'_, ICoreWebView2>,
8429        args: windows_core::Ref<'_, ICoreWebView2ContextMenuRequestedEventArgs>,
8430    ) -> windows_core::Result<()>;
8431}
8432impl ICoreWebView2ContextMenuRequestedEventHandler_Vtbl {
8433    pub const fn new<
8434        Identity: ICoreWebView2ContextMenuRequestedEventHandler_Impl,
8435        const OFFSET: isize,
8436    >() -> Self {
8437        unsafe extern "system" fn Invoke<
8438            Identity: ICoreWebView2ContextMenuRequestedEventHandler_Impl,
8439            const OFFSET: isize,
8440        >(
8441            this: *mut core::ffi::c_void,
8442            sender: *mut core::ffi::c_void,
8443            args: *mut core::ffi::c_void,
8444        ) -> windows_core::HRESULT {
8445            unsafe {
8446                let this: &Identity =
8447                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
8448                ICoreWebView2ContextMenuRequestedEventHandler_Impl::Invoke(
8449                    this,
8450                    core::mem::transmute_copy(&sender),
8451                    core::mem::transmute_copy(&args),
8452                )
8453                .into()
8454            }
8455        }
8456        Self {
8457            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
8458            Invoke: Invoke::<Identity, OFFSET>,
8459        }
8460    }
8461    pub fn matches(iid: &windows_core::GUID) -> bool {
8462        iid == &<ICoreWebView2ContextMenuRequestedEventHandler as windows_core::Interface>::IID
8463    }
8464}
8465impl windows_core::RuntimeName for ICoreWebView2ContextMenuRequestedEventHandler {}
8466windows_core::imp::define_interface!(
8467    ICoreWebView2ContextMenuTarget,
8468    ICoreWebView2ContextMenuTarget_Vtbl,
8469    0xb8611d99_eed6_4f3f_902c_a198502ad472
8470);
8471windows_core::imp::interface_hierarchy!(ICoreWebView2ContextMenuTarget, windows_core::IUnknown);
8472impl ICoreWebView2ContextMenuTarget {
8473    pub unsafe fn Kind(
8474        &self,
8475        value: *mut COREWEBVIEW2_CONTEXT_MENU_TARGET_KIND,
8476    ) -> windows_core::Result<()> {
8477        unsafe {
8478            (windows_core::Interface::vtable(self).Kind)(
8479                windows_core::Interface::as_raw(self),
8480                value as _,
8481            )
8482            .ok()
8483        }
8484    }
8485    pub unsafe fn IsEditable(&self, value: *mut windows_core::BOOL) -> windows_core::Result<()> {
8486        unsafe {
8487            (windows_core::Interface::vtable(self).IsEditable)(
8488                windows_core::Interface::as_raw(self),
8489                value as _,
8490            )
8491            .ok()
8492        }
8493    }
8494    pub unsafe fn IsRequestedForMainFrame(
8495        &self,
8496        value: *mut windows_core::BOOL,
8497    ) -> windows_core::Result<()> {
8498        unsafe {
8499            (windows_core::Interface::vtable(self).IsRequestedForMainFrame)(
8500                windows_core::Interface::as_raw(self),
8501                value as _,
8502            )
8503            .ok()
8504        }
8505    }
8506    pub unsafe fn PageUri(&self, value: *mut windows_core::PWSTR) -> windows_core::Result<()> {
8507        unsafe {
8508            (windows_core::Interface::vtable(self).PageUri)(
8509                windows_core::Interface::as_raw(self),
8510                value as _,
8511            )
8512            .ok()
8513        }
8514    }
8515    pub unsafe fn FrameUri(&self, value: *mut windows_core::PWSTR) -> windows_core::Result<()> {
8516        unsafe {
8517            (windows_core::Interface::vtable(self).FrameUri)(
8518                windows_core::Interface::as_raw(self),
8519                value as _,
8520            )
8521            .ok()
8522        }
8523    }
8524    pub unsafe fn HasLinkUri(&self, value: *mut windows_core::BOOL) -> windows_core::Result<()> {
8525        unsafe {
8526            (windows_core::Interface::vtable(self).HasLinkUri)(
8527                windows_core::Interface::as_raw(self),
8528                value as _,
8529            )
8530            .ok()
8531        }
8532    }
8533    pub unsafe fn LinkUri(&self, value: *mut windows_core::PWSTR) -> windows_core::Result<()> {
8534        unsafe {
8535            (windows_core::Interface::vtable(self).LinkUri)(
8536                windows_core::Interface::as_raw(self),
8537                value as _,
8538            )
8539            .ok()
8540        }
8541    }
8542    pub unsafe fn HasLinkText(&self, value: *mut windows_core::BOOL) -> windows_core::Result<()> {
8543        unsafe {
8544            (windows_core::Interface::vtable(self).HasLinkText)(
8545                windows_core::Interface::as_raw(self),
8546                value as _,
8547            )
8548            .ok()
8549        }
8550    }
8551    pub unsafe fn LinkText(&self, value: *mut windows_core::PWSTR) -> windows_core::Result<()> {
8552        unsafe {
8553            (windows_core::Interface::vtable(self).LinkText)(
8554                windows_core::Interface::as_raw(self),
8555                value as _,
8556            )
8557            .ok()
8558        }
8559    }
8560    pub unsafe fn HasSourceUri(&self, value: *mut windows_core::BOOL) -> windows_core::Result<()> {
8561        unsafe {
8562            (windows_core::Interface::vtable(self).HasSourceUri)(
8563                windows_core::Interface::as_raw(self),
8564                value as _,
8565            )
8566            .ok()
8567        }
8568    }
8569    pub unsafe fn SourceUri(&self, value: *mut windows_core::PWSTR) -> windows_core::Result<()> {
8570        unsafe {
8571            (windows_core::Interface::vtable(self).SourceUri)(
8572                windows_core::Interface::as_raw(self),
8573                value as _,
8574            )
8575            .ok()
8576        }
8577    }
8578    pub unsafe fn HasSelection(&self, value: *mut windows_core::BOOL) -> windows_core::Result<()> {
8579        unsafe {
8580            (windows_core::Interface::vtable(self).HasSelection)(
8581                windows_core::Interface::as_raw(self),
8582                value as _,
8583            )
8584            .ok()
8585        }
8586    }
8587    pub unsafe fn SelectionText(
8588        &self,
8589        value: *mut windows_core::PWSTR,
8590    ) -> windows_core::Result<()> {
8591        unsafe {
8592            (windows_core::Interface::vtable(self).SelectionText)(
8593                windows_core::Interface::as_raw(self),
8594                value as _,
8595            )
8596            .ok()
8597        }
8598    }
8599}
8600#[repr(C)]
8601#[doc(hidden)]
8602pub struct ICoreWebView2ContextMenuTarget_Vtbl {
8603    pub base__: windows_core::IUnknown_Vtbl,
8604    pub Kind: unsafe extern "system" fn(
8605        *mut core::ffi::c_void,
8606        *mut COREWEBVIEW2_CONTEXT_MENU_TARGET_KIND,
8607    ) -> windows_core::HRESULT,
8608    pub IsEditable: unsafe extern "system" fn(
8609        *mut core::ffi::c_void,
8610        *mut windows_core::BOOL,
8611    ) -> windows_core::HRESULT,
8612    pub IsRequestedForMainFrame: unsafe extern "system" fn(
8613        *mut core::ffi::c_void,
8614        *mut windows_core::BOOL,
8615    ) -> windows_core::HRESULT,
8616    pub PageUri: unsafe extern "system" fn(
8617        *mut core::ffi::c_void,
8618        *mut windows_core::PWSTR,
8619    ) -> windows_core::HRESULT,
8620    pub FrameUri: unsafe extern "system" fn(
8621        *mut core::ffi::c_void,
8622        *mut windows_core::PWSTR,
8623    ) -> windows_core::HRESULT,
8624    pub HasLinkUri: unsafe extern "system" fn(
8625        *mut core::ffi::c_void,
8626        *mut windows_core::BOOL,
8627    ) -> windows_core::HRESULT,
8628    pub LinkUri: unsafe extern "system" fn(
8629        *mut core::ffi::c_void,
8630        *mut windows_core::PWSTR,
8631    ) -> windows_core::HRESULT,
8632    pub HasLinkText: unsafe extern "system" fn(
8633        *mut core::ffi::c_void,
8634        *mut windows_core::BOOL,
8635    ) -> windows_core::HRESULT,
8636    pub LinkText: unsafe extern "system" fn(
8637        *mut core::ffi::c_void,
8638        *mut windows_core::PWSTR,
8639    ) -> windows_core::HRESULT,
8640    pub HasSourceUri: unsafe extern "system" fn(
8641        *mut core::ffi::c_void,
8642        *mut windows_core::BOOL,
8643    ) -> windows_core::HRESULT,
8644    pub SourceUri: unsafe extern "system" fn(
8645        *mut core::ffi::c_void,
8646        *mut windows_core::PWSTR,
8647    ) -> windows_core::HRESULT,
8648    pub HasSelection: unsafe extern "system" fn(
8649        *mut core::ffi::c_void,
8650        *mut windows_core::BOOL,
8651    ) -> windows_core::HRESULT,
8652    pub SelectionText: unsafe extern "system" fn(
8653        *mut core::ffi::c_void,
8654        *mut windows_core::PWSTR,
8655    ) -> windows_core::HRESULT,
8656}
8657pub trait ICoreWebView2ContextMenuTarget_Impl: windows_core::IUnknownImpl {
8658    fn Kind(&self, value: *mut COREWEBVIEW2_CONTEXT_MENU_TARGET_KIND) -> windows_core::Result<()>;
8659    fn IsEditable(&self, value: *mut windows_core::BOOL) -> windows_core::Result<()>;
8660    fn IsRequestedForMainFrame(&self, value: *mut windows_core::BOOL) -> windows_core::Result<()>;
8661    fn PageUri(&self, value: *mut windows_core::PWSTR) -> windows_core::Result<()>;
8662    fn FrameUri(&self, value: *mut windows_core::PWSTR) -> windows_core::Result<()>;
8663    fn HasLinkUri(&self, value: *mut windows_core::BOOL) -> windows_core::Result<()>;
8664    fn LinkUri(&self, value: *mut windows_core::PWSTR) -> windows_core::Result<()>;
8665    fn HasLinkText(&self, value: *mut windows_core::BOOL) -> windows_core::Result<()>;
8666    fn LinkText(&self, value: *mut windows_core::PWSTR) -> windows_core::Result<()>;
8667    fn HasSourceUri(&self, value: *mut windows_core::BOOL) -> windows_core::Result<()>;
8668    fn SourceUri(&self, value: *mut windows_core::PWSTR) -> windows_core::Result<()>;
8669    fn HasSelection(&self, value: *mut windows_core::BOOL) -> windows_core::Result<()>;
8670    fn SelectionText(&self, value: *mut windows_core::PWSTR) -> windows_core::Result<()>;
8671}
8672impl ICoreWebView2ContextMenuTarget_Vtbl {
8673    pub const fn new<Identity: ICoreWebView2ContextMenuTarget_Impl, const OFFSET: isize>() -> Self {
8674        unsafe extern "system" fn Kind<
8675            Identity: ICoreWebView2ContextMenuTarget_Impl,
8676            const OFFSET: isize,
8677        >(
8678            this: *mut core::ffi::c_void,
8679            value: *mut COREWEBVIEW2_CONTEXT_MENU_TARGET_KIND,
8680        ) -> windows_core::HRESULT {
8681            unsafe {
8682                let this: &Identity =
8683                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
8684                ICoreWebView2ContextMenuTarget_Impl::Kind(this, core::mem::transmute_copy(&value))
8685                    .into()
8686            }
8687        }
8688        unsafe extern "system" fn IsEditable<
8689            Identity: ICoreWebView2ContextMenuTarget_Impl,
8690            const OFFSET: isize,
8691        >(
8692            this: *mut core::ffi::c_void,
8693            value: *mut windows_core::BOOL,
8694        ) -> windows_core::HRESULT {
8695            unsafe {
8696                let this: &Identity =
8697                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
8698                ICoreWebView2ContextMenuTarget_Impl::IsEditable(
8699                    this,
8700                    core::mem::transmute_copy(&value),
8701                )
8702                .into()
8703            }
8704        }
8705        unsafe extern "system" fn IsRequestedForMainFrame<
8706            Identity: ICoreWebView2ContextMenuTarget_Impl,
8707            const OFFSET: isize,
8708        >(
8709            this: *mut core::ffi::c_void,
8710            value: *mut windows_core::BOOL,
8711        ) -> windows_core::HRESULT {
8712            unsafe {
8713                let this: &Identity =
8714                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
8715                ICoreWebView2ContextMenuTarget_Impl::IsRequestedForMainFrame(
8716                    this,
8717                    core::mem::transmute_copy(&value),
8718                )
8719                .into()
8720            }
8721        }
8722        unsafe extern "system" fn PageUri<
8723            Identity: ICoreWebView2ContextMenuTarget_Impl,
8724            const OFFSET: isize,
8725        >(
8726            this: *mut core::ffi::c_void,
8727            value: *mut windows_core::PWSTR,
8728        ) -> windows_core::HRESULT {
8729            unsafe {
8730                let this: &Identity =
8731                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
8732                ICoreWebView2ContextMenuTarget_Impl::PageUri(
8733                    this,
8734                    core::mem::transmute_copy(&value),
8735                )
8736                .into()
8737            }
8738        }
8739        unsafe extern "system" fn FrameUri<
8740            Identity: ICoreWebView2ContextMenuTarget_Impl,
8741            const OFFSET: isize,
8742        >(
8743            this: *mut core::ffi::c_void,
8744            value: *mut windows_core::PWSTR,
8745        ) -> windows_core::HRESULT {
8746            unsafe {
8747                let this: &Identity =
8748                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
8749                ICoreWebView2ContextMenuTarget_Impl::FrameUri(
8750                    this,
8751                    core::mem::transmute_copy(&value),
8752                )
8753                .into()
8754            }
8755        }
8756        unsafe extern "system" fn HasLinkUri<
8757            Identity: ICoreWebView2ContextMenuTarget_Impl,
8758            const OFFSET: isize,
8759        >(
8760            this: *mut core::ffi::c_void,
8761            value: *mut windows_core::BOOL,
8762        ) -> windows_core::HRESULT {
8763            unsafe {
8764                let this: &Identity =
8765                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
8766                ICoreWebView2ContextMenuTarget_Impl::HasLinkUri(
8767                    this,
8768                    core::mem::transmute_copy(&value),
8769                )
8770                .into()
8771            }
8772        }
8773        unsafe extern "system" fn LinkUri<
8774            Identity: ICoreWebView2ContextMenuTarget_Impl,
8775            const OFFSET: isize,
8776        >(
8777            this: *mut core::ffi::c_void,
8778            value: *mut windows_core::PWSTR,
8779        ) -> windows_core::HRESULT {
8780            unsafe {
8781                let this: &Identity =
8782                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
8783                ICoreWebView2ContextMenuTarget_Impl::LinkUri(
8784                    this,
8785                    core::mem::transmute_copy(&value),
8786                )
8787                .into()
8788            }
8789        }
8790        unsafe extern "system" fn HasLinkText<
8791            Identity: ICoreWebView2ContextMenuTarget_Impl,
8792            const OFFSET: isize,
8793        >(
8794            this: *mut core::ffi::c_void,
8795            value: *mut windows_core::BOOL,
8796        ) -> windows_core::HRESULT {
8797            unsafe {
8798                let this: &Identity =
8799                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
8800                ICoreWebView2ContextMenuTarget_Impl::HasLinkText(
8801                    this,
8802                    core::mem::transmute_copy(&value),
8803                )
8804                .into()
8805            }
8806        }
8807        unsafe extern "system" fn LinkText<
8808            Identity: ICoreWebView2ContextMenuTarget_Impl,
8809            const OFFSET: isize,
8810        >(
8811            this: *mut core::ffi::c_void,
8812            value: *mut windows_core::PWSTR,
8813        ) -> windows_core::HRESULT {
8814            unsafe {
8815                let this: &Identity =
8816                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
8817                ICoreWebView2ContextMenuTarget_Impl::LinkText(
8818                    this,
8819                    core::mem::transmute_copy(&value),
8820                )
8821                .into()
8822            }
8823        }
8824        unsafe extern "system" fn HasSourceUri<
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::HasSourceUri(
8835                    this,
8836                    core::mem::transmute_copy(&value),
8837                )
8838                .into()
8839            }
8840        }
8841        unsafe extern "system" fn SourceUri<
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::SourceUri(
8852                    this,
8853                    core::mem::transmute_copy(&value),
8854                )
8855                .into()
8856            }
8857        }
8858        unsafe extern "system" fn HasSelection<
8859            Identity: ICoreWebView2ContextMenuTarget_Impl,
8860            const OFFSET: isize,
8861        >(
8862            this: *mut core::ffi::c_void,
8863            value: *mut windows_core::BOOL,
8864        ) -> windows_core::HRESULT {
8865            unsafe {
8866                let this: &Identity =
8867                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
8868                ICoreWebView2ContextMenuTarget_Impl::HasSelection(
8869                    this,
8870                    core::mem::transmute_copy(&value),
8871                )
8872                .into()
8873            }
8874        }
8875        unsafe extern "system" fn SelectionText<
8876            Identity: ICoreWebView2ContextMenuTarget_Impl,
8877            const OFFSET: isize,
8878        >(
8879            this: *mut core::ffi::c_void,
8880            value: *mut windows_core::PWSTR,
8881        ) -> windows_core::HRESULT {
8882            unsafe {
8883                let this: &Identity =
8884                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
8885                ICoreWebView2ContextMenuTarget_Impl::SelectionText(
8886                    this,
8887                    core::mem::transmute_copy(&value),
8888                )
8889                .into()
8890            }
8891        }
8892        Self {
8893            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
8894            Kind: Kind::<Identity, OFFSET>,
8895            IsEditable: IsEditable::<Identity, OFFSET>,
8896            IsRequestedForMainFrame: IsRequestedForMainFrame::<Identity, OFFSET>,
8897            PageUri: PageUri::<Identity, OFFSET>,
8898            FrameUri: FrameUri::<Identity, OFFSET>,
8899            HasLinkUri: HasLinkUri::<Identity, OFFSET>,
8900            LinkUri: LinkUri::<Identity, OFFSET>,
8901            HasLinkText: HasLinkText::<Identity, OFFSET>,
8902            LinkText: LinkText::<Identity, OFFSET>,
8903            HasSourceUri: HasSourceUri::<Identity, OFFSET>,
8904            SourceUri: SourceUri::<Identity, OFFSET>,
8905            HasSelection: HasSelection::<Identity, OFFSET>,
8906            SelectionText: SelectionText::<Identity, OFFSET>,
8907        }
8908    }
8909    pub fn matches(iid: &windows_core::GUID) -> bool {
8910        iid == &<ICoreWebView2ContextMenuTarget as windows_core::Interface>::IID
8911    }
8912}
8913impl windows_core::RuntimeName for ICoreWebView2ContextMenuTarget {}
8914windows_core::imp::define_interface!(
8915    ICoreWebView2Controller,
8916    ICoreWebView2Controller_Vtbl,
8917    0x4d00c0d1_9434_4eb6_8078_8697a560334f
8918);
8919windows_core::imp::interface_hierarchy!(ICoreWebView2Controller, windows_core::IUnknown);
8920impl ICoreWebView2Controller {
8921    pub unsafe fn IsVisible(&self, isvisible: *mut windows_core::BOOL) -> windows_core::Result<()> {
8922        unsafe {
8923            (windows_core::Interface::vtable(self).IsVisible)(
8924                windows_core::Interface::as_raw(self),
8925                isvisible as _,
8926            )
8927            .ok()
8928        }
8929    }
8930    pub unsafe fn SetIsVisible(&self, isvisible: bool) -> windows_core::Result<()> {
8931        unsafe {
8932            (windows_core::Interface::vtable(self).SetIsVisible)(
8933                windows_core::Interface::as_raw(self),
8934                isvisible.into(),
8935            )
8936            .ok()
8937        }
8938    }
8939    pub unsafe fn Bounds(
8940        &self,
8941        bounds: *mut windows::Win32::Foundation::RECT,
8942    ) -> windows_core::Result<()> {
8943        unsafe {
8944            (windows_core::Interface::vtable(self).Bounds)(
8945                windows_core::Interface::as_raw(self),
8946                bounds as _,
8947            )
8948            .ok()
8949        }
8950    }
8951    pub unsafe fn SetBounds(
8952        &self,
8953        bounds: windows::Win32::Foundation::RECT,
8954    ) -> windows_core::Result<()> {
8955        unsafe {
8956            (windows_core::Interface::vtable(self).SetBounds)(
8957                windows_core::Interface::as_raw(self),
8958                core::mem::transmute(bounds),
8959            )
8960            .ok()
8961        }
8962    }
8963    pub unsafe fn ZoomFactor(&self, zoomfactor: *mut f64) -> windows_core::Result<()> {
8964        unsafe {
8965            (windows_core::Interface::vtable(self).ZoomFactor)(
8966                windows_core::Interface::as_raw(self),
8967                zoomfactor as _,
8968            )
8969            .ok()
8970        }
8971    }
8972    pub unsafe fn SetZoomFactor(&self, zoomfactor: f64) -> windows_core::Result<()> {
8973        unsafe {
8974            (windows_core::Interface::vtable(self).SetZoomFactor)(
8975                windows_core::Interface::as_raw(self),
8976                zoomfactor,
8977            )
8978            .ok()
8979        }
8980    }
8981    pub unsafe fn add_ZoomFactorChanged<P0>(
8982        &self,
8983        eventhandler: P0,
8984        token: *mut i64,
8985    ) -> windows_core::Result<()>
8986    where
8987        P0: windows_core::Param<ICoreWebView2ZoomFactorChangedEventHandler>,
8988    {
8989        unsafe {
8990            (windows_core::Interface::vtable(self).add_ZoomFactorChanged)(
8991                windows_core::Interface::as_raw(self),
8992                eventhandler.param().abi(),
8993                token as _,
8994            )
8995            .ok()
8996        }
8997    }
8998    pub unsafe fn remove_ZoomFactorChanged(&self, token: i64) -> windows_core::Result<()> {
8999        unsafe {
9000            (windows_core::Interface::vtable(self).remove_ZoomFactorChanged)(
9001                windows_core::Interface::as_raw(self),
9002                token,
9003            )
9004            .ok()
9005        }
9006    }
9007    pub unsafe fn SetBoundsAndZoomFactor(
9008        &self,
9009        bounds: windows::Win32::Foundation::RECT,
9010        zoomfactor: f64,
9011    ) -> windows_core::Result<()> {
9012        unsafe {
9013            (windows_core::Interface::vtable(self).SetBoundsAndZoomFactor)(
9014                windows_core::Interface::as_raw(self),
9015                core::mem::transmute(bounds),
9016                zoomfactor,
9017            )
9018            .ok()
9019        }
9020    }
9021    pub unsafe fn MoveFocus(
9022        &self,
9023        reason: COREWEBVIEW2_MOVE_FOCUS_REASON,
9024    ) -> windows_core::Result<()> {
9025        unsafe {
9026            (windows_core::Interface::vtable(self).MoveFocus)(
9027                windows_core::Interface::as_raw(self),
9028                reason,
9029            )
9030            .ok()
9031        }
9032    }
9033    pub unsafe fn add_MoveFocusRequested<P0>(
9034        &self,
9035        eventhandler: P0,
9036        token: *mut i64,
9037    ) -> windows_core::Result<()>
9038    where
9039        P0: windows_core::Param<ICoreWebView2MoveFocusRequestedEventHandler>,
9040    {
9041        unsafe {
9042            (windows_core::Interface::vtable(self).add_MoveFocusRequested)(
9043                windows_core::Interface::as_raw(self),
9044                eventhandler.param().abi(),
9045                token as _,
9046            )
9047            .ok()
9048        }
9049    }
9050    pub unsafe fn remove_MoveFocusRequested(&self, token: i64) -> windows_core::Result<()> {
9051        unsafe {
9052            (windows_core::Interface::vtable(self).remove_MoveFocusRequested)(
9053                windows_core::Interface::as_raw(self),
9054                token,
9055            )
9056            .ok()
9057        }
9058    }
9059    pub unsafe fn add_GotFocus<P0>(
9060        &self,
9061        eventhandler: P0,
9062        token: *mut i64,
9063    ) -> windows_core::Result<()>
9064    where
9065        P0: windows_core::Param<ICoreWebView2FocusChangedEventHandler>,
9066    {
9067        unsafe {
9068            (windows_core::Interface::vtable(self).add_GotFocus)(
9069                windows_core::Interface::as_raw(self),
9070                eventhandler.param().abi(),
9071                token as _,
9072            )
9073            .ok()
9074        }
9075    }
9076    pub unsafe fn remove_GotFocus(&self, token: i64) -> windows_core::Result<()> {
9077        unsafe {
9078            (windows_core::Interface::vtable(self).remove_GotFocus)(
9079                windows_core::Interface::as_raw(self),
9080                token,
9081            )
9082            .ok()
9083        }
9084    }
9085    pub unsafe fn add_LostFocus<P0>(
9086        &self,
9087        eventhandler: P0,
9088        token: *mut i64,
9089    ) -> windows_core::Result<()>
9090    where
9091        P0: windows_core::Param<ICoreWebView2FocusChangedEventHandler>,
9092    {
9093        unsafe {
9094            (windows_core::Interface::vtable(self).add_LostFocus)(
9095                windows_core::Interface::as_raw(self),
9096                eventhandler.param().abi(),
9097                token as _,
9098            )
9099            .ok()
9100        }
9101    }
9102    pub unsafe fn remove_LostFocus(&self, token: i64) -> windows_core::Result<()> {
9103        unsafe {
9104            (windows_core::Interface::vtable(self).remove_LostFocus)(
9105                windows_core::Interface::as_raw(self),
9106                token,
9107            )
9108            .ok()
9109        }
9110    }
9111    pub unsafe fn add_AcceleratorKeyPressed<P0>(
9112        &self,
9113        eventhandler: P0,
9114        token: *mut i64,
9115    ) -> windows_core::Result<()>
9116    where
9117        P0: windows_core::Param<ICoreWebView2AcceleratorKeyPressedEventHandler>,
9118    {
9119        unsafe {
9120            (windows_core::Interface::vtable(self).add_AcceleratorKeyPressed)(
9121                windows_core::Interface::as_raw(self),
9122                eventhandler.param().abi(),
9123                token as _,
9124            )
9125            .ok()
9126        }
9127    }
9128    pub unsafe fn remove_AcceleratorKeyPressed(&self, token: i64) -> windows_core::Result<()> {
9129        unsafe {
9130            (windows_core::Interface::vtable(self).remove_AcceleratorKeyPressed)(
9131                windows_core::Interface::as_raw(self),
9132                token,
9133            )
9134            .ok()
9135        }
9136    }
9137    pub unsafe fn ParentWindow(
9138        &self,
9139        parentwindow: *mut windows::Win32::Foundation::HWND,
9140    ) -> windows_core::Result<()> {
9141        unsafe {
9142            (windows_core::Interface::vtable(self).ParentWindow)(
9143                windows_core::Interface::as_raw(self),
9144                parentwindow as _,
9145            )
9146            .ok()
9147        }
9148    }
9149    pub unsafe fn SetParentWindow(
9150        &self,
9151        parentwindow: windows::Win32::Foundation::HWND,
9152    ) -> windows_core::Result<()> {
9153        unsafe {
9154            (windows_core::Interface::vtable(self).SetParentWindow)(
9155                windows_core::Interface::as_raw(self),
9156                parentwindow,
9157            )
9158            .ok()
9159        }
9160    }
9161    pub unsafe fn NotifyParentWindowPositionChanged(&self) -> windows_core::Result<()> {
9162        unsafe {
9163            (windows_core::Interface::vtable(self).NotifyParentWindowPositionChanged)(
9164                windows_core::Interface::as_raw(self),
9165            )
9166            .ok()
9167        }
9168    }
9169    pub unsafe fn Close(&self) -> windows_core::Result<()> {
9170        unsafe {
9171            (windows_core::Interface::vtable(self).Close)(windows_core::Interface::as_raw(self))
9172                .ok()
9173        }
9174    }
9175    pub unsafe fn CoreWebView2(&self) -> windows_core::Result<ICoreWebView2> {
9176        unsafe {
9177            let mut result__ = core::mem::zeroed();
9178            (windows_core::Interface::vtable(self).CoreWebView2)(
9179                windows_core::Interface::as_raw(self),
9180                &mut result__,
9181            )
9182            .and_then(|| windows_core::Type::from_abi(result__))
9183        }
9184    }
9185}
9186#[repr(C)]
9187#[doc(hidden)]
9188pub struct ICoreWebView2Controller_Vtbl {
9189    pub base__: windows_core::IUnknown_Vtbl,
9190    pub IsVisible: unsafe extern "system" fn(
9191        *mut core::ffi::c_void,
9192        *mut windows_core::BOOL,
9193    ) -> windows_core::HRESULT,
9194    pub SetIsVisible: unsafe extern "system" fn(
9195        *mut core::ffi::c_void,
9196        windows_core::BOOL,
9197    ) -> windows_core::HRESULT,
9198    pub Bounds: unsafe extern "system" fn(
9199        *mut core::ffi::c_void,
9200        *mut windows::Win32::Foundation::RECT,
9201    ) -> windows_core::HRESULT,
9202    pub SetBounds: unsafe extern "system" fn(
9203        *mut core::ffi::c_void,
9204        windows::Win32::Foundation::RECT,
9205    ) -> windows_core::HRESULT,
9206    pub ZoomFactor:
9207        unsafe extern "system" fn(*mut core::ffi::c_void, *mut f64) -> windows_core::HRESULT,
9208    pub SetZoomFactor:
9209        unsafe extern "system" fn(*mut core::ffi::c_void, f64) -> windows_core::HRESULT,
9210    pub add_ZoomFactorChanged: unsafe extern "system" fn(
9211        *mut core::ffi::c_void,
9212        *mut core::ffi::c_void,
9213        *mut i64,
9214    ) -> windows_core::HRESULT,
9215    pub remove_ZoomFactorChanged:
9216        unsafe extern "system" fn(*mut core::ffi::c_void, i64) -> windows_core::HRESULT,
9217    pub SetBoundsAndZoomFactor: unsafe extern "system" fn(
9218        *mut core::ffi::c_void,
9219        windows::Win32::Foundation::RECT,
9220        f64,
9221    ) -> windows_core::HRESULT,
9222    pub MoveFocus: unsafe extern "system" fn(
9223        *mut core::ffi::c_void,
9224        COREWEBVIEW2_MOVE_FOCUS_REASON,
9225    ) -> windows_core::HRESULT,
9226    pub add_MoveFocusRequested: unsafe extern "system" fn(
9227        *mut core::ffi::c_void,
9228        *mut core::ffi::c_void,
9229        *mut i64,
9230    ) -> windows_core::HRESULT,
9231    pub remove_MoveFocusRequested:
9232        unsafe extern "system" fn(*mut core::ffi::c_void, i64) -> windows_core::HRESULT,
9233    pub add_GotFocus: unsafe extern "system" fn(
9234        *mut core::ffi::c_void,
9235        *mut core::ffi::c_void,
9236        *mut i64,
9237    ) -> windows_core::HRESULT,
9238    pub remove_GotFocus:
9239        unsafe extern "system" fn(*mut core::ffi::c_void, i64) -> windows_core::HRESULT,
9240    pub add_LostFocus: unsafe extern "system" fn(
9241        *mut core::ffi::c_void,
9242        *mut core::ffi::c_void,
9243        *mut i64,
9244    ) -> windows_core::HRESULT,
9245    pub remove_LostFocus:
9246        unsafe extern "system" fn(*mut core::ffi::c_void, i64) -> windows_core::HRESULT,
9247    pub add_AcceleratorKeyPressed: unsafe extern "system" fn(
9248        *mut core::ffi::c_void,
9249        *mut core::ffi::c_void,
9250        *mut i64,
9251    ) -> windows_core::HRESULT,
9252    pub remove_AcceleratorKeyPressed:
9253        unsafe extern "system" fn(*mut core::ffi::c_void, i64) -> windows_core::HRESULT,
9254    pub ParentWindow: unsafe extern "system" fn(
9255        *mut core::ffi::c_void,
9256        *mut windows::Win32::Foundation::HWND,
9257    ) -> windows_core::HRESULT,
9258    pub SetParentWindow: unsafe extern "system" fn(
9259        *mut core::ffi::c_void,
9260        windows::Win32::Foundation::HWND,
9261    ) -> windows_core::HRESULT,
9262    pub NotifyParentWindowPositionChanged:
9263        unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
9264    pub Close: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
9265    pub CoreWebView2: unsafe extern "system" fn(
9266        *mut core::ffi::c_void,
9267        *mut *mut core::ffi::c_void,
9268    ) -> windows_core::HRESULT,
9269}
9270pub trait ICoreWebView2Controller_Impl: windows_core::IUnknownImpl {
9271    fn IsVisible(&self, isvisible: *mut windows_core::BOOL) -> windows_core::Result<()>;
9272    fn SetIsVisible(&self, isvisible: windows_core::BOOL) -> windows_core::Result<()>;
9273    fn Bounds(&self, bounds: *mut windows::Win32::Foundation::RECT) -> windows_core::Result<()>;
9274    fn SetBounds(&self, bounds: &windows::Win32::Foundation::RECT) -> windows_core::Result<()>;
9275    fn ZoomFactor(&self, zoomfactor: *mut f64) -> windows_core::Result<()>;
9276    fn SetZoomFactor(&self, zoomfactor: f64) -> windows_core::Result<()>;
9277    fn add_ZoomFactorChanged(
9278        &self,
9279        eventhandler: windows_core::Ref<'_, ICoreWebView2ZoomFactorChangedEventHandler>,
9280        token: *mut i64,
9281    ) -> windows_core::Result<()>;
9282    fn remove_ZoomFactorChanged(&self, token: i64) -> windows_core::Result<()>;
9283    fn SetBoundsAndZoomFactor(
9284        &self,
9285        bounds: &windows::Win32::Foundation::RECT,
9286        zoomfactor: f64,
9287    ) -> windows_core::Result<()>;
9288    fn MoveFocus(&self, reason: COREWEBVIEW2_MOVE_FOCUS_REASON) -> windows_core::Result<()>;
9289    fn add_MoveFocusRequested(
9290        &self,
9291        eventhandler: windows_core::Ref<'_, ICoreWebView2MoveFocusRequestedEventHandler>,
9292        token: *mut i64,
9293    ) -> windows_core::Result<()>;
9294    fn remove_MoveFocusRequested(&self, token: i64) -> windows_core::Result<()>;
9295    fn add_GotFocus(
9296        &self,
9297        eventhandler: windows_core::Ref<'_, ICoreWebView2FocusChangedEventHandler>,
9298        token: *mut i64,
9299    ) -> windows_core::Result<()>;
9300    fn remove_GotFocus(&self, token: i64) -> windows_core::Result<()>;
9301    fn add_LostFocus(
9302        &self,
9303        eventhandler: windows_core::Ref<'_, ICoreWebView2FocusChangedEventHandler>,
9304        token: *mut i64,
9305    ) -> windows_core::Result<()>;
9306    fn remove_LostFocus(&self, token: i64) -> windows_core::Result<()>;
9307    fn add_AcceleratorKeyPressed(
9308        &self,
9309        eventhandler: windows_core::Ref<'_, ICoreWebView2AcceleratorKeyPressedEventHandler>,
9310        token: *mut i64,
9311    ) -> windows_core::Result<()>;
9312    fn remove_AcceleratorKeyPressed(&self, token: i64) -> windows_core::Result<()>;
9313    fn ParentWindow(
9314        &self,
9315        parentwindow: *mut windows::Win32::Foundation::HWND,
9316    ) -> windows_core::Result<()>;
9317    fn SetParentWindow(
9318        &self,
9319        parentwindow: windows::Win32::Foundation::HWND,
9320    ) -> windows_core::Result<()>;
9321    fn NotifyParentWindowPositionChanged(&self) -> windows_core::Result<()>;
9322    fn Close(&self) -> windows_core::Result<()>;
9323    fn CoreWebView2(&self) -> windows_core::Result<ICoreWebView2>;
9324}
9325impl ICoreWebView2Controller_Vtbl {
9326    pub const fn new<Identity: ICoreWebView2Controller_Impl, const OFFSET: isize>() -> Self {
9327        unsafe extern "system" fn IsVisible<
9328            Identity: ICoreWebView2Controller_Impl,
9329            const OFFSET: isize,
9330        >(
9331            this: *mut core::ffi::c_void,
9332            isvisible: *mut windows_core::BOOL,
9333        ) -> windows_core::HRESULT {
9334            unsafe {
9335                let this: &Identity =
9336                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
9337                ICoreWebView2Controller_Impl::IsVisible(this, core::mem::transmute_copy(&isvisible))
9338                    .into()
9339            }
9340        }
9341        unsafe extern "system" fn SetIsVisible<
9342            Identity: ICoreWebView2Controller_Impl,
9343            const OFFSET: isize,
9344        >(
9345            this: *mut core::ffi::c_void,
9346            isvisible: windows_core::BOOL,
9347        ) -> windows_core::HRESULT {
9348            unsafe {
9349                let this: &Identity =
9350                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
9351                ICoreWebView2Controller_Impl::SetIsVisible(
9352                    this,
9353                    core::mem::transmute_copy(&isvisible),
9354                )
9355                .into()
9356            }
9357        }
9358        unsafe extern "system" fn Bounds<
9359            Identity: ICoreWebView2Controller_Impl,
9360            const OFFSET: isize,
9361        >(
9362            this: *mut core::ffi::c_void,
9363            bounds: *mut windows::Win32::Foundation::RECT,
9364        ) -> windows_core::HRESULT {
9365            unsafe {
9366                let this: &Identity =
9367                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
9368                ICoreWebView2Controller_Impl::Bounds(this, core::mem::transmute_copy(&bounds))
9369                    .into()
9370            }
9371        }
9372        unsafe extern "system" fn SetBounds<
9373            Identity: ICoreWebView2Controller_Impl,
9374            const OFFSET: isize,
9375        >(
9376            this: *mut core::ffi::c_void,
9377            bounds: windows::Win32::Foundation::RECT,
9378        ) -> windows_core::HRESULT {
9379            unsafe {
9380                let this: &Identity =
9381                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
9382                ICoreWebView2Controller_Impl::SetBounds(this, core::mem::transmute(&bounds)).into()
9383            }
9384        }
9385        unsafe extern "system" fn ZoomFactor<
9386            Identity: ICoreWebView2Controller_Impl,
9387            const OFFSET: isize,
9388        >(
9389            this: *mut core::ffi::c_void,
9390            zoomfactor: *mut f64,
9391        ) -> windows_core::HRESULT {
9392            unsafe {
9393                let this: &Identity =
9394                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
9395                ICoreWebView2Controller_Impl::ZoomFactor(
9396                    this,
9397                    core::mem::transmute_copy(&zoomfactor),
9398                )
9399                .into()
9400            }
9401        }
9402        unsafe extern "system" fn SetZoomFactor<
9403            Identity: ICoreWebView2Controller_Impl,
9404            const OFFSET: isize,
9405        >(
9406            this: *mut core::ffi::c_void,
9407            zoomfactor: f64,
9408        ) -> windows_core::HRESULT {
9409            unsafe {
9410                let this: &Identity =
9411                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
9412                ICoreWebView2Controller_Impl::SetZoomFactor(
9413                    this,
9414                    core::mem::transmute_copy(&zoomfactor),
9415                )
9416                .into()
9417            }
9418        }
9419        unsafe extern "system" fn add_ZoomFactorChanged<
9420            Identity: ICoreWebView2Controller_Impl,
9421            const OFFSET: isize,
9422        >(
9423            this: *mut core::ffi::c_void,
9424            eventhandler: *mut core::ffi::c_void,
9425            token: *mut i64,
9426        ) -> windows_core::HRESULT {
9427            unsafe {
9428                let this: &Identity =
9429                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
9430                ICoreWebView2Controller_Impl::add_ZoomFactorChanged(
9431                    this,
9432                    core::mem::transmute_copy(&eventhandler),
9433                    core::mem::transmute_copy(&token),
9434                )
9435                .into()
9436            }
9437        }
9438        unsafe extern "system" fn remove_ZoomFactorChanged<
9439            Identity: ICoreWebView2Controller_Impl,
9440            const OFFSET: isize,
9441        >(
9442            this: *mut core::ffi::c_void,
9443            token: i64,
9444        ) -> windows_core::HRESULT {
9445            unsafe {
9446                let this: &Identity =
9447                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
9448                ICoreWebView2Controller_Impl::remove_ZoomFactorChanged(
9449                    this,
9450                    core::mem::transmute_copy(&token),
9451                )
9452                .into()
9453            }
9454        }
9455        unsafe extern "system" fn SetBoundsAndZoomFactor<
9456            Identity: ICoreWebView2Controller_Impl,
9457            const OFFSET: isize,
9458        >(
9459            this: *mut core::ffi::c_void,
9460            bounds: windows::Win32::Foundation::RECT,
9461            zoomfactor: f64,
9462        ) -> windows_core::HRESULT {
9463            unsafe {
9464                let this: &Identity =
9465                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
9466                ICoreWebView2Controller_Impl::SetBoundsAndZoomFactor(
9467                    this,
9468                    core::mem::transmute(&bounds),
9469                    core::mem::transmute_copy(&zoomfactor),
9470                )
9471                .into()
9472            }
9473        }
9474        unsafe extern "system" fn MoveFocus<
9475            Identity: ICoreWebView2Controller_Impl,
9476            const OFFSET: isize,
9477        >(
9478            this: *mut core::ffi::c_void,
9479            reason: COREWEBVIEW2_MOVE_FOCUS_REASON,
9480        ) -> windows_core::HRESULT {
9481            unsafe {
9482                let this: &Identity =
9483                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
9484                ICoreWebView2Controller_Impl::MoveFocus(this, core::mem::transmute_copy(&reason))
9485                    .into()
9486            }
9487        }
9488        unsafe extern "system" fn add_MoveFocusRequested<
9489            Identity: ICoreWebView2Controller_Impl,
9490            const OFFSET: isize,
9491        >(
9492            this: *mut core::ffi::c_void,
9493            eventhandler: *mut core::ffi::c_void,
9494            token: *mut i64,
9495        ) -> windows_core::HRESULT {
9496            unsafe {
9497                let this: &Identity =
9498                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
9499                ICoreWebView2Controller_Impl::add_MoveFocusRequested(
9500                    this,
9501                    core::mem::transmute_copy(&eventhandler),
9502                    core::mem::transmute_copy(&token),
9503                )
9504                .into()
9505            }
9506        }
9507        unsafe extern "system" fn remove_MoveFocusRequested<
9508            Identity: ICoreWebView2Controller_Impl,
9509            const OFFSET: isize,
9510        >(
9511            this: *mut core::ffi::c_void,
9512            token: i64,
9513        ) -> windows_core::HRESULT {
9514            unsafe {
9515                let this: &Identity =
9516                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
9517                ICoreWebView2Controller_Impl::remove_MoveFocusRequested(
9518                    this,
9519                    core::mem::transmute_copy(&token),
9520                )
9521                .into()
9522            }
9523        }
9524        unsafe extern "system" fn add_GotFocus<
9525            Identity: ICoreWebView2Controller_Impl,
9526            const OFFSET: isize,
9527        >(
9528            this: *mut core::ffi::c_void,
9529            eventhandler: *mut core::ffi::c_void,
9530            token: *mut i64,
9531        ) -> windows_core::HRESULT {
9532            unsafe {
9533                let this: &Identity =
9534                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
9535                ICoreWebView2Controller_Impl::add_GotFocus(
9536                    this,
9537                    core::mem::transmute_copy(&eventhandler),
9538                    core::mem::transmute_copy(&token),
9539                )
9540                .into()
9541            }
9542        }
9543        unsafe extern "system" fn remove_GotFocus<
9544            Identity: ICoreWebView2Controller_Impl,
9545            const OFFSET: isize,
9546        >(
9547            this: *mut core::ffi::c_void,
9548            token: i64,
9549        ) -> windows_core::HRESULT {
9550            unsafe {
9551                let this: &Identity =
9552                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
9553                ICoreWebView2Controller_Impl::remove_GotFocus(
9554                    this,
9555                    core::mem::transmute_copy(&token),
9556                )
9557                .into()
9558            }
9559        }
9560        unsafe extern "system" fn add_LostFocus<
9561            Identity: ICoreWebView2Controller_Impl,
9562            const OFFSET: isize,
9563        >(
9564            this: *mut core::ffi::c_void,
9565            eventhandler: *mut core::ffi::c_void,
9566            token: *mut i64,
9567        ) -> windows_core::HRESULT {
9568            unsafe {
9569                let this: &Identity =
9570                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
9571                ICoreWebView2Controller_Impl::add_LostFocus(
9572                    this,
9573                    core::mem::transmute_copy(&eventhandler),
9574                    core::mem::transmute_copy(&token),
9575                )
9576                .into()
9577            }
9578        }
9579        unsafe extern "system" fn remove_LostFocus<
9580            Identity: ICoreWebView2Controller_Impl,
9581            const OFFSET: isize,
9582        >(
9583            this: *mut core::ffi::c_void,
9584            token: i64,
9585        ) -> windows_core::HRESULT {
9586            unsafe {
9587                let this: &Identity =
9588                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
9589                ICoreWebView2Controller_Impl::remove_LostFocus(
9590                    this,
9591                    core::mem::transmute_copy(&token),
9592                )
9593                .into()
9594            }
9595        }
9596        unsafe extern "system" fn add_AcceleratorKeyPressed<
9597            Identity: ICoreWebView2Controller_Impl,
9598            const OFFSET: isize,
9599        >(
9600            this: *mut core::ffi::c_void,
9601            eventhandler: *mut core::ffi::c_void,
9602            token: *mut i64,
9603        ) -> windows_core::HRESULT {
9604            unsafe {
9605                let this: &Identity =
9606                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
9607                ICoreWebView2Controller_Impl::add_AcceleratorKeyPressed(
9608                    this,
9609                    core::mem::transmute_copy(&eventhandler),
9610                    core::mem::transmute_copy(&token),
9611                )
9612                .into()
9613            }
9614        }
9615        unsafe extern "system" fn remove_AcceleratorKeyPressed<
9616            Identity: ICoreWebView2Controller_Impl,
9617            const OFFSET: isize,
9618        >(
9619            this: *mut core::ffi::c_void,
9620            token: i64,
9621        ) -> windows_core::HRESULT {
9622            unsafe {
9623                let this: &Identity =
9624                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
9625                ICoreWebView2Controller_Impl::remove_AcceleratorKeyPressed(
9626                    this,
9627                    core::mem::transmute_copy(&token),
9628                )
9629                .into()
9630            }
9631        }
9632        unsafe extern "system" fn ParentWindow<
9633            Identity: ICoreWebView2Controller_Impl,
9634            const OFFSET: isize,
9635        >(
9636            this: *mut core::ffi::c_void,
9637            parentwindow: *mut windows::Win32::Foundation::HWND,
9638        ) -> windows_core::HRESULT {
9639            unsafe {
9640                let this: &Identity =
9641                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
9642                ICoreWebView2Controller_Impl::ParentWindow(
9643                    this,
9644                    core::mem::transmute_copy(&parentwindow),
9645                )
9646                .into()
9647            }
9648        }
9649        unsafe extern "system" fn SetParentWindow<
9650            Identity: ICoreWebView2Controller_Impl,
9651            const OFFSET: isize,
9652        >(
9653            this: *mut core::ffi::c_void,
9654            parentwindow: windows::Win32::Foundation::HWND,
9655        ) -> windows_core::HRESULT {
9656            unsafe {
9657                let this: &Identity =
9658                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
9659                ICoreWebView2Controller_Impl::SetParentWindow(
9660                    this,
9661                    core::mem::transmute_copy(&parentwindow),
9662                )
9663                .into()
9664            }
9665        }
9666        unsafe extern "system" fn NotifyParentWindowPositionChanged<
9667            Identity: ICoreWebView2Controller_Impl,
9668            const OFFSET: isize,
9669        >(
9670            this: *mut core::ffi::c_void,
9671        ) -> windows_core::HRESULT {
9672            unsafe {
9673                let this: &Identity =
9674                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
9675                ICoreWebView2Controller_Impl::NotifyParentWindowPositionChanged(this).into()
9676            }
9677        }
9678        unsafe extern "system" fn Close<
9679            Identity: ICoreWebView2Controller_Impl,
9680            const OFFSET: isize,
9681        >(
9682            this: *mut core::ffi::c_void,
9683        ) -> windows_core::HRESULT {
9684            unsafe {
9685                let this: &Identity =
9686                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
9687                ICoreWebView2Controller_Impl::Close(this).into()
9688            }
9689        }
9690        unsafe extern "system" fn CoreWebView2<
9691            Identity: ICoreWebView2Controller_Impl,
9692            const OFFSET: isize,
9693        >(
9694            this: *mut core::ffi::c_void,
9695            corewebview2: *mut *mut core::ffi::c_void,
9696        ) -> windows_core::HRESULT {
9697            unsafe {
9698                let this: &Identity =
9699                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
9700                match ICoreWebView2Controller_Impl::CoreWebView2(this) {
9701                    Ok(ok__) => {
9702                        corewebview2.write(core::mem::transmute(ok__));
9703                        windows_core::HRESULT(0)
9704                    }
9705                    Err(err) => err.into(),
9706                }
9707            }
9708        }
9709        Self {
9710            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
9711            IsVisible: IsVisible::<Identity, OFFSET>,
9712            SetIsVisible: SetIsVisible::<Identity, OFFSET>,
9713            Bounds: Bounds::<Identity, OFFSET>,
9714            SetBounds: SetBounds::<Identity, OFFSET>,
9715            ZoomFactor: ZoomFactor::<Identity, OFFSET>,
9716            SetZoomFactor: SetZoomFactor::<Identity, OFFSET>,
9717            add_ZoomFactorChanged: add_ZoomFactorChanged::<Identity, OFFSET>,
9718            remove_ZoomFactorChanged: remove_ZoomFactorChanged::<Identity, OFFSET>,
9719            SetBoundsAndZoomFactor: SetBoundsAndZoomFactor::<Identity, OFFSET>,
9720            MoveFocus: MoveFocus::<Identity, OFFSET>,
9721            add_MoveFocusRequested: add_MoveFocusRequested::<Identity, OFFSET>,
9722            remove_MoveFocusRequested: remove_MoveFocusRequested::<Identity, OFFSET>,
9723            add_GotFocus: add_GotFocus::<Identity, OFFSET>,
9724            remove_GotFocus: remove_GotFocus::<Identity, OFFSET>,
9725            add_LostFocus: add_LostFocus::<Identity, OFFSET>,
9726            remove_LostFocus: remove_LostFocus::<Identity, OFFSET>,
9727            add_AcceleratorKeyPressed: add_AcceleratorKeyPressed::<Identity, OFFSET>,
9728            remove_AcceleratorKeyPressed: remove_AcceleratorKeyPressed::<Identity, OFFSET>,
9729            ParentWindow: ParentWindow::<Identity, OFFSET>,
9730            SetParentWindow: SetParentWindow::<Identity, OFFSET>,
9731            NotifyParentWindowPositionChanged: NotifyParentWindowPositionChanged::<Identity, OFFSET>,
9732            Close: Close::<Identity, OFFSET>,
9733            CoreWebView2: CoreWebView2::<Identity, OFFSET>,
9734        }
9735    }
9736    pub fn matches(iid: &windows_core::GUID) -> bool {
9737        iid == &<ICoreWebView2Controller as windows_core::Interface>::IID
9738    }
9739}
9740impl windows_core::RuntimeName for ICoreWebView2Controller {}
9741windows_core::imp::define_interface!(
9742    ICoreWebView2Controller2,
9743    ICoreWebView2Controller2_Vtbl,
9744    0xc979903e_d4ca_4228_92eb_47ee3fa96eab
9745);
9746impl core::ops::Deref for ICoreWebView2Controller2 {
9747    type Target = ICoreWebView2Controller;
9748    fn deref(&self) -> &Self::Target {
9749        unsafe { core::mem::transmute(self) }
9750    }
9751}
9752windows_core::imp::interface_hierarchy!(
9753    ICoreWebView2Controller2,
9754    windows_core::IUnknown,
9755    ICoreWebView2Controller
9756);
9757impl ICoreWebView2Controller2 {
9758    pub unsafe fn DefaultBackgroundColor(
9759        &self,
9760        value: *mut COREWEBVIEW2_COLOR,
9761    ) -> windows_core::Result<()> {
9762        unsafe {
9763            (windows_core::Interface::vtable(self).DefaultBackgroundColor)(
9764                windows_core::Interface::as_raw(self),
9765                value as _,
9766            )
9767            .ok()
9768        }
9769    }
9770    pub unsafe fn SetDefaultBackgroundColor(
9771        &self,
9772        value: COREWEBVIEW2_COLOR,
9773    ) -> windows_core::Result<()> {
9774        unsafe {
9775            (windows_core::Interface::vtable(self).SetDefaultBackgroundColor)(
9776                windows_core::Interface::as_raw(self),
9777                core::mem::transmute(value),
9778            )
9779            .ok()
9780        }
9781    }
9782}
9783#[repr(C)]
9784#[doc(hidden)]
9785pub struct ICoreWebView2Controller2_Vtbl {
9786    pub base__: ICoreWebView2Controller_Vtbl,
9787    pub DefaultBackgroundColor: unsafe extern "system" fn(
9788        *mut core::ffi::c_void,
9789        *mut COREWEBVIEW2_COLOR,
9790    ) -> windows_core::HRESULT,
9791    pub SetDefaultBackgroundColor: unsafe extern "system" fn(
9792        *mut core::ffi::c_void,
9793        COREWEBVIEW2_COLOR,
9794    ) -> windows_core::HRESULT,
9795}
9796pub trait ICoreWebView2Controller2_Impl: ICoreWebView2Controller_Impl {
9797    fn DefaultBackgroundColor(&self, value: *mut COREWEBVIEW2_COLOR) -> windows_core::Result<()>;
9798    fn SetDefaultBackgroundColor(&self, value: &COREWEBVIEW2_COLOR) -> windows_core::Result<()>;
9799}
9800impl ICoreWebView2Controller2_Vtbl {
9801    pub const fn new<Identity: ICoreWebView2Controller2_Impl, const OFFSET: isize>() -> Self {
9802        unsafe extern "system" fn DefaultBackgroundColor<
9803            Identity: ICoreWebView2Controller2_Impl,
9804            const OFFSET: isize,
9805        >(
9806            this: *mut core::ffi::c_void,
9807            value: *mut COREWEBVIEW2_COLOR,
9808        ) -> windows_core::HRESULT {
9809            unsafe {
9810                let this: &Identity =
9811                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
9812                ICoreWebView2Controller2_Impl::DefaultBackgroundColor(
9813                    this,
9814                    core::mem::transmute_copy(&value),
9815                )
9816                .into()
9817            }
9818        }
9819        unsafe extern "system" fn SetDefaultBackgroundColor<
9820            Identity: ICoreWebView2Controller2_Impl,
9821            const OFFSET: isize,
9822        >(
9823            this: *mut core::ffi::c_void,
9824            value: COREWEBVIEW2_COLOR,
9825        ) -> windows_core::HRESULT {
9826            unsafe {
9827                let this: &Identity =
9828                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
9829                ICoreWebView2Controller2_Impl::SetDefaultBackgroundColor(
9830                    this,
9831                    core::mem::transmute(&value),
9832                )
9833                .into()
9834            }
9835        }
9836        Self {
9837            base__: ICoreWebView2Controller_Vtbl::new::<Identity, OFFSET>(),
9838            DefaultBackgroundColor: DefaultBackgroundColor::<Identity, OFFSET>,
9839            SetDefaultBackgroundColor: SetDefaultBackgroundColor::<Identity, OFFSET>,
9840        }
9841    }
9842    pub fn matches(iid: &windows_core::GUID) -> bool {
9843        iid == &<ICoreWebView2Controller2 as windows_core::Interface>::IID
9844            || iid == &<ICoreWebView2Controller as windows_core::Interface>::IID
9845    }
9846}
9847impl windows_core::RuntimeName for ICoreWebView2Controller2 {}
9848windows_core::imp::define_interface!(
9849    ICoreWebView2Controller3,
9850    ICoreWebView2Controller3_Vtbl,
9851    0xf9614724_5d2b_41dc_aef7_73d62b51543b
9852);
9853impl core::ops::Deref for ICoreWebView2Controller3 {
9854    type Target = ICoreWebView2Controller2;
9855    fn deref(&self) -> &Self::Target {
9856        unsafe { core::mem::transmute(self) }
9857    }
9858}
9859windows_core::imp::interface_hierarchy!(
9860    ICoreWebView2Controller3,
9861    windows_core::IUnknown,
9862    ICoreWebView2Controller,
9863    ICoreWebView2Controller2
9864);
9865impl ICoreWebView2Controller3 {
9866    pub unsafe fn RasterizationScale(&self, scale: *mut f64) -> windows_core::Result<()> {
9867        unsafe {
9868            (windows_core::Interface::vtable(self).RasterizationScale)(
9869                windows_core::Interface::as_raw(self),
9870                scale as _,
9871            )
9872            .ok()
9873        }
9874    }
9875    pub unsafe fn SetRasterizationScale(&self, scale: f64) -> windows_core::Result<()> {
9876        unsafe {
9877            (windows_core::Interface::vtable(self).SetRasterizationScale)(
9878                windows_core::Interface::as_raw(self),
9879                scale,
9880            )
9881            .ok()
9882        }
9883    }
9884    pub unsafe fn ShouldDetectMonitorScaleChanges(
9885        &self,
9886        value: *mut windows_core::BOOL,
9887    ) -> windows_core::Result<()> {
9888        unsafe {
9889            (windows_core::Interface::vtable(self).ShouldDetectMonitorScaleChanges)(
9890                windows_core::Interface::as_raw(self),
9891                value as _,
9892            )
9893            .ok()
9894        }
9895    }
9896    pub unsafe fn SetShouldDetectMonitorScaleChanges(
9897        &self,
9898        value: bool,
9899    ) -> windows_core::Result<()> {
9900        unsafe {
9901            (windows_core::Interface::vtable(self).SetShouldDetectMonitorScaleChanges)(
9902                windows_core::Interface::as_raw(self),
9903                value.into(),
9904            )
9905            .ok()
9906        }
9907    }
9908    pub unsafe fn add_RasterizationScaleChanged<P0>(
9909        &self,
9910        eventhandler: P0,
9911        token: *mut i64,
9912    ) -> windows_core::Result<()>
9913    where
9914        P0: windows_core::Param<ICoreWebView2RasterizationScaleChangedEventHandler>,
9915    {
9916        unsafe {
9917            (windows_core::Interface::vtable(self).add_RasterizationScaleChanged)(
9918                windows_core::Interface::as_raw(self),
9919                eventhandler.param().abi(),
9920                token as _,
9921            )
9922            .ok()
9923        }
9924    }
9925    pub unsafe fn remove_RasterizationScaleChanged(&self, token: i64) -> windows_core::Result<()> {
9926        unsafe {
9927            (windows_core::Interface::vtable(self).remove_RasterizationScaleChanged)(
9928                windows_core::Interface::as_raw(self),
9929                token,
9930            )
9931            .ok()
9932        }
9933    }
9934    pub unsafe fn BoundsMode(
9935        &self,
9936        boundsmode: *mut COREWEBVIEW2_BOUNDS_MODE,
9937    ) -> windows_core::Result<()> {
9938        unsafe {
9939            (windows_core::Interface::vtable(self).BoundsMode)(
9940                windows_core::Interface::as_raw(self),
9941                boundsmode as _,
9942            )
9943            .ok()
9944        }
9945    }
9946    pub unsafe fn SetBoundsMode(
9947        &self,
9948        boundsmode: COREWEBVIEW2_BOUNDS_MODE,
9949    ) -> windows_core::Result<()> {
9950        unsafe {
9951            (windows_core::Interface::vtable(self).SetBoundsMode)(
9952                windows_core::Interface::as_raw(self),
9953                boundsmode,
9954            )
9955            .ok()
9956        }
9957    }
9958}
9959#[repr(C)]
9960#[doc(hidden)]
9961pub struct ICoreWebView2Controller3_Vtbl {
9962    pub base__: ICoreWebView2Controller2_Vtbl,
9963    pub RasterizationScale:
9964        unsafe extern "system" fn(*mut core::ffi::c_void, *mut f64) -> windows_core::HRESULT,
9965    pub SetRasterizationScale:
9966        unsafe extern "system" fn(*mut core::ffi::c_void, f64) -> windows_core::HRESULT,
9967    pub ShouldDetectMonitorScaleChanges: unsafe extern "system" fn(
9968        *mut core::ffi::c_void,
9969        *mut windows_core::BOOL,
9970    ) -> windows_core::HRESULT,
9971    pub SetShouldDetectMonitorScaleChanges: unsafe extern "system" fn(
9972        *mut core::ffi::c_void,
9973        windows_core::BOOL,
9974    ) -> windows_core::HRESULT,
9975    pub add_RasterizationScaleChanged: unsafe extern "system" fn(
9976        *mut core::ffi::c_void,
9977        *mut core::ffi::c_void,
9978        *mut i64,
9979    ) -> windows_core::HRESULT,
9980    pub remove_RasterizationScaleChanged:
9981        unsafe extern "system" fn(*mut core::ffi::c_void, i64) -> windows_core::HRESULT,
9982    pub BoundsMode: unsafe extern "system" fn(
9983        *mut core::ffi::c_void,
9984        *mut COREWEBVIEW2_BOUNDS_MODE,
9985    ) -> windows_core::HRESULT,
9986    pub SetBoundsMode: unsafe extern "system" fn(
9987        *mut core::ffi::c_void,
9988        COREWEBVIEW2_BOUNDS_MODE,
9989    ) -> windows_core::HRESULT,
9990}
9991pub trait ICoreWebView2Controller3_Impl: ICoreWebView2Controller2_Impl {
9992    fn RasterizationScale(&self, scale: *mut f64) -> windows_core::Result<()>;
9993    fn SetRasterizationScale(&self, scale: f64) -> windows_core::Result<()>;
9994    fn ShouldDetectMonitorScaleChanges(
9995        &self,
9996        value: *mut windows_core::BOOL,
9997    ) -> windows_core::Result<()>;
9998    fn SetShouldDetectMonitorScaleChanges(
9999        &self,
10000        value: windows_core::BOOL,
10001    ) -> windows_core::Result<()>;
10002    fn add_RasterizationScaleChanged(
10003        &self,
10004        eventhandler: windows_core::Ref<'_, ICoreWebView2RasterizationScaleChangedEventHandler>,
10005        token: *mut i64,
10006    ) -> windows_core::Result<()>;
10007    fn remove_RasterizationScaleChanged(&self, token: i64) -> windows_core::Result<()>;
10008    fn BoundsMode(&self, boundsmode: *mut COREWEBVIEW2_BOUNDS_MODE) -> windows_core::Result<()>;
10009    fn SetBoundsMode(&self, boundsmode: COREWEBVIEW2_BOUNDS_MODE) -> windows_core::Result<()>;
10010}
10011impl ICoreWebView2Controller3_Vtbl {
10012    pub const fn new<Identity: ICoreWebView2Controller3_Impl, const OFFSET: isize>() -> Self {
10013        unsafe extern "system" fn RasterizationScale<
10014            Identity: ICoreWebView2Controller3_Impl,
10015            const OFFSET: isize,
10016        >(
10017            this: *mut core::ffi::c_void,
10018            scale: *mut f64,
10019        ) -> windows_core::HRESULT {
10020            unsafe {
10021                let this: &Identity =
10022                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
10023                ICoreWebView2Controller3_Impl::RasterizationScale(
10024                    this,
10025                    core::mem::transmute_copy(&scale),
10026                )
10027                .into()
10028            }
10029        }
10030        unsafe extern "system" fn SetRasterizationScale<
10031            Identity: ICoreWebView2Controller3_Impl,
10032            const OFFSET: isize,
10033        >(
10034            this: *mut core::ffi::c_void,
10035            scale: f64,
10036        ) -> windows_core::HRESULT {
10037            unsafe {
10038                let this: &Identity =
10039                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
10040                ICoreWebView2Controller3_Impl::SetRasterizationScale(
10041                    this,
10042                    core::mem::transmute_copy(&scale),
10043                )
10044                .into()
10045            }
10046        }
10047        unsafe extern "system" fn ShouldDetectMonitorScaleChanges<
10048            Identity: ICoreWebView2Controller3_Impl,
10049            const OFFSET: isize,
10050        >(
10051            this: *mut core::ffi::c_void,
10052            value: *mut windows_core::BOOL,
10053        ) -> windows_core::HRESULT {
10054            unsafe {
10055                let this: &Identity =
10056                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
10057                ICoreWebView2Controller3_Impl::ShouldDetectMonitorScaleChanges(
10058                    this,
10059                    core::mem::transmute_copy(&value),
10060                )
10061                .into()
10062            }
10063        }
10064        unsafe extern "system" fn SetShouldDetectMonitorScaleChanges<
10065            Identity: ICoreWebView2Controller3_Impl,
10066            const OFFSET: isize,
10067        >(
10068            this: *mut core::ffi::c_void,
10069            value: windows_core::BOOL,
10070        ) -> windows_core::HRESULT {
10071            unsafe {
10072                let this: &Identity =
10073                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
10074                ICoreWebView2Controller3_Impl::SetShouldDetectMonitorScaleChanges(
10075                    this,
10076                    core::mem::transmute_copy(&value),
10077                )
10078                .into()
10079            }
10080        }
10081        unsafe extern "system" fn add_RasterizationScaleChanged<
10082            Identity: ICoreWebView2Controller3_Impl,
10083            const OFFSET: isize,
10084        >(
10085            this: *mut core::ffi::c_void,
10086            eventhandler: *mut core::ffi::c_void,
10087            token: *mut i64,
10088        ) -> windows_core::HRESULT {
10089            unsafe {
10090                let this: &Identity =
10091                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
10092                ICoreWebView2Controller3_Impl::add_RasterizationScaleChanged(
10093                    this,
10094                    core::mem::transmute_copy(&eventhandler),
10095                    core::mem::transmute_copy(&token),
10096                )
10097                .into()
10098            }
10099        }
10100        unsafe extern "system" fn remove_RasterizationScaleChanged<
10101            Identity: ICoreWebView2Controller3_Impl,
10102            const OFFSET: isize,
10103        >(
10104            this: *mut core::ffi::c_void,
10105            token: i64,
10106        ) -> windows_core::HRESULT {
10107            unsafe {
10108                let this: &Identity =
10109                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
10110                ICoreWebView2Controller3_Impl::remove_RasterizationScaleChanged(
10111                    this,
10112                    core::mem::transmute_copy(&token),
10113                )
10114                .into()
10115            }
10116        }
10117        unsafe extern "system" fn BoundsMode<
10118            Identity: ICoreWebView2Controller3_Impl,
10119            const OFFSET: isize,
10120        >(
10121            this: *mut core::ffi::c_void,
10122            boundsmode: *mut COREWEBVIEW2_BOUNDS_MODE,
10123        ) -> windows_core::HRESULT {
10124            unsafe {
10125                let this: &Identity =
10126                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
10127                ICoreWebView2Controller3_Impl::BoundsMode(
10128                    this,
10129                    core::mem::transmute_copy(&boundsmode),
10130                )
10131                .into()
10132            }
10133        }
10134        unsafe extern "system" fn SetBoundsMode<
10135            Identity: ICoreWebView2Controller3_Impl,
10136            const OFFSET: isize,
10137        >(
10138            this: *mut core::ffi::c_void,
10139            boundsmode: COREWEBVIEW2_BOUNDS_MODE,
10140        ) -> windows_core::HRESULT {
10141            unsafe {
10142                let this: &Identity =
10143                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
10144                ICoreWebView2Controller3_Impl::SetBoundsMode(
10145                    this,
10146                    core::mem::transmute_copy(&boundsmode),
10147                )
10148                .into()
10149            }
10150        }
10151        Self {
10152            base__: ICoreWebView2Controller2_Vtbl::new::<Identity, OFFSET>(),
10153            RasterizationScale: RasterizationScale::<Identity, OFFSET>,
10154            SetRasterizationScale: SetRasterizationScale::<Identity, OFFSET>,
10155            ShouldDetectMonitorScaleChanges: ShouldDetectMonitorScaleChanges::<Identity, OFFSET>,
10156            SetShouldDetectMonitorScaleChanges: SetShouldDetectMonitorScaleChanges::<
10157                Identity,
10158                OFFSET,
10159            >,
10160            add_RasterizationScaleChanged: add_RasterizationScaleChanged::<Identity, OFFSET>,
10161            remove_RasterizationScaleChanged: remove_RasterizationScaleChanged::<Identity, OFFSET>,
10162            BoundsMode: BoundsMode::<Identity, OFFSET>,
10163            SetBoundsMode: SetBoundsMode::<Identity, OFFSET>,
10164        }
10165    }
10166    pub fn matches(iid: &windows_core::GUID) -> bool {
10167        iid == &<ICoreWebView2Controller3 as windows_core::Interface>::IID
10168            || iid == &<ICoreWebView2Controller as windows_core::Interface>::IID
10169            || iid == &<ICoreWebView2Controller2 as windows_core::Interface>::IID
10170    }
10171}
10172impl windows_core::RuntimeName for ICoreWebView2Controller3 {}
10173windows_core::imp::define_interface!(
10174    ICoreWebView2Controller4,
10175    ICoreWebView2Controller4_Vtbl,
10176    0x97d418d5_a426_4e49_a151_e1a10f327d9e
10177);
10178impl core::ops::Deref for ICoreWebView2Controller4 {
10179    type Target = ICoreWebView2Controller3;
10180    fn deref(&self) -> &Self::Target {
10181        unsafe { core::mem::transmute(self) }
10182    }
10183}
10184windows_core::imp::interface_hierarchy!(
10185    ICoreWebView2Controller4,
10186    windows_core::IUnknown,
10187    ICoreWebView2Controller,
10188    ICoreWebView2Controller2,
10189    ICoreWebView2Controller3
10190);
10191impl ICoreWebView2Controller4 {
10192    pub unsafe fn AllowExternalDrop(
10193        &self,
10194        value: *mut windows_core::BOOL,
10195    ) -> windows_core::Result<()> {
10196        unsafe {
10197            (windows_core::Interface::vtable(self).AllowExternalDrop)(
10198                windows_core::Interface::as_raw(self),
10199                value as _,
10200            )
10201            .ok()
10202        }
10203    }
10204    pub unsafe fn SetAllowExternalDrop(&self, value: bool) -> windows_core::Result<()> {
10205        unsafe {
10206            (windows_core::Interface::vtable(self).SetAllowExternalDrop)(
10207                windows_core::Interface::as_raw(self),
10208                value.into(),
10209            )
10210            .ok()
10211        }
10212    }
10213}
10214#[repr(C)]
10215#[doc(hidden)]
10216pub struct ICoreWebView2Controller4_Vtbl {
10217    pub base__: ICoreWebView2Controller3_Vtbl,
10218    pub AllowExternalDrop: unsafe extern "system" fn(
10219        *mut core::ffi::c_void,
10220        *mut windows_core::BOOL,
10221    ) -> windows_core::HRESULT,
10222    pub SetAllowExternalDrop: unsafe extern "system" fn(
10223        *mut core::ffi::c_void,
10224        windows_core::BOOL,
10225    ) -> windows_core::HRESULT,
10226}
10227pub trait ICoreWebView2Controller4_Impl: ICoreWebView2Controller3_Impl {
10228    fn AllowExternalDrop(&self, value: *mut windows_core::BOOL) -> windows_core::Result<()>;
10229    fn SetAllowExternalDrop(&self, value: windows_core::BOOL) -> windows_core::Result<()>;
10230}
10231impl ICoreWebView2Controller4_Vtbl {
10232    pub const fn new<Identity: ICoreWebView2Controller4_Impl, const OFFSET: isize>() -> Self {
10233        unsafe extern "system" fn AllowExternalDrop<
10234            Identity: ICoreWebView2Controller4_Impl,
10235            const OFFSET: isize,
10236        >(
10237            this: *mut core::ffi::c_void,
10238            value: *mut windows_core::BOOL,
10239        ) -> windows_core::HRESULT {
10240            unsafe {
10241                let this: &Identity =
10242                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
10243                ICoreWebView2Controller4_Impl::AllowExternalDrop(
10244                    this,
10245                    core::mem::transmute_copy(&value),
10246                )
10247                .into()
10248            }
10249        }
10250        unsafe extern "system" fn SetAllowExternalDrop<
10251            Identity: ICoreWebView2Controller4_Impl,
10252            const OFFSET: isize,
10253        >(
10254            this: *mut core::ffi::c_void,
10255            value: windows_core::BOOL,
10256        ) -> windows_core::HRESULT {
10257            unsafe {
10258                let this: &Identity =
10259                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
10260                ICoreWebView2Controller4_Impl::SetAllowExternalDrop(
10261                    this,
10262                    core::mem::transmute_copy(&value),
10263                )
10264                .into()
10265            }
10266        }
10267        Self {
10268            base__: ICoreWebView2Controller3_Vtbl::new::<Identity, OFFSET>(),
10269            AllowExternalDrop: AllowExternalDrop::<Identity, OFFSET>,
10270            SetAllowExternalDrop: SetAllowExternalDrop::<Identity, OFFSET>,
10271        }
10272    }
10273    pub fn matches(iid: &windows_core::GUID) -> bool {
10274        iid == &<ICoreWebView2Controller4 as windows_core::Interface>::IID
10275            || iid == &<ICoreWebView2Controller as windows_core::Interface>::IID
10276            || iid == &<ICoreWebView2Controller2 as windows_core::Interface>::IID
10277            || iid == &<ICoreWebView2Controller3 as windows_core::Interface>::IID
10278    }
10279}
10280impl windows_core::RuntimeName for ICoreWebView2Controller4 {}
10281windows_core::imp::define_interface!(
10282    ICoreWebView2ControllerOptions,
10283    ICoreWebView2ControllerOptions_Vtbl,
10284    0x12aae616_8ccb_44ec_bcb3_eb1831881635
10285);
10286windows_core::imp::interface_hierarchy!(ICoreWebView2ControllerOptions, windows_core::IUnknown);
10287impl ICoreWebView2ControllerOptions {
10288    pub unsafe fn ProfileName(&self, value: *mut windows_core::PWSTR) -> windows_core::Result<()> {
10289        unsafe {
10290            (windows_core::Interface::vtable(self).ProfileName)(
10291                windows_core::Interface::as_raw(self),
10292                value as _,
10293            )
10294            .ok()
10295        }
10296    }
10297    pub unsafe fn SetProfileName<P0>(&self, value: P0) -> windows_core::Result<()>
10298    where
10299        P0: windows_core::Param<windows_core::PCWSTR>,
10300    {
10301        unsafe {
10302            (windows_core::Interface::vtable(self).SetProfileName)(
10303                windows_core::Interface::as_raw(self),
10304                value.param().abi(),
10305            )
10306            .ok()
10307        }
10308    }
10309    pub unsafe fn IsInPrivateModeEnabled(
10310        &self,
10311        value: *mut windows_core::BOOL,
10312    ) -> windows_core::Result<()> {
10313        unsafe {
10314            (windows_core::Interface::vtable(self).IsInPrivateModeEnabled)(
10315                windows_core::Interface::as_raw(self),
10316                value as _,
10317            )
10318            .ok()
10319        }
10320    }
10321    pub unsafe fn SetIsInPrivateModeEnabled(&self, value: bool) -> windows_core::Result<()> {
10322        unsafe {
10323            (windows_core::Interface::vtable(self).SetIsInPrivateModeEnabled)(
10324                windows_core::Interface::as_raw(self),
10325                value.into(),
10326            )
10327            .ok()
10328        }
10329    }
10330}
10331#[repr(C)]
10332#[doc(hidden)]
10333pub struct ICoreWebView2ControllerOptions_Vtbl {
10334    pub base__: windows_core::IUnknown_Vtbl,
10335    pub ProfileName: unsafe extern "system" fn(
10336        *mut core::ffi::c_void,
10337        *mut windows_core::PWSTR,
10338    ) -> windows_core::HRESULT,
10339    pub SetProfileName: unsafe extern "system" fn(
10340        *mut core::ffi::c_void,
10341        windows_core::PCWSTR,
10342    ) -> windows_core::HRESULT,
10343    pub IsInPrivateModeEnabled: unsafe extern "system" fn(
10344        *mut core::ffi::c_void,
10345        *mut windows_core::BOOL,
10346    ) -> windows_core::HRESULT,
10347    pub SetIsInPrivateModeEnabled: unsafe extern "system" fn(
10348        *mut core::ffi::c_void,
10349        windows_core::BOOL,
10350    ) -> windows_core::HRESULT,
10351}
10352pub trait ICoreWebView2ControllerOptions_Impl: windows_core::IUnknownImpl {
10353    fn ProfileName(&self, value: *mut windows_core::PWSTR) -> windows_core::Result<()>;
10354    fn SetProfileName(&self, value: &windows_core::PCWSTR) -> windows_core::Result<()>;
10355    fn IsInPrivateModeEnabled(&self, value: *mut windows_core::BOOL) -> windows_core::Result<()>;
10356    fn SetIsInPrivateModeEnabled(&self, value: windows_core::BOOL) -> windows_core::Result<()>;
10357}
10358impl ICoreWebView2ControllerOptions_Vtbl {
10359    pub const fn new<Identity: ICoreWebView2ControllerOptions_Impl, const OFFSET: isize>() -> Self {
10360        unsafe extern "system" fn ProfileName<
10361            Identity: ICoreWebView2ControllerOptions_Impl,
10362            const OFFSET: isize,
10363        >(
10364            this: *mut core::ffi::c_void,
10365            value: *mut windows_core::PWSTR,
10366        ) -> windows_core::HRESULT {
10367            unsafe {
10368                let this: &Identity =
10369                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
10370                ICoreWebView2ControllerOptions_Impl::ProfileName(
10371                    this,
10372                    core::mem::transmute_copy(&value),
10373                )
10374                .into()
10375            }
10376        }
10377        unsafe extern "system" fn SetProfileName<
10378            Identity: ICoreWebView2ControllerOptions_Impl,
10379            const OFFSET: isize,
10380        >(
10381            this: *mut core::ffi::c_void,
10382            value: windows_core::PCWSTR,
10383        ) -> windows_core::HRESULT {
10384            unsafe {
10385                let this: &Identity =
10386                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
10387                ICoreWebView2ControllerOptions_Impl::SetProfileName(
10388                    this,
10389                    core::mem::transmute(&value),
10390                )
10391                .into()
10392            }
10393        }
10394        unsafe extern "system" fn IsInPrivateModeEnabled<
10395            Identity: ICoreWebView2ControllerOptions_Impl,
10396            const OFFSET: isize,
10397        >(
10398            this: *mut core::ffi::c_void,
10399            value: *mut windows_core::BOOL,
10400        ) -> windows_core::HRESULT {
10401            unsafe {
10402                let this: &Identity =
10403                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
10404                ICoreWebView2ControllerOptions_Impl::IsInPrivateModeEnabled(
10405                    this,
10406                    core::mem::transmute_copy(&value),
10407                )
10408                .into()
10409            }
10410        }
10411        unsafe extern "system" fn SetIsInPrivateModeEnabled<
10412            Identity: ICoreWebView2ControllerOptions_Impl,
10413            const OFFSET: isize,
10414        >(
10415            this: *mut core::ffi::c_void,
10416            value: windows_core::BOOL,
10417        ) -> windows_core::HRESULT {
10418            unsafe {
10419                let this: &Identity =
10420                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
10421                ICoreWebView2ControllerOptions_Impl::SetIsInPrivateModeEnabled(
10422                    this,
10423                    core::mem::transmute_copy(&value),
10424                )
10425                .into()
10426            }
10427        }
10428        Self {
10429            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
10430            ProfileName: ProfileName::<Identity, OFFSET>,
10431            SetProfileName: SetProfileName::<Identity, OFFSET>,
10432            IsInPrivateModeEnabled: IsInPrivateModeEnabled::<Identity, OFFSET>,
10433            SetIsInPrivateModeEnabled: SetIsInPrivateModeEnabled::<Identity, OFFSET>,
10434        }
10435    }
10436    pub fn matches(iid: &windows_core::GUID) -> bool {
10437        iid == &<ICoreWebView2ControllerOptions as windows_core::Interface>::IID
10438    }
10439}
10440impl windows_core::RuntimeName for ICoreWebView2ControllerOptions {}
10441windows_core::imp::define_interface!(
10442    ICoreWebView2ControllerOptions2,
10443    ICoreWebView2ControllerOptions2_Vtbl,
10444    0x06c991d8_9e7e_11ed_a8fc_0242ac120002
10445);
10446impl core::ops::Deref for ICoreWebView2ControllerOptions2 {
10447    type Target = ICoreWebView2ControllerOptions;
10448    fn deref(&self) -> &Self::Target {
10449        unsafe { core::mem::transmute(self) }
10450    }
10451}
10452windows_core::imp::interface_hierarchy!(
10453    ICoreWebView2ControllerOptions2,
10454    windows_core::IUnknown,
10455    ICoreWebView2ControllerOptions
10456);
10457impl ICoreWebView2ControllerOptions2 {
10458    pub unsafe fn ScriptLocale(&self, value: *mut windows_core::PWSTR) -> windows_core::Result<()> {
10459        unsafe {
10460            (windows_core::Interface::vtable(self).ScriptLocale)(
10461                windows_core::Interface::as_raw(self),
10462                value as _,
10463            )
10464            .ok()
10465        }
10466    }
10467    pub unsafe fn SetScriptLocale<P0>(&self, value: P0) -> windows_core::Result<()>
10468    where
10469        P0: windows_core::Param<windows_core::PCWSTR>,
10470    {
10471        unsafe {
10472            (windows_core::Interface::vtable(self).SetScriptLocale)(
10473                windows_core::Interface::as_raw(self),
10474                value.param().abi(),
10475            )
10476            .ok()
10477        }
10478    }
10479}
10480#[repr(C)]
10481#[doc(hidden)]
10482pub struct ICoreWebView2ControllerOptions2_Vtbl {
10483    pub base__: ICoreWebView2ControllerOptions_Vtbl,
10484    pub ScriptLocale: unsafe extern "system" fn(
10485        *mut core::ffi::c_void,
10486        *mut windows_core::PWSTR,
10487    ) -> windows_core::HRESULT,
10488    pub SetScriptLocale: unsafe extern "system" fn(
10489        *mut core::ffi::c_void,
10490        windows_core::PCWSTR,
10491    ) -> windows_core::HRESULT,
10492}
10493pub trait ICoreWebView2ControllerOptions2_Impl: ICoreWebView2ControllerOptions_Impl {
10494    fn ScriptLocale(&self, value: *mut windows_core::PWSTR) -> windows_core::Result<()>;
10495    fn SetScriptLocale(&self, value: &windows_core::PCWSTR) -> windows_core::Result<()>;
10496}
10497impl ICoreWebView2ControllerOptions2_Vtbl {
10498    pub const fn new<Identity: ICoreWebView2ControllerOptions2_Impl, const OFFSET: isize>() -> Self
10499    {
10500        unsafe extern "system" fn ScriptLocale<
10501            Identity: ICoreWebView2ControllerOptions2_Impl,
10502            const OFFSET: isize,
10503        >(
10504            this: *mut core::ffi::c_void,
10505            value: *mut windows_core::PWSTR,
10506        ) -> windows_core::HRESULT {
10507            unsafe {
10508                let this: &Identity =
10509                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
10510                ICoreWebView2ControllerOptions2_Impl::ScriptLocale(
10511                    this,
10512                    core::mem::transmute_copy(&value),
10513                )
10514                .into()
10515            }
10516        }
10517        unsafe extern "system" fn SetScriptLocale<
10518            Identity: ICoreWebView2ControllerOptions2_Impl,
10519            const OFFSET: isize,
10520        >(
10521            this: *mut core::ffi::c_void,
10522            value: windows_core::PCWSTR,
10523        ) -> windows_core::HRESULT {
10524            unsafe {
10525                let this: &Identity =
10526                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
10527                ICoreWebView2ControllerOptions2_Impl::SetScriptLocale(
10528                    this,
10529                    core::mem::transmute(&value),
10530                )
10531                .into()
10532            }
10533        }
10534        Self {
10535            base__: ICoreWebView2ControllerOptions_Vtbl::new::<Identity, OFFSET>(),
10536            ScriptLocale: ScriptLocale::<Identity, OFFSET>,
10537            SetScriptLocale: SetScriptLocale::<Identity, OFFSET>,
10538        }
10539    }
10540    pub fn matches(iid: &windows_core::GUID) -> bool {
10541        iid == &<ICoreWebView2ControllerOptions2 as windows_core::Interface>::IID
10542            || iid == &<ICoreWebView2ControllerOptions as windows_core::Interface>::IID
10543    }
10544}
10545impl windows_core::RuntimeName for ICoreWebView2ControllerOptions2 {}
10546windows_core::imp::define_interface!(
10547    ICoreWebView2Cookie,
10548    ICoreWebView2Cookie_Vtbl,
10549    0xad26d6be_1486_43e6_bf87_a2034006ca21
10550);
10551windows_core::imp::interface_hierarchy!(ICoreWebView2Cookie, windows_core::IUnknown);
10552impl ICoreWebView2Cookie {
10553    pub unsafe fn Name(&self, name: *mut windows_core::PWSTR) -> windows_core::Result<()> {
10554        unsafe {
10555            (windows_core::Interface::vtable(self).Name)(
10556                windows_core::Interface::as_raw(self),
10557                name as _,
10558            )
10559            .ok()
10560        }
10561    }
10562    pub unsafe fn Value(&self, value: *mut windows_core::PWSTR) -> windows_core::Result<()> {
10563        unsafe {
10564            (windows_core::Interface::vtable(self).Value)(
10565                windows_core::Interface::as_raw(self),
10566                value as _,
10567            )
10568            .ok()
10569        }
10570    }
10571    pub unsafe fn SetValue<P0>(&self, value: P0) -> windows_core::Result<()>
10572    where
10573        P0: windows_core::Param<windows_core::PCWSTR>,
10574    {
10575        unsafe {
10576            (windows_core::Interface::vtable(self).SetValue)(
10577                windows_core::Interface::as_raw(self),
10578                value.param().abi(),
10579            )
10580            .ok()
10581        }
10582    }
10583    pub unsafe fn Domain(&self, domain: *mut windows_core::PWSTR) -> windows_core::Result<()> {
10584        unsafe {
10585            (windows_core::Interface::vtable(self).Domain)(
10586                windows_core::Interface::as_raw(self),
10587                domain as _,
10588            )
10589            .ok()
10590        }
10591    }
10592    pub unsafe fn Path(&self, path: *mut windows_core::PWSTR) -> windows_core::Result<()> {
10593        unsafe {
10594            (windows_core::Interface::vtable(self).Path)(
10595                windows_core::Interface::as_raw(self),
10596                path as _,
10597            )
10598            .ok()
10599        }
10600    }
10601    pub unsafe fn Expires(&self, expires: *mut f64) -> windows_core::Result<()> {
10602        unsafe {
10603            (windows_core::Interface::vtable(self).Expires)(
10604                windows_core::Interface::as_raw(self),
10605                expires as _,
10606            )
10607            .ok()
10608        }
10609    }
10610    pub unsafe fn SetExpires(&self, expires: f64) -> windows_core::Result<()> {
10611        unsafe {
10612            (windows_core::Interface::vtable(self).SetExpires)(
10613                windows_core::Interface::as_raw(self),
10614                expires,
10615            )
10616            .ok()
10617        }
10618    }
10619    pub unsafe fn IsHttpOnly(
10620        &self,
10621        ishttponly: *mut windows_core::BOOL,
10622    ) -> windows_core::Result<()> {
10623        unsafe {
10624            (windows_core::Interface::vtable(self).IsHttpOnly)(
10625                windows_core::Interface::as_raw(self),
10626                ishttponly as _,
10627            )
10628            .ok()
10629        }
10630    }
10631    pub unsafe fn SetIsHttpOnly(&self, ishttponly: bool) -> windows_core::Result<()> {
10632        unsafe {
10633            (windows_core::Interface::vtable(self).SetIsHttpOnly)(
10634                windows_core::Interface::as_raw(self),
10635                ishttponly.into(),
10636            )
10637            .ok()
10638        }
10639    }
10640    pub unsafe fn SameSite(
10641        &self,
10642        samesite: *mut COREWEBVIEW2_COOKIE_SAME_SITE_KIND,
10643    ) -> windows_core::Result<()> {
10644        unsafe {
10645            (windows_core::Interface::vtable(self).SameSite)(
10646                windows_core::Interface::as_raw(self),
10647                samesite as _,
10648            )
10649            .ok()
10650        }
10651    }
10652    pub unsafe fn SetSameSite(
10653        &self,
10654        samesite: COREWEBVIEW2_COOKIE_SAME_SITE_KIND,
10655    ) -> windows_core::Result<()> {
10656        unsafe {
10657            (windows_core::Interface::vtable(self).SetSameSite)(
10658                windows_core::Interface::as_raw(self),
10659                samesite,
10660            )
10661            .ok()
10662        }
10663    }
10664    pub unsafe fn IsSecure(&self, issecure: *mut windows_core::BOOL) -> windows_core::Result<()> {
10665        unsafe {
10666            (windows_core::Interface::vtable(self).IsSecure)(
10667                windows_core::Interface::as_raw(self),
10668                issecure as _,
10669            )
10670            .ok()
10671        }
10672    }
10673    pub unsafe fn SetIsSecure(&self, issecure: bool) -> windows_core::Result<()> {
10674        unsafe {
10675            (windows_core::Interface::vtable(self).SetIsSecure)(
10676                windows_core::Interface::as_raw(self),
10677                issecure.into(),
10678            )
10679            .ok()
10680        }
10681    }
10682    pub unsafe fn IsSession(&self, issession: *mut windows_core::BOOL) -> windows_core::Result<()> {
10683        unsafe {
10684            (windows_core::Interface::vtable(self).IsSession)(
10685                windows_core::Interface::as_raw(self),
10686                issession as _,
10687            )
10688            .ok()
10689        }
10690    }
10691}
10692#[repr(C)]
10693#[doc(hidden)]
10694pub struct ICoreWebView2Cookie_Vtbl {
10695    pub base__: windows_core::IUnknown_Vtbl,
10696    pub Name: unsafe extern "system" fn(
10697        *mut core::ffi::c_void,
10698        *mut windows_core::PWSTR,
10699    ) -> windows_core::HRESULT,
10700    pub Value: unsafe extern "system" fn(
10701        *mut core::ffi::c_void,
10702        *mut windows_core::PWSTR,
10703    ) -> windows_core::HRESULT,
10704    pub SetValue: unsafe extern "system" fn(
10705        *mut core::ffi::c_void,
10706        windows_core::PCWSTR,
10707    ) -> windows_core::HRESULT,
10708    pub Domain: unsafe extern "system" fn(
10709        *mut core::ffi::c_void,
10710        *mut windows_core::PWSTR,
10711    ) -> windows_core::HRESULT,
10712    pub Path: unsafe extern "system" fn(
10713        *mut core::ffi::c_void,
10714        *mut windows_core::PWSTR,
10715    ) -> windows_core::HRESULT,
10716    pub Expires:
10717        unsafe extern "system" fn(*mut core::ffi::c_void, *mut f64) -> windows_core::HRESULT,
10718    pub SetExpires: unsafe extern "system" fn(*mut core::ffi::c_void, f64) -> windows_core::HRESULT,
10719    pub IsHttpOnly: unsafe extern "system" fn(
10720        *mut core::ffi::c_void,
10721        *mut windows_core::BOOL,
10722    ) -> windows_core::HRESULT,
10723    pub SetIsHttpOnly: unsafe extern "system" fn(
10724        *mut core::ffi::c_void,
10725        windows_core::BOOL,
10726    ) -> windows_core::HRESULT,
10727    pub SameSite: unsafe extern "system" fn(
10728        *mut core::ffi::c_void,
10729        *mut COREWEBVIEW2_COOKIE_SAME_SITE_KIND,
10730    ) -> windows_core::HRESULT,
10731    pub SetSameSite: unsafe extern "system" fn(
10732        *mut core::ffi::c_void,
10733        COREWEBVIEW2_COOKIE_SAME_SITE_KIND,
10734    ) -> windows_core::HRESULT,
10735    pub IsSecure: unsafe extern "system" fn(
10736        *mut core::ffi::c_void,
10737        *mut windows_core::BOOL,
10738    ) -> windows_core::HRESULT,
10739    pub SetIsSecure: unsafe extern "system" fn(
10740        *mut core::ffi::c_void,
10741        windows_core::BOOL,
10742    ) -> windows_core::HRESULT,
10743    pub IsSession: unsafe extern "system" fn(
10744        *mut core::ffi::c_void,
10745        *mut windows_core::BOOL,
10746    ) -> windows_core::HRESULT,
10747}
10748pub trait ICoreWebView2Cookie_Impl: windows_core::IUnknownImpl {
10749    fn Name(&self, name: *mut windows_core::PWSTR) -> windows_core::Result<()>;
10750    fn Value(&self, value: *mut windows_core::PWSTR) -> windows_core::Result<()>;
10751    fn SetValue(&self, value: &windows_core::PCWSTR) -> windows_core::Result<()>;
10752    fn Domain(&self, domain: *mut windows_core::PWSTR) -> windows_core::Result<()>;
10753    fn Path(&self, path: *mut windows_core::PWSTR) -> windows_core::Result<()>;
10754    fn Expires(&self, expires: *mut f64) -> windows_core::Result<()>;
10755    fn SetExpires(&self, expires: f64) -> windows_core::Result<()>;
10756    fn IsHttpOnly(&self, ishttponly: *mut windows_core::BOOL) -> windows_core::Result<()>;
10757    fn SetIsHttpOnly(&self, ishttponly: windows_core::BOOL) -> windows_core::Result<()>;
10758    fn SameSite(
10759        &self,
10760        samesite: *mut COREWEBVIEW2_COOKIE_SAME_SITE_KIND,
10761    ) -> windows_core::Result<()>;
10762    fn SetSameSite(&self, samesite: COREWEBVIEW2_COOKIE_SAME_SITE_KIND)
10763        -> windows_core::Result<()>;
10764    fn IsSecure(&self, issecure: *mut windows_core::BOOL) -> windows_core::Result<()>;
10765    fn SetIsSecure(&self, issecure: windows_core::BOOL) -> windows_core::Result<()>;
10766    fn IsSession(&self, issession: *mut windows_core::BOOL) -> windows_core::Result<()>;
10767}
10768impl ICoreWebView2Cookie_Vtbl {
10769    pub const fn new<Identity: ICoreWebView2Cookie_Impl, const OFFSET: isize>() -> Self {
10770        unsafe extern "system" fn Name<Identity: ICoreWebView2Cookie_Impl, const OFFSET: isize>(
10771            this: *mut core::ffi::c_void,
10772            name: *mut windows_core::PWSTR,
10773        ) -> windows_core::HRESULT {
10774            unsafe {
10775                let this: &Identity =
10776                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
10777                ICoreWebView2Cookie_Impl::Name(this, core::mem::transmute_copy(&name)).into()
10778            }
10779        }
10780        unsafe extern "system" fn Value<Identity: ICoreWebView2Cookie_Impl, const OFFSET: isize>(
10781            this: *mut core::ffi::c_void,
10782            value: *mut windows_core::PWSTR,
10783        ) -> windows_core::HRESULT {
10784            unsafe {
10785                let this: &Identity =
10786                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
10787                ICoreWebView2Cookie_Impl::Value(this, core::mem::transmute_copy(&value)).into()
10788            }
10789        }
10790        unsafe extern "system" fn SetValue<
10791            Identity: ICoreWebView2Cookie_Impl,
10792            const OFFSET: isize,
10793        >(
10794            this: *mut core::ffi::c_void,
10795            value: windows_core::PCWSTR,
10796        ) -> windows_core::HRESULT {
10797            unsafe {
10798                let this: &Identity =
10799                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
10800                ICoreWebView2Cookie_Impl::SetValue(this, core::mem::transmute(&value)).into()
10801            }
10802        }
10803        unsafe extern "system" fn Domain<
10804            Identity: ICoreWebView2Cookie_Impl,
10805            const OFFSET: isize,
10806        >(
10807            this: *mut core::ffi::c_void,
10808            domain: *mut windows_core::PWSTR,
10809        ) -> windows_core::HRESULT {
10810            unsafe {
10811                let this: &Identity =
10812                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
10813                ICoreWebView2Cookie_Impl::Domain(this, core::mem::transmute_copy(&domain)).into()
10814            }
10815        }
10816        unsafe extern "system" fn Path<Identity: ICoreWebView2Cookie_Impl, const OFFSET: isize>(
10817            this: *mut core::ffi::c_void,
10818            path: *mut windows_core::PWSTR,
10819        ) -> windows_core::HRESULT {
10820            unsafe {
10821                let this: &Identity =
10822                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
10823                ICoreWebView2Cookie_Impl::Path(this, core::mem::transmute_copy(&path)).into()
10824            }
10825        }
10826        unsafe extern "system" fn Expires<
10827            Identity: ICoreWebView2Cookie_Impl,
10828            const OFFSET: isize,
10829        >(
10830            this: *mut core::ffi::c_void,
10831            expires: *mut f64,
10832        ) -> windows_core::HRESULT {
10833            unsafe {
10834                let this: &Identity =
10835                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
10836                ICoreWebView2Cookie_Impl::Expires(this, core::mem::transmute_copy(&expires)).into()
10837            }
10838        }
10839        unsafe extern "system" fn SetExpires<
10840            Identity: ICoreWebView2Cookie_Impl,
10841            const OFFSET: isize,
10842        >(
10843            this: *mut core::ffi::c_void,
10844            expires: f64,
10845        ) -> windows_core::HRESULT {
10846            unsafe {
10847                let this: &Identity =
10848                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
10849                ICoreWebView2Cookie_Impl::SetExpires(this, core::mem::transmute_copy(&expires))
10850                    .into()
10851            }
10852        }
10853        unsafe extern "system" fn IsHttpOnly<
10854            Identity: ICoreWebView2Cookie_Impl,
10855            const OFFSET: isize,
10856        >(
10857            this: *mut core::ffi::c_void,
10858            ishttponly: *mut windows_core::BOOL,
10859        ) -> windows_core::HRESULT {
10860            unsafe {
10861                let this: &Identity =
10862                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
10863                ICoreWebView2Cookie_Impl::IsHttpOnly(this, core::mem::transmute_copy(&ishttponly))
10864                    .into()
10865            }
10866        }
10867        unsafe extern "system" fn SetIsHttpOnly<
10868            Identity: ICoreWebView2Cookie_Impl,
10869            const OFFSET: isize,
10870        >(
10871            this: *mut core::ffi::c_void,
10872            ishttponly: windows_core::BOOL,
10873        ) -> windows_core::HRESULT {
10874            unsafe {
10875                let this: &Identity =
10876                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
10877                ICoreWebView2Cookie_Impl::SetIsHttpOnly(
10878                    this,
10879                    core::mem::transmute_copy(&ishttponly),
10880                )
10881                .into()
10882            }
10883        }
10884        unsafe extern "system" fn SameSite<
10885            Identity: ICoreWebView2Cookie_Impl,
10886            const OFFSET: isize,
10887        >(
10888            this: *mut core::ffi::c_void,
10889            samesite: *mut COREWEBVIEW2_COOKIE_SAME_SITE_KIND,
10890        ) -> windows_core::HRESULT {
10891            unsafe {
10892                let this: &Identity =
10893                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
10894                ICoreWebView2Cookie_Impl::SameSite(this, core::mem::transmute_copy(&samesite))
10895                    .into()
10896            }
10897        }
10898        unsafe extern "system" fn SetSameSite<
10899            Identity: ICoreWebView2Cookie_Impl,
10900            const OFFSET: isize,
10901        >(
10902            this: *mut core::ffi::c_void,
10903            samesite: COREWEBVIEW2_COOKIE_SAME_SITE_KIND,
10904        ) -> windows_core::HRESULT {
10905            unsafe {
10906                let this: &Identity =
10907                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
10908                ICoreWebView2Cookie_Impl::SetSameSite(this, core::mem::transmute_copy(&samesite))
10909                    .into()
10910            }
10911        }
10912        unsafe extern "system" fn IsSecure<
10913            Identity: ICoreWebView2Cookie_Impl,
10914            const OFFSET: isize,
10915        >(
10916            this: *mut core::ffi::c_void,
10917            issecure: *mut windows_core::BOOL,
10918        ) -> windows_core::HRESULT {
10919            unsafe {
10920                let this: &Identity =
10921                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
10922                ICoreWebView2Cookie_Impl::IsSecure(this, core::mem::transmute_copy(&issecure))
10923                    .into()
10924            }
10925        }
10926        unsafe extern "system" fn SetIsSecure<
10927            Identity: ICoreWebView2Cookie_Impl,
10928            const OFFSET: isize,
10929        >(
10930            this: *mut core::ffi::c_void,
10931            issecure: windows_core::BOOL,
10932        ) -> windows_core::HRESULT {
10933            unsafe {
10934                let this: &Identity =
10935                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
10936                ICoreWebView2Cookie_Impl::SetIsSecure(this, core::mem::transmute_copy(&issecure))
10937                    .into()
10938            }
10939        }
10940        unsafe extern "system" fn IsSession<
10941            Identity: ICoreWebView2Cookie_Impl,
10942            const OFFSET: isize,
10943        >(
10944            this: *mut core::ffi::c_void,
10945            issession: *mut windows_core::BOOL,
10946        ) -> windows_core::HRESULT {
10947            unsafe {
10948                let this: &Identity =
10949                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
10950                ICoreWebView2Cookie_Impl::IsSession(this, core::mem::transmute_copy(&issession))
10951                    .into()
10952            }
10953        }
10954        Self {
10955            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
10956            Name: Name::<Identity, OFFSET>,
10957            Value: Value::<Identity, OFFSET>,
10958            SetValue: SetValue::<Identity, OFFSET>,
10959            Domain: Domain::<Identity, OFFSET>,
10960            Path: Path::<Identity, OFFSET>,
10961            Expires: Expires::<Identity, OFFSET>,
10962            SetExpires: SetExpires::<Identity, OFFSET>,
10963            IsHttpOnly: IsHttpOnly::<Identity, OFFSET>,
10964            SetIsHttpOnly: SetIsHttpOnly::<Identity, OFFSET>,
10965            SameSite: SameSite::<Identity, OFFSET>,
10966            SetSameSite: SetSameSite::<Identity, OFFSET>,
10967            IsSecure: IsSecure::<Identity, OFFSET>,
10968            SetIsSecure: SetIsSecure::<Identity, OFFSET>,
10969            IsSession: IsSession::<Identity, OFFSET>,
10970        }
10971    }
10972    pub fn matches(iid: &windows_core::GUID) -> bool {
10973        iid == &<ICoreWebView2Cookie as windows_core::Interface>::IID
10974    }
10975}
10976impl windows_core::RuntimeName for ICoreWebView2Cookie {}
10977windows_core::imp::define_interface!(
10978    ICoreWebView2CookieList,
10979    ICoreWebView2CookieList_Vtbl,
10980    0xf7f6f714_5d2a_43c6_9503_346ece02d186
10981);
10982windows_core::imp::interface_hierarchy!(ICoreWebView2CookieList, windows_core::IUnknown);
10983impl ICoreWebView2CookieList {
10984    pub unsafe fn Count(&self, value: *mut u32) -> windows_core::Result<()> {
10985        unsafe {
10986            (windows_core::Interface::vtable(self).Count)(
10987                windows_core::Interface::as_raw(self),
10988                value as _,
10989            )
10990            .ok()
10991        }
10992    }
10993    pub unsafe fn GetValueAtIndex(&self, index: u32) -> windows_core::Result<ICoreWebView2Cookie> {
10994        unsafe {
10995            let mut result__ = core::mem::zeroed();
10996            (windows_core::Interface::vtable(self).GetValueAtIndex)(
10997                windows_core::Interface::as_raw(self),
10998                index,
10999                &mut result__,
11000            )
11001            .and_then(|| windows_core::Type::from_abi(result__))
11002        }
11003    }
11004}
11005#[repr(C)]
11006#[doc(hidden)]
11007pub struct ICoreWebView2CookieList_Vtbl {
11008    pub base__: windows_core::IUnknown_Vtbl,
11009    pub Count: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
11010    pub GetValueAtIndex: unsafe extern "system" fn(
11011        *mut core::ffi::c_void,
11012        u32,
11013        *mut *mut core::ffi::c_void,
11014    ) -> windows_core::HRESULT,
11015}
11016pub trait ICoreWebView2CookieList_Impl: windows_core::IUnknownImpl {
11017    fn Count(&self, value: *mut u32) -> windows_core::Result<()>;
11018    fn GetValueAtIndex(&self, index: u32) -> windows_core::Result<ICoreWebView2Cookie>;
11019}
11020impl ICoreWebView2CookieList_Vtbl {
11021    pub const fn new<Identity: ICoreWebView2CookieList_Impl, const OFFSET: isize>() -> Self {
11022        unsafe extern "system" fn Count<
11023            Identity: ICoreWebView2CookieList_Impl,
11024            const OFFSET: isize,
11025        >(
11026            this: *mut core::ffi::c_void,
11027            value: *mut u32,
11028        ) -> windows_core::HRESULT {
11029            unsafe {
11030                let this: &Identity =
11031                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
11032                ICoreWebView2CookieList_Impl::Count(this, core::mem::transmute_copy(&value)).into()
11033            }
11034        }
11035        unsafe extern "system" fn GetValueAtIndex<
11036            Identity: ICoreWebView2CookieList_Impl,
11037            const OFFSET: isize,
11038        >(
11039            this: *mut core::ffi::c_void,
11040            index: u32,
11041            value: *mut *mut core::ffi::c_void,
11042        ) -> windows_core::HRESULT {
11043            unsafe {
11044                let this: &Identity =
11045                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
11046                match ICoreWebView2CookieList_Impl::GetValueAtIndex(
11047                    this,
11048                    core::mem::transmute_copy(&index),
11049                ) {
11050                    Ok(ok__) => {
11051                        value.write(core::mem::transmute(ok__));
11052                        windows_core::HRESULT(0)
11053                    }
11054                    Err(err) => err.into(),
11055                }
11056            }
11057        }
11058        Self {
11059            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
11060            Count: Count::<Identity, OFFSET>,
11061            GetValueAtIndex: GetValueAtIndex::<Identity, OFFSET>,
11062        }
11063    }
11064    pub fn matches(iid: &windows_core::GUID) -> bool {
11065        iid == &<ICoreWebView2CookieList as windows_core::Interface>::IID
11066    }
11067}
11068impl windows_core::RuntimeName for ICoreWebView2CookieList {}
11069windows_core::imp::define_interface!(
11070    ICoreWebView2CookieManager,
11071    ICoreWebView2CookieManager_Vtbl,
11072    0x177cd9e7_b6f5_451a_94a0_5d7a3a4c4141
11073);
11074windows_core::imp::interface_hierarchy!(ICoreWebView2CookieManager, windows_core::IUnknown);
11075impl ICoreWebView2CookieManager {
11076    pub unsafe fn CreateCookie<P0, P1, P2, P3>(
11077        &self,
11078        name: P0,
11079        value: P1,
11080        domain: P2,
11081        path: P3,
11082    ) -> windows_core::Result<ICoreWebView2Cookie>
11083    where
11084        P0: windows_core::Param<windows_core::PCWSTR>,
11085        P1: windows_core::Param<windows_core::PCWSTR>,
11086        P2: windows_core::Param<windows_core::PCWSTR>,
11087        P3: windows_core::Param<windows_core::PCWSTR>,
11088    {
11089        unsafe {
11090            let mut result__ = core::mem::zeroed();
11091            (windows_core::Interface::vtable(self).CreateCookie)(
11092                windows_core::Interface::as_raw(self),
11093                name.param().abi(),
11094                value.param().abi(),
11095                domain.param().abi(),
11096                path.param().abi(),
11097                &mut result__,
11098            )
11099            .and_then(|| windows_core::Type::from_abi(result__))
11100        }
11101    }
11102    pub unsafe fn CopyCookie<P0>(
11103        &self,
11104        cookieparam: P0,
11105    ) -> windows_core::Result<ICoreWebView2Cookie>
11106    where
11107        P0: windows_core::Param<ICoreWebView2Cookie>,
11108    {
11109        unsafe {
11110            let mut result__ = core::mem::zeroed();
11111            (windows_core::Interface::vtable(self).CopyCookie)(
11112                windows_core::Interface::as_raw(self),
11113                cookieparam.param().abi(),
11114                &mut result__,
11115            )
11116            .and_then(|| windows_core::Type::from_abi(result__))
11117        }
11118    }
11119    pub unsafe fn GetCookies<P0, P1>(&self, uri: P0, handler: P1) -> windows_core::Result<()>
11120    where
11121        P0: windows_core::Param<windows_core::PCWSTR>,
11122        P1: windows_core::Param<ICoreWebView2GetCookiesCompletedHandler>,
11123    {
11124        unsafe {
11125            (windows_core::Interface::vtable(self).GetCookies)(
11126                windows_core::Interface::as_raw(self),
11127                uri.param().abi(),
11128                handler.param().abi(),
11129            )
11130            .ok()
11131        }
11132    }
11133    pub unsafe fn AddOrUpdateCookie<P0>(&self, cookie: P0) -> windows_core::Result<()>
11134    where
11135        P0: windows_core::Param<ICoreWebView2Cookie>,
11136    {
11137        unsafe {
11138            (windows_core::Interface::vtable(self).AddOrUpdateCookie)(
11139                windows_core::Interface::as_raw(self),
11140                cookie.param().abi(),
11141            )
11142            .ok()
11143        }
11144    }
11145    pub unsafe fn DeleteCookie<P0>(&self, cookie: P0) -> windows_core::Result<()>
11146    where
11147        P0: windows_core::Param<ICoreWebView2Cookie>,
11148    {
11149        unsafe {
11150            (windows_core::Interface::vtable(self).DeleteCookie)(
11151                windows_core::Interface::as_raw(self),
11152                cookie.param().abi(),
11153            )
11154            .ok()
11155        }
11156    }
11157    pub unsafe fn DeleteCookies<P0, P1>(&self, name: P0, uri: P1) -> windows_core::Result<()>
11158    where
11159        P0: windows_core::Param<windows_core::PCWSTR>,
11160        P1: windows_core::Param<windows_core::PCWSTR>,
11161    {
11162        unsafe {
11163            (windows_core::Interface::vtable(self).DeleteCookies)(
11164                windows_core::Interface::as_raw(self),
11165                name.param().abi(),
11166                uri.param().abi(),
11167            )
11168            .ok()
11169        }
11170    }
11171    pub unsafe fn DeleteCookiesWithDomainAndPath<P0, P1, P2>(
11172        &self,
11173        name: P0,
11174        domain: P1,
11175        path: P2,
11176    ) -> windows_core::Result<()>
11177    where
11178        P0: windows_core::Param<windows_core::PCWSTR>,
11179        P1: windows_core::Param<windows_core::PCWSTR>,
11180        P2: windows_core::Param<windows_core::PCWSTR>,
11181    {
11182        unsafe {
11183            (windows_core::Interface::vtable(self).DeleteCookiesWithDomainAndPath)(
11184                windows_core::Interface::as_raw(self),
11185                name.param().abi(),
11186                domain.param().abi(),
11187                path.param().abi(),
11188            )
11189            .ok()
11190        }
11191    }
11192    pub unsafe fn DeleteAllCookies(&self) -> windows_core::Result<()> {
11193        unsafe {
11194            (windows_core::Interface::vtable(self).DeleteAllCookies)(
11195                windows_core::Interface::as_raw(self),
11196            )
11197            .ok()
11198        }
11199    }
11200}
11201#[repr(C)]
11202#[doc(hidden)]
11203pub struct ICoreWebView2CookieManager_Vtbl {
11204    pub base__: windows_core::IUnknown_Vtbl,
11205    pub CreateCookie: unsafe extern "system" fn(
11206        *mut core::ffi::c_void,
11207        windows_core::PCWSTR,
11208        windows_core::PCWSTR,
11209        windows_core::PCWSTR,
11210        windows_core::PCWSTR,
11211        *mut *mut core::ffi::c_void,
11212    ) -> windows_core::HRESULT,
11213    pub CopyCookie: unsafe extern "system" fn(
11214        *mut core::ffi::c_void,
11215        *mut core::ffi::c_void,
11216        *mut *mut core::ffi::c_void,
11217    ) -> windows_core::HRESULT,
11218    pub GetCookies: unsafe extern "system" fn(
11219        *mut core::ffi::c_void,
11220        windows_core::PCWSTR,
11221        *mut core::ffi::c_void,
11222    ) -> windows_core::HRESULT,
11223    pub AddOrUpdateCookie: unsafe extern "system" fn(
11224        *mut core::ffi::c_void,
11225        *mut core::ffi::c_void,
11226    ) -> windows_core::HRESULT,
11227    pub DeleteCookie: unsafe extern "system" fn(
11228        *mut core::ffi::c_void,
11229        *mut core::ffi::c_void,
11230    ) -> windows_core::HRESULT,
11231    pub DeleteCookies: unsafe extern "system" fn(
11232        *mut core::ffi::c_void,
11233        windows_core::PCWSTR,
11234        windows_core::PCWSTR,
11235    ) -> windows_core::HRESULT,
11236    pub DeleteCookiesWithDomainAndPath: unsafe extern "system" fn(
11237        *mut core::ffi::c_void,
11238        windows_core::PCWSTR,
11239        windows_core::PCWSTR,
11240        windows_core::PCWSTR,
11241    ) -> windows_core::HRESULT,
11242    pub DeleteAllCookies:
11243        unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
11244}
11245pub trait ICoreWebView2CookieManager_Impl: windows_core::IUnknownImpl {
11246    fn CreateCookie(
11247        &self,
11248        name: &windows_core::PCWSTR,
11249        value: &windows_core::PCWSTR,
11250        domain: &windows_core::PCWSTR,
11251        path: &windows_core::PCWSTR,
11252    ) -> windows_core::Result<ICoreWebView2Cookie>;
11253    fn CopyCookie(
11254        &self,
11255        cookieparam: windows_core::Ref<'_, ICoreWebView2Cookie>,
11256    ) -> windows_core::Result<ICoreWebView2Cookie>;
11257    fn GetCookies(
11258        &self,
11259        uri: &windows_core::PCWSTR,
11260        handler: windows_core::Ref<'_, ICoreWebView2GetCookiesCompletedHandler>,
11261    ) -> windows_core::Result<()>;
11262    fn AddOrUpdateCookie(
11263        &self,
11264        cookie: windows_core::Ref<'_, ICoreWebView2Cookie>,
11265    ) -> windows_core::Result<()>;
11266    fn DeleteCookie(
11267        &self,
11268        cookie: windows_core::Ref<'_, ICoreWebView2Cookie>,
11269    ) -> windows_core::Result<()>;
11270    fn DeleteCookies(
11271        &self,
11272        name: &windows_core::PCWSTR,
11273        uri: &windows_core::PCWSTR,
11274    ) -> windows_core::Result<()>;
11275    fn DeleteCookiesWithDomainAndPath(
11276        &self,
11277        name: &windows_core::PCWSTR,
11278        domain: &windows_core::PCWSTR,
11279        path: &windows_core::PCWSTR,
11280    ) -> windows_core::Result<()>;
11281    fn DeleteAllCookies(&self) -> windows_core::Result<()>;
11282}
11283impl ICoreWebView2CookieManager_Vtbl {
11284    pub const fn new<Identity: ICoreWebView2CookieManager_Impl, const OFFSET: isize>() -> Self {
11285        unsafe extern "system" fn CreateCookie<
11286            Identity: ICoreWebView2CookieManager_Impl,
11287            const OFFSET: isize,
11288        >(
11289            this: *mut core::ffi::c_void,
11290            name: windows_core::PCWSTR,
11291            value: windows_core::PCWSTR,
11292            domain: windows_core::PCWSTR,
11293            path: windows_core::PCWSTR,
11294            cookie: *mut *mut core::ffi::c_void,
11295        ) -> windows_core::HRESULT {
11296            unsafe {
11297                let this: &Identity =
11298                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
11299                match ICoreWebView2CookieManager_Impl::CreateCookie(
11300                    this,
11301                    core::mem::transmute(&name),
11302                    core::mem::transmute(&value),
11303                    core::mem::transmute(&domain),
11304                    core::mem::transmute(&path),
11305                ) {
11306                    Ok(ok__) => {
11307                        cookie.write(core::mem::transmute(ok__));
11308                        windows_core::HRESULT(0)
11309                    }
11310                    Err(err) => err.into(),
11311                }
11312            }
11313        }
11314        unsafe extern "system" fn CopyCookie<
11315            Identity: ICoreWebView2CookieManager_Impl,
11316            const OFFSET: isize,
11317        >(
11318            this: *mut core::ffi::c_void,
11319            cookieparam: *mut core::ffi::c_void,
11320            cookie: *mut *mut core::ffi::c_void,
11321        ) -> windows_core::HRESULT {
11322            unsafe {
11323                let this: &Identity =
11324                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
11325                match ICoreWebView2CookieManager_Impl::CopyCookie(
11326                    this,
11327                    core::mem::transmute_copy(&cookieparam),
11328                ) {
11329                    Ok(ok__) => {
11330                        cookie.write(core::mem::transmute(ok__));
11331                        windows_core::HRESULT(0)
11332                    }
11333                    Err(err) => err.into(),
11334                }
11335            }
11336        }
11337        unsafe extern "system" fn GetCookies<
11338            Identity: ICoreWebView2CookieManager_Impl,
11339            const OFFSET: isize,
11340        >(
11341            this: *mut core::ffi::c_void,
11342            uri: windows_core::PCWSTR,
11343            handler: *mut core::ffi::c_void,
11344        ) -> windows_core::HRESULT {
11345            unsafe {
11346                let this: &Identity =
11347                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
11348                ICoreWebView2CookieManager_Impl::GetCookies(
11349                    this,
11350                    core::mem::transmute(&uri),
11351                    core::mem::transmute_copy(&handler),
11352                )
11353                .into()
11354            }
11355        }
11356        unsafe extern "system" fn AddOrUpdateCookie<
11357            Identity: ICoreWebView2CookieManager_Impl,
11358            const OFFSET: isize,
11359        >(
11360            this: *mut core::ffi::c_void,
11361            cookie: *mut core::ffi::c_void,
11362        ) -> windows_core::HRESULT {
11363            unsafe {
11364                let this: &Identity =
11365                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
11366                ICoreWebView2CookieManager_Impl::AddOrUpdateCookie(
11367                    this,
11368                    core::mem::transmute_copy(&cookie),
11369                )
11370                .into()
11371            }
11372        }
11373        unsafe extern "system" fn DeleteCookie<
11374            Identity: ICoreWebView2CookieManager_Impl,
11375            const OFFSET: isize,
11376        >(
11377            this: *mut core::ffi::c_void,
11378            cookie: *mut core::ffi::c_void,
11379        ) -> windows_core::HRESULT {
11380            unsafe {
11381                let this: &Identity =
11382                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
11383                ICoreWebView2CookieManager_Impl::DeleteCookie(
11384                    this,
11385                    core::mem::transmute_copy(&cookie),
11386                )
11387                .into()
11388            }
11389        }
11390        unsafe extern "system" fn DeleteCookies<
11391            Identity: ICoreWebView2CookieManager_Impl,
11392            const OFFSET: isize,
11393        >(
11394            this: *mut core::ffi::c_void,
11395            name: windows_core::PCWSTR,
11396            uri: windows_core::PCWSTR,
11397        ) -> windows_core::HRESULT {
11398            unsafe {
11399                let this: &Identity =
11400                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
11401                ICoreWebView2CookieManager_Impl::DeleteCookies(
11402                    this,
11403                    core::mem::transmute(&name),
11404                    core::mem::transmute(&uri),
11405                )
11406                .into()
11407            }
11408        }
11409        unsafe extern "system" fn DeleteCookiesWithDomainAndPath<
11410            Identity: ICoreWebView2CookieManager_Impl,
11411            const OFFSET: isize,
11412        >(
11413            this: *mut core::ffi::c_void,
11414            name: windows_core::PCWSTR,
11415            domain: windows_core::PCWSTR,
11416            path: windows_core::PCWSTR,
11417        ) -> windows_core::HRESULT {
11418            unsafe {
11419                let this: &Identity =
11420                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
11421                ICoreWebView2CookieManager_Impl::DeleteCookiesWithDomainAndPath(
11422                    this,
11423                    core::mem::transmute(&name),
11424                    core::mem::transmute(&domain),
11425                    core::mem::transmute(&path),
11426                )
11427                .into()
11428            }
11429        }
11430        unsafe extern "system" fn DeleteAllCookies<
11431            Identity: ICoreWebView2CookieManager_Impl,
11432            const OFFSET: isize,
11433        >(
11434            this: *mut core::ffi::c_void,
11435        ) -> windows_core::HRESULT {
11436            unsafe {
11437                let this: &Identity =
11438                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
11439                ICoreWebView2CookieManager_Impl::DeleteAllCookies(this).into()
11440            }
11441        }
11442        Self {
11443            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
11444            CreateCookie: CreateCookie::<Identity, OFFSET>,
11445            CopyCookie: CopyCookie::<Identity, OFFSET>,
11446            GetCookies: GetCookies::<Identity, OFFSET>,
11447            AddOrUpdateCookie: AddOrUpdateCookie::<Identity, OFFSET>,
11448            DeleteCookie: DeleteCookie::<Identity, OFFSET>,
11449            DeleteCookies: DeleteCookies::<Identity, OFFSET>,
11450            DeleteCookiesWithDomainAndPath: DeleteCookiesWithDomainAndPath::<Identity, OFFSET>,
11451            DeleteAllCookies: DeleteAllCookies::<Identity, OFFSET>,
11452        }
11453    }
11454    pub fn matches(iid: &windows_core::GUID) -> bool {
11455        iid == &<ICoreWebView2CookieManager as windows_core::Interface>::IID
11456    }
11457}
11458impl windows_core::RuntimeName for ICoreWebView2CookieManager {}
11459windows_core::imp::define_interface!(
11460    ICoreWebView2CreateCoreWebView2CompositionControllerCompletedHandler,
11461    ICoreWebView2CreateCoreWebView2CompositionControllerCompletedHandler_Vtbl,
11462    0x02fab84b_1428_4fb7_ad45_1b2e64736184
11463);
11464windows_core::imp::interface_hierarchy!(
11465    ICoreWebView2CreateCoreWebView2CompositionControllerCompletedHandler,
11466    windows_core::IUnknown
11467);
11468impl ICoreWebView2CreateCoreWebView2CompositionControllerCompletedHandler {
11469    pub unsafe fn Invoke<P1>(
11470        &self,
11471        errorcode: windows_core::HRESULT,
11472        result: P1,
11473    ) -> windows_core::Result<()>
11474    where
11475        P1: windows_core::Param<ICoreWebView2CompositionController>,
11476    {
11477        unsafe {
11478            (windows_core::Interface::vtable(self).Invoke)(
11479                windows_core::Interface::as_raw(self),
11480                errorcode,
11481                result.param().abi(),
11482            )
11483            .ok()
11484        }
11485    }
11486}
11487#[repr(C)]
11488#[doc(hidden)]
11489pub struct ICoreWebView2CreateCoreWebView2CompositionControllerCompletedHandler_Vtbl {
11490    pub base__: windows_core::IUnknown_Vtbl,
11491    pub Invoke: unsafe extern "system" fn(
11492        *mut core::ffi::c_void,
11493        windows_core::HRESULT,
11494        *mut core::ffi::c_void,
11495    ) -> windows_core::HRESULT,
11496}
11497pub trait ICoreWebView2CreateCoreWebView2CompositionControllerCompletedHandler_Impl:
11498    windows_core::IUnknownImpl
11499{
11500    fn Invoke(
11501        &self,
11502        errorcode: windows_core::HRESULT,
11503        result: windows_core::Ref<'_, ICoreWebView2CompositionController>,
11504    ) -> windows_core::Result<()>;
11505}
11506impl ICoreWebView2CreateCoreWebView2CompositionControllerCompletedHandler_Vtbl {
11507    pub const fn new<
11508        Identity: ICoreWebView2CreateCoreWebView2CompositionControllerCompletedHandler_Impl,
11509        const OFFSET: isize,
11510    >() -> Self {
11511        unsafe extern "system" fn Invoke<
11512            Identity: ICoreWebView2CreateCoreWebView2CompositionControllerCompletedHandler_Impl,
11513            const OFFSET: isize,
11514        >(
11515            this: *mut core::ffi::c_void,
11516            errorcode: windows_core::HRESULT,
11517            result: *mut core::ffi::c_void,
11518        ) -> windows_core::HRESULT {
11519            unsafe {
11520                let this: &Identity =
11521                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
11522                ICoreWebView2CreateCoreWebView2CompositionControllerCompletedHandler_Impl::Invoke(
11523                    this,
11524                    core::mem::transmute_copy(&errorcode),
11525                    core::mem::transmute_copy(&result),
11526                )
11527                .into()
11528            }
11529        }
11530        Self {
11531            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
11532            Invoke: Invoke::<Identity, OFFSET>,
11533        }
11534    }
11535    pub fn matches(iid: &windows_core::GUID) -> bool {
11536        iid == & < ICoreWebView2CreateCoreWebView2CompositionControllerCompletedHandler as windows_core::Interface >::IID
11537    }
11538}
11539impl windows_core::RuntimeName
11540    for ICoreWebView2CreateCoreWebView2CompositionControllerCompletedHandler
11541{
11542}
11543windows_core::imp::define_interface!(
11544    ICoreWebView2CreateCoreWebView2ControllerCompletedHandler,
11545    ICoreWebView2CreateCoreWebView2ControllerCompletedHandler_Vtbl,
11546    0x6c4819f3_c9b7_4260_8127_c9f5bde7f68c
11547);
11548windows_core::imp::interface_hierarchy!(
11549    ICoreWebView2CreateCoreWebView2ControllerCompletedHandler,
11550    windows_core::IUnknown
11551);
11552impl ICoreWebView2CreateCoreWebView2ControllerCompletedHandler {
11553    pub unsafe fn Invoke<P1>(
11554        &self,
11555        errorcode: windows_core::HRESULT,
11556        result: P1,
11557    ) -> windows_core::Result<()>
11558    where
11559        P1: windows_core::Param<ICoreWebView2Controller>,
11560    {
11561        unsafe {
11562            (windows_core::Interface::vtable(self).Invoke)(
11563                windows_core::Interface::as_raw(self),
11564                errorcode,
11565                result.param().abi(),
11566            )
11567            .ok()
11568        }
11569    }
11570}
11571#[repr(C)]
11572#[doc(hidden)]
11573pub struct ICoreWebView2CreateCoreWebView2ControllerCompletedHandler_Vtbl {
11574    pub base__: windows_core::IUnknown_Vtbl,
11575    pub Invoke: unsafe extern "system" fn(
11576        *mut core::ffi::c_void,
11577        windows_core::HRESULT,
11578        *mut core::ffi::c_void,
11579    ) -> windows_core::HRESULT,
11580}
11581pub trait ICoreWebView2CreateCoreWebView2ControllerCompletedHandler_Impl:
11582    windows_core::IUnknownImpl
11583{
11584    fn Invoke(
11585        &self,
11586        errorcode: windows_core::HRESULT,
11587        result: windows_core::Ref<'_, ICoreWebView2Controller>,
11588    ) -> windows_core::Result<()>;
11589}
11590impl ICoreWebView2CreateCoreWebView2ControllerCompletedHandler_Vtbl {
11591    pub const fn new<
11592        Identity: ICoreWebView2CreateCoreWebView2ControllerCompletedHandler_Impl,
11593        const OFFSET: isize,
11594    >() -> Self {
11595        unsafe extern "system" fn Invoke<
11596            Identity: ICoreWebView2CreateCoreWebView2ControllerCompletedHandler_Impl,
11597            const OFFSET: isize,
11598        >(
11599            this: *mut core::ffi::c_void,
11600            errorcode: windows_core::HRESULT,
11601            result: *mut core::ffi::c_void,
11602        ) -> windows_core::HRESULT {
11603            unsafe {
11604                let this: &Identity =
11605                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
11606                ICoreWebView2CreateCoreWebView2ControllerCompletedHandler_Impl::Invoke(
11607                    this,
11608                    core::mem::transmute_copy(&errorcode),
11609                    core::mem::transmute_copy(&result),
11610                )
11611                .into()
11612            }
11613        }
11614        Self {
11615            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
11616            Invoke: Invoke::<Identity, OFFSET>,
11617        }
11618    }
11619    pub fn matches(iid: &windows_core::GUID) -> bool {
11620        iid == & < ICoreWebView2CreateCoreWebView2ControllerCompletedHandler as windows_core::Interface >::IID
11621    }
11622}
11623impl windows_core::RuntimeName for ICoreWebView2CreateCoreWebView2ControllerCompletedHandler {}
11624windows_core::imp::define_interface!(
11625    ICoreWebView2CreateCoreWebView2EnvironmentCompletedHandler,
11626    ICoreWebView2CreateCoreWebView2EnvironmentCompletedHandler_Vtbl,
11627    0x4e8a3389_c9d8_4bd2_b6b5_124fee6cc14d
11628);
11629windows_core::imp::interface_hierarchy!(
11630    ICoreWebView2CreateCoreWebView2EnvironmentCompletedHandler,
11631    windows_core::IUnknown
11632);
11633impl ICoreWebView2CreateCoreWebView2EnvironmentCompletedHandler {
11634    pub unsafe fn Invoke<P1>(
11635        &self,
11636        errorcode: windows_core::HRESULT,
11637        result: P1,
11638    ) -> windows_core::Result<()>
11639    where
11640        P1: windows_core::Param<ICoreWebView2Environment>,
11641    {
11642        unsafe {
11643            (windows_core::Interface::vtable(self).Invoke)(
11644                windows_core::Interface::as_raw(self),
11645                errorcode,
11646                result.param().abi(),
11647            )
11648            .ok()
11649        }
11650    }
11651}
11652#[repr(C)]
11653#[doc(hidden)]
11654pub struct ICoreWebView2CreateCoreWebView2EnvironmentCompletedHandler_Vtbl {
11655    pub base__: windows_core::IUnknown_Vtbl,
11656    pub Invoke: unsafe extern "system" fn(
11657        *mut core::ffi::c_void,
11658        windows_core::HRESULT,
11659        *mut core::ffi::c_void,
11660    ) -> windows_core::HRESULT,
11661}
11662pub trait ICoreWebView2CreateCoreWebView2EnvironmentCompletedHandler_Impl:
11663    windows_core::IUnknownImpl
11664{
11665    fn Invoke(
11666        &self,
11667        errorcode: windows_core::HRESULT,
11668        result: windows_core::Ref<'_, ICoreWebView2Environment>,
11669    ) -> windows_core::Result<()>;
11670}
11671impl ICoreWebView2CreateCoreWebView2EnvironmentCompletedHandler_Vtbl {
11672    pub const fn new<
11673        Identity: ICoreWebView2CreateCoreWebView2EnvironmentCompletedHandler_Impl,
11674        const OFFSET: isize,
11675    >() -> Self {
11676        unsafe extern "system" fn Invoke<
11677            Identity: ICoreWebView2CreateCoreWebView2EnvironmentCompletedHandler_Impl,
11678            const OFFSET: isize,
11679        >(
11680            this: *mut core::ffi::c_void,
11681            errorcode: windows_core::HRESULT,
11682            result: *mut core::ffi::c_void,
11683        ) -> windows_core::HRESULT {
11684            unsafe {
11685                let this: &Identity =
11686                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
11687                ICoreWebView2CreateCoreWebView2EnvironmentCompletedHandler_Impl::Invoke(
11688                    this,
11689                    core::mem::transmute_copy(&errorcode),
11690                    core::mem::transmute_copy(&result),
11691                )
11692                .into()
11693            }
11694        }
11695        Self {
11696            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
11697            Invoke: Invoke::<Identity, OFFSET>,
11698        }
11699    }
11700    pub fn matches(iid: &windows_core::GUID) -> bool {
11701        iid == & < ICoreWebView2CreateCoreWebView2EnvironmentCompletedHandler as windows_core::Interface >::IID
11702    }
11703}
11704impl windows_core::RuntimeName for ICoreWebView2CreateCoreWebView2EnvironmentCompletedHandler {}
11705windows_core::imp::define_interface!(
11706    ICoreWebView2CursorChangedEventHandler,
11707    ICoreWebView2CursorChangedEventHandler_Vtbl,
11708    0x9da43ccc_26e1_4dad_b56c_d8961c94c571
11709);
11710windows_core::imp::interface_hierarchy!(
11711    ICoreWebView2CursorChangedEventHandler,
11712    windows_core::IUnknown
11713);
11714impl ICoreWebView2CursorChangedEventHandler {
11715    pub unsafe fn Invoke<P0, P1>(&self, sender: P0, args: P1) -> windows_core::Result<()>
11716    where
11717        P0: windows_core::Param<ICoreWebView2CompositionController>,
11718        P1: windows_core::Param<windows_core::IUnknown>,
11719    {
11720        unsafe {
11721            (windows_core::Interface::vtable(self).Invoke)(
11722                windows_core::Interface::as_raw(self),
11723                sender.param().abi(),
11724                args.param().abi(),
11725            )
11726            .ok()
11727        }
11728    }
11729}
11730#[repr(C)]
11731#[doc(hidden)]
11732pub struct ICoreWebView2CursorChangedEventHandler_Vtbl {
11733    pub base__: windows_core::IUnknown_Vtbl,
11734    pub Invoke: unsafe extern "system" fn(
11735        *mut core::ffi::c_void,
11736        *mut core::ffi::c_void,
11737        *mut core::ffi::c_void,
11738    ) -> windows_core::HRESULT,
11739}
11740pub trait ICoreWebView2CursorChangedEventHandler_Impl: windows_core::IUnknownImpl {
11741    fn Invoke(
11742        &self,
11743        sender: windows_core::Ref<'_, ICoreWebView2CompositionController>,
11744        args: windows_core::Ref<'_, windows_core::IUnknown>,
11745    ) -> windows_core::Result<()>;
11746}
11747impl ICoreWebView2CursorChangedEventHandler_Vtbl {
11748    pub const fn new<Identity: ICoreWebView2CursorChangedEventHandler_Impl, const OFFSET: isize>(
11749    ) -> Self {
11750        unsafe extern "system" fn Invoke<
11751            Identity: ICoreWebView2CursorChangedEventHandler_Impl,
11752            const OFFSET: isize,
11753        >(
11754            this: *mut core::ffi::c_void,
11755            sender: *mut core::ffi::c_void,
11756            args: *mut core::ffi::c_void,
11757        ) -> windows_core::HRESULT {
11758            unsafe {
11759                let this: &Identity =
11760                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
11761                ICoreWebView2CursorChangedEventHandler_Impl::Invoke(
11762                    this,
11763                    core::mem::transmute_copy(&sender),
11764                    core::mem::transmute_copy(&args),
11765                )
11766                .into()
11767            }
11768        }
11769        Self {
11770            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
11771            Invoke: Invoke::<Identity, OFFSET>,
11772        }
11773    }
11774    pub fn matches(iid: &windows_core::GUID) -> bool {
11775        iid == &<ICoreWebView2CursorChangedEventHandler as windows_core::Interface>::IID
11776    }
11777}
11778impl windows_core::RuntimeName for ICoreWebView2CursorChangedEventHandler {}
11779windows_core::imp::define_interface!(
11780    ICoreWebView2CustomItemSelectedEventHandler,
11781    ICoreWebView2CustomItemSelectedEventHandler_Vtbl,
11782    0x49e1d0bc_fe9e_4481_b7c2_32324aa21998
11783);
11784windows_core::imp::interface_hierarchy!(
11785    ICoreWebView2CustomItemSelectedEventHandler,
11786    windows_core::IUnknown
11787);
11788impl ICoreWebView2CustomItemSelectedEventHandler {
11789    pub unsafe fn Invoke<P0, P1>(&self, sender: P0, args: P1) -> windows_core::Result<()>
11790    where
11791        P0: windows_core::Param<ICoreWebView2ContextMenuItem>,
11792        P1: windows_core::Param<windows_core::IUnknown>,
11793    {
11794        unsafe {
11795            (windows_core::Interface::vtable(self).Invoke)(
11796                windows_core::Interface::as_raw(self),
11797                sender.param().abi(),
11798                args.param().abi(),
11799            )
11800            .ok()
11801        }
11802    }
11803}
11804#[repr(C)]
11805#[doc(hidden)]
11806pub struct ICoreWebView2CustomItemSelectedEventHandler_Vtbl {
11807    pub base__: windows_core::IUnknown_Vtbl,
11808    pub Invoke: unsafe extern "system" fn(
11809        *mut core::ffi::c_void,
11810        *mut core::ffi::c_void,
11811        *mut core::ffi::c_void,
11812    ) -> windows_core::HRESULT,
11813}
11814pub trait ICoreWebView2CustomItemSelectedEventHandler_Impl: windows_core::IUnknownImpl {
11815    fn Invoke(
11816        &self,
11817        sender: windows_core::Ref<'_, ICoreWebView2ContextMenuItem>,
11818        args: windows_core::Ref<'_, windows_core::IUnknown>,
11819    ) -> windows_core::Result<()>;
11820}
11821impl ICoreWebView2CustomItemSelectedEventHandler_Vtbl {
11822    pub const fn new<
11823        Identity: ICoreWebView2CustomItemSelectedEventHandler_Impl,
11824        const OFFSET: isize,
11825    >() -> Self {
11826        unsafe extern "system" fn Invoke<
11827            Identity: ICoreWebView2CustomItemSelectedEventHandler_Impl,
11828            const OFFSET: isize,
11829        >(
11830            this: *mut core::ffi::c_void,
11831            sender: *mut core::ffi::c_void,
11832            args: *mut core::ffi::c_void,
11833        ) -> windows_core::HRESULT {
11834            unsafe {
11835                let this: &Identity =
11836                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
11837                ICoreWebView2CustomItemSelectedEventHandler_Impl::Invoke(
11838                    this,
11839                    core::mem::transmute_copy(&sender),
11840                    core::mem::transmute_copy(&args),
11841                )
11842                .into()
11843            }
11844        }
11845        Self {
11846            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
11847            Invoke: Invoke::<Identity, OFFSET>,
11848        }
11849    }
11850    pub fn matches(iid: &windows_core::GUID) -> bool {
11851        iid == &<ICoreWebView2CustomItemSelectedEventHandler as windows_core::Interface>::IID
11852    }
11853}
11854impl windows_core::RuntimeName for ICoreWebView2CustomItemSelectedEventHandler {}
11855windows_core::imp::define_interface!(
11856    ICoreWebView2CustomSchemeRegistration,
11857    ICoreWebView2CustomSchemeRegistration_Vtbl,
11858    0xd60ac92c_37a6_4b26_a39e_95cfe59047bb
11859);
11860windows_core::imp::interface_hierarchy!(
11861    ICoreWebView2CustomSchemeRegistration,
11862    windows_core::IUnknown
11863);
11864impl ICoreWebView2CustomSchemeRegistration {
11865    pub unsafe fn SchemeName(
11866        &self,
11867        schemename: *mut windows_core::PWSTR,
11868    ) -> windows_core::Result<()> {
11869        unsafe {
11870            (windows_core::Interface::vtable(self).SchemeName)(
11871                windows_core::Interface::as_raw(self),
11872                schemename as _,
11873            )
11874            .ok()
11875        }
11876    }
11877    pub unsafe fn TreatAsSecure(
11878        &self,
11879        treatassecure: *mut windows_core::BOOL,
11880    ) -> windows_core::Result<()> {
11881        unsafe {
11882            (windows_core::Interface::vtable(self).TreatAsSecure)(
11883                windows_core::Interface::as_raw(self),
11884                treatassecure as _,
11885            )
11886            .ok()
11887        }
11888    }
11889    pub unsafe fn SetTreatAsSecure(&self, value: bool) -> windows_core::Result<()> {
11890        unsafe {
11891            (windows_core::Interface::vtable(self).SetTreatAsSecure)(
11892                windows_core::Interface::as_raw(self),
11893                value.into(),
11894            )
11895            .ok()
11896        }
11897    }
11898    pub unsafe fn GetAllowedOrigins(
11899        &self,
11900        allowedoriginscount: *mut u32,
11901        allowedorigins: *mut *mut windows_core::PWSTR,
11902    ) -> windows_core::Result<()> {
11903        unsafe {
11904            (windows_core::Interface::vtable(self).GetAllowedOrigins)(
11905                windows_core::Interface::as_raw(self),
11906                allowedoriginscount as _,
11907                allowedorigins as _,
11908            )
11909            .ok()
11910        }
11911    }
11912    pub unsafe fn SetAllowedOrigins(
11913        &self,
11914        allowedoriginscount: u32,
11915        allowedorigins: *const windows_core::PCWSTR,
11916    ) -> windows_core::Result<()> {
11917        unsafe {
11918            (windows_core::Interface::vtable(self).SetAllowedOrigins)(
11919                windows_core::Interface::as_raw(self),
11920                allowedoriginscount,
11921                allowedorigins,
11922            )
11923            .ok()
11924        }
11925    }
11926    pub unsafe fn HasAuthorityComponent(
11927        &self,
11928        hasauthoritycomponent: *mut windows_core::BOOL,
11929    ) -> windows_core::Result<()> {
11930        unsafe {
11931            (windows_core::Interface::vtable(self).HasAuthorityComponent)(
11932                windows_core::Interface::as_raw(self),
11933                hasauthoritycomponent as _,
11934            )
11935            .ok()
11936        }
11937    }
11938    pub unsafe fn SetHasAuthorityComponent(
11939        &self,
11940        hasauthoritycomponent: bool,
11941    ) -> windows_core::Result<()> {
11942        unsafe {
11943            (windows_core::Interface::vtable(self).SetHasAuthorityComponent)(
11944                windows_core::Interface::as_raw(self),
11945                hasauthoritycomponent.into(),
11946            )
11947            .ok()
11948        }
11949    }
11950}
11951#[repr(C)]
11952#[doc(hidden)]
11953pub struct ICoreWebView2CustomSchemeRegistration_Vtbl {
11954    pub base__: windows_core::IUnknown_Vtbl,
11955    pub SchemeName: unsafe extern "system" fn(
11956        *mut core::ffi::c_void,
11957        *mut windows_core::PWSTR,
11958    ) -> windows_core::HRESULT,
11959    pub TreatAsSecure: unsafe extern "system" fn(
11960        *mut core::ffi::c_void,
11961        *mut windows_core::BOOL,
11962    ) -> windows_core::HRESULT,
11963    pub SetTreatAsSecure: unsafe extern "system" fn(
11964        *mut core::ffi::c_void,
11965        windows_core::BOOL,
11966    ) -> windows_core::HRESULT,
11967    pub GetAllowedOrigins: unsafe extern "system" fn(
11968        *mut core::ffi::c_void,
11969        *mut u32,
11970        *mut *mut windows_core::PWSTR,
11971    ) -> windows_core::HRESULT,
11972    pub SetAllowedOrigins: unsafe extern "system" fn(
11973        *mut core::ffi::c_void,
11974        u32,
11975        *const windows_core::PCWSTR,
11976    ) -> windows_core::HRESULT,
11977    pub HasAuthorityComponent: unsafe extern "system" fn(
11978        *mut core::ffi::c_void,
11979        *mut windows_core::BOOL,
11980    ) -> windows_core::HRESULT,
11981    pub SetHasAuthorityComponent: unsafe extern "system" fn(
11982        *mut core::ffi::c_void,
11983        windows_core::BOOL,
11984    ) -> windows_core::HRESULT,
11985}
11986pub trait ICoreWebView2CustomSchemeRegistration_Impl: windows_core::IUnknownImpl {
11987    fn SchemeName(&self, schemename: *mut windows_core::PWSTR) -> windows_core::Result<()>;
11988    fn TreatAsSecure(&self, treatassecure: *mut windows_core::BOOL) -> windows_core::Result<()>;
11989    fn SetTreatAsSecure(&self, value: windows_core::BOOL) -> windows_core::Result<()>;
11990    fn GetAllowedOrigins(
11991        &self,
11992        allowedoriginscount: *mut u32,
11993        allowedorigins: *mut *mut windows_core::PWSTR,
11994    ) -> windows_core::Result<()>;
11995    fn SetAllowedOrigins(
11996        &self,
11997        allowedoriginscount: u32,
11998        allowedorigins: *const windows_core::PCWSTR,
11999    ) -> windows_core::Result<()>;
12000    fn HasAuthorityComponent(
12001        &self,
12002        hasauthoritycomponent: *mut windows_core::BOOL,
12003    ) -> windows_core::Result<()>;
12004    fn SetHasAuthorityComponent(
12005        &self,
12006        hasauthoritycomponent: windows_core::BOOL,
12007    ) -> windows_core::Result<()>;
12008}
12009impl ICoreWebView2CustomSchemeRegistration_Vtbl {
12010    pub const fn new<Identity: ICoreWebView2CustomSchemeRegistration_Impl, const OFFSET: isize>(
12011    ) -> Self {
12012        unsafe extern "system" fn SchemeName<
12013            Identity: ICoreWebView2CustomSchemeRegistration_Impl,
12014            const OFFSET: isize,
12015        >(
12016            this: *mut core::ffi::c_void,
12017            schemename: *mut windows_core::PWSTR,
12018        ) -> windows_core::HRESULT {
12019            unsafe {
12020                let this: &Identity =
12021                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
12022                ICoreWebView2CustomSchemeRegistration_Impl::SchemeName(
12023                    this,
12024                    core::mem::transmute_copy(&schemename),
12025                )
12026                .into()
12027            }
12028        }
12029        unsafe extern "system" fn TreatAsSecure<
12030            Identity: ICoreWebView2CustomSchemeRegistration_Impl,
12031            const OFFSET: isize,
12032        >(
12033            this: *mut core::ffi::c_void,
12034            treatassecure: *mut windows_core::BOOL,
12035        ) -> windows_core::HRESULT {
12036            unsafe {
12037                let this: &Identity =
12038                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
12039                ICoreWebView2CustomSchemeRegistration_Impl::TreatAsSecure(
12040                    this,
12041                    core::mem::transmute_copy(&treatassecure),
12042                )
12043                .into()
12044            }
12045        }
12046        unsafe extern "system" fn SetTreatAsSecure<
12047            Identity: ICoreWebView2CustomSchemeRegistration_Impl,
12048            const OFFSET: isize,
12049        >(
12050            this: *mut core::ffi::c_void,
12051            value: windows_core::BOOL,
12052        ) -> windows_core::HRESULT {
12053            unsafe {
12054                let this: &Identity =
12055                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
12056                ICoreWebView2CustomSchemeRegistration_Impl::SetTreatAsSecure(
12057                    this,
12058                    core::mem::transmute_copy(&value),
12059                )
12060                .into()
12061            }
12062        }
12063        unsafe extern "system" fn GetAllowedOrigins<
12064            Identity: ICoreWebView2CustomSchemeRegistration_Impl,
12065            const OFFSET: isize,
12066        >(
12067            this: *mut core::ffi::c_void,
12068            allowedoriginscount: *mut u32,
12069            allowedorigins: *mut *mut windows_core::PWSTR,
12070        ) -> windows_core::HRESULT {
12071            unsafe {
12072                let this: &Identity =
12073                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
12074                ICoreWebView2CustomSchemeRegistration_Impl::GetAllowedOrigins(
12075                    this,
12076                    core::mem::transmute_copy(&allowedoriginscount),
12077                    core::mem::transmute_copy(&allowedorigins),
12078                )
12079                .into()
12080            }
12081        }
12082        unsafe extern "system" fn SetAllowedOrigins<
12083            Identity: ICoreWebView2CustomSchemeRegistration_Impl,
12084            const OFFSET: isize,
12085        >(
12086            this: *mut core::ffi::c_void,
12087            allowedoriginscount: u32,
12088            allowedorigins: *const windows_core::PCWSTR,
12089        ) -> windows_core::HRESULT {
12090            unsafe {
12091                let this: &Identity =
12092                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
12093                ICoreWebView2CustomSchemeRegistration_Impl::SetAllowedOrigins(
12094                    this,
12095                    core::mem::transmute_copy(&allowedoriginscount),
12096                    core::mem::transmute_copy(&allowedorigins),
12097                )
12098                .into()
12099            }
12100        }
12101        unsafe extern "system" fn HasAuthorityComponent<
12102            Identity: ICoreWebView2CustomSchemeRegistration_Impl,
12103            const OFFSET: isize,
12104        >(
12105            this: *mut core::ffi::c_void,
12106            hasauthoritycomponent: *mut windows_core::BOOL,
12107        ) -> windows_core::HRESULT {
12108            unsafe {
12109                let this: &Identity =
12110                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
12111                ICoreWebView2CustomSchemeRegistration_Impl::HasAuthorityComponent(
12112                    this,
12113                    core::mem::transmute_copy(&hasauthoritycomponent),
12114                )
12115                .into()
12116            }
12117        }
12118        unsafe extern "system" fn SetHasAuthorityComponent<
12119            Identity: ICoreWebView2CustomSchemeRegistration_Impl,
12120            const OFFSET: isize,
12121        >(
12122            this: *mut core::ffi::c_void,
12123            hasauthoritycomponent: windows_core::BOOL,
12124        ) -> windows_core::HRESULT {
12125            unsafe {
12126                let this: &Identity =
12127                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
12128                ICoreWebView2CustomSchemeRegistration_Impl::SetHasAuthorityComponent(
12129                    this,
12130                    core::mem::transmute_copy(&hasauthoritycomponent),
12131                )
12132                .into()
12133            }
12134        }
12135        Self {
12136            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
12137            SchemeName: SchemeName::<Identity, OFFSET>,
12138            TreatAsSecure: TreatAsSecure::<Identity, OFFSET>,
12139            SetTreatAsSecure: SetTreatAsSecure::<Identity, OFFSET>,
12140            GetAllowedOrigins: GetAllowedOrigins::<Identity, OFFSET>,
12141            SetAllowedOrigins: SetAllowedOrigins::<Identity, OFFSET>,
12142            HasAuthorityComponent: HasAuthorityComponent::<Identity, OFFSET>,
12143            SetHasAuthorityComponent: SetHasAuthorityComponent::<Identity, OFFSET>,
12144        }
12145    }
12146    pub fn matches(iid: &windows_core::GUID) -> bool {
12147        iid == &<ICoreWebView2CustomSchemeRegistration as windows_core::Interface>::IID
12148    }
12149}
12150impl windows_core::RuntimeName for ICoreWebView2CustomSchemeRegistration {}
12151windows_core::imp::define_interface!(
12152    ICoreWebView2DOMContentLoadedEventArgs,
12153    ICoreWebView2DOMContentLoadedEventArgs_Vtbl,
12154    0x16b1e21a_c503_44f2_84c9_70aba5031283
12155);
12156windows_core::imp::interface_hierarchy!(
12157    ICoreWebView2DOMContentLoadedEventArgs,
12158    windows_core::IUnknown
12159);
12160impl ICoreWebView2DOMContentLoadedEventArgs {
12161    pub unsafe fn NavigationId(&self, value: *mut u64) -> windows_core::Result<()> {
12162        unsafe {
12163            (windows_core::Interface::vtable(self).NavigationId)(
12164                windows_core::Interface::as_raw(self),
12165                value as _,
12166            )
12167            .ok()
12168        }
12169    }
12170}
12171#[repr(C)]
12172#[doc(hidden)]
12173pub struct ICoreWebView2DOMContentLoadedEventArgs_Vtbl {
12174    pub base__: windows_core::IUnknown_Vtbl,
12175    pub NavigationId:
12176        unsafe extern "system" fn(*mut core::ffi::c_void, *mut u64) -> windows_core::HRESULT,
12177}
12178pub trait ICoreWebView2DOMContentLoadedEventArgs_Impl: windows_core::IUnknownImpl {
12179    fn NavigationId(&self, value: *mut u64) -> windows_core::Result<()>;
12180}
12181impl ICoreWebView2DOMContentLoadedEventArgs_Vtbl {
12182    pub const fn new<Identity: ICoreWebView2DOMContentLoadedEventArgs_Impl, const OFFSET: isize>(
12183    ) -> Self {
12184        unsafe extern "system" fn NavigationId<
12185            Identity: ICoreWebView2DOMContentLoadedEventArgs_Impl,
12186            const OFFSET: isize,
12187        >(
12188            this: *mut core::ffi::c_void,
12189            value: *mut u64,
12190        ) -> windows_core::HRESULT {
12191            unsafe {
12192                let this: &Identity =
12193                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
12194                ICoreWebView2DOMContentLoadedEventArgs_Impl::NavigationId(
12195                    this,
12196                    core::mem::transmute_copy(&value),
12197                )
12198                .into()
12199            }
12200        }
12201        Self {
12202            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
12203            NavigationId: NavigationId::<Identity, OFFSET>,
12204        }
12205    }
12206    pub fn matches(iid: &windows_core::GUID) -> bool {
12207        iid == &<ICoreWebView2DOMContentLoadedEventArgs as windows_core::Interface>::IID
12208    }
12209}
12210impl windows_core::RuntimeName for ICoreWebView2DOMContentLoadedEventArgs {}
12211windows_core::imp::define_interface!(
12212    ICoreWebView2DOMContentLoadedEventHandler,
12213    ICoreWebView2DOMContentLoadedEventHandler_Vtbl,
12214    0x4bac7e9c_199e_49ed_87ed_249303acf019
12215);
12216windows_core::imp::interface_hierarchy!(
12217    ICoreWebView2DOMContentLoadedEventHandler,
12218    windows_core::IUnknown
12219);
12220impl ICoreWebView2DOMContentLoadedEventHandler {
12221    pub unsafe fn Invoke<P0, P1>(&self, sender: P0, args: P1) -> windows_core::Result<()>
12222    where
12223        P0: windows_core::Param<ICoreWebView2>,
12224        P1: windows_core::Param<ICoreWebView2DOMContentLoadedEventArgs>,
12225    {
12226        unsafe {
12227            (windows_core::Interface::vtable(self).Invoke)(
12228                windows_core::Interface::as_raw(self),
12229                sender.param().abi(),
12230                args.param().abi(),
12231            )
12232            .ok()
12233        }
12234    }
12235}
12236#[repr(C)]
12237#[doc(hidden)]
12238pub struct ICoreWebView2DOMContentLoadedEventHandler_Vtbl {
12239    pub base__: windows_core::IUnknown_Vtbl,
12240    pub Invoke: unsafe extern "system" fn(
12241        *mut core::ffi::c_void,
12242        *mut core::ffi::c_void,
12243        *mut core::ffi::c_void,
12244    ) -> windows_core::HRESULT,
12245}
12246pub trait ICoreWebView2DOMContentLoadedEventHandler_Impl: windows_core::IUnknownImpl {
12247    fn Invoke(
12248        &self,
12249        sender: windows_core::Ref<'_, ICoreWebView2>,
12250        args: windows_core::Ref<'_, ICoreWebView2DOMContentLoadedEventArgs>,
12251    ) -> windows_core::Result<()>;
12252}
12253impl ICoreWebView2DOMContentLoadedEventHandler_Vtbl {
12254    pub const fn new<
12255        Identity: ICoreWebView2DOMContentLoadedEventHandler_Impl,
12256        const OFFSET: isize,
12257    >() -> Self {
12258        unsafe extern "system" fn Invoke<
12259            Identity: ICoreWebView2DOMContentLoadedEventHandler_Impl,
12260            const OFFSET: isize,
12261        >(
12262            this: *mut core::ffi::c_void,
12263            sender: *mut core::ffi::c_void,
12264            args: *mut core::ffi::c_void,
12265        ) -> windows_core::HRESULT {
12266            unsafe {
12267                let this: &Identity =
12268                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
12269                ICoreWebView2DOMContentLoadedEventHandler_Impl::Invoke(
12270                    this,
12271                    core::mem::transmute_copy(&sender),
12272                    core::mem::transmute_copy(&args),
12273                )
12274                .into()
12275            }
12276        }
12277        Self {
12278            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
12279            Invoke: Invoke::<Identity, OFFSET>,
12280        }
12281    }
12282    pub fn matches(iid: &windows_core::GUID) -> bool {
12283        iid == &<ICoreWebView2DOMContentLoadedEventHandler as windows_core::Interface>::IID
12284    }
12285}
12286impl windows_core::RuntimeName for ICoreWebView2DOMContentLoadedEventHandler {}
12287windows_core::imp::define_interface!(
12288    ICoreWebView2Deferral,
12289    ICoreWebView2Deferral_Vtbl,
12290    0xc10e7f7b_b585_46f0_a623_8befbf3e4ee0
12291);
12292windows_core::imp::interface_hierarchy!(ICoreWebView2Deferral, windows_core::IUnknown);
12293impl ICoreWebView2Deferral {
12294    pub unsafe fn Complete(&self) -> windows_core::Result<()> {
12295        unsafe {
12296            (windows_core::Interface::vtable(self).Complete)(windows_core::Interface::as_raw(self))
12297                .ok()
12298        }
12299    }
12300}
12301#[repr(C)]
12302#[doc(hidden)]
12303pub struct ICoreWebView2Deferral_Vtbl {
12304    pub base__: windows_core::IUnknown_Vtbl,
12305    pub Complete: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
12306}
12307pub trait ICoreWebView2Deferral_Impl: windows_core::IUnknownImpl {
12308    fn Complete(&self) -> windows_core::Result<()>;
12309}
12310impl ICoreWebView2Deferral_Vtbl {
12311    pub const fn new<Identity: ICoreWebView2Deferral_Impl, const OFFSET: isize>() -> Self {
12312        unsafe extern "system" fn Complete<
12313            Identity: ICoreWebView2Deferral_Impl,
12314            const OFFSET: isize,
12315        >(
12316            this: *mut core::ffi::c_void,
12317        ) -> windows_core::HRESULT {
12318            unsafe {
12319                let this: &Identity =
12320                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
12321                ICoreWebView2Deferral_Impl::Complete(this).into()
12322            }
12323        }
12324        Self {
12325            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
12326            Complete: Complete::<Identity, OFFSET>,
12327        }
12328    }
12329    pub fn matches(iid: &windows_core::GUID) -> bool {
12330        iid == &<ICoreWebView2Deferral as windows_core::Interface>::IID
12331    }
12332}
12333impl windows_core::RuntimeName for ICoreWebView2Deferral {}
12334windows_core::imp::define_interface!(
12335    ICoreWebView2DevToolsProtocolEventReceivedEventArgs,
12336    ICoreWebView2DevToolsProtocolEventReceivedEventArgs_Vtbl,
12337    0x653c2959_bb3a_4377_8632_b58ada4e66c4
12338);
12339windows_core::imp::interface_hierarchy!(
12340    ICoreWebView2DevToolsProtocolEventReceivedEventArgs,
12341    windows_core::IUnknown
12342);
12343impl ICoreWebView2DevToolsProtocolEventReceivedEventArgs {
12344    pub unsafe fn ParameterObjectAsJson(
12345        &self,
12346        value: *mut windows_core::PWSTR,
12347    ) -> windows_core::Result<()> {
12348        unsafe {
12349            (windows_core::Interface::vtable(self).ParameterObjectAsJson)(
12350                windows_core::Interface::as_raw(self),
12351                value as _,
12352            )
12353            .ok()
12354        }
12355    }
12356}
12357#[repr(C)]
12358#[doc(hidden)]
12359pub struct ICoreWebView2DevToolsProtocolEventReceivedEventArgs_Vtbl {
12360    pub base__: windows_core::IUnknown_Vtbl,
12361    pub ParameterObjectAsJson: unsafe extern "system" fn(
12362        *mut core::ffi::c_void,
12363        *mut windows_core::PWSTR,
12364    ) -> windows_core::HRESULT,
12365}
12366pub trait ICoreWebView2DevToolsProtocolEventReceivedEventArgs_Impl:
12367    windows_core::IUnknownImpl
12368{
12369    fn ParameterObjectAsJson(&self, value: *mut windows_core::PWSTR) -> windows_core::Result<()>;
12370}
12371impl ICoreWebView2DevToolsProtocolEventReceivedEventArgs_Vtbl {
12372    pub const fn new<
12373        Identity: ICoreWebView2DevToolsProtocolEventReceivedEventArgs_Impl,
12374        const OFFSET: isize,
12375    >() -> Self {
12376        unsafe extern "system" fn ParameterObjectAsJson<
12377            Identity: ICoreWebView2DevToolsProtocolEventReceivedEventArgs_Impl,
12378            const OFFSET: isize,
12379        >(
12380            this: *mut core::ffi::c_void,
12381            value: *mut windows_core::PWSTR,
12382        ) -> windows_core::HRESULT {
12383            unsafe {
12384                let this: &Identity =
12385                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
12386                ICoreWebView2DevToolsProtocolEventReceivedEventArgs_Impl::ParameterObjectAsJson(
12387                    this,
12388                    core::mem::transmute_copy(&value),
12389                )
12390                .into()
12391            }
12392        }
12393        Self {
12394            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
12395            ParameterObjectAsJson: ParameterObjectAsJson::<Identity, OFFSET>,
12396        }
12397    }
12398    pub fn matches(iid: &windows_core::GUID) -> bool {
12399        iid == & < ICoreWebView2DevToolsProtocolEventReceivedEventArgs as windows_core::Interface >::IID
12400    }
12401}
12402impl windows_core::RuntimeName for ICoreWebView2DevToolsProtocolEventReceivedEventArgs {}
12403windows_core::imp::define_interface!(
12404    ICoreWebView2DevToolsProtocolEventReceivedEventArgs2,
12405    ICoreWebView2DevToolsProtocolEventReceivedEventArgs2_Vtbl,
12406    0x2dc4959d_1494_4393_95ba_bea4cb9ebd1b
12407);
12408impl core::ops::Deref for ICoreWebView2DevToolsProtocolEventReceivedEventArgs2 {
12409    type Target = ICoreWebView2DevToolsProtocolEventReceivedEventArgs;
12410    fn deref(&self) -> &Self::Target {
12411        unsafe { core::mem::transmute(self) }
12412    }
12413}
12414windows_core::imp::interface_hierarchy!(
12415    ICoreWebView2DevToolsProtocolEventReceivedEventArgs2,
12416    windows_core::IUnknown,
12417    ICoreWebView2DevToolsProtocolEventReceivedEventArgs
12418);
12419impl ICoreWebView2DevToolsProtocolEventReceivedEventArgs2 {
12420    pub unsafe fn SessionId(&self, value: *mut windows_core::PWSTR) -> windows_core::Result<()> {
12421        unsafe {
12422            (windows_core::Interface::vtable(self).SessionId)(
12423                windows_core::Interface::as_raw(self),
12424                value as _,
12425            )
12426            .ok()
12427        }
12428    }
12429}
12430#[repr(C)]
12431#[doc(hidden)]
12432pub struct ICoreWebView2DevToolsProtocolEventReceivedEventArgs2_Vtbl {
12433    pub base__: ICoreWebView2DevToolsProtocolEventReceivedEventArgs_Vtbl,
12434    pub SessionId: unsafe extern "system" fn(
12435        *mut core::ffi::c_void,
12436        *mut windows_core::PWSTR,
12437    ) -> windows_core::HRESULT,
12438}
12439pub trait ICoreWebView2DevToolsProtocolEventReceivedEventArgs2_Impl:
12440    ICoreWebView2DevToolsProtocolEventReceivedEventArgs_Impl
12441{
12442    fn SessionId(&self, value: *mut windows_core::PWSTR) -> windows_core::Result<()>;
12443}
12444impl ICoreWebView2DevToolsProtocolEventReceivedEventArgs2_Vtbl {
12445    pub const fn new<
12446        Identity: ICoreWebView2DevToolsProtocolEventReceivedEventArgs2_Impl,
12447        const OFFSET: isize,
12448    >() -> Self {
12449        unsafe extern "system" fn SessionId<
12450            Identity: ICoreWebView2DevToolsProtocolEventReceivedEventArgs2_Impl,
12451            const OFFSET: isize,
12452        >(
12453            this: *mut core::ffi::c_void,
12454            value: *mut windows_core::PWSTR,
12455        ) -> windows_core::HRESULT {
12456            unsafe {
12457                let this: &Identity =
12458                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
12459                ICoreWebView2DevToolsProtocolEventReceivedEventArgs2_Impl::SessionId(
12460                    this,
12461                    core::mem::transmute_copy(&value),
12462                )
12463                .into()
12464            }
12465        }
12466        Self {
12467            base__: ICoreWebView2DevToolsProtocolEventReceivedEventArgs_Vtbl::new::<Identity, OFFSET>(
12468            ),
12469            SessionId: SessionId::<Identity, OFFSET>,
12470        }
12471    }
12472    pub fn matches(iid: &windows_core::GUID) -> bool {
12473        iid == & < ICoreWebView2DevToolsProtocolEventReceivedEventArgs2 as windows_core::Interface >::IID || iid == & < ICoreWebView2DevToolsProtocolEventReceivedEventArgs as windows_core::Interface >::IID
12474    }
12475}
12476impl windows_core::RuntimeName for ICoreWebView2DevToolsProtocolEventReceivedEventArgs2 {}
12477windows_core::imp::define_interface!(
12478    ICoreWebView2DevToolsProtocolEventReceivedEventHandler,
12479    ICoreWebView2DevToolsProtocolEventReceivedEventHandler_Vtbl,
12480    0xe2fda4be_5456_406c_a261_3d452138362c
12481);
12482windows_core::imp::interface_hierarchy!(
12483    ICoreWebView2DevToolsProtocolEventReceivedEventHandler,
12484    windows_core::IUnknown
12485);
12486impl ICoreWebView2DevToolsProtocolEventReceivedEventHandler {
12487    pub unsafe fn Invoke<P0, P1>(&self, sender: P0, args: P1) -> windows_core::Result<()>
12488    where
12489        P0: windows_core::Param<ICoreWebView2>,
12490        P1: windows_core::Param<ICoreWebView2DevToolsProtocolEventReceivedEventArgs>,
12491    {
12492        unsafe {
12493            (windows_core::Interface::vtable(self).Invoke)(
12494                windows_core::Interface::as_raw(self),
12495                sender.param().abi(),
12496                args.param().abi(),
12497            )
12498            .ok()
12499        }
12500    }
12501}
12502#[repr(C)]
12503#[doc(hidden)]
12504pub struct ICoreWebView2DevToolsProtocolEventReceivedEventHandler_Vtbl {
12505    pub base__: windows_core::IUnknown_Vtbl,
12506    pub Invoke: unsafe extern "system" fn(
12507        *mut core::ffi::c_void,
12508        *mut core::ffi::c_void,
12509        *mut core::ffi::c_void,
12510    ) -> windows_core::HRESULT,
12511}
12512pub trait ICoreWebView2DevToolsProtocolEventReceivedEventHandler_Impl:
12513    windows_core::IUnknownImpl
12514{
12515    fn Invoke(
12516        &self,
12517        sender: windows_core::Ref<'_, ICoreWebView2>,
12518        args: windows_core::Ref<'_, ICoreWebView2DevToolsProtocolEventReceivedEventArgs>,
12519    ) -> windows_core::Result<()>;
12520}
12521impl ICoreWebView2DevToolsProtocolEventReceivedEventHandler_Vtbl {
12522    pub const fn new<
12523        Identity: ICoreWebView2DevToolsProtocolEventReceivedEventHandler_Impl,
12524        const OFFSET: isize,
12525    >() -> Self {
12526        unsafe extern "system" fn Invoke<
12527            Identity: ICoreWebView2DevToolsProtocolEventReceivedEventHandler_Impl,
12528            const OFFSET: isize,
12529        >(
12530            this: *mut core::ffi::c_void,
12531            sender: *mut core::ffi::c_void,
12532            args: *mut core::ffi::c_void,
12533        ) -> windows_core::HRESULT {
12534            unsafe {
12535                let this: &Identity =
12536                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
12537                ICoreWebView2DevToolsProtocolEventReceivedEventHandler_Impl::Invoke(
12538                    this,
12539                    core::mem::transmute_copy(&sender),
12540                    core::mem::transmute_copy(&args),
12541                )
12542                .into()
12543            }
12544        }
12545        Self {
12546            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
12547            Invoke: Invoke::<Identity, OFFSET>,
12548        }
12549    }
12550    pub fn matches(iid: &windows_core::GUID) -> bool {
12551        iid == & < ICoreWebView2DevToolsProtocolEventReceivedEventHandler as windows_core::Interface >::IID
12552    }
12553}
12554impl windows_core::RuntimeName for ICoreWebView2DevToolsProtocolEventReceivedEventHandler {}
12555windows_core::imp::define_interface!(
12556    ICoreWebView2DevToolsProtocolEventReceiver,
12557    ICoreWebView2DevToolsProtocolEventReceiver_Vtbl,
12558    0xb32ca51a_8371_45e9_9317_af021d080367
12559);
12560windows_core::imp::interface_hierarchy!(
12561    ICoreWebView2DevToolsProtocolEventReceiver,
12562    windows_core::IUnknown
12563);
12564impl ICoreWebView2DevToolsProtocolEventReceiver {
12565    pub unsafe fn add_DevToolsProtocolEventReceived<P0>(
12566        &self,
12567        eventhandler: P0,
12568        token: *mut i64,
12569    ) -> windows_core::Result<()>
12570    where
12571        P0: windows_core::Param<ICoreWebView2DevToolsProtocolEventReceivedEventHandler>,
12572    {
12573        unsafe {
12574            (windows_core::Interface::vtable(self).add_DevToolsProtocolEventReceived)(
12575                windows_core::Interface::as_raw(self),
12576                eventhandler.param().abi(),
12577                token as _,
12578            )
12579            .ok()
12580        }
12581    }
12582    pub unsafe fn remove_DevToolsProtocolEventReceived(
12583        &self,
12584        token: i64,
12585    ) -> windows_core::Result<()> {
12586        unsafe {
12587            (windows_core::Interface::vtable(self).remove_DevToolsProtocolEventReceived)(
12588                windows_core::Interface::as_raw(self),
12589                token,
12590            )
12591            .ok()
12592        }
12593    }
12594}
12595#[repr(C)]
12596#[doc(hidden)]
12597pub struct ICoreWebView2DevToolsProtocolEventReceiver_Vtbl {
12598    pub base__: windows_core::IUnknown_Vtbl,
12599    pub add_DevToolsProtocolEventReceived: unsafe extern "system" fn(
12600        *mut core::ffi::c_void,
12601        *mut core::ffi::c_void,
12602        *mut i64,
12603    ) -> windows_core::HRESULT,
12604    pub remove_DevToolsProtocolEventReceived:
12605        unsafe extern "system" fn(*mut core::ffi::c_void, i64) -> windows_core::HRESULT,
12606}
12607pub trait ICoreWebView2DevToolsProtocolEventReceiver_Impl: windows_core::IUnknownImpl {
12608    fn add_DevToolsProtocolEventReceived(
12609        &self,
12610        eventhandler: windows_core::Ref<'_, ICoreWebView2DevToolsProtocolEventReceivedEventHandler>,
12611        token: *mut i64,
12612    ) -> windows_core::Result<()>;
12613    fn remove_DevToolsProtocolEventReceived(&self, token: i64) -> windows_core::Result<()>;
12614}
12615impl ICoreWebView2DevToolsProtocolEventReceiver_Vtbl {
12616    pub const fn new<
12617        Identity: ICoreWebView2DevToolsProtocolEventReceiver_Impl,
12618        const OFFSET: isize,
12619    >() -> Self {
12620        unsafe extern "system" fn add_DevToolsProtocolEventReceived<
12621            Identity: ICoreWebView2DevToolsProtocolEventReceiver_Impl,
12622            const OFFSET: isize,
12623        >(
12624            this: *mut core::ffi::c_void,
12625            eventhandler: *mut core::ffi::c_void,
12626            token: *mut i64,
12627        ) -> windows_core::HRESULT {
12628            unsafe {
12629                let this: &Identity =
12630                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
12631                ICoreWebView2DevToolsProtocolEventReceiver_Impl::add_DevToolsProtocolEventReceived(
12632                    this,
12633                    core::mem::transmute_copy(&eventhandler),
12634                    core::mem::transmute_copy(&token),
12635                )
12636                .into()
12637            }
12638        }
12639        unsafe extern "system" fn remove_DevToolsProtocolEventReceived<
12640            Identity: ICoreWebView2DevToolsProtocolEventReceiver_Impl,
12641            const OFFSET: isize,
12642        >(
12643            this: *mut core::ffi::c_void,
12644            token: i64,
12645        ) -> windows_core::HRESULT {
12646            unsafe {
12647                let this: &Identity =
12648                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
12649                ICoreWebView2DevToolsProtocolEventReceiver_Impl:: remove_DevToolsProtocolEventReceived ( this , core::mem::transmute_copy ( & token ) , ) . into ( )
12650            }
12651        }
12652        Self {
12653            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
12654            add_DevToolsProtocolEventReceived: add_DevToolsProtocolEventReceived::<Identity, OFFSET>,
12655            remove_DevToolsProtocolEventReceived: remove_DevToolsProtocolEventReceived::<
12656                Identity,
12657                OFFSET,
12658            >,
12659        }
12660    }
12661    pub fn matches(iid: &windows_core::GUID) -> bool {
12662        iid == &<ICoreWebView2DevToolsProtocolEventReceiver as windows_core::Interface>::IID
12663    }
12664}
12665impl windows_core::RuntimeName for ICoreWebView2DevToolsProtocolEventReceiver {}
12666windows_core::imp::define_interface!(
12667    ICoreWebView2DocumentTitleChangedEventHandler,
12668    ICoreWebView2DocumentTitleChangedEventHandler_Vtbl,
12669    0xf5f2b923_953e_4042_9f95_f3a118e1afd4
12670);
12671windows_core::imp::interface_hierarchy!(
12672    ICoreWebView2DocumentTitleChangedEventHandler,
12673    windows_core::IUnknown
12674);
12675impl ICoreWebView2DocumentTitleChangedEventHandler {
12676    pub unsafe fn Invoke<P0, P1>(&self, sender: P0, args: P1) -> windows_core::Result<()>
12677    where
12678        P0: windows_core::Param<ICoreWebView2>,
12679        P1: windows_core::Param<windows_core::IUnknown>,
12680    {
12681        unsafe {
12682            (windows_core::Interface::vtable(self).Invoke)(
12683                windows_core::Interface::as_raw(self),
12684                sender.param().abi(),
12685                args.param().abi(),
12686            )
12687            .ok()
12688        }
12689    }
12690}
12691#[repr(C)]
12692#[doc(hidden)]
12693pub struct ICoreWebView2DocumentTitleChangedEventHandler_Vtbl {
12694    pub base__: windows_core::IUnknown_Vtbl,
12695    pub Invoke: unsafe extern "system" fn(
12696        *mut core::ffi::c_void,
12697        *mut core::ffi::c_void,
12698        *mut core::ffi::c_void,
12699    ) -> windows_core::HRESULT,
12700}
12701pub trait ICoreWebView2DocumentTitleChangedEventHandler_Impl: windows_core::IUnknownImpl {
12702    fn Invoke(
12703        &self,
12704        sender: windows_core::Ref<'_, ICoreWebView2>,
12705        args: windows_core::Ref<'_, windows_core::IUnknown>,
12706    ) -> windows_core::Result<()>;
12707}
12708impl ICoreWebView2DocumentTitleChangedEventHandler_Vtbl {
12709    pub const fn new<
12710        Identity: ICoreWebView2DocumentTitleChangedEventHandler_Impl,
12711        const OFFSET: isize,
12712    >() -> Self {
12713        unsafe extern "system" fn Invoke<
12714            Identity: ICoreWebView2DocumentTitleChangedEventHandler_Impl,
12715            const OFFSET: isize,
12716        >(
12717            this: *mut core::ffi::c_void,
12718            sender: *mut core::ffi::c_void,
12719            args: *mut core::ffi::c_void,
12720        ) -> windows_core::HRESULT {
12721            unsafe {
12722                let this: &Identity =
12723                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
12724                ICoreWebView2DocumentTitleChangedEventHandler_Impl::Invoke(
12725                    this,
12726                    core::mem::transmute_copy(&sender),
12727                    core::mem::transmute_copy(&args),
12728                )
12729                .into()
12730            }
12731        }
12732        Self {
12733            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
12734            Invoke: Invoke::<Identity, OFFSET>,
12735        }
12736    }
12737    pub fn matches(iid: &windows_core::GUID) -> bool {
12738        iid == &<ICoreWebView2DocumentTitleChangedEventHandler as windows_core::Interface>::IID
12739    }
12740}
12741impl windows_core::RuntimeName for ICoreWebView2DocumentTitleChangedEventHandler {}
12742windows_core::imp::define_interface!(
12743    ICoreWebView2DownloadOperation,
12744    ICoreWebView2DownloadOperation_Vtbl,
12745    0x3d6b6cf2_afe1_44c7_a995_c65117714336
12746);
12747windows_core::imp::interface_hierarchy!(ICoreWebView2DownloadOperation, windows_core::IUnknown);
12748impl ICoreWebView2DownloadOperation {
12749    pub unsafe fn add_BytesReceivedChanged<P0>(
12750        &self,
12751        eventhandler: P0,
12752        token: *mut i64,
12753    ) -> windows_core::Result<()>
12754    where
12755        P0: windows_core::Param<ICoreWebView2BytesReceivedChangedEventHandler>,
12756    {
12757        unsafe {
12758            (windows_core::Interface::vtable(self).add_BytesReceivedChanged)(
12759                windows_core::Interface::as_raw(self),
12760                eventhandler.param().abi(),
12761                token as _,
12762            )
12763            .ok()
12764        }
12765    }
12766    pub unsafe fn remove_BytesReceivedChanged(&self, token: i64) -> windows_core::Result<()> {
12767        unsafe {
12768            (windows_core::Interface::vtable(self).remove_BytesReceivedChanged)(
12769                windows_core::Interface::as_raw(self),
12770                token,
12771            )
12772            .ok()
12773        }
12774    }
12775    pub unsafe fn add_EstimatedEndTimeChanged<P0>(
12776        &self,
12777        eventhandler: P0,
12778        token: *mut i64,
12779    ) -> windows_core::Result<()>
12780    where
12781        P0: windows_core::Param<ICoreWebView2EstimatedEndTimeChangedEventHandler>,
12782    {
12783        unsafe {
12784            (windows_core::Interface::vtable(self).add_EstimatedEndTimeChanged)(
12785                windows_core::Interface::as_raw(self),
12786                eventhandler.param().abi(),
12787                token as _,
12788            )
12789            .ok()
12790        }
12791    }
12792    pub unsafe fn remove_EstimatedEndTimeChanged(&self, token: i64) -> windows_core::Result<()> {
12793        unsafe {
12794            (windows_core::Interface::vtable(self).remove_EstimatedEndTimeChanged)(
12795                windows_core::Interface::as_raw(self),
12796                token,
12797            )
12798            .ok()
12799        }
12800    }
12801    pub unsafe fn add_StateChanged<P0>(
12802        &self,
12803        eventhandler: P0,
12804        token: *mut i64,
12805    ) -> windows_core::Result<()>
12806    where
12807        P0: windows_core::Param<ICoreWebView2StateChangedEventHandler>,
12808    {
12809        unsafe {
12810            (windows_core::Interface::vtable(self).add_StateChanged)(
12811                windows_core::Interface::as_raw(self),
12812                eventhandler.param().abi(),
12813                token as _,
12814            )
12815            .ok()
12816        }
12817    }
12818    pub unsafe fn remove_StateChanged(&self, token: i64) -> windows_core::Result<()> {
12819        unsafe {
12820            (windows_core::Interface::vtable(self).remove_StateChanged)(
12821                windows_core::Interface::as_raw(self),
12822                token,
12823            )
12824            .ok()
12825        }
12826    }
12827    pub unsafe fn Uri(&self, uri: *mut windows_core::PWSTR) -> windows_core::Result<()> {
12828        unsafe {
12829            (windows_core::Interface::vtable(self).Uri)(
12830                windows_core::Interface::as_raw(self),
12831                uri as _,
12832            )
12833            .ok()
12834        }
12835    }
12836    pub unsafe fn ContentDisposition(
12837        &self,
12838        contentdisposition: *mut windows_core::PWSTR,
12839    ) -> windows_core::Result<()> {
12840        unsafe {
12841            (windows_core::Interface::vtable(self).ContentDisposition)(
12842                windows_core::Interface::as_raw(self),
12843                contentdisposition as _,
12844            )
12845            .ok()
12846        }
12847    }
12848    pub unsafe fn MimeType(&self, mimetype: *mut windows_core::PWSTR) -> windows_core::Result<()> {
12849        unsafe {
12850            (windows_core::Interface::vtable(self).MimeType)(
12851                windows_core::Interface::as_raw(self),
12852                mimetype as _,
12853            )
12854            .ok()
12855        }
12856    }
12857    pub unsafe fn TotalBytesToReceive(
12858        &self,
12859        totalbytestoreceive: *mut i64,
12860    ) -> windows_core::Result<()> {
12861        unsafe {
12862            (windows_core::Interface::vtable(self).TotalBytesToReceive)(
12863                windows_core::Interface::as_raw(self),
12864                totalbytestoreceive as _,
12865            )
12866            .ok()
12867        }
12868    }
12869    pub unsafe fn BytesReceived(&self, bytesreceived: *mut i64) -> windows_core::Result<()> {
12870        unsafe {
12871            (windows_core::Interface::vtable(self).BytesReceived)(
12872                windows_core::Interface::as_raw(self),
12873                bytesreceived as _,
12874            )
12875            .ok()
12876        }
12877    }
12878    pub unsafe fn EstimatedEndTime(
12879        &self,
12880        estimatedendtime: *mut windows_core::PWSTR,
12881    ) -> windows_core::Result<()> {
12882        unsafe {
12883            (windows_core::Interface::vtable(self).EstimatedEndTime)(
12884                windows_core::Interface::as_raw(self),
12885                estimatedendtime as _,
12886            )
12887            .ok()
12888        }
12889    }
12890    pub unsafe fn ResultFilePath(
12891        &self,
12892        resultfilepath: *mut windows_core::PWSTR,
12893    ) -> windows_core::Result<()> {
12894        unsafe {
12895            (windows_core::Interface::vtable(self).ResultFilePath)(
12896                windows_core::Interface::as_raw(self),
12897                resultfilepath as _,
12898            )
12899            .ok()
12900        }
12901    }
12902    pub unsafe fn State(
12903        &self,
12904        downloadstate: *mut COREWEBVIEW2_DOWNLOAD_STATE,
12905    ) -> windows_core::Result<()> {
12906        unsafe {
12907            (windows_core::Interface::vtable(self).State)(
12908                windows_core::Interface::as_raw(self),
12909                downloadstate as _,
12910            )
12911            .ok()
12912        }
12913    }
12914    pub unsafe fn InterruptReason(
12915        &self,
12916        interruptreason: *mut COREWEBVIEW2_DOWNLOAD_INTERRUPT_REASON,
12917    ) -> windows_core::Result<()> {
12918        unsafe {
12919            (windows_core::Interface::vtable(self).InterruptReason)(
12920                windows_core::Interface::as_raw(self),
12921                interruptreason as _,
12922            )
12923            .ok()
12924        }
12925    }
12926    pub unsafe fn Cancel(&self) -> windows_core::Result<()> {
12927        unsafe {
12928            (windows_core::Interface::vtable(self).Cancel)(windows_core::Interface::as_raw(self))
12929                .ok()
12930        }
12931    }
12932    pub unsafe fn Pause(&self) -> windows_core::Result<()> {
12933        unsafe {
12934            (windows_core::Interface::vtable(self).Pause)(windows_core::Interface::as_raw(self))
12935                .ok()
12936        }
12937    }
12938    pub unsafe fn Resume(&self) -> windows_core::Result<()> {
12939        unsafe {
12940            (windows_core::Interface::vtable(self).Resume)(windows_core::Interface::as_raw(self))
12941                .ok()
12942        }
12943    }
12944    pub unsafe fn CanResume(&self, canresume: *mut windows_core::BOOL) -> windows_core::Result<()> {
12945        unsafe {
12946            (windows_core::Interface::vtable(self).CanResume)(
12947                windows_core::Interface::as_raw(self),
12948                canresume as _,
12949            )
12950            .ok()
12951        }
12952    }
12953}
12954#[repr(C)]
12955#[doc(hidden)]
12956pub struct ICoreWebView2DownloadOperation_Vtbl {
12957    pub base__: windows_core::IUnknown_Vtbl,
12958    pub add_BytesReceivedChanged: unsafe extern "system" fn(
12959        *mut core::ffi::c_void,
12960        *mut core::ffi::c_void,
12961        *mut i64,
12962    ) -> windows_core::HRESULT,
12963    pub remove_BytesReceivedChanged:
12964        unsafe extern "system" fn(*mut core::ffi::c_void, i64) -> windows_core::HRESULT,
12965    pub add_EstimatedEndTimeChanged: unsafe extern "system" fn(
12966        *mut core::ffi::c_void,
12967        *mut core::ffi::c_void,
12968        *mut i64,
12969    ) -> windows_core::HRESULT,
12970    pub remove_EstimatedEndTimeChanged:
12971        unsafe extern "system" fn(*mut core::ffi::c_void, i64) -> windows_core::HRESULT,
12972    pub add_StateChanged: unsafe extern "system" fn(
12973        *mut core::ffi::c_void,
12974        *mut core::ffi::c_void,
12975        *mut i64,
12976    ) -> windows_core::HRESULT,
12977    pub remove_StateChanged:
12978        unsafe extern "system" fn(*mut core::ffi::c_void, i64) -> windows_core::HRESULT,
12979    pub Uri: unsafe extern "system" fn(
12980        *mut core::ffi::c_void,
12981        *mut windows_core::PWSTR,
12982    ) -> windows_core::HRESULT,
12983    pub ContentDisposition: unsafe extern "system" fn(
12984        *mut core::ffi::c_void,
12985        *mut windows_core::PWSTR,
12986    ) -> windows_core::HRESULT,
12987    pub MimeType: unsafe extern "system" fn(
12988        *mut core::ffi::c_void,
12989        *mut windows_core::PWSTR,
12990    ) -> windows_core::HRESULT,
12991    pub TotalBytesToReceive:
12992        unsafe extern "system" fn(*mut core::ffi::c_void, *mut i64) -> windows_core::HRESULT,
12993    pub BytesReceived:
12994        unsafe extern "system" fn(*mut core::ffi::c_void, *mut i64) -> windows_core::HRESULT,
12995    pub EstimatedEndTime: unsafe extern "system" fn(
12996        *mut core::ffi::c_void,
12997        *mut windows_core::PWSTR,
12998    ) -> windows_core::HRESULT,
12999    pub ResultFilePath: unsafe extern "system" fn(
13000        *mut core::ffi::c_void,
13001        *mut windows_core::PWSTR,
13002    ) -> windows_core::HRESULT,
13003    pub State: unsafe extern "system" fn(
13004        *mut core::ffi::c_void,
13005        *mut COREWEBVIEW2_DOWNLOAD_STATE,
13006    ) -> windows_core::HRESULT,
13007    pub InterruptReason: unsafe extern "system" fn(
13008        *mut core::ffi::c_void,
13009        *mut COREWEBVIEW2_DOWNLOAD_INTERRUPT_REASON,
13010    ) -> windows_core::HRESULT,
13011    pub Cancel: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
13012    pub Pause: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
13013    pub Resume: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
13014    pub CanResume: unsafe extern "system" fn(
13015        *mut core::ffi::c_void,
13016        *mut windows_core::BOOL,
13017    ) -> windows_core::HRESULT,
13018}
13019pub trait ICoreWebView2DownloadOperation_Impl: windows_core::IUnknownImpl {
13020    fn add_BytesReceivedChanged(
13021        &self,
13022        eventhandler: windows_core::Ref<'_, ICoreWebView2BytesReceivedChangedEventHandler>,
13023        token: *mut i64,
13024    ) -> windows_core::Result<()>;
13025    fn remove_BytesReceivedChanged(&self, token: i64) -> windows_core::Result<()>;
13026    fn add_EstimatedEndTimeChanged(
13027        &self,
13028        eventhandler: windows_core::Ref<'_, ICoreWebView2EstimatedEndTimeChangedEventHandler>,
13029        token: *mut i64,
13030    ) -> windows_core::Result<()>;
13031    fn remove_EstimatedEndTimeChanged(&self, token: i64) -> windows_core::Result<()>;
13032    fn add_StateChanged(
13033        &self,
13034        eventhandler: windows_core::Ref<'_, ICoreWebView2StateChangedEventHandler>,
13035        token: *mut i64,
13036    ) -> windows_core::Result<()>;
13037    fn remove_StateChanged(&self, token: i64) -> windows_core::Result<()>;
13038    fn Uri(&self, uri: *mut windows_core::PWSTR) -> windows_core::Result<()>;
13039    fn ContentDisposition(
13040        &self,
13041        contentdisposition: *mut windows_core::PWSTR,
13042    ) -> windows_core::Result<()>;
13043    fn MimeType(&self, mimetype: *mut windows_core::PWSTR) -> windows_core::Result<()>;
13044    fn TotalBytesToReceive(&self, totalbytestoreceive: *mut i64) -> windows_core::Result<()>;
13045    fn BytesReceived(&self, bytesreceived: *mut i64) -> windows_core::Result<()>;
13046    fn EstimatedEndTime(
13047        &self,
13048        estimatedendtime: *mut windows_core::PWSTR,
13049    ) -> windows_core::Result<()>;
13050    fn ResultFilePath(&self, resultfilepath: *mut windows_core::PWSTR) -> windows_core::Result<()>;
13051    fn State(&self, downloadstate: *mut COREWEBVIEW2_DOWNLOAD_STATE) -> windows_core::Result<()>;
13052    fn InterruptReason(
13053        &self,
13054        interruptreason: *mut COREWEBVIEW2_DOWNLOAD_INTERRUPT_REASON,
13055    ) -> windows_core::Result<()>;
13056    fn Cancel(&self) -> windows_core::Result<()>;
13057    fn Pause(&self) -> windows_core::Result<()>;
13058    fn Resume(&self) -> windows_core::Result<()>;
13059    fn CanResume(&self, canresume: *mut windows_core::BOOL) -> windows_core::Result<()>;
13060}
13061impl ICoreWebView2DownloadOperation_Vtbl {
13062    pub const fn new<Identity: ICoreWebView2DownloadOperation_Impl, const OFFSET: isize>() -> Self {
13063        unsafe extern "system" fn add_BytesReceivedChanged<
13064            Identity: ICoreWebView2DownloadOperation_Impl,
13065            const OFFSET: isize,
13066        >(
13067            this: *mut core::ffi::c_void,
13068            eventhandler: *mut core::ffi::c_void,
13069            token: *mut i64,
13070        ) -> windows_core::HRESULT {
13071            unsafe {
13072                let this: &Identity =
13073                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
13074                ICoreWebView2DownloadOperation_Impl::add_BytesReceivedChanged(
13075                    this,
13076                    core::mem::transmute_copy(&eventhandler),
13077                    core::mem::transmute_copy(&token),
13078                )
13079                .into()
13080            }
13081        }
13082        unsafe extern "system" fn remove_BytesReceivedChanged<
13083            Identity: ICoreWebView2DownloadOperation_Impl,
13084            const OFFSET: isize,
13085        >(
13086            this: *mut core::ffi::c_void,
13087            token: i64,
13088        ) -> windows_core::HRESULT {
13089            unsafe {
13090                let this: &Identity =
13091                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
13092                ICoreWebView2DownloadOperation_Impl::remove_BytesReceivedChanged(
13093                    this,
13094                    core::mem::transmute_copy(&token),
13095                )
13096                .into()
13097            }
13098        }
13099        unsafe extern "system" fn add_EstimatedEndTimeChanged<
13100            Identity: ICoreWebView2DownloadOperation_Impl,
13101            const OFFSET: isize,
13102        >(
13103            this: *mut core::ffi::c_void,
13104            eventhandler: *mut core::ffi::c_void,
13105            token: *mut i64,
13106        ) -> windows_core::HRESULT {
13107            unsafe {
13108                let this: &Identity =
13109                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
13110                ICoreWebView2DownloadOperation_Impl::add_EstimatedEndTimeChanged(
13111                    this,
13112                    core::mem::transmute_copy(&eventhandler),
13113                    core::mem::transmute_copy(&token),
13114                )
13115                .into()
13116            }
13117        }
13118        unsafe extern "system" fn remove_EstimatedEndTimeChanged<
13119            Identity: ICoreWebView2DownloadOperation_Impl,
13120            const OFFSET: isize,
13121        >(
13122            this: *mut core::ffi::c_void,
13123            token: i64,
13124        ) -> windows_core::HRESULT {
13125            unsafe {
13126                let this: &Identity =
13127                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
13128                ICoreWebView2DownloadOperation_Impl::remove_EstimatedEndTimeChanged(
13129                    this,
13130                    core::mem::transmute_copy(&token),
13131                )
13132                .into()
13133            }
13134        }
13135        unsafe extern "system" fn add_StateChanged<
13136            Identity: ICoreWebView2DownloadOperation_Impl,
13137            const OFFSET: isize,
13138        >(
13139            this: *mut core::ffi::c_void,
13140            eventhandler: *mut core::ffi::c_void,
13141            token: *mut i64,
13142        ) -> windows_core::HRESULT {
13143            unsafe {
13144                let this: &Identity =
13145                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
13146                ICoreWebView2DownloadOperation_Impl::add_StateChanged(
13147                    this,
13148                    core::mem::transmute_copy(&eventhandler),
13149                    core::mem::transmute_copy(&token),
13150                )
13151                .into()
13152            }
13153        }
13154        unsafe extern "system" fn remove_StateChanged<
13155            Identity: ICoreWebView2DownloadOperation_Impl,
13156            const OFFSET: isize,
13157        >(
13158            this: *mut core::ffi::c_void,
13159            token: i64,
13160        ) -> windows_core::HRESULT {
13161            unsafe {
13162                let this: &Identity =
13163                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
13164                ICoreWebView2DownloadOperation_Impl::remove_StateChanged(
13165                    this,
13166                    core::mem::transmute_copy(&token),
13167                )
13168                .into()
13169            }
13170        }
13171        unsafe extern "system" fn Uri<
13172            Identity: ICoreWebView2DownloadOperation_Impl,
13173            const OFFSET: isize,
13174        >(
13175            this: *mut core::ffi::c_void,
13176            uri: *mut windows_core::PWSTR,
13177        ) -> windows_core::HRESULT {
13178            unsafe {
13179                let this: &Identity =
13180                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
13181                ICoreWebView2DownloadOperation_Impl::Uri(this, core::mem::transmute_copy(&uri))
13182                    .into()
13183            }
13184        }
13185        unsafe extern "system" fn ContentDisposition<
13186            Identity: ICoreWebView2DownloadOperation_Impl,
13187            const OFFSET: isize,
13188        >(
13189            this: *mut core::ffi::c_void,
13190            contentdisposition: *mut windows_core::PWSTR,
13191        ) -> windows_core::HRESULT {
13192            unsafe {
13193                let this: &Identity =
13194                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
13195                ICoreWebView2DownloadOperation_Impl::ContentDisposition(
13196                    this,
13197                    core::mem::transmute_copy(&contentdisposition),
13198                )
13199                .into()
13200            }
13201        }
13202        unsafe extern "system" fn MimeType<
13203            Identity: ICoreWebView2DownloadOperation_Impl,
13204            const OFFSET: isize,
13205        >(
13206            this: *mut core::ffi::c_void,
13207            mimetype: *mut windows_core::PWSTR,
13208        ) -> windows_core::HRESULT {
13209            unsafe {
13210                let this: &Identity =
13211                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
13212                ICoreWebView2DownloadOperation_Impl::MimeType(
13213                    this,
13214                    core::mem::transmute_copy(&mimetype),
13215                )
13216                .into()
13217            }
13218        }
13219        unsafe extern "system" fn TotalBytesToReceive<
13220            Identity: ICoreWebView2DownloadOperation_Impl,
13221            const OFFSET: isize,
13222        >(
13223            this: *mut core::ffi::c_void,
13224            totalbytestoreceive: *mut i64,
13225        ) -> windows_core::HRESULT {
13226            unsafe {
13227                let this: &Identity =
13228                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
13229                ICoreWebView2DownloadOperation_Impl::TotalBytesToReceive(
13230                    this,
13231                    core::mem::transmute_copy(&totalbytestoreceive),
13232                )
13233                .into()
13234            }
13235        }
13236        unsafe extern "system" fn BytesReceived<
13237            Identity: ICoreWebView2DownloadOperation_Impl,
13238            const OFFSET: isize,
13239        >(
13240            this: *mut core::ffi::c_void,
13241            bytesreceived: *mut i64,
13242        ) -> windows_core::HRESULT {
13243            unsafe {
13244                let this: &Identity =
13245                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
13246                ICoreWebView2DownloadOperation_Impl::BytesReceived(
13247                    this,
13248                    core::mem::transmute_copy(&bytesreceived),
13249                )
13250                .into()
13251            }
13252        }
13253        unsafe extern "system" fn EstimatedEndTime<
13254            Identity: ICoreWebView2DownloadOperation_Impl,
13255            const OFFSET: isize,
13256        >(
13257            this: *mut core::ffi::c_void,
13258            estimatedendtime: *mut windows_core::PWSTR,
13259        ) -> windows_core::HRESULT {
13260            unsafe {
13261                let this: &Identity =
13262                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
13263                ICoreWebView2DownloadOperation_Impl::EstimatedEndTime(
13264                    this,
13265                    core::mem::transmute_copy(&estimatedendtime),
13266                )
13267                .into()
13268            }
13269        }
13270        unsafe extern "system" fn ResultFilePath<
13271            Identity: ICoreWebView2DownloadOperation_Impl,
13272            const OFFSET: isize,
13273        >(
13274            this: *mut core::ffi::c_void,
13275            resultfilepath: *mut windows_core::PWSTR,
13276        ) -> windows_core::HRESULT {
13277            unsafe {
13278                let this: &Identity =
13279                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
13280                ICoreWebView2DownloadOperation_Impl::ResultFilePath(
13281                    this,
13282                    core::mem::transmute_copy(&resultfilepath),
13283                )
13284                .into()
13285            }
13286        }
13287        unsafe extern "system" fn State<
13288            Identity: ICoreWebView2DownloadOperation_Impl,
13289            const OFFSET: isize,
13290        >(
13291            this: *mut core::ffi::c_void,
13292            downloadstate: *mut COREWEBVIEW2_DOWNLOAD_STATE,
13293        ) -> windows_core::HRESULT {
13294            unsafe {
13295                let this: &Identity =
13296                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
13297                ICoreWebView2DownloadOperation_Impl::State(
13298                    this,
13299                    core::mem::transmute_copy(&downloadstate),
13300                )
13301                .into()
13302            }
13303        }
13304        unsafe extern "system" fn InterruptReason<
13305            Identity: ICoreWebView2DownloadOperation_Impl,
13306            const OFFSET: isize,
13307        >(
13308            this: *mut core::ffi::c_void,
13309            interruptreason: *mut COREWEBVIEW2_DOWNLOAD_INTERRUPT_REASON,
13310        ) -> windows_core::HRESULT {
13311            unsafe {
13312                let this: &Identity =
13313                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
13314                ICoreWebView2DownloadOperation_Impl::InterruptReason(
13315                    this,
13316                    core::mem::transmute_copy(&interruptreason),
13317                )
13318                .into()
13319            }
13320        }
13321        unsafe extern "system" fn Cancel<
13322            Identity: ICoreWebView2DownloadOperation_Impl,
13323            const OFFSET: isize,
13324        >(
13325            this: *mut core::ffi::c_void,
13326        ) -> windows_core::HRESULT {
13327            unsafe {
13328                let this: &Identity =
13329                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
13330                ICoreWebView2DownloadOperation_Impl::Cancel(this).into()
13331            }
13332        }
13333        unsafe extern "system" fn Pause<
13334            Identity: ICoreWebView2DownloadOperation_Impl,
13335            const OFFSET: isize,
13336        >(
13337            this: *mut core::ffi::c_void,
13338        ) -> windows_core::HRESULT {
13339            unsafe {
13340                let this: &Identity =
13341                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
13342                ICoreWebView2DownloadOperation_Impl::Pause(this).into()
13343            }
13344        }
13345        unsafe extern "system" fn Resume<
13346            Identity: ICoreWebView2DownloadOperation_Impl,
13347            const OFFSET: isize,
13348        >(
13349            this: *mut core::ffi::c_void,
13350        ) -> windows_core::HRESULT {
13351            unsafe {
13352                let this: &Identity =
13353                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
13354                ICoreWebView2DownloadOperation_Impl::Resume(this).into()
13355            }
13356        }
13357        unsafe extern "system" fn CanResume<
13358            Identity: ICoreWebView2DownloadOperation_Impl,
13359            const OFFSET: isize,
13360        >(
13361            this: *mut core::ffi::c_void,
13362            canresume: *mut windows_core::BOOL,
13363        ) -> windows_core::HRESULT {
13364            unsafe {
13365                let this: &Identity =
13366                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
13367                ICoreWebView2DownloadOperation_Impl::CanResume(
13368                    this,
13369                    core::mem::transmute_copy(&canresume),
13370                )
13371                .into()
13372            }
13373        }
13374        Self {
13375            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
13376            add_BytesReceivedChanged: add_BytesReceivedChanged::<Identity, OFFSET>,
13377            remove_BytesReceivedChanged: remove_BytesReceivedChanged::<Identity, OFFSET>,
13378            add_EstimatedEndTimeChanged: add_EstimatedEndTimeChanged::<Identity, OFFSET>,
13379            remove_EstimatedEndTimeChanged: remove_EstimatedEndTimeChanged::<Identity, OFFSET>,
13380            add_StateChanged: add_StateChanged::<Identity, OFFSET>,
13381            remove_StateChanged: remove_StateChanged::<Identity, OFFSET>,
13382            Uri: Uri::<Identity, OFFSET>,
13383            ContentDisposition: ContentDisposition::<Identity, OFFSET>,
13384            MimeType: MimeType::<Identity, OFFSET>,
13385            TotalBytesToReceive: TotalBytesToReceive::<Identity, OFFSET>,
13386            BytesReceived: BytesReceived::<Identity, OFFSET>,
13387            EstimatedEndTime: EstimatedEndTime::<Identity, OFFSET>,
13388            ResultFilePath: ResultFilePath::<Identity, OFFSET>,
13389            State: State::<Identity, OFFSET>,
13390            InterruptReason: InterruptReason::<Identity, OFFSET>,
13391            Cancel: Cancel::<Identity, OFFSET>,
13392            Pause: Pause::<Identity, OFFSET>,
13393            Resume: Resume::<Identity, OFFSET>,
13394            CanResume: CanResume::<Identity, OFFSET>,
13395        }
13396    }
13397    pub fn matches(iid: &windows_core::GUID) -> bool {
13398        iid == &<ICoreWebView2DownloadOperation as windows_core::Interface>::IID
13399    }
13400}
13401impl windows_core::RuntimeName for ICoreWebView2DownloadOperation {}
13402windows_core::imp::define_interface!(
13403    ICoreWebView2DownloadStartingEventArgs,
13404    ICoreWebView2DownloadStartingEventArgs_Vtbl,
13405    0xe99bbe21_43e9_4544_a732_282764eafa60
13406);
13407windows_core::imp::interface_hierarchy!(
13408    ICoreWebView2DownloadStartingEventArgs,
13409    windows_core::IUnknown
13410);
13411impl ICoreWebView2DownloadStartingEventArgs {
13412    pub unsafe fn DownloadOperation(&self) -> windows_core::Result<ICoreWebView2DownloadOperation> {
13413        unsafe {
13414            let mut result__ = core::mem::zeroed();
13415            (windows_core::Interface::vtable(self).DownloadOperation)(
13416                windows_core::Interface::as_raw(self),
13417                &mut result__,
13418            )
13419            .and_then(|| windows_core::Type::from_abi(result__))
13420        }
13421    }
13422    pub unsafe fn Cancel(&self, cancel: *mut windows_core::BOOL) -> windows_core::Result<()> {
13423        unsafe {
13424            (windows_core::Interface::vtable(self).Cancel)(
13425                windows_core::Interface::as_raw(self),
13426                cancel as _,
13427            )
13428            .ok()
13429        }
13430    }
13431    pub unsafe fn SetCancel(&self, cancel: bool) -> windows_core::Result<()> {
13432        unsafe {
13433            (windows_core::Interface::vtable(self).SetCancel)(
13434                windows_core::Interface::as_raw(self),
13435                cancel.into(),
13436            )
13437            .ok()
13438        }
13439    }
13440    pub unsafe fn ResultFilePath(
13441        &self,
13442        resultfilepath: *mut windows_core::PWSTR,
13443    ) -> windows_core::Result<()> {
13444        unsafe {
13445            (windows_core::Interface::vtable(self).ResultFilePath)(
13446                windows_core::Interface::as_raw(self),
13447                resultfilepath as _,
13448            )
13449            .ok()
13450        }
13451    }
13452    pub unsafe fn SetResultFilePath<P0>(&self, resultfilepath: P0) -> windows_core::Result<()>
13453    where
13454        P0: windows_core::Param<windows_core::PCWSTR>,
13455    {
13456        unsafe {
13457            (windows_core::Interface::vtable(self).SetResultFilePath)(
13458                windows_core::Interface::as_raw(self),
13459                resultfilepath.param().abi(),
13460            )
13461            .ok()
13462        }
13463    }
13464    pub unsafe fn Handled(&self, handled: *mut windows_core::BOOL) -> windows_core::Result<()> {
13465        unsafe {
13466            (windows_core::Interface::vtable(self).Handled)(
13467                windows_core::Interface::as_raw(self),
13468                handled as _,
13469            )
13470            .ok()
13471        }
13472    }
13473    pub unsafe fn SetHandled(&self, handled: bool) -> windows_core::Result<()> {
13474        unsafe {
13475            (windows_core::Interface::vtable(self).SetHandled)(
13476                windows_core::Interface::as_raw(self),
13477                handled.into(),
13478            )
13479            .ok()
13480        }
13481    }
13482    pub unsafe fn GetDeferral(&self) -> windows_core::Result<ICoreWebView2Deferral> {
13483        unsafe {
13484            let mut result__ = core::mem::zeroed();
13485            (windows_core::Interface::vtable(self).GetDeferral)(
13486                windows_core::Interface::as_raw(self),
13487                &mut result__,
13488            )
13489            .and_then(|| windows_core::Type::from_abi(result__))
13490        }
13491    }
13492}
13493#[repr(C)]
13494#[doc(hidden)]
13495pub struct ICoreWebView2DownloadStartingEventArgs_Vtbl {
13496    pub base__: windows_core::IUnknown_Vtbl,
13497    pub DownloadOperation: unsafe extern "system" fn(
13498        *mut core::ffi::c_void,
13499        *mut *mut core::ffi::c_void,
13500    ) -> windows_core::HRESULT,
13501    pub Cancel: unsafe extern "system" fn(
13502        *mut core::ffi::c_void,
13503        *mut windows_core::BOOL,
13504    ) -> windows_core::HRESULT,
13505    pub SetCancel: unsafe extern "system" fn(
13506        *mut core::ffi::c_void,
13507        windows_core::BOOL,
13508    ) -> windows_core::HRESULT,
13509    pub ResultFilePath: unsafe extern "system" fn(
13510        *mut core::ffi::c_void,
13511        *mut windows_core::PWSTR,
13512    ) -> windows_core::HRESULT,
13513    pub SetResultFilePath: unsafe extern "system" fn(
13514        *mut core::ffi::c_void,
13515        windows_core::PCWSTR,
13516    ) -> windows_core::HRESULT,
13517    pub Handled: unsafe extern "system" fn(
13518        *mut core::ffi::c_void,
13519        *mut windows_core::BOOL,
13520    ) -> windows_core::HRESULT,
13521    pub SetHandled: unsafe extern "system" fn(
13522        *mut core::ffi::c_void,
13523        windows_core::BOOL,
13524    ) -> windows_core::HRESULT,
13525    pub GetDeferral: unsafe extern "system" fn(
13526        *mut core::ffi::c_void,
13527        *mut *mut core::ffi::c_void,
13528    ) -> windows_core::HRESULT,
13529}
13530pub trait ICoreWebView2DownloadStartingEventArgs_Impl: windows_core::IUnknownImpl {
13531    fn DownloadOperation(&self) -> windows_core::Result<ICoreWebView2DownloadOperation>;
13532    fn Cancel(&self, cancel: *mut windows_core::BOOL) -> windows_core::Result<()>;
13533    fn SetCancel(&self, cancel: windows_core::BOOL) -> windows_core::Result<()>;
13534    fn ResultFilePath(&self, resultfilepath: *mut windows_core::PWSTR) -> windows_core::Result<()>;
13535    fn SetResultFilePath(&self, resultfilepath: &windows_core::PCWSTR) -> windows_core::Result<()>;
13536    fn Handled(&self, handled: *mut windows_core::BOOL) -> windows_core::Result<()>;
13537    fn SetHandled(&self, handled: windows_core::BOOL) -> windows_core::Result<()>;
13538    fn GetDeferral(&self) -> windows_core::Result<ICoreWebView2Deferral>;
13539}
13540impl ICoreWebView2DownloadStartingEventArgs_Vtbl {
13541    pub const fn new<Identity: ICoreWebView2DownloadStartingEventArgs_Impl, const OFFSET: isize>(
13542    ) -> Self {
13543        unsafe extern "system" fn DownloadOperation<
13544            Identity: ICoreWebView2DownloadStartingEventArgs_Impl,
13545            const OFFSET: isize,
13546        >(
13547            this: *mut core::ffi::c_void,
13548            downloadoperation: *mut *mut core::ffi::c_void,
13549        ) -> windows_core::HRESULT {
13550            unsafe {
13551                let this: &Identity =
13552                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
13553                match ICoreWebView2DownloadStartingEventArgs_Impl::DownloadOperation(this) {
13554                    Ok(ok__) => {
13555                        downloadoperation.write(core::mem::transmute(ok__));
13556                        windows_core::HRESULT(0)
13557                    }
13558                    Err(err) => err.into(),
13559                }
13560            }
13561        }
13562        unsafe extern "system" fn Cancel<
13563            Identity: ICoreWebView2DownloadStartingEventArgs_Impl,
13564            const OFFSET: isize,
13565        >(
13566            this: *mut core::ffi::c_void,
13567            cancel: *mut windows_core::BOOL,
13568        ) -> windows_core::HRESULT {
13569            unsafe {
13570                let this: &Identity =
13571                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
13572                ICoreWebView2DownloadStartingEventArgs_Impl::Cancel(
13573                    this,
13574                    core::mem::transmute_copy(&cancel),
13575                )
13576                .into()
13577            }
13578        }
13579        unsafe extern "system" fn SetCancel<
13580            Identity: ICoreWebView2DownloadStartingEventArgs_Impl,
13581            const OFFSET: isize,
13582        >(
13583            this: *mut core::ffi::c_void,
13584            cancel: windows_core::BOOL,
13585        ) -> windows_core::HRESULT {
13586            unsafe {
13587                let this: &Identity =
13588                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
13589                ICoreWebView2DownloadStartingEventArgs_Impl::SetCancel(
13590                    this,
13591                    core::mem::transmute_copy(&cancel),
13592                )
13593                .into()
13594            }
13595        }
13596        unsafe extern "system" fn ResultFilePath<
13597            Identity: ICoreWebView2DownloadStartingEventArgs_Impl,
13598            const OFFSET: isize,
13599        >(
13600            this: *mut core::ffi::c_void,
13601            resultfilepath: *mut windows_core::PWSTR,
13602        ) -> windows_core::HRESULT {
13603            unsafe {
13604                let this: &Identity =
13605                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
13606                ICoreWebView2DownloadStartingEventArgs_Impl::ResultFilePath(
13607                    this,
13608                    core::mem::transmute_copy(&resultfilepath),
13609                )
13610                .into()
13611            }
13612        }
13613        unsafe extern "system" fn SetResultFilePath<
13614            Identity: ICoreWebView2DownloadStartingEventArgs_Impl,
13615            const OFFSET: isize,
13616        >(
13617            this: *mut core::ffi::c_void,
13618            resultfilepath: windows_core::PCWSTR,
13619        ) -> windows_core::HRESULT {
13620            unsafe {
13621                let this: &Identity =
13622                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
13623                ICoreWebView2DownloadStartingEventArgs_Impl::SetResultFilePath(
13624                    this,
13625                    core::mem::transmute(&resultfilepath),
13626                )
13627                .into()
13628            }
13629        }
13630        unsafe extern "system" fn Handled<
13631            Identity: ICoreWebView2DownloadStartingEventArgs_Impl,
13632            const OFFSET: isize,
13633        >(
13634            this: *mut core::ffi::c_void,
13635            handled: *mut windows_core::BOOL,
13636        ) -> windows_core::HRESULT {
13637            unsafe {
13638                let this: &Identity =
13639                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
13640                ICoreWebView2DownloadStartingEventArgs_Impl::Handled(
13641                    this,
13642                    core::mem::transmute_copy(&handled),
13643                )
13644                .into()
13645            }
13646        }
13647        unsafe extern "system" fn SetHandled<
13648            Identity: ICoreWebView2DownloadStartingEventArgs_Impl,
13649            const OFFSET: isize,
13650        >(
13651            this: *mut core::ffi::c_void,
13652            handled: windows_core::BOOL,
13653        ) -> windows_core::HRESULT {
13654            unsafe {
13655                let this: &Identity =
13656                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
13657                ICoreWebView2DownloadStartingEventArgs_Impl::SetHandled(
13658                    this,
13659                    core::mem::transmute_copy(&handled),
13660                )
13661                .into()
13662            }
13663        }
13664        unsafe extern "system" fn GetDeferral<
13665            Identity: ICoreWebView2DownloadStartingEventArgs_Impl,
13666            const OFFSET: isize,
13667        >(
13668            this: *mut core::ffi::c_void,
13669            deferral: *mut *mut core::ffi::c_void,
13670        ) -> windows_core::HRESULT {
13671            unsafe {
13672                let this: &Identity =
13673                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
13674                match ICoreWebView2DownloadStartingEventArgs_Impl::GetDeferral(this) {
13675                    Ok(ok__) => {
13676                        deferral.write(core::mem::transmute(ok__));
13677                        windows_core::HRESULT(0)
13678                    }
13679                    Err(err) => err.into(),
13680                }
13681            }
13682        }
13683        Self {
13684            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
13685            DownloadOperation: DownloadOperation::<Identity, OFFSET>,
13686            Cancel: Cancel::<Identity, OFFSET>,
13687            SetCancel: SetCancel::<Identity, OFFSET>,
13688            ResultFilePath: ResultFilePath::<Identity, OFFSET>,
13689            SetResultFilePath: SetResultFilePath::<Identity, OFFSET>,
13690            Handled: Handled::<Identity, OFFSET>,
13691            SetHandled: SetHandled::<Identity, OFFSET>,
13692            GetDeferral: GetDeferral::<Identity, OFFSET>,
13693        }
13694    }
13695    pub fn matches(iid: &windows_core::GUID) -> bool {
13696        iid == &<ICoreWebView2DownloadStartingEventArgs as windows_core::Interface>::IID
13697    }
13698}
13699impl windows_core::RuntimeName for ICoreWebView2DownloadStartingEventArgs {}
13700windows_core::imp::define_interface!(
13701    ICoreWebView2DownloadStartingEventHandler,
13702    ICoreWebView2DownloadStartingEventHandler_Vtbl,
13703    0xefedc989_c396_41ca_83f7_07f845a55724
13704);
13705windows_core::imp::interface_hierarchy!(
13706    ICoreWebView2DownloadStartingEventHandler,
13707    windows_core::IUnknown
13708);
13709impl ICoreWebView2DownloadStartingEventHandler {
13710    pub unsafe fn Invoke<P0, P1>(&self, sender: P0, args: P1) -> windows_core::Result<()>
13711    where
13712        P0: windows_core::Param<ICoreWebView2>,
13713        P1: windows_core::Param<ICoreWebView2DownloadStartingEventArgs>,
13714    {
13715        unsafe {
13716            (windows_core::Interface::vtable(self).Invoke)(
13717                windows_core::Interface::as_raw(self),
13718                sender.param().abi(),
13719                args.param().abi(),
13720            )
13721            .ok()
13722        }
13723    }
13724}
13725#[repr(C)]
13726#[doc(hidden)]
13727pub struct ICoreWebView2DownloadStartingEventHandler_Vtbl {
13728    pub base__: windows_core::IUnknown_Vtbl,
13729    pub Invoke: unsafe extern "system" fn(
13730        *mut core::ffi::c_void,
13731        *mut core::ffi::c_void,
13732        *mut core::ffi::c_void,
13733    ) -> windows_core::HRESULT,
13734}
13735pub trait ICoreWebView2DownloadStartingEventHandler_Impl: windows_core::IUnknownImpl {
13736    fn Invoke(
13737        &self,
13738        sender: windows_core::Ref<'_, ICoreWebView2>,
13739        args: windows_core::Ref<'_, ICoreWebView2DownloadStartingEventArgs>,
13740    ) -> windows_core::Result<()>;
13741}
13742impl ICoreWebView2DownloadStartingEventHandler_Vtbl {
13743    pub const fn new<
13744        Identity: ICoreWebView2DownloadStartingEventHandler_Impl,
13745        const OFFSET: isize,
13746    >() -> Self {
13747        unsafe extern "system" fn Invoke<
13748            Identity: ICoreWebView2DownloadStartingEventHandler_Impl,
13749            const OFFSET: isize,
13750        >(
13751            this: *mut core::ffi::c_void,
13752            sender: *mut core::ffi::c_void,
13753            args: *mut core::ffi::c_void,
13754        ) -> windows_core::HRESULT {
13755            unsafe {
13756                let this: &Identity =
13757                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
13758                ICoreWebView2DownloadStartingEventHandler_Impl::Invoke(
13759                    this,
13760                    core::mem::transmute_copy(&sender),
13761                    core::mem::transmute_copy(&args),
13762                )
13763                .into()
13764            }
13765        }
13766        Self {
13767            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
13768            Invoke: Invoke::<Identity, OFFSET>,
13769        }
13770    }
13771    pub fn matches(iid: &windows_core::GUID) -> bool {
13772        iid == &<ICoreWebView2DownloadStartingEventHandler as windows_core::Interface>::IID
13773    }
13774}
13775impl windows_core::RuntimeName for ICoreWebView2DownloadStartingEventHandler {}
13776windows_core::imp::define_interface!(
13777    ICoreWebView2Environment,
13778    ICoreWebView2Environment_Vtbl,
13779    0xb96d755e_0319_4e92_a296_23436f46a1fc
13780);
13781windows_core::imp::interface_hierarchy!(ICoreWebView2Environment, windows_core::IUnknown);
13782impl ICoreWebView2Environment {
13783    pub unsafe fn CreateCoreWebView2Controller<P1>(
13784        &self,
13785        parentwindow: windows::Win32::Foundation::HWND,
13786        handler: P1,
13787    ) -> windows_core::Result<()>
13788    where
13789        P1: windows_core::Param<ICoreWebView2CreateCoreWebView2ControllerCompletedHandler>,
13790    {
13791        unsafe {
13792            (windows_core::Interface::vtable(self).CreateCoreWebView2Controller)(
13793                windows_core::Interface::as_raw(self),
13794                parentwindow,
13795                handler.param().abi(),
13796            )
13797            .ok()
13798        }
13799    }
13800    pub unsafe fn CreateWebResourceResponse<P0, P2, P3>(
13801        &self,
13802        content: P0,
13803        statuscode: i32,
13804        reasonphrase: P2,
13805        headers: P3,
13806    ) -> windows_core::Result<ICoreWebView2WebResourceResponse>
13807    where
13808        P0: windows_core::Param<windows::Win32::System::Com::IStream>,
13809        P2: windows_core::Param<windows_core::PCWSTR>,
13810        P3: windows_core::Param<windows_core::PCWSTR>,
13811    {
13812        unsafe {
13813            let mut result__ = core::mem::zeroed();
13814            (windows_core::Interface::vtable(self).CreateWebResourceResponse)(
13815                windows_core::Interface::as_raw(self),
13816                content.param().abi(),
13817                statuscode,
13818                reasonphrase.param().abi(),
13819                headers.param().abi(),
13820                &mut result__,
13821            )
13822            .and_then(|| windows_core::Type::from_abi(result__))
13823        }
13824    }
13825    pub unsafe fn BrowserVersionString(
13826        &self,
13827        versioninfo: *mut windows_core::PWSTR,
13828    ) -> windows_core::Result<()> {
13829        unsafe {
13830            (windows_core::Interface::vtable(self).BrowserVersionString)(
13831                windows_core::Interface::as_raw(self),
13832                versioninfo as _,
13833            )
13834            .ok()
13835        }
13836    }
13837    pub unsafe fn add_NewBrowserVersionAvailable<P0>(
13838        &self,
13839        eventhandler: P0,
13840        token: *mut i64,
13841    ) -> windows_core::Result<()>
13842    where
13843        P0: windows_core::Param<ICoreWebView2NewBrowserVersionAvailableEventHandler>,
13844    {
13845        unsafe {
13846            (windows_core::Interface::vtable(self).add_NewBrowserVersionAvailable)(
13847                windows_core::Interface::as_raw(self),
13848                eventhandler.param().abi(),
13849                token as _,
13850            )
13851            .ok()
13852        }
13853    }
13854    pub unsafe fn remove_NewBrowserVersionAvailable(&self, token: i64) -> windows_core::Result<()> {
13855        unsafe {
13856            (windows_core::Interface::vtable(self).remove_NewBrowserVersionAvailable)(
13857                windows_core::Interface::as_raw(self),
13858                token,
13859            )
13860            .ok()
13861        }
13862    }
13863}
13864#[repr(C)]
13865#[doc(hidden)]
13866pub struct ICoreWebView2Environment_Vtbl {
13867    pub base__: windows_core::IUnknown_Vtbl,
13868    pub CreateCoreWebView2Controller: unsafe extern "system" fn(
13869        *mut core::ffi::c_void,
13870        windows::Win32::Foundation::HWND,
13871        *mut core::ffi::c_void,
13872    ) -> windows_core::HRESULT,
13873    pub CreateWebResourceResponse: unsafe extern "system" fn(
13874        *mut core::ffi::c_void,
13875        *mut core::ffi::c_void,
13876        i32,
13877        windows_core::PCWSTR,
13878        windows_core::PCWSTR,
13879        *mut *mut core::ffi::c_void,
13880    ) -> windows_core::HRESULT,
13881    pub BrowserVersionString: unsafe extern "system" fn(
13882        *mut core::ffi::c_void,
13883        *mut windows_core::PWSTR,
13884    ) -> windows_core::HRESULT,
13885    pub add_NewBrowserVersionAvailable: unsafe extern "system" fn(
13886        *mut core::ffi::c_void,
13887        *mut core::ffi::c_void,
13888        *mut i64,
13889    ) -> windows_core::HRESULT,
13890    pub remove_NewBrowserVersionAvailable:
13891        unsafe extern "system" fn(*mut core::ffi::c_void, i64) -> windows_core::HRESULT,
13892}
13893pub trait ICoreWebView2Environment_Impl: windows_core::IUnknownImpl {
13894    fn CreateCoreWebView2Controller(
13895        &self,
13896        parentwindow: windows::Win32::Foundation::HWND,
13897        handler: windows_core::Ref<'_, ICoreWebView2CreateCoreWebView2ControllerCompletedHandler>,
13898    ) -> windows_core::Result<()>;
13899    fn CreateWebResourceResponse(
13900        &self,
13901        content: windows_core::Ref<'_, windows::Win32::System::Com::IStream>,
13902        statuscode: i32,
13903        reasonphrase: &windows_core::PCWSTR,
13904        headers: &windows_core::PCWSTR,
13905    ) -> windows_core::Result<ICoreWebView2WebResourceResponse>;
13906    fn BrowserVersionString(
13907        &self,
13908        versioninfo: *mut windows_core::PWSTR,
13909    ) -> windows_core::Result<()>;
13910    fn add_NewBrowserVersionAvailable(
13911        &self,
13912        eventhandler: windows_core::Ref<'_, ICoreWebView2NewBrowserVersionAvailableEventHandler>,
13913        token: *mut i64,
13914    ) -> windows_core::Result<()>;
13915    fn remove_NewBrowserVersionAvailable(&self, token: i64) -> windows_core::Result<()>;
13916}
13917impl ICoreWebView2Environment_Vtbl {
13918    pub const fn new<Identity: ICoreWebView2Environment_Impl, const OFFSET: isize>() -> Self {
13919        unsafe extern "system" fn CreateCoreWebView2Controller<
13920            Identity: ICoreWebView2Environment_Impl,
13921            const OFFSET: isize,
13922        >(
13923            this: *mut core::ffi::c_void,
13924            parentwindow: windows::Win32::Foundation::HWND,
13925            handler: *mut core::ffi::c_void,
13926        ) -> windows_core::HRESULT {
13927            unsafe {
13928                let this: &Identity =
13929                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
13930                ICoreWebView2Environment_Impl::CreateCoreWebView2Controller(
13931                    this,
13932                    core::mem::transmute_copy(&parentwindow),
13933                    core::mem::transmute_copy(&handler),
13934                )
13935                .into()
13936            }
13937        }
13938        unsafe extern "system" fn CreateWebResourceResponse<
13939            Identity: ICoreWebView2Environment_Impl,
13940            const OFFSET: isize,
13941        >(
13942            this: *mut core::ffi::c_void,
13943            content: *mut core::ffi::c_void,
13944            statuscode: i32,
13945            reasonphrase: windows_core::PCWSTR,
13946            headers: windows_core::PCWSTR,
13947            response: *mut *mut core::ffi::c_void,
13948        ) -> windows_core::HRESULT {
13949            unsafe {
13950                let this: &Identity =
13951                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
13952                match ICoreWebView2Environment_Impl::CreateWebResourceResponse(
13953                    this,
13954                    core::mem::transmute_copy(&content),
13955                    core::mem::transmute_copy(&statuscode),
13956                    core::mem::transmute(&reasonphrase),
13957                    core::mem::transmute(&headers),
13958                ) {
13959                    Ok(ok__) => {
13960                        response.write(core::mem::transmute(ok__));
13961                        windows_core::HRESULT(0)
13962                    }
13963                    Err(err) => err.into(),
13964                }
13965            }
13966        }
13967        unsafe extern "system" fn BrowserVersionString<
13968            Identity: ICoreWebView2Environment_Impl,
13969            const OFFSET: isize,
13970        >(
13971            this: *mut core::ffi::c_void,
13972            versioninfo: *mut windows_core::PWSTR,
13973        ) -> windows_core::HRESULT {
13974            unsafe {
13975                let this: &Identity =
13976                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
13977                ICoreWebView2Environment_Impl::BrowserVersionString(
13978                    this,
13979                    core::mem::transmute_copy(&versioninfo),
13980                )
13981                .into()
13982            }
13983        }
13984        unsafe extern "system" fn add_NewBrowserVersionAvailable<
13985            Identity: ICoreWebView2Environment_Impl,
13986            const OFFSET: isize,
13987        >(
13988            this: *mut core::ffi::c_void,
13989            eventhandler: *mut core::ffi::c_void,
13990            token: *mut i64,
13991        ) -> windows_core::HRESULT {
13992            unsafe {
13993                let this: &Identity =
13994                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
13995                ICoreWebView2Environment_Impl::add_NewBrowserVersionAvailable(
13996                    this,
13997                    core::mem::transmute_copy(&eventhandler),
13998                    core::mem::transmute_copy(&token),
13999                )
14000                .into()
14001            }
14002        }
14003        unsafe extern "system" fn remove_NewBrowserVersionAvailable<
14004            Identity: ICoreWebView2Environment_Impl,
14005            const OFFSET: isize,
14006        >(
14007            this: *mut core::ffi::c_void,
14008            token: i64,
14009        ) -> windows_core::HRESULT {
14010            unsafe {
14011                let this: &Identity =
14012                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
14013                ICoreWebView2Environment_Impl::remove_NewBrowserVersionAvailable(
14014                    this,
14015                    core::mem::transmute_copy(&token),
14016                )
14017                .into()
14018            }
14019        }
14020        Self {
14021            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
14022            CreateCoreWebView2Controller: CreateCoreWebView2Controller::<Identity, OFFSET>,
14023            CreateWebResourceResponse: CreateWebResourceResponse::<Identity, OFFSET>,
14024            BrowserVersionString: BrowserVersionString::<Identity, OFFSET>,
14025            add_NewBrowserVersionAvailable: add_NewBrowserVersionAvailable::<Identity, OFFSET>,
14026            remove_NewBrowserVersionAvailable: remove_NewBrowserVersionAvailable::<Identity, OFFSET>,
14027        }
14028    }
14029    pub fn matches(iid: &windows_core::GUID) -> bool {
14030        iid == &<ICoreWebView2Environment as windows_core::Interface>::IID
14031    }
14032}
14033impl windows_core::RuntimeName for ICoreWebView2Environment {}
14034windows_core::imp::define_interface!(
14035    ICoreWebView2Environment10,
14036    ICoreWebView2Environment10_Vtbl,
14037    0xee0eb9df_6f12_46ce_b53f_3f47b9c928e0
14038);
14039impl core::ops::Deref for ICoreWebView2Environment10 {
14040    type Target = ICoreWebView2Environment9;
14041    fn deref(&self) -> &Self::Target {
14042        unsafe { core::mem::transmute(self) }
14043    }
14044}
14045windows_core::imp::interface_hierarchy!(
14046    ICoreWebView2Environment10,
14047    windows_core::IUnknown,
14048    ICoreWebView2Environment,
14049    ICoreWebView2Environment2,
14050    ICoreWebView2Environment3,
14051    ICoreWebView2Environment4,
14052    ICoreWebView2Environment5,
14053    ICoreWebView2Environment6,
14054    ICoreWebView2Environment7,
14055    ICoreWebView2Environment8,
14056    ICoreWebView2Environment9
14057);
14058impl ICoreWebView2Environment10 {
14059    pub unsafe fn CreateCoreWebView2ControllerOptions(
14060        &self,
14061    ) -> windows_core::Result<ICoreWebView2ControllerOptions> {
14062        unsafe {
14063            let mut result__ = core::mem::zeroed();
14064            (windows_core::Interface::vtable(self).CreateCoreWebView2ControllerOptions)(
14065                windows_core::Interface::as_raw(self),
14066                &mut result__,
14067            )
14068            .and_then(|| windows_core::Type::from_abi(result__))
14069        }
14070    }
14071    pub unsafe fn CreateCoreWebView2ControllerWithOptions<P1, P2>(
14072        &self,
14073        parentwindow: windows::Win32::Foundation::HWND,
14074        options: P1,
14075        handler: P2,
14076    ) -> windows_core::Result<()>
14077    where
14078        P1: windows_core::Param<ICoreWebView2ControllerOptions>,
14079        P2: windows_core::Param<ICoreWebView2CreateCoreWebView2ControllerCompletedHandler>,
14080    {
14081        unsafe {
14082            (windows_core::Interface::vtable(self).CreateCoreWebView2ControllerWithOptions)(
14083                windows_core::Interface::as_raw(self),
14084                parentwindow,
14085                options.param().abi(),
14086                handler.param().abi(),
14087            )
14088            .ok()
14089        }
14090    }
14091    pub unsafe fn CreateCoreWebView2CompositionControllerWithOptions<P1, P2>(
14092        &self,
14093        parentwindow: windows::Win32::Foundation::HWND,
14094        options: P1,
14095        handler: P2,
14096    ) -> windows_core::Result<()>
14097    where
14098        P1: windows_core::Param<ICoreWebView2ControllerOptions>,
14099        P2: windows_core::Param<
14100            ICoreWebView2CreateCoreWebView2CompositionControllerCompletedHandler,
14101        >,
14102    {
14103        unsafe {
14104            (windows_core::Interface::vtable(self)
14105                .CreateCoreWebView2CompositionControllerWithOptions)(
14106                windows_core::Interface::as_raw(self),
14107                parentwindow,
14108                options.param().abi(),
14109                handler.param().abi(),
14110            )
14111            .ok()
14112        }
14113    }
14114}
14115#[repr(C)]
14116#[doc(hidden)]
14117pub struct ICoreWebView2Environment10_Vtbl {
14118    pub base__: ICoreWebView2Environment9_Vtbl,
14119    pub CreateCoreWebView2ControllerOptions: unsafe extern "system" fn(
14120        *mut core::ffi::c_void,
14121        *mut *mut core::ffi::c_void,
14122    )
14123        -> windows_core::HRESULT,
14124    pub CreateCoreWebView2ControllerWithOptions: unsafe extern "system" fn(
14125        *mut core::ffi::c_void,
14126        windows::Win32::Foundation::HWND,
14127        *mut core::ffi::c_void,
14128        *mut core::ffi::c_void,
14129    )
14130        -> windows_core::HRESULT,
14131    pub CreateCoreWebView2CompositionControllerWithOptions:
14132        unsafe extern "system" fn(
14133            *mut core::ffi::c_void,
14134            windows::Win32::Foundation::HWND,
14135            *mut core::ffi::c_void,
14136            *mut core::ffi::c_void,
14137        ) -> windows_core::HRESULT,
14138}
14139pub trait ICoreWebView2Environment10_Impl: ICoreWebView2Environment9_Impl {
14140    fn CreateCoreWebView2ControllerOptions(
14141        &self,
14142    ) -> windows_core::Result<ICoreWebView2ControllerOptions>;
14143    fn CreateCoreWebView2ControllerWithOptions(
14144        &self,
14145        parentwindow: windows::Win32::Foundation::HWND,
14146        options: windows_core::Ref<'_, ICoreWebView2ControllerOptions>,
14147        handler: windows_core::Ref<'_, ICoreWebView2CreateCoreWebView2ControllerCompletedHandler>,
14148    ) -> windows_core::Result<()>;
14149    fn CreateCoreWebView2CompositionControllerWithOptions(
14150        &self,
14151        parentwindow: windows::Win32::Foundation::HWND,
14152        options: windows_core::Ref<'_, ICoreWebView2ControllerOptions>,
14153        handler: windows_core::Ref<
14154            '_,
14155            ICoreWebView2CreateCoreWebView2CompositionControllerCompletedHandler,
14156        >,
14157    ) -> windows_core::Result<()>;
14158}
14159impl ICoreWebView2Environment10_Vtbl {
14160    pub const fn new<Identity: ICoreWebView2Environment10_Impl, const OFFSET: isize>() -> Self {
14161        unsafe extern "system" fn CreateCoreWebView2ControllerOptions<
14162            Identity: ICoreWebView2Environment10_Impl,
14163            const OFFSET: isize,
14164        >(
14165            this: *mut core::ffi::c_void,
14166            value: *mut *mut core::ffi::c_void,
14167        ) -> windows_core::HRESULT {
14168            unsafe {
14169                let this: &Identity =
14170                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
14171                match ICoreWebView2Environment10_Impl::CreateCoreWebView2ControllerOptions(this) {
14172                    Ok(ok__) => {
14173                        value.write(core::mem::transmute(ok__));
14174                        windows_core::HRESULT(0)
14175                    }
14176                    Err(err) => err.into(),
14177                }
14178            }
14179        }
14180        unsafe extern "system" fn CreateCoreWebView2ControllerWithOptions<
14181            Identity: ICoreWebView2Environment10_Impl,
14182            const OFFSET: isize,
14183        >(
14184            this: *mut core::ffi::c_void,
14185            parentwindow: windows::Win32::Foundation::HWND,
14186            options: *mut core::ffi::c_void,
14187            handler: *mut core::ffi::c_void,
14188        ) -> windows_core::HRESULT {
14189            unsafe {
14190                let this: &Identity =
14191                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
14192                ICoreWebView2Environment10_Impl::CreateCoreWebView2ControllerWithOptions(
14193                    this,
14194                    core::mem::transmute_copy(&parentwindow),
14195                    core::mem::transmute_copy(&options),
14196                    core::mem::transmute_copy(&handler),
14197                )
14198                .into()
14199            }
14200        }
14201        unsafe extern "system" fn CreateCoreWebView2CompositionControllerWithOptions<
14202            Identity: ICoreWebView2Environment10_Impl,
14203            const OFFSET: isize,
14204        >(
14205            this: *mut core::ffi::c_void,
14206            parentwindow: windows::Win32::Foundation::HWND,
14207            options: *mut core::ffi::c_void,
14208            handler: *mut core::ffi::c_void,
14209        ) -> windows_core::HRESULT {
14210            unsafe {
14211                let this: &Identity =
14212                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
14213                ICoreWebView2Environment10_Impl::CreateCoreWebView2CompositionControllerWithOptions(
14214                    this,
14215                    core::mem::transmute_copy(&parentwindow),
14216                    core::mem::transmute_copy(&options),
14217                    core::mem::transmute_copy(&handler),
14218                )
14219                .into()
14220            }
14221        }
14222        Self {
14223            base__: ICoreWebView2Environment9_Vtbl::new::<Identity, OFFSET>(),
14224            CreateCoreWebView2ControllerOptions: CreateCoreWebView2ControllerOptions::<
14225                Identity,
14226                OFFSET,
14227            >,
14228            CreateCoreWebView2ControllerWithOptions: CreateCoreWebView2ControllerWithOptions::<
14229                Identity,
14230                OFFSET,
14231            >,
14232            CreateCoreWebView2CompositionControllerWithOptions:
14233                CreateCoreWebView2CompositionControllerWithOptions::<Identity, OFFSET>,
14234        }
14235    }
14236    pub fn matches(iid: &windows_core::GUID) -> bool {
14237        iid == &<ICoreWebView2Environment10 as windows_core::Interface>::IID
14238            || iid == &<ICoreWebView2Environment as windows_core::Interface>::IID
14239            || iid == &<ICoreWebView2Environment2 as windows_core::Interface>::IID
14240            || iid == &<ICoreWebView2Environment3 as windows_core::Interface>::IID
14241            || iid == &<ICoreWebView2Environment4 as windows_core::Interface>::IID
14242            || iid == &<ICoreWebView2Environment5 as windows_core::Interface>::IID
14243            || iid == &<ICoreWebView2Environment6 as windows_core::Interface>::IID
14244            || iid == &<ICoreWebView2Environment7 as windows_core::Interface>::IID
14245            || iid == &<ICoreWebView2Environment8 as windows_core::Interface>::IID
14246            || iid == &<ICoreWebView2Environment9 as windows_core::Interface>::IID
14247    }
14248}
14249impl windows_core::RuntimeName for ICoreWebView2Environment10 {}
14250windows_core::imp::define_interface!(
14251    ICoreWebView2Environment11,
14252    ICoreWebView2Environment11_Vtbl,
14253    0xf0913dc6_a0ec_42ef_9805_91dff3a2966a
14254);
14255impl core::ops::Deref for ICoreWebView2Environment11 {
14256    type Target = ICoreWebView2Environment10;
14257    fn deref(&self) -> &Self::Target {
14258        unsafe { core::mem::transmute(self) }
14259    }
14260}
14261windows_core::imp::interface_hierarchy!(
14262    ICoreWebView2Environment11,
14263    windows_core::IUnknown,
14264    ICoreWebView2Environment,
14265    ICoreWebView2Environment2,
14266    ICoreWebView2Environment3,
14267    ICoreWebView2Environment4,
14268    ICoreWebView2Environment5,
14269    ICoreWebView2Environment6,
14270    ICoreWebView2Environment7,
14271    ICoreWebView2Environment8,
14272    ICoreWebView2Environment9,
14273    ICoreWebView2Environment10
14274);
14275impl ICoreWebView2Environment11 {
14276    pub unsafe fn FailureReportFolderPath(
14277        &self,
14278        value: *mut windows_core::PWSTR,
14279    ) -> windows_core::Result<()> {
14280        unsafe {
14281            (windows_core::Interface::vtable(self).FailureReportFolderPath)(
14282                windows_core::Interface::as_raw(self),
14283                value as _,
14284            )
14285            .ok()
14286        }
14287    }
14288}
14289#[repr(C)]
14290#[doc(hidden)]
14291pub struct ICoreWebView2Environment11_Vtbl {
14292    pub base__: ICoreWebView2Environment10_Vtbl,
14293    pub FailureReportFolderPath: unsafe extern "system" fn(
14294        *mut core::ffi::c_void,
14295        *mut windows_core::PWSTR,
14296    ) -> windows_core::HRESULT,
14297}
14298pub trait ICoreWebView2Environment11_Impl: ICoreWebView2Environment10_Impl {
14299    fn FailureReportFolderPath(&self, value: *mut windows_core::PWSTR) -> windows_core::Result<()>;
14300}
14301impl ICoreWebView2Environment11_Vtbl {
14302    pub const fn new<Identity: ICoreWebView2Environment11_Impl, const OFFSET: isize>() -> Self {
14303        unsafe extern "system" fn FailureReportFolderPath<
14304            Identity: ICoreWebView2Environment11_Impl,
14305            const OFFSET: isize,
14306        >(
14307            this: *mut core::ffi::c_void,
14308            value: *mut windows_core::PWSTR,
14309        ) -> windows_core::HRESULT {
14310            unsafe {
14311                let this: &Identity =
14312                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
14313                ICoreWebView2Environment11_Impl::FailureReportFolderPath(
14314                    this,
14315                    core::mem::transmute_copy(&value),
14316                )
14317                .into()
14318            }
14319        }
14320        Self {
14321            base__: ICoreWebView2Environment10_Vtbl::new::<Identity, OFFSET>(),
14322            FailureReportFolderPath: FailureReportFolderPath::<Identity, OFFSET>,
14323        }
14324    }
14325    pub fn matches(iid: &windows_core::GUID) -> bool {
14326        iid == &<ICoreWebView2Environment11 as windows_core::Interface>::IID
14327            || iid == &<ICoreWebView2Environment as windows_core::Interface>::IID
14328            || iid == &<ICoreWebView2Environment2 as windows_core::Interface>::IID
14329            || iid == &<ICoreWebView2Environment3 as windows_core::Interface>::IID
14330            || iid == &<ICoreWebView2Environment4 as windows_core::Interface>::IID
14331            || iid == &<ICoreWebView2Environment5 as windows_core::Interface>::IID
14332            || iid == &<ICoreWebView2Environment6 as windows_core::Interface>::IID
14333            || iid == &<ICoreWebView2Environment7 as windows_core::Interface>::IID
14334            || iid == &<ICoreWebView2Environment8 as windows_core::Interface>::IID
14335            || iid == &<ICoreWebView2Environment9 as windows_core::Interface>::IID
14336            || iid == &<ICoreWebView2Environment10 as windows_core::Interface>::IID
14337    }
14338}
14339impl windows_core::RuntimeName for ICoreWebView2Environment11 {}
14340windows_core::imp::define_interface!(
14341    ICoreWebView2Environment12,
14342    ICoreWebView2Environment12_Vtbl,
14343    0xf503db9b_739f_48dd_b151_fdfcf253f54e
14344);
14345impl core::ops::Deref for ICoreWebView2Environment12 {
14346    type Target = ICoreWebView2Environment11;
14347    fn deref(&self) -> &Self::Target {
14348        unsafe { core::mem::transmute(self) }
14349    }
14350}
14351windows_core::imp::interface_hierarchy!(
14352    ICoreWebView2Environment12,
14353    windows_core::IUnknown,
14354    ICoreWebView2Environment,
14355    ICoreWebView2Environment2,
14356    ICoreWebView2Environment3,
14357    ICoreWebView2Environment4,
14358    ICoreWebView2Environment5,
14359    ICoreWebView2Environment6,
14360    ICoreWebView2Environment7,
14361    ICoreWebView2Environment8,
14362    ICoreWebView2Environment9,
14363    ICoreWebView2Environment10,
14364    ICoreWebView2Environment11
14365);
14366impl ICoreWebView2Environment12 {
14367    pub unsafe fn CreateSharedBuffer(
14368        &self,
14369        size: u64,
14370    ) -> windows_core::Result<ICoreWebView2SharedBuffer> {
14371        unsafe {
14372            let mut result__ = core::mem::zeroed();
14373            (windows_core::Interface::vtable(self).CreateSharedBuffer)(
14374                windows_core::Interface::as_raw(self),
14375                size,
14376                &mut result__,
14377            )
14378            .and_then(|| windows_core::Type::from_abi(result__))
14379        }
14380    }
14381}
14382#[repr(C)]
14383#[doc(hidden)]
14384pub struct ICoreWebView2Environment12_Vtbl {
14385    pub base__: ICoreWebView2Environment11_Vtbl,
14386    pub CreateSharedBuffer: unsafe extern "system" fn(
14387        *mut core::ffi::c_void,
14388        u64,
14389        *mut *mut core::ffi::c_void,
14390    ) -> windows_core::HRESULT,
14391}
14392pub trait ICoreWebView2Environment12_Impl: ICoreWebView2Environment11_Impl {
14393    fn CreateSharedBuffer(&self, size: u64) -> windows_core::Result<ICoreWebView2SharedBuffer>;
14394}
14395impl ICoreWebView2Environment12_Vtbl {
14396    pub const fn new<Identity: ICoreWebView2Environment12_Impl, const OFFSET: isize>() -> Self {
14397        unsafe extern "system" fn CreateSharedBuffer<
14398            Identity: ICoreWebView2Environment12_Impl,
14399            const OFFSET: isize,
14400        >(
14401            this: *mut core::ffi::c_void,
14402            size: u64,
14403            value: *mut *mut core::ffi::c_void,
14404        ) -> windows_core::HRESULT {
14405            unsafe {
14406                let this: &Identity =
14407                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
14408                match ICoreWebView2Environment12_Impl::CreateSharedBuffer(
14409                    this,
14410                    core::mem::transmute_copy(&size),
14411                ) {
14412                    Ok(ok__) => {
14413                        value.write(core::mem::transmute(ok__));
14414                        windows_core::HRESULT(0)
14415                    }
14416                    Err(err) => err.into(),
14417                }
14418            }
14419        }
14420        Self {
14421            base__: ICoreWebView2Environment11_Vtbl::new::<Identity, OFFSET>(),
14422            CreateSharedBuffer: CreateSharedBuffer::<Identity, OFFSET>,
14423        }
14424    }
14425    pub fn matches(iid: &windows_core::GUID) -> bool {
14426        iid == &<ICoreWebView2Environment12 as windows_core::Interface>::IID
14427            || iid == &<ICoreWebView2Environment as windows_core::Interface>::IID
14428            || iid == &<ICoreWebView2Environment2 as windows_core::Interface>::IID
14429            || iid == &<ICoreWebView2Environment3 as windows_core::Interface>::IID
14430            || iid == &<ICoreWebView2Environment4 as windows_core::Interface>::IID
14431            || iid == &<ICoreWebView2Environment5 as windows_core::Interface>::IID
14432            || iid == &<ICoreWebView2Environment6 as windows_core::Interface>::IID
14433            || iid == &<ICoreWebView2Environment7 as windows_core::Interface>::IID
14434            || iid == &<ICoreWebView2Environment8 as windows_core::Interface>::IID
14435            || iid == &<ICoreWebView2Environment9 as windows_core::Interface>::IID
14436            || iid == &<ICoreWebView2Environment10 as windows_core::Interface>::IID
14437            || iid == &<ICoreWebView2Environment11 as windows_core::Interface>::IID
14438    }
14439}
14440impl windows_core::RuntimeName for ICoreWebView2Environment12 {}
14441windows_core::imp::define_interface!(
14442    ICoreWebView2Environment13,
14443    ICoreWebView2Environment13_Vtbl,
14444    0xaf641f58_72b2_11ee_b962_0242ac120002
14445);
14446impl core::ops::Deref for ICoreWebView2Environment13 {
14447    type Target = ICoreWebView2Environment12;
14448    fn deref(&self) -> &Self::Target {
14449        unsafe { core::mem::transmute(self) }
14450    }
14451}
14452windows_core::imp::interface_hierarchy!(
14453    ICoreWebView2Environment13,
14454    windows_core::IUnknown,
14455    ICoreWebView2Environment,
14456    ICoreWebView2Environment2,
14457    ICoreWebView2Environment3,
14458    ICoreWebView2Environment4,
14459    ICoreWebView2Environment5,
14460    ICoreWebView2Environment6,
14461    ICoreWebView2Environment7,
14462    ICoreWebView2Environment8,
14463    ICoreWebView2Environment9,
14464    ICoreWebView2Environment10,
14465    ICoreWebView2Environment11,
14466    ICoreWebView2Environment12
14467);
14468impl ICoreWebView2Environment13 {
14469    pub unsafe fn GetProcessExtendedInfos<P0>(&self, handler: P0) -> windows_core::Result<()>
14470    where
14471        P0: windows_core::Param<ICoreWebView2GetProcessExtendedInfosCompletedHandler>,
14472    {
14473        unsafe {
14474            (windows_core::Interface::vtable(self).GetProcessExtendedInfos)(
14475                windows_core::Interface::as_raw(self),
14476                handler.param().abi(),
14477            )
14478            .ok()
14479        }
14480    }
14481}
14482#[repr(C)]
14483#[doc(hidden)]
14484pub struct ICoreWebView2Environment13_Vtbl {
14485    pub base__: ICoreWebView2Environment12_Vtbl,
14486    pub GetProcessExtendedInfos: unsafe extern "system" fn(
14487        *mut core::ffi::c_void,
14488        *mut core::ffi::c_void,
14489    ) -> windows_core::HRESULT,
14490}
14491pub trait ICoreWebView2Environment13_Impl: ICoreWebView2Environment12_Impl {
14492    fn GetProcessExtendedInfos(
14493        &self,
14494        handler: windows_core::Ref<'_, ICoreWebView2GetProcessExtendedInfosCompletedHandler>,
14495    ) -> windows_core::Result<()>;
14496}
14497impl ICoreWebView2Environment13_Vtbl {
14498    pub const fn new<Identity: ICoreWebView2Environment13_Impl, const OFFSET: isize>() -> Self {
14499        unsafe extern "system" fn GetProcessExtendedInfos<
14500            Identity: ICoreWebView2Environment13_Impl,
14501            const OFFSET: isize,
14502        >(
14503            this: *mut core::ffi::c_void,
14504            handler: *mut core::ffi::c_void,
14505        ) -> windows_core::HRESULT {
14506            unsafe {
14507                let this: &Identity =
14508                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
14509                ICoreWebView2Environment13_Impl::GetProcessExtendedInfos(
14510                    this,
14511                    core::mem::transmute_copy(&handler),
14512                )
14513                .into()
14514            }
14515        }
14516        Self {
14517            base__: ICoreWebView2Environment12_Vtbl::new::<Identity, OFFSET>(),
14518            GetProcessExtendedInfos: GetProcessExtendedInfos::<Identity, OFFSET>,
14519        }
14520    }
14521    pub fn matches(iid: &windows_core::GUID) -> bool {
14522        iid == &<ICoreWebView2Environment13 as windows_core::Interface>::IID
14523            || iid == &<ICoreWebView2Environment as windows_core::Interface>::IID
14524            || iid == &<ICoreWebView2Environment2 as windows_core::Interface>::IID
14525            || iid == &<ICoreWebView2Environment3 as windows_core::Interface>::IID
14526            || iid == &<ICoreWebView2Environment4 as windows_core::Interface>::IID
14527            || iid == &<ICoreWebView2Environment5 as windows_core::Interface>::IID
14528            || iid == &<ICoreWebView2Environment6 as windows_core::Interface>::IID
14529            || iid == &<ICoreWebView2Environment7 as windows_core::Interface>::IID
14530            || iid == &<ICoreWebView2Environment8 as windows_core::Interface>::IID
14531            || iid == &<ICoreWebView2Environment9 as windows_core::Interface>::IID
14532            || iid == &<ICoreWebView2Environment10 as windows_core::Interface>::IID
14533            || iid == &<ICoreWebView2Environment11 as windows_core::Interface>::IID
14534            || iid == &<ICoreWebView2Environment12 as windows_core::Interface>::IID
14535    }
14536}
14537impl windows_core::RuntimeName for ICoreWebView2Environment13 {}
14538windows_core::imp::define_interface!(
14539    ICoreWebView2Environment14,
14540    ICoreWebView2Environment14_Vtbl,
14541    0xa5e9fad9_c875_59da_9bd7_473aa5ca1cef
14542);
14543impl core::ops::Deref for ICoreWebView2Environment14 {
14544    type Target = ICoreWebView2Environment13;
14545    fn deref(&self) -> &Self::Target {
14546        unsafe { core::mem::transmute(self) }
14547    }
14548}
14549windows_core::imp::interface_hierarchy!(
14550    ICoreWebView2Environment14,
14551    windows_core::IUnknown,
14552    ICoreWebView2Environment,
14553    ICoreWebView2Environment2,
14554    ICoreWebView2Environment3,
14555    ICoreWebView2Environment4,
14556    ICoreWebView2Environment5,
14557    ICoreWebView2Environment6,
14558    ICoreWebView2Environment7,
14559    ICoreWebView2Environment8,
14560    ICoreWebView2Environment9,
14561    ICoreWebView2Environment10,
14562    ICoreWebView2Environment11,
14563    ICoreWebView2Environment12,
14564    ICoreWebView2Environment13
14565);
14566impl ICoreWebView2Environment14 {
14567    pub unsafe fn CreateWebFileSystemFileHandle<P0>(
14568        &self,
14569        path: P0,
14570        permission: COREWEBVIEW2_FILE_SYSTEM_HANDLE_PERMISSION,
14571    ) -> windows_core::Result<ICoreWebView2FileSystemHandle>
14572    where
14573        P0: windows_core::Param<windows_core::PCWSTR>,
14574    {
14575        unsafe {
14576            let mut result__ = core::mem::zeroed();
14577            (windows_core::Interface::vtable(self).CreateWebFileSystemFileHandle)(
14578                windows_core::Interface::as_raw(self),
14579                path.param().abi(),
14580                permission,
14581                &mut result__,
14582            )
14583            .and_then(|| windows_core::Type::from_abi(result__))
14584        }
14585    }
14586    pub unsafe fn CreateWebFileSystemDirectoryHandle<P0>(
14587        &self,
14588        path: P0,
14589        permission: COREWEBVIEW2_FILE_SYSTEM_HANDLE_PERMISSION,
14590    ) -> windows_core::Result<ICoreWebView2FileSystemHandle>
14591    where
14592        P0: windows_core::Param<windows_core::PCWSTR>,
14593    {
14594        unsafe {
14595            let mut result__ = core::mem::zeroed();
14596            (windows_core::Interface::vtable(self).CreateWebFileSystemDirectoryHandle)(
14597                windows_core::Interface::as_raw(self),
14598                path.param().abi(),
14599                permission,
14600                &mut result__,
14601            )
14602            .and_then(|| windows_core::Type::from_abi(result__))
14603        }
14604    }
14605    pub unsafe fn CreateObjectCollection(
14606        &self,
14607        length: u32,
14608        items: *mut Option<windows_core::IUnknown>,
14609        objectcollection: *mut Option<ICoreWebView2ObjectCollection>,
14610    ) -> windows_core::Result<()> {
14611        unsafe {
14612            (windows_core::Interface::vtable(self).CreateObjectCollection)(
14613                windows_core::Interface::as_raw(self),
14614                length,
14615                core::mem::transmute(items),
14616                core::mem::transmute(objectcollection),
14617            )
14618            .ok()
14619        }
14620    }
14621}
14622#[repr(C)]
14623#[doc(hidden)]
14624pub struct ICoreWebView2Environment14_Vtbl {
14625    pub base__: ICoreWebView2Environment13_Vtbl,
14626    pub CreateWebFileSystemFileHandle: unsafe extern "system" fn(
14627        *mut core::ffi::c_void,
14628        windows_core::PCWSTR,
14629        COREWEBVIEW2_FILE_SYSTEM_HANDLE_PERMISSION,
14630        *mut *mut core::ffi::c_void,
14631    ) -> windows_core::HRESULT,
14632    pub CreateWebFileSystemDirectoryHandle: unsafe extern "system" fn(
14633        *mut core::ffi::c_void,
14634        windows_core::PCWSTR,
14635        COREWEBVIEW2_FILE_SYSTEM_HANDLE_PERMISSION,
14636        *mut *mut core::ffi::c_void,
14637    ) -> windows_core::HRESULT,
14638    pub CreateObjectCollection: unsafe extern "system" fn(
14639        *mut core::ffi::c_void,
14640        u32,
14641        *mut *mut core::ffi::c_void,
14642        *mut *mut core::ffi::c_void,
14643    ) -> windows_core::HRESULT,
14644}
14645pub trait ICoreWebView2Environment14_Impl: ICoreWebView2Environment13_Impl {
14646    fn CreateWebFileSystemFileHandle(
14647        &self,
14648        path: &windows_core::PCWSTR,
14649        permission: COREWEBVIEW2_FILE_SYSTEM_HANDLE_PERMISSION,
14650    ) -> windows_core::Result<ICoreWebView2FileSystemHandle>;
14651    fn CreateWebFileSystemDirectoryHandle(
14652        &self,
14653        path: &windows_core::PCWSTR,
14654        permission: COREWEBVIEW2_FILE_SYSTEM_HANDLE_PERMISSION,
14655    ) -> windows_core::Result<ICoreWebView2FileSystemHandle>;
14656    fn CreateObjectCollection(
14657        &self,
14658        length: u32,
14659        items: windows_core::OutRef<'_, windows_core::IUnknown>,
14660        objectcollection: windows_core::OutRef<'_, ICoreWebView2ObjectCollection>,
14661    ) -> windows_core::Result<()>;
14662}
14663impl ICoreWebView2Environment14_Vtbl {
14664    pub const fn new<Identity: ICoreWebView2Environment14_Impl, const OFFSET: isize>() -> Self {
14665        unsafe extern "system" fn CreateWebFileSystemFileHandle<
14666            Identity: ICoreWebView2Environment14_Impl,
14667            const OFFSET: isize,
14668        >(
14669            this: *mut core::ffi::c_void,
14670            path: windows_core::PCWSTR,
14671            permission: COREWEBVIEW2_FILE_SYSTEM_HANDLE_PERMISSION,
14672            value: *mut *mut core::ffi::c_void,
14673        ) -> windows_core::HRESULT {
14674            unsafe {
14675                let this: &Identity =
14676                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
14677                match ICoreWebView2Environment14_Impl::CreateWebFileSystemFileHandle(
14678                    this,
14679                    core::mem::transmute(&path),
14680                    core::mem::transmute_copy(&permission),
14681                ) {
14682                    Ok(ok__) => {
14683                        value.write(core::mem::transmute(ok__));
14684                        windows_core::HRESULT(0)
14685                    }
14686                    Err(err) => err.into(),
14687                }
14688            }
14689        }
14690        unsafe extern "system" fn CreateWebFileSystemDirectoryHandle<
14691            Identity: ICoreWebView2Environment14_Impl,
14692            const OFFSET: isize,
14693        >(
14694            this: *mut core::ffi::c_void,
14695            path: windows_core::PCWSTR,
14696            permission: COREWEBVIEW2_FILE_SYSTEM_HANDLE_PERMISSION,
14697            value: *mut *mut core::ffi::c_void,
14698        ) -> windows_core::HRESULT {
14699            unsafe {
14700                let this: &Identity =
14701                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
14702                match ICoreWebView2Environment14_Impl::CreateWebFileSystemDirectoryHandle(
14703                    this,
14704                    core::mem::transmute(&path),
14705                    core::mem::transmute_copy(&permission),
14706                ) {
14707                    Ok(ok__) => {
14708                        value.write(core::mem::transmute(ok__));
14709                        windows_core::HRESULT(0)
14710                    }
14711                    Err(err) => err.into(),
14712                }
14713            }
14714        }
14715        unsafe extern "system" fn CreateObjectCollection<
14716            Identity: ICoreWebView2Environment14_Impl,
14717            const OFFSET: isize,
14718        >(
14719            this: *mut core::ffi::c_void,
14720            length: u32,
14721            items: *mut *mut core::ffi::c_void,
14722            objectcollection: *mut *mut core::ffi::c_void,
14723        ) -> windows_core::HRESULT {
14724            unsafe {
14725                let this: &Identity =
14726                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
14727                ICoreWebView2Environment14_Impl::CreateObjectCollection(
14728                    this,
14729                    core::mem::transmute_copy(&length),
14730                    core::mem::transmute_copy(&items),
14731                    core::mem::transmute_copy(&objectcollection),
14732                )
14733                .into()
14734            }
14735        }
14736        Self {
14737            base__: ICoreWebView2Environment13_Vtbl::new::<Identity, OFFSET>(),
14738            CreateWebFileSystemFileHandle: CreateWebFileSystemFileHandle::<Identity, OFFSET>,
14739            CreateWebFileSystemDirectoryHandle: CreateWebFileSystemDirectoryHandle::<
14740                Identity,
14741                OFFSET,
14742            >,
14743            CreateObjectCollection: CreateObjectCollection::<Identity, OFFSET>,
14744        }
14745    }
14746    pub fn matches(iid: &windows_core::GUID) -> bool {
14747        iid == &<ICoreWebView2Environment14 as windows_core::Interface>::IID
14748            || iid == &<ICoreWebView2Environment as windows_core::Interface>::IID
14749            || iid == &<ICoreWebView2Environment2 as windows_core::Interface>::IID
14750            || iid == &<ICoreWebView2Environment3 as windows_core::Interface>::IID
14751            || iid == &<ICoreWebView2Environment4 as windows_core::Interface>::IID
14752            || iid == &<ICoreWebView2Environment5 as windows_core::Interface>::IID
14753            || iid == &<ICoreWebView2Environment6 as windows_core::Interface>::IID
14754            || iid == &<ICoreWebView2Environment7 as windows_core::Interface>::IID
14755            || iid == &<ICoreWebView2Environment8 as windows_core::Interface>::IID
14756            || iid == &<ICoreWebView2Environment9 as windows_core::Interface>::IID
14757            || iid == &<ICoreWebView2Environment10 as windows_core::Interface>::IID
14758            || iid == &<ICoreWebView2Environment11 as windows_core::Interface>::IID
14759            || iid == &<ICoreWebView2Environment12 as windows_core::Interface>::IID
14760            || iid == &<ICoreWebView2Environment13 as windows_core::Interface>::IID
14761    }
14762}
14763impl windows_core::RuntimeName for ICoreWebView2Environment14 {}
14764windows_core::imp::define_interface!(
14765    ICoreWebView2Environment2,
14766    ICoreWebView2Environment2_Vtbl,
14767    0x41f3632b_5ef4_404f_ad82_2d606c5a9a21
14768);
14769impl core::ops::Deref for ICoreWebView2Environment2 {
14770    type Target = ICoreWebView2Environment;
14771    fn deref(&self) -> &Self::Target {
14772        unsafe { core::mem::transmute(self) }
14773    }
14774}
14775windows_core::imp::interface_hierarchy!(
14776    ICoreWebView2Environment2,
14777    windows_core::IUnknown,
14778    ICoreWebView2Environment
14779);
14780impl ICoreWebView2Environment2 {
14781    pub unsafe fn CreateWebResourceRequest<P0, P1, P2, P3>(
14782        &self,
14783        uri: P0,
14784        method: P1,
14785        postdata: P2,
14786        headers: P3,
14787    ) -> windows_core::Result<ICoreWebView2WebResourceRequest>
14788    where
14789        P0: windows_core::Param<windows_core::PCWSTR>,
14790        P1: windows_core::Param<windows_core::PCWSTR>,
14791        P2: windows_core::Param<windows::Win32::System::Com::IStream>,
14792        P3: windows_core::Param<windows_core::PCWSTR>,
14793    {
14794        unsafe {
14795            let mut result__ = core::mem::zeroed();
14796            (windows_core::Interface::vtable(self).CreateWebResourceRequest)(
14797                windows_core::Interface::as_raw(self),
14798                uri.param().abi(),
14799                method.param().abi(),
14800                postdata.param().abi(),
14801                headers.param().abi(),
14802                &mut result__,
14803            )
14804            .and_then(|| windows_core::Type::from_abi(result__))
14805        }
14806    }
14807}
14808#[repr(C)]
14809#[doc(hidden)]
14810pub struct ICoreWebView2Environment2_Vtbl {
14811    pub base__: ICoreWebView2Environment_Vtbl,
14812    pub CreateWebResourceRequest: unsafe extern "system" fn(
14813        *mut core::ffi::c_void,
14814        windows_core::PCWSTR,
14815        windows_core::PCWSTR,
14816        *mut core::ffi::c_void,
14817        windows_core::PCWSTR,
14818        *mut *mut core::ffi::c_void,
14819    ) -> windows_core::HRESULT,
14820}
14821pub trait ICoreWebView2Environment2_Impl: ICoreWebView2Environment_Impl {
14822    fn CreateWebResourceRequest(
14823        &self,
14824        uri: &windows_core::PCWSTR,
14825        method: &windows_core::PCWSTR,
14826        postdata: windows_core::Ref<'_, windows::Win32::System::Com::IStream>,
14827        headers: &windows_core::PCWSTR,
14828    ) -> windows_core::Result<ICoreWebView2WebResourceRequest>;
14829}
14830impl ICoreWebView2Environment2_Vtbl {
14831    pub const fn new<Identity: ICoreWebView2Environment2_Impl, const OFFSET: isize>() -> Self {
14832        unsafe extern "system" fn CreateWebResourceRequest<
14833            Identity: ICoreWebView2Environment2_Impl,
14834            const OFFSET: isize,
14835        >(
14836            this: *mut core::ffi::c_void,
14837            uri: windows_core::PCWSTR,
14838            method: windows_core::PCWSTR,
14839            postdata: *mut core::ffi::c_void,
14840            headers: windows_core::PCWSTR,
14841            value: *mut *mut core::ffi::c_void,
14842        ) -> windows_core::HRESULT {
14843            unsafe {
14844                let this: &Identity =
14845                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
14846                match ICoreWebView2Environment2_Impl::CreateWebResourceRequest(
14847                    this,
14848                    core::mem::transmute(&uri),
14849                    core::mem::transmute(&method),
14850                    core::mem::transmute_copy(&postdata),
14851                    core::mem::transmute(&headers),
14852                ) {
14853                    Ok(ok__) => {
14854                        value.write(core::mem::transmute(ok__));
14855                        windows_core::HRESULT(0)
14856                    }
14857                    Err(err) => err.into(),
14858                }
14859            }
14860        }
14861        Self {
14862            base__: ICoreWebView2Environment_Vtbl::new::<Identity, OFFSET>(),
14863            CreateWebResourceRequest: CreateWebResourceRequest::<Identity, OFFSET>,
14864        }
14865    }
14866    pub fn matches(iid: &windows_core::GUID) -> bool {
14867        iid == &<ICoreWebView2Environment2 as windows_core::Interface>::IID
14868            || iid == &<ICoreWebView2Environment as windows_core::Interface>::IID
14869    }
14870}
14871impl windows_core::RuntimeName for ICoreWebView2Environment2 {}
14872windows_core::imp::define_interface!(
14873    ICoreWebView2Environment3,
14874    ICoreWebView2Environment3_Vtbl,
14875    0x80a22ae3_be7c_4ce2_afe1_5a50056cdeeb
14876);
14877impl core::ops::Deref for ICoreWebView2Environment3 {
14878    type Target = ICoreWebView2Environment2;
14879    fn deref(&self) -> &Self::Target {
14880        unsafe { core::mem::transmute(self) }
14881    }
14882}
14883windows_core::imp::interface_hierarchy!(
14884    ICoreWebView2Environment3,
14885    windows_core::IUnknown,
14886    ICoreWebView2Environment,
14887    ICoreWebView2Environment2
14888);
14889impl ICoreWebView2Environment3 {
14890    pub unsafe fn CreateCoreWebView2CompositionController<P1>(
14891        &self,
14892        parentwindow: windows::Win32::Foundation::HWND,
14893        handler: P1,
14894    ) -> windows_core::Result<()>
14895    where
14896        P1: windows_core::Param<
14897            ICoreWebView2CreateCoreWebView2CompositionControllerCompletedHandler,
14898        >,
14899    {
14900        unsafe {
14901            (windows_core::Interface::vtable(self).CreateCoreWebView2CompositionController)(
14902                windows_core::Interface::as_raw(self),
14903                parentwindow,
14904                handler.param().abi(),
14905            )
14906            .ok()
14907        }
14908    }
14909    pub unsafe fn CreateCoreWebView2PointerInfo(
14910        &self,
14911    ) -> windows_core::Result<ICoreWebView2PointerInfo> {
14912        unsafe {
14913            let mut result__ = core::mem::zeroed();
14914            (windows_core::Interface::vtable(self).CreateCoreWebView2PointerInfo)(
14915                windows_core::Interface::as_raw(self),
14916                &mut result__,
14917            )
14918            .and_then(|| windows_core::Type::from_abi(result__))
14919        }
14920    }
14921}
14922#[repr(C)]
14923#[doc(hidden)]
14924pub struct ICoreWebView2Environment3_Vtbl {
14925    pub base__: ICoreWebView2Environment2_Vtbl,
14926    pub CreateCoreWebView2CompositionController: unsafe extern "system" fn(
14927        *mut core::ffi::c_void,
14928        windows::Win32::Foundation::HWND,
14929        *mut core::ffi::c_void,
14930    )
14931        -> windows_core::HRESULT,
14932    pub CreateCoreWebView2PointerInfo: unsafe extern "system" fn(
14933        *mut core::ffi::c_void,
14934        *mut *mut core::ffi::c_void,
14935    ) -> windows_core::HRESULT,
14936}
14937pub trait ICoreWebView2Environment3_Impl: ICoreWebView2Environment2_Impl {
14938    fn CreateCoreWebView2CompositionController(
14939        &self,
14940        parentwindow: windows::Win32::Foundation::HWND,
14941        handler: windows_core::Ref<
14942            '_,
14943            ICoreWebView2CreateCoreWebView2CompositionControllerCompletedHandler,
14944        >,
14945    ) -> windows_core::Result<()>;
14946    fn CreateCoreWebView2PointerInfo(&self) -> windows_core::Result<ICoreWebView2PointerInfo>;
14947}
14948impl ICoreWebView2Environment3_Vtbl {
14949    pub const fn new<Identity: ICoreWebView2Environment3_Impl, const OFFSET: isize>() -> Self {
14950        unsafe extern "system" fn CreateCoreWebView2CompositionController<
14951            Identity: ICoreWebView2Environment3_Impl,
14952            const OFFSET: isize,
14953        >(
14954            this: *mut core::ffi::c_void,
14955            parentwindow: windows::Win32::Foundation::HWND,
14956            handler: *mut core::ffi::c_void,
14957        ) -> windows_core::HRESULT {
14958            unsafe {
14959                let this: &Identity =
14960                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
14961                ICoreWebView2Environment3_Impl::CreateCoreWebView2CompositionController(
14962                    this,
14963                    core::mem::transmute_copy(&parentwindow),
14964                    core::mem::transmute_copy(&handler),
14965                )
14966                .into()
14967            }
14968        }
14969        unsafe extern "system" fn CreateCoreWebView2PointerInfo<
14970            Identity: ICoreWebView2Environment3_Impl,
14971            const OFFSET: isize,
14972        >(
14973            this: *mut core::ffi::c_void,
14974            value: *mut *mut core::ffi::c_void,
14975        ) -> windows_core::HRESULT {
14976            unsafe {
14977                let this: &Identity =
14978                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
14979                match ICoreWebView2Environment3_Impl::CreateCoreWebView2PointerInfo(this) {
14980                    Ok(ok__) => {
14981                        value.write(core::mem::transmute(ok__));
14982                        windows_core::HRESULT(0)
14983                    }
14984                    Err(err) => err.into(),
14985                }
14986            }
14987        }
14988        Self {
14989            base__: ICoreWebView2Environment2_Vtbl::new::<Identity, OFFSET>(),
14990            CreateCoreWebView2CompositionController: CreateCoreWebView2CompositionController::<
14991                Identity,
14992                OFFSET,
14993            >,
14994            CreateCoreWebView2PointerInfo: CreateCoreWebView2PointerInfo::<Identity, OFFSET>,
14995        }
14996    }
14997    pub fn matches(iid: &windows_core::GUID) -> bool {
14998        iid == &<ICoreWebView2Environment3 as windows_core::Interface>::IID
14999            || iid == &<ICoreWebView2Environment as windows_core::Interface>::IID
15000            || iid == &<ICoreWebView2Environment2 as windows_core::Interface>::IID
15001    }
15002}
15003impl windows_core::RuntimeName for ICoreWebView2Environment3 {}
15004windows_core::imp::define_interface!(
15005    ICoreWebView2Environment4,
15006    ICoreWebView2Environment4_Vtbl,
15007    0x20944379_6dcf_41d6_a0a0_abc0fc50de0d
15008);
15009impl core::ops::Deref for ICoreWebView2Environment4 {
15010    type Target = ICoreWebView2Environment3;
15011    fn deref(&self) -> &Self::Target {
15012        unsafe { core::mem::transmute(self) }
15013    }
15014}
15015windows_core::imp::interface_hierarchy!(
15016    ICoreWebView2Environment4,
15017    windows_core::IUnknown,
15018    ICoreWebView2Environment,
15019    ICoreWebView2Environment2,
15020    ICoreWebView2Environment3
15021);
15022impl ICoreWebView2Environment4 {
15023    pub unsafe fn GetAutomationProviderForWindow(
15024        &self,
15025        hwnd: windows::Win32::Foundation::HWND,
15026    ) -> windows_core::Result<windows_core::IUnknown> {
15027        unsafe {
15028            let mut result__ = core::mem::zeroed();
15029            (windows_core::Interface::vtable(self).GetAutomationProviderForWindow)(
15030                windows_core::Interface::as_raw(self),
15031                hwnd,
15032                &mut result__,
15033            )
15034            .and_then(|| windows_core::Type::from_abi(result__))
15035        }
15036    }
15037}
15038#[repr(C)]
15039#[doc(hidden)]
15040pub struct ICoreWebView2Environment4_Vtbl {
15041    pub base__: ICoreWebView2Environment3_Vtbl,
15042    pub GetAutomationProviderForWindow: unsafe extern "system" fn(
15043        *mut core::ffi::c_void,
15044        windows::Win32::Foundation::HWND,
15045        *mut *mut core::ffi::c_void,
15046    ) -> windows_core::HRESULT,
15047}
15048pub trait ICoreWebView2Environment4_Impl: ICoreWebView2Environment3_Impl {
15049    fn GetAutomationProviderForWindow(
15050        &self,
15051        hwnd: windows::Win32::Foundation::HWND,
15052    ) -> windows_core::Result<windows_core::IUnknown>;
15053}
15054impl ICoreWebView2Environment4_Vtbl {
15055    pub const fn new<Identity: ICoreWebView2Environment4_Impl, const OFFSET: isize>() -> Self {
15056        unsafe extern "system" fn GetAutomationProviderForWindow<
15057            Identity: ICoreWebView2Environment4_Impl,
15058            const OFFSET: isize,
15059        >(
15060            this: *mut core::ffi::c_void,
15061            hwnd: windows::Win32::Foundation::HWND,
15062            value: *mut *mut core::ffi::c_void,
15063        ) -> windows_core::HRESULT {
15064            unsafe {
15065                let this: &Identity =
15066                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
15067                match ICoreWebView2Environment4_Impl::GetAutomationProviderForWindow(
15068                    this,
15069                    core::mem::transmute_copy(&hwnd),
15070                ) {
15071                    Ok(ok__) => {
15072                        value.write(core::mem::transmute(ok__));
15073                        windows_core::HRESULT(0)
15074                    }
15075                    Err(err) => err.into(),
15076                }
15077            }
15078        }
15079        Self {
15080            base__: ICoreWebView2Environment3_Vtbl::new::<Identity, OFFSET>(),
15081            GetAutomationProviderForWindow: GetAutomationProviderForWindow::<Identity, OFFSET>,
15082        }
15083    }
15084    pub fn matches(iid: &windows_core::GUID) -> bool {
15085        iid == &<ICoreWebView2Environment4 as windows_core::Interface>::IID
15086            || iid == &<ICoreWebView2Environment as windows_core::Interface>::IID
15087            || iid == &<ICoreWebView2Environment2 as windows_core::Interface>::IID
15088            || iid == &<ICoreWebView2Environment3 as windows_core::Interface>::IID
15089    }
15090}
15091impl windows_core::RuntimeName for ICoreWebView2Environment4 {}
15092windows_core::imp::define_interface!(
15093    ICoreWebView2Environment5,
15094    ICoreWebView2Environment5_Vtbl,
15095    0x319e423d_e0d7_4b8d_9254_ae9475de9b17
15096);
15097impl core::ops::Deref for ICoreWebView2Environment5 {
15098    type Target = ICoreWebView2Environment4;
15099    fn deref(&self) -> &Self::Target {
15100        unsafe { core::mem::transmute(self) }
15101    }
15102}
15103windows_core::imp::interface_hierarchy!(
15104    ICoreWebView2Environment5,
15105    windows_core::IUnknown,
15106    ICoreWebView2Environment,
15107    ICoreWebView2Environment2,
15108    ICoreWebView2Environment3,
15109    ICoreWebView2Environment4
15110);
15111impl ICoreWebView2Environment5 {
15112    pub unsafe fn add_BrowserProcessExited<P0>(
15113        &self,
15114        eventhandler: P0,
15115        token: *mut i64,
15116    ) -> windows_core::Result<()>
15117    where
15118        P0: windows_core::Param<ICoreWebView2BrowserProcessExitedEventHandler>,
15119    {
15120        unsafe {
15121            (windows_core::Interface::vtable(self).add_BrowserProcessExited)(
15122                windows_core::Interface::as_raw(self),
15123                eventhandler.param().abi(),
15124                token as _,
15125            )
15126            .ok()
15127        }
15128    }
15129    pub unsafe fn remove_BrowserProcessExited(&self, token: i64) -> windows_core::Result<()> {
15130        unsafe {
15131            (windows_core::Interface::vtable(self).remove_BrowserProcessExited)(
15132                windows_core::Interface::as_raw(self),
15133                token,
15134            )
15135            .ok()
15136        }
15137    }
15138}
15139#[repr(C)]
15140#[doc(hidden)]
15141pub struct ICoreWebView2Environment5_Vtbl {
15142    pub base__: ICoreWebView2Environment4_Vtbl,
15143    pub add_BrowserProcessExited: unsafe extern "system" fn(
15144        *mut core::ffi::c_void,
15145        *mut core::ffi::c_void,
15146        *mut i64,
15147    ) -> windows_core::HRESULT,
15148    pub remove_BrowserProcessExited:
15149        unsafe extern "system" fn(*mut core::ffi::c_void, i64) -> windows_core::HRESULT,
15150}
15151pub trait ICoreWebView2Environment5_Impl: ICoreWebView2Environment4_Impl {
15152    fn add_BrowserProcessExited(
15153        &self,
15154        eventhandler: windows_core::Ref<'_, ICoreWebView2BrowserProcessExitedEventHandler>,
15155        token: *mut i64,
15156    ) -> windows_core::Result<()>;
15157    fn remove_BrowserProcessExited(&self, token: i64) -> windows_core::Result<()>;
15158}
15159impl ICoreWebView2Environment5_Vtbl {
15160    pub const fn new<Identity: ICoreWebView2Environment5_Impl, const OFFSET: isize>() -> Self {
15161        unsafe extern "system" fn add_BrowserProcessExited<
15162            Identity: ICoreWebView2Environment5_Impl,
15163            const OFFSET: isize,
15164        >(
15165            this: *mut core::ffi::c_void,
15166            eventhandler: *mut core::ffi::c_void,
15167            token: *mut i64,
15168        ) -> windows_core::HRESULT {
15169            unsafe {
15170                let this: &Identity =
15171                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
15172                ICoreWebView2Environment5_Impl::add_BrowserProcessExited(
15173                    this,
15174                    core::mem::transmute_copy(&eventhandler),
15175                    core::mem::transmute_copy(&token),
15176                )
15177                .into()
15178            }
15179        }
15180        unsafe extern "system" fn remove_BrowserProcessExited<
15181            Identity: ICoreWebView2Environment5_Impl,
15182            const OFFSET: isize,
15183        >(
15184            this: *mut core::ffi::c_void,
15185            token: i64,
15186        ) -> windows_core::HRESULT {
15187            unsafe {
15188                let this: &Identity =
15189                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
15190                ICoreWebView2Environment5_Impl::remove_BrowserProcessExited(
15191                    this,
15192                    core::mem::transmute_copy(&token),
15193                )
15194                .into()
15195            }
15196        }
15197        Self {
15198            base__: ICoreWebView2Environment4_Vtbl::new::<Identity, OFFSET>(),
15199            add_BrowserProcessExited: add_BrowserProcessExited::<Identity, OFFSET>,
15200            remove_BrowserProcessExited: remove_BrowserProcessExited::<Identity, OFFSET>,
15201        }
15202    }
15203    pub fn matches(iid: &windows_core::GUID) -> bool {
15204        iid == &<ICoreWebView2Environment5 as windows_core::Interface>::IID
15205            || iid == &<ICoreWebView2Environment as windows_core::Interface>::IID
15206            || iid == &<ICoreWebView2Environment2 as windows_core::Interface>::IID
15207            || iid == &<ICoreWebView2Environment3 as windows_core::Interface>::IID
15208            || iid == &<ICoreWebView2Environment4 as windows_core::Interface>::IID
15209    }
15210}
15211impl windows_core::RuntimeName for ICoreWebView2Environment5 {}
15212windows_core::imp::define_interface!(
15213    ICoreWebView2Environment6,
15214    ICoreWebView2Environment6_Vtbl,
15215    0xe59ee362_acbd_4857_9a8e_d3644d9459a9
15216);
15217impl core::ops::Deref for ICoreWebView2Environment6 {
15218    type Target = ICoreWebView2Environment5;
15219    fn deref(&self) -> &Self::Target {
15220        unsafe { core::mem::transmute(self) }
15221    }
15222}
15223windows_core::imp::interface_hierarchy!(
15224    ICoreWebView2Environment6,
15225    windows_core::IUnknown,
15226    ICoreWebView2Environment,
15227    ICoreWebView2Environment2,
15228    ICoreWebView2Environment3,
15229    ICoreWebView2Environment4,
15230    ICoreWebView2Environment5
15231);
15232impl ICoreWebView2Environment6 {
15233    pub unsafe fn CreatePrintSettings(&self) -> windows_core::Result<ICoreWebView2PrintSettings> {
15234        unsafe {
15235            let mut result__ = core::mem::zeroed();
15236            (windows_core::Interface::vtable(self).CreatePrintSettings)(
15237                windows_core::Interface::as_raw(self),
15238                &mut result__,
15239            )
15240            .and_then(|| windows_core::Type::from_abi(result__))
15241        }
15242    }
15243}
15244#[repr(C)]
15245#[doc(hidden)]
15246pub struct ICoreWebView2Environment6_Vtbl {
15247    pub base__: ICoreWebView2Environment5_Vtbl,
15248    pub CreatePrintSettings: unsafe extern "system" fn(
15249        *mut core::ffi::c_void,
15250        *mut *mut core::ffi::c_void,
15251    ) -> windows_core::HRESULT,
15252}
15253pub trait ICoreWebView2Environment6_Impl: ICoreWebView2Environment5_Impl {
15254    fn CreatePrintSettings(&self) -> windows_core::Result<ICoreWebView2PrintSettings>;
15255}
15256impl ICoreWebView2Environment6_Vtbl {
15257    pub const fn new<Identity: ICoreWebView2Environment6_Impl, const OFFSET: isize>() -> Self {
15258        unsafe extern "system" fn CreatePrintSettings<
15259            Identity: ICoreWebView2Environment6_Impl,
15260            const OFFSET: isize,
15261        >(
15262            this: *mut core::ffi::c_void,
15263            value: *mut *mut core::ffi::c_void,
15264        ) -> windows_core::HRESULT {
15265            unsafe {
15266                let this: &Identity =
15267                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
15268                match ICoreWebView2Environment6_Impl::CreatePrintSettings(this) {
15269                    Ok(ok__) => {
15270                        value.write(core::mem::transmute(ok__));
15271                        windows_core::HRESULT(0)
15272                    }
15273                    Err(err) => err.into(),
15274                }
15275            }
15276        }
15277        Self {
15278            base__: ICoreWebView2Environment5_Vtbl::new::<Identity, OFFSET>(),
15279            CreatePrintSettings: CreatePrintSettings::<Identity, OFFSET>,
15280        }
15281    }
15282    pub fn matches(iid: &windows_core::GUID) -> bool {
15283        iid == &<ICoreWebView2Environment6 as windows_core::Interface>::IID
15284            || iid == &<ICoreWebView2Environment as windows_core::Interface>::IID
15285            || iid == &<ICoreWebView2Environment2 as windows_core::Interface>::IID
15286            || iid == &<ICoreWebView2Environment3 as windows_core::Interface>::IID
15287            || iid == &<ICoreWebView2Environment4 as windows_core::Interface>::IID
15288            || iid == &<ICoreWebView2Environment5 as windows_core::Interface>::IID
15289    }
15290}
15291impl windows_core::RuntimeName for ICoreWebView2Environment6 {}
15292windows_core::imp::define_interface!(
15293    ICoreWebView2Environment7,
15294    ICoreWebView2Environment7_Vtbl,
15295    0x43c22296_3bbd_43a4_9c00_5c0df6dd29a2
15296);
15297impl core::ops::Deref for ICoreWebView2Environment7 {
15298    type Target = ICoreWebView2Environment6;
15299    fn deref(&self) -> &Self::Target {
15300        unsafe { core::mem::transmute(self) }
15301    }
15302}
15303windows_core::imp::interface_hierarchy!(
15304    ICoreWebView2Environment7,
15305    windows_core::IUnknown,
15306    ICoreWebView2Environment,
15307    ICoreWebView2Environment2,
15308    ICoreWebView2Environment3,
15309    ICoreWebView2Environment4,
15310    ICoreWebView2Environment5,
15311    ICoreWebView2Environment6
15312);
15313impl ICoreWebView2Environment7 {
15314    pub unsafe fn UserDataFolder(
15315        &self,
15316        value: *mut windows_core::PWSTR,
15317    ) -> windows_core::Result<()> {
15318        unsafe {
15319            (windows_core::Interface::vtable(self).UserDataFolder)(
15320                windows_core::Interface::as_raw(self),
15321                value as _,
15322            )
15323            .ok()
15324        }
15325    }
15326}
15327#[repr(C)]
15328#[doc(hidden)]
15329pub struct ICoreWebView2Environment7_Vtbl {
15330    pub base__: ICoreWebView2Environment6_Vtbl,
15331    pub UserDataFolder: unsafe extern "system" fn(
15332        *mut core::ffi::c_void,
15333        *mut windows_core::PWSTR,
15334    ) -> windows_core::HRESULT,
15335}
15336pub trait ICoreWebView2Environment7_Impl: ICoreWebView2Environment6_Impl {
15337    fn UserDataFolder(&self, value: *mut windows_core::PWSTR) -> windows_core::Result<()>;
15338}
15339impl ICoreWebView2Environment7_Vtbl {
15340    pub const fn new<Identity: ICoreWebView2Environment7_Impl, const OFFSET: isize>() -> Self {
15341        unsafe extern "system" fn UserDataFolder<
15342            Identity: ICoreWebView2Environment7_Impl,
15343            const OFFSET: isize,
15344        >(
15345            this: *mut core::ffi::c_void,
15346            value: *mut windows_core::PWSTR,
15347        ) -> windows_core::HRESULT {
15348            unsafe {
15349                let this: &Identity =
15350                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
15351                ICoreWebView2Environment7_Impl::UserDataFolder(
15352                    this,
15353                    core::mem::transmute_copy(&value),
15354                )
15355                .into()
15356            }
15357        }
15358        Self {
15359            base__: ICoreWebView2Environment6_Vtbl::new::<Identity, OFFSET>(),
15360            UserDataFolder: UserDataFolder::<Identity, OFFSET>,
15361        }
15362    }
15363    pub fn matches(iid: &windows_core::GUID) -> bool {
15364        iid == &<ICoreWebView2Environment7 as windows_core::Interface>::IID
15365            || iid == &<ICoreWebView2Environment as windows_core::Interface>::IID
15366            || iid == &<ICoreWebView2Environment2 as windows_core::Interface>::IID
15367            || iid == &<ICoreWebView2Environment3 as windows_core::Interface>::IID
15368            || iid == &<ICoreWebView2Environment4 as windows_core::Interface>::IID
15369            || iid == &<ICoreWebView2Environment5 as windows_core::Interface>::IID
15370            || iid == &<ICoreWebView2Environment6 as windows_core::Interface>::IID
15371    }
15372}
15373impl windows_core::RuntimeName for ICoreWebView2Environment7 {}
15374windows_core::imp::define_interface!(
15375    ICoreWebView2Environment8,
15376    ICoreWebView2Environment8_Vtbl,
15377    0xd6eb91dd_c3d2_45e5_bd29_6dc2bc4de9cf
15378);
15379impl core::ops::Deref for ICoreWebView2Environment8 {
15380    type Target = ICoreWebView2Environment7;
15381    fn deref(&self) -> &Self::Target {
15382        unsafe { core::mem::transmute(self) }
15383    }
15384}
15385windows_core::imp::interface_hierarchy!(
15386    ICoreWebView2Environment8,
15387    windows_core::IUnknown,
15388    ICoreWebView2Environment,
15389    ICoreWebView2Environment2,
15390    ICoreWebView2Environment3,
15391    ICoreWebView2Environment4,
15392    ICoreWebView2Environment5,
15393    ICoreWebView2Environment6,
15394    ICoreWebView2Environment7
15395);
15396impl ICoreWebView2Environment8 {
15397    pub unsafe fn add_ProcessInfosChanged<P0>(
15398        &self,
15399        eventhandler: P0,
15400        token: *mut i64,
15401    ) -> windows_core::Result<()>
15402    where
15403        P0: windows_core::Param<ICoreWebView2ProcessInfosChangedEventHandler>,
15404    {
15405        unsafe {
15406            (windows_core::Interface::vtable(self).add_ProcessInfosChanged)(
15407                windows_core::Interface::as_raw(self),
15408                eventhandler.param().abi(),
15409                token as _,
15410            )
15411            .ok()
15412        }
15413    }
15414    pub unsafe fn remove_ProcessInfosChanged(&self, token: i64) -> windows_core::Result<()> {
15415        unsafe {
15416            (windows_core::Interface::vtable(self).remove_ProcessInfosChanged)(
15417                windows_core::Interface::as_raw(self),
15418                token,
15419            )
15420            .ok()
15421        }
15422    }
15423    pub unsafe fn GetProcessInfos(
15424        &self,
15425    ) -> windows_core::Result<ICoreWebView2ProcessInfoCollection> {
15426        unsafe {
15427            let mut result__ = core::mem::zeroed();
15428            (windows_core::Interface::vtable(self).GetProcessInfos)(
15429                windows_core::Interface::as_raw(self),
15430                &mut result__,
15431            )
15432            .and_then(|| windows_core::Type::from_abi(result__))
15433        }
15434    }
15435}
15436#[repr(C)]
15437#[doc(hidden)]
15438pub struct ICoreWebView2Environment8_Vtbl {
15439    pub base__: ICoreWebView2Environment7_Vtbl,
15440    pub add_ProcessInfosChanged: unsafe extern "system" fn(
15441        *mut core::ffi::c_void,
15442        *mut core::ffi::c_void,
15443        *mut i64,
15444    ) -> windows_core::HRESULT,
15445    pub remove_ProcessInfosChanged:
15446        unsafe extern "system" fn(*mut core::ffi::c_void, i64) -> windows_core::HRESULT,
15447    pub GetProcessInfos: unsafe extern "system" fn(
15448        *mut core::ffi::c_void,
15449        *mut *mut core::ffi::c_void,
15450    ) -> windows_core::HRESULT,
15451}
15452pub trait ICoreWebView2Environment8_Impl: ICoreWebView2Environment7_Impl {
15453    fn add_ProcessInfosChanged(
15454        &self,
15455        eventhandler: windows_core::Ref<'_, ICoreWebView2ProcessInfosChangedEventHandler>,
15456        token: *mut i64,
15457    ) -> windows_core::Result<()>;
15458    fn remove_ProcessInfosChanged(&self, token: i64) -> windows_core::Result<()>;
15459    fn GetProcessInfos(&self) -> windows_core::Result<ICoreWebView2ProcessInfoCollection>;
15460}
15461impl ICoreWebView2Environment8_Vtbl {
15462    pub const fn new<Identity: ICoreWebView2Environment8_Impl, const OFFSET: isize>() -> Self {
15463        unsafe extern "system" fn add_ProcessInfosChanged<
15464            Identity: ICoreWebView2Environment8_Impl,
15465            const OFFSET: isize,
15466        >(
15467            this: *mut core::ffi::c_void,
15468            eventhandler: *mut core::ffi::c_void,
15469            token: *mut i64,
15470        ) -> windows_core::HRESULT {
15471            unsafe {
15472                let this: &Identity =
15473                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
15474                ICoreWebView2Environment8_Impl::add_ProcessInfosChanged(
15475                    this,
15476                    core::mem::transmute_copy(&eventhandler),
15477                    core::mem::transmute_copy(&token),
15478                )
15479                .into()
15480            }
15481        }
15482        unsafe extern "system" fn remove_ProcessInfosChanged<
15483            Identity: ICoreWebView2Environment8_Impl,
15484            const OFFSET: isize,
15485        >(
15486            this: *mut core::ffi::c_void,
15487            token: i64,
15488        ) -> windows_core::HRESULT {
15489            unsafe {
15490                let this: &Identity =
15491                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
15492                ICoreWebView2Environment8_Impl::remove_ProcessInfosChanged(
15493                    this,
15494                    core::mem::transmute_copy(&token),
15495                )
15496                .into()
15497            }
15498        }
15499        unsafe extern "system" fn GetProcessInfos<
15500            Identity: ICoreWebView2Environment8_Impl,
15501            const OFFSET: isize,
15502        >(
15503            this: *mut core::ffi::c_void,
15504            value: *mut *mut core::ffi::c_void,
15505        ) -> windows_core::HRESULT {
15506            unsafe {
15507                let this: &Identity =
15508                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
15509                match ICoreWebView2Environment8_Impl::GetProcessInfos(this) {
15510                    Ok(ok__) => {
15511                        value.write(core::mem::transmute(ok__));
15512                        windows_core::HRESULT(0)
15513                    }
15514                    Err(err) => err.into(),
15515                }
15516            }
15517        }
15518        Self {
15519            base__: ICoreWebView2Environment7_Vtbl::new::<Identity, OFFSET>(),
15520            add_ProcessInfosChanged: add_ProcessInfosChanged::<Identity, OFFSET>,
15521            remove_ProcessInfosChanged: remove_ProcessInfosChanged::<Identity, OFFSET>,
15522            GetProcessInfos: GetProcessInfos::<Identity, OFFSET>,
15523        }
15524    }
15525    pub fn matches(iid: &windows_core::GUID) -> bool {
15526        iid == &<ICoreWebView2Environment8 as windows_core::Interface>::IID
15527            || iid == &<ICoreWebView2Environment as windows_core::Interface>::IID
15528            || iid == &<ICoreWebView2Environment2 as windows_core::Interface>::IID
15529            || iid == &<ICoreWebView2Environment3 as windows_core::Interface>::IID
15530            || iid == &<ICoreWebView2Environment4 as windows_core::Interface>::IID
15531            || iid == &<ICoreWebView2Environment5 as windows_core::Interface>::IID
15532            || iid == &<ICoreWebView2Environment6 as windows_core::Interface>::IID
15533            || iid == &<ICoreWebView2Environment7 as windows_core::Interface>::IID
15534    }
15535}
15536impl windows_core::RuntimeName for ICoreWebView2Environment8 {}
15537windows_core::imp::define_interface!(
15538    ICoreWebView2Environment9,
15539    ICoreWebView2Environment9_Vtbl,
15540    0xf06f41bf_4b5a_49d8_b9f6_fa16cd29f274
15541);
15542impl core::ops::Deref for ICoreWebView2Environment9 {
15543    type Target = ICoreWebView2Environment8;
15544    fn deref(&self) -> &Self::Target {
15545        unsafe { core::mem::transmute(self) }
15546    }
15547}
15548windows_core::imp::interface_hierarchy!(
15549    ICoreWebView2Environment9,
15550    windows_core::IUnknown,
15551    ICoreWebView2Environment,
15552    ICoreWebView2Environment2,
15553    ICoreWebView2Environment3,
15554    ICoreWebView2Environment4,
15555    ICoreWebView2Environment5,
15556    ICoreWebView2Environment6,
15557    ICoreWebView2Environment7,
15558    ICoreWebView2Environment8
15559);
15560impl ICoreWebView2Environment9 {
15561    pub unsafe fn CreateContextMenuItem<P0, P1>(
15562        &self,
15563        label: P0,
15564        iconstream: P1,
15565        kind: COREWEBVIEW2_CONTEXT_MENU_ITEM_KIND,
15566    ) -> windows_core::Result<ICoreWebView2ContextMenuItem>
15567    where
15568        P0: windows_core::Param<windows_core::PCWSTR>,
15569        P1: windows_core::Param<windows::Win32::System::Com::IStream>,
15570    {
15571        unsafe {
15572            let mut result__ = core::mem::zeroed();
15573            (windows_core::Interface::vtable(self).CreateContextMenuItem)(
15574                windows_core::Interface::as_raw(self),
15575                label.param().abi(),
15576                iconstream.param().abi(),
15577                kind,
15578                &mut result__,
15579            )
15580            .and_then(|| windows_core::Type::from_abi(result__))
15581        }
15582    }
15583}
15584#[repr(C)]
15585#[doc(hidden)]
15586pub struct ICoreWebView2Environment9_Vtbl {
15587    pub base__: ICoreWebView2Environment8_Vtbl,
15588    pub CreateContextMenuItem: unsafe extern "system" fn(
15589        *mut core::ffi::c_void,
15590        windows_core::PCWSTR,
15591        *mut core::ffi::c_void,
15592        COREWEBVIEW2_CONTEXT_MENU_ITEM_KIND,
15593        *mut *mut core::ffi::c_void,
15594    ) -> windows_core::HRESULT,
15595}
15596pub trait ICoreWebView2Environment9_Impl: ICoreWebView2Environment8_Impl {
15597    fn CreateContextMenuItem(
15598        &self,
15599        label: &windows_core::PCWSTR,
15600        iconstream: windows_core::Ref<'_, windows::Win32::System::Com::IStream>,
15601        kind: COREWEBVIEW2_CONTEXT_MENU_ITEM_KIND,
15602    ) -> windows_core::Result<ICoreWebView2ContextMenuItem>;
15603}
15604impl ICoreWebView2Environment9_Vtbl {
15605    pub const fn new<Identity: ICoreWebView2Environment9_Impl, const OFFSET: isize>() -> Self {
15606        unsafe extern "system" fn CreateContextMenuItem<
15607            Identity: ICoreWebView2Environment9_Impl,
15608            const OFFSET: isize,
15609        >(
15610            this: *mut core::ffi::c_void,
15611            label: windows_core::PCWSTR,
15612            iconstream: *mut core::ffi::c_void,
15613            kind: COREWEBVIEW2_CONTEXT_MENU_ITEM_KIND,
15614            value: *mut *mut core::ffi::c_void,
15615        ) -> windows_core::HRESULT {
15616            unsafe {
15617                let this: &Identity =
15618                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
15619                match ICoreWebView2Environment9_Impl::CreateContextMenuItem(
15620                    this,
15621                    core::mem::transmute(&label),
15622                    core::mem::transmute_copy(&iconstream),
15623                    core::mem::transmute_copy(&kind),
15624                ) {
15625                    Ok(ok__) => {
15626                        value.write(core::mem::transmute(ok__));
15627                        windows_core::HRESULT(0)
15628                    }
15629                    Err(err) => err.into(),
15630                }
15631            }
15632        }
15633        Self {
15634            base__: ICoreWebView2Environment8_Vtbl::new::<Identity, OFFSET>(),
15635            CreateContextMenuItem: CreateContextMenuItem::<Identity, OFFSET>,
15636        }
15637    }
15638    pub fn matches(iid: &windows_core::GUID) -> bool {
15639        iid == &<ICoreWebView2Environment9 as windows_core::Interface>::IID
15640            || iid == &<ICoreWebView2Environment as windows_core::Interface>::IID
15641            || iid == &<ICoreWebView2Environment2 as windows_core::Interface>::IID
15642            || iid == &<ICoreWebView2Environment3 as windows_core::Interface>::IID
15643            || iid == &<ICoreWebView2Environment4 as windows_core::Interface>::IID
15644            || iid == &<ICoreWebView2Environment5 as windows_core::Interface>::IID
15645            || iid == &<ICoreWebView2Environment6 as windows_core::Interface>::IID
15646            || iid == &<ICoreWebView2Environment7 as windows_core::Interface>::IID
15647            || iid == &<ICoreWebView2Environment8 as windows_core::Interface>::IID
15648    }
15649}
15650impl windows_core::RuntimeName for ICoreWebView2Environment9 {}
15651windows_core::imp::define_interface!(
15652    ICoreWebView2EnvironmentOptions,
15653    ICoreWebView2EnvironmentOptions_Vtbl,
15654    0x2fde08a8_1e9a_4766_8c05_95a9ceb9d1c5
15655);
15656windows_core::imp::interface_hierarchy!(ICoreWebView2EnvironmentOptions, windows_core::IUnknown);
15657impl ICoreWebView2EnvironmentOptions {
15658    pub unsafe fn AdditionalBrowserArguments(
15659        &self,
15660        value: *mut windows_core::PWSTR,
15661    ) -> windows_core::Result<()> {
15662        unsafe {
15663            (windows_core::Interface::vtable(self).AdditionalBrowserArguments)(
15664                windows_core::Interface::as_raw(self),
15665                value as _,
15666            )
15667            .ok()
15668        }
15669    }
15670    pub unsafe fn SetAdditionalBrowserArguments<P0>(&self, value: P0) -> windows_core::Result<()>
15671    where
15672        P0: windows_core::Param<windows_core::PCWSTR>,
15673    {
15674        unsafe {
15675            (windows_core::Interface::vtable(self).SetAdditionalBrowserArguments)(
15676                windows_core::Interface::as_raw(self),
15677                value.param().abi(),
15678            )
15679            .ok()
15680        }
15681    }
15682    pub unsafe fn Language(&self, value: *mut windows_core::PWSTR) -> windows_core::Result<()> {
15683        unsafe {
15684            (windows_core::Interface::vtable(self).Language)(
15685                windows_core::Interface::as_raw(self),
15686                value as _,
15687            )
15688            .ok()
15689        }
15690    }
15691    pub unsafe fn SetLanguage<P0>(&self, value: P0) -> windows_core::Result<()>
15692    where
15693        P0: windows_core::Param<windows_core::PCWSTR>,
15694    {
15695        unsafe {
15696            (windows_core::Interface::vtable(self).SetLanguage)(
15697                windows_core::Interface::as_raw(self),
15698                value.param().abi(),
15699            )
15700            .ok()
15701        }
15702    }
15703    pub unsafe fn TargetCompatibleBrowserVersion(
15704        &self,
15705        value: *mut windows_core::PWSTR,
15706    ) -> windows_core::Result<()> {
15707        unsafe {
15708            (windows_core::Interface::vtable(self).TargetCompatibleBrowserVersion)(
15709                windows_core::Interface::as_raw(self),
15710                value as _,
15711            )
15712            .ok()
15713        }
15714    }
15715    pub unsafe fn SetTargetCompatibleBrowserVersion<P0>(
15716        &self,
15717        value: P0,
15718    ) -> windows_core::Result<()>
15719    where
15720        P0: windows_core::Param<windows_core::PCWSTR>,
15721    {
15722        unsafe {
15723            (windows_core::Interface::vtable(self).SetTargetCompatibleBrowserVersion)(
15724                windows_core::Interface::as_raw(self),
15725                value.param().abi(),
15726            )
15727            .ok()
15728        }
15729    }
15730    pub unsafe fn AllowSingleSignOnUsingOSPrimaryAccount(
15731        &self,
15732        allow: *mut windows_core::BOOL,
15733    ) -> windows_core::Result<()> {
15734        unsafe {
15735            (windows_core::Interface::vtable(self).AllowSingleSignOnUsingOSPrimaryAccount)(
15736                windows_core::Interface::as_raw(self),
15737                allow as _,
15738            )
15739            .ok()
15740        }
15741    }
15742    pub unsafe fn SetAllowSingleSignOnUsingOSPrimaryAccount(
15743        &self,
15744        allow: bool,
15745    ) -> windows_core::Result<()> {
15746        unsafe {
15747            (windows_core::Interface::vtable(self).SetAllowSingleSignOnUsingOSPrimaryAccount)(
15748                windows_core::Interface::as_raw(self),
15749                allow.into(),
15750            )
15751            .ok()
15752        }
15753    }
15754}
15755#[repr(C)]
15756#[doc(hidden)]
15757pub struct ICoreWebView2EnvironmentOptions_Vtbl {
15758    pub base__: windows_core::IUnknown_Vtbl,
15759    pub AdditionalBrowserArguments: unsafe extern "system" fn(
15760        *mut core::ffi::c_void,
15761        *mut windows_core::PWSTR,
15762    ) -> windows_core::HRESULT,
15763    pub SetAdditionalBrowserArguments: unsafe extern "system" fn(
15764        *mut core::ffi::c_void,
15765        windows_core::PCWSTR,
15766    ) -> windows_core::HRESULT,
15767    pub Language: unsafe extern "system" fn(
15768        *mut core::ffi::c_void,
15769        *mut windows_core::PWSTR,
15770    ) -> windows_core::HRESULT,
15771    pub SetLanguage: unsafe extern "system" fn(
15772        *mut core::ffi::c_void,
15773        windows_core::PCWSTR,
15774    ) -> windows_core::HRESULT,
15775    pub TargetCompatibleBrowserVersion: unsafe extern "system" fn(
15776        *mut core::ffi::c_void,
15777        *mut windows_core::PWSTR,
15778    ) -> windows_core::HRESULT,
15779    pub SetTargetCompatibleBrowserVersion: unsafe extern "system" fn(
15780        *mut core::ffi::c_void,
15781        windows_core::PCWSTR,
15782    ) -> windows_core::HRESULT,
15783    pub AllowSingleSignOnUsingOSPrimaryAccount: unsafe extern "system" fn(
15784        *mut core::ffi::c_void,
15785        *mut windows_core::BOOL,
15786    )
15787        -> windows_core::HRESULT,
15788    pub SetAllowSingleSignOnUsingOSPrimaryAccount:
15789        unsafe extern "system" fn(
15790            *mut core::ffi::c_void,
15791            windows_core::BOOL,
15792        ) -> windows_core::HRESULT,
15793}
15794pub trait ICoreWebView2EnvironmentOptions_Impl: windows_core::IUnknownImpl {
15795    fn AdditionalBrowserArguments(
15796        &self,
15797        value: *mut windows_core::PWSTR,
15798    ) -> windows_core::Result<()>;
15799    fn SetAdditionalBrowserArguments(
15800        &self,
15801        value: &windows_core::PCWSTR,
15802    ) -> windows_core::Result<()>;
15803    fn Language(&self, value: *mut windows_core::PWSTR) -> windows_core::Result<()>;
15804    fn SetLanguage(&self, value: &windows_core::PCWSTR) -> windows_core::Result<()>;
15805    fn TargetCompatibleBrowserVersion(
15806        &self,
15807        value: *mut windows_core::PWSTR,
15808    ) -> windows_core::Result<()>;
15809    fn SetTargetCompatibleBrowserVersion(
15810        &self,
15811        value: &windows_core::PCWSTR,
15812    ) -> windows_core::Result<()>;
15813    fn AllowSingleSignOnUsingOSPrimaryAccount(
15814        &self,
15815        allow: *mut windows_core::BOOL,
15816    ) -> windows_core::Result<()>;
15817    fn SetAllowSingleSignOnUsingOSPrimaryAccount(
15818        &self,
15819        allow: windows_core::BOOL,
15820    ) -> windows_core::Result<()>;
15821}
15822impl ICoreWebView2EnvironmentOptions_Vtbl {
15823    pub const fn new<Identity: ICoreWebView2EnvironmentOptions_Impl, const OFFSET: isize>() -> Self
15824    {
15825        unsafe extern "system" fn AdditionalBrowserArguments<
15826            Identity: ICoreWebView2EnvironmentOptions_Impl,
15827            const OFFSET: isize,
15828        >(
15829            this: *mut core::ffi::c_void,
15830            value: *mut windows_core::PWSTR,
15831        ) -> windows_core::HRESULT {
15832            unsafe {
15833                let this: &Identity =
15834                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
15835                ICoreWebView2EnvironmentOptions_Impl::AdditionalBrowserArguments(
15836                    this,
15837                    core::mem::transmute_copy(&value),
15838                )
15839                .into()
15840            }
15841        }
15842        unsafe extern "system" fn SetAdditionalBrowserArguments<
15843            Identity: ICoreWebView2EnvironmentOptions_Impl,
15844            const OFFSET: isize,
15845        >(
15846            this: *mut core::ffi::c_void,
15847            value: windows_core::PCWSTR,
15848        ) -> windows_core::HRESULT {
15849            unsafe {
15850                let this: &Identity =
15851                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
15852                ICoreWebView2EnvironmentOptions_Impl::SetAdditionalBrowserArguments(
15853                    this,
15854                    core::mem::transmute(&value),
15855                )
15856                .into()
15857            }
15858        }
15859        unsafe extern "system" fn Language<
15860            Identity: ICoreWebView2EnvironmentOptions_Impl,
15861            const OFFSET: isize,
15862        >(
15863            this: *mut core::ffi::c_void,
15864            value: *mut windows_core::PWSTR,
15865        ) -> windows_core::HRESULT {
15866            unsafe {
15867                let this: &Identity =
15868                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
15869                ICoreWebView2EnvironmentOptions_Impl::Language(
15870                    this,
15871                    core::mem::transmute_copy(&value),
15872                )
15873                .into()
15874            }
15875        }
15876        unsafe extern "system" fn SetLanguage<
15877            Identity: ICoreWebView2EnvironmentOptions_Impl,
15878            const OFFSET: isize,
15879        >(
15880            this: *mut core::ffi::c_void,
15881            value: windows_core::PCWSTR,
15882        ) -> windows_core::HRESULT {
15883            unsafe {
15884                let this: &Identity =
15885                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
15886                ICoreWebView2EnvironmentOptions_Impl::SetLanguage(
15887                    this,
15888                    core::mem::transmute(&value),
15889                )
15890                .into()
15891            }
15892        }
15893        unsafe extern "system" fn TargetCompatibleBrowserVersion<
15894            Identity: ICoreWebView2EnvironmentOptions_Impl,
15895            const OFFSET: isize,
15896        >(
15897            this: *mut core::ffi::c_void,
15898            value: *mut windows_core::PWSTR,
15899        ) -> windows_core::HRESULT {
15900            unsafe {
15901                let this: &Identity =
15902                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
15903                ICoreWebView2EnvironmentOptions_Impl::TargetCompatibleBrowserVersion(
15904                    this,
15905                    core::mem::transmute_copy(&value),
15906                )
15907                .into()
15908            }
15909        }
15910        unsafe extern "system" fn SetTargetCompatibleBrowserVersion<
15911            Identity: ICoreWebView2EnvironmentOptions_Impl,
15912            const OFFSET: isize,
15913        >(
15914            this: *mut core::ffi::c_void,
15915            value: windows_core::PCWSTR,
15916        ) -> windows_core::HRESULT {
15917            unsafe {
15918                let this: &Identity =
15919                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
15920                ICoreWebView2EnvironmentOptions_Impl::SetTargetCompatibleBrowserVersion(
15921                    this,
15922                    core::mem::transmute(&value),
15923                )
15924                .into()
15925            }
15926        }
15927        unsafe extern "system" fn AllowSingleSignOnUsingOSPrimaryAccount<
15928            Identity: ICoreWebView2EnvironmentOptions_Impl,
15929            const OFFSET: isize,
15930        >(
15931            this: *mut core::ffi::c_void,
15932            allow: *mut windows_core::BOOL,
15933        ) -> windows_core::HRESULT {
15934            unsafe {
15935                let this: &Identity =
15936                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
15937                ICoreWebView2EnvironmentOptions_Impl::AllowSingleSignOnUsingOSPrimaryAccount(
15938                    this,
15939                    core::mem::transmute_copy(&allow),
15940                )
15941                .into()
15942            }
15943        }
15944        unsafe extern "system" fn SetAllowSingleSignOnUsingOSPrimaryAccount<
15945            Identity: ICoreWebView2EnvironmentOptions_Impl,
15946            const OFFSET: isize,
15947        >(
15948            this: *mut core::ffi::c_void,
15949            allow: windows_core::BOOL,
15950        ) -> windows_core::HRESULT {
15951            unsafe {
15952                let this: &Identity =
15953                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
15954                ICoreWebView2EnvironmentOptions_Impl::SetAllowSingleSignOnUsingOSPrimaryAccount(
15955                    this,
15956                    core::mem::transmute_copy(&allow),
15957                )
15958                .into()
15959            }
15960        }
15961        Self {
15962            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
15963            AdditionalBrowserArguments: AdditionalBrowserArguments::<Identity, OFFSET>,
15964            SetAdditionalBrowserArguments: SetAdditionalBrowserArguments::<Identity, OFFSET>,
15965            Language: Language::<Identity, OFFSET>,
15966            SetLanguage: SetLanguage::<Identity, OFFSET>,
15967            TargetCompatibleBrowserVersion: TargetCompatibleBrowserVersion::<Identity, OFFSET>,
15968            SetTargetCompatibleBrowserVersion: SetTargetCompatibleBrowserVersion::<Identity, OFFSET>,
15969            AllowSingleSignOnUsingOSPrimaryAccount: AllowSingleSignOnUsingOSPrimaryAccount::<
15970                Identity,
15971                OFFSET,
15972            >,
15973            SetAllowSingleSignOnUsingOSPrimaryAccount: SetAllowSingleSignOnUsingOSPrimaryAccount::<
15974                Identity,
15975                OFFSET,
15976            >,
15977        }
15978    }
15979    pub fn matches(iid: &windows_core::GUID) -> bool {
15980        iid == &<ICoreWebView2EnvironmentOptions as windows_core::Interface>::IID
15981    }
15982}
15983impl windows_core::RuntimeName for ICoreWebView2EnvironmentOptions {}
15984windows_core::imp::define_interface!(
15985    ICoreWebView2EnvironmentOptions2,
15986    ICoreWebView2EnvironmentOptions2_Vtbl,
15987    0xff85c98a_1ba7_4a6b_90c8_2b752c89e9e2
15988);
15989windows_core::imp::interface_hierarchy!(ICoreWebView2EnvironmentOptions2, windows_core::IUnknown);
15990impl ICoreWebView2EnvironmentOptions2 {
15991    pub unsafe fn ExclusiveUserDataFolderAccess(
15992        &self,
15993        value: *mut windows_core::BOOL,
15994    ) -> windows_core::Result<()> {
15995        unsafe {
15996            (windows_core::Interface::vtable(self).ExclusiveUserDataFolderAccess)(
15997                windows_core::Interface::as_raw(self),
15998                value as _,
15999            )
16000            .ok()
16001        }
16002    }
16003    pub unsafe fn SetExclusiveUserDataFolderAccess(&self, value: bool) -> windows_core::Result<()> {
16004        unsafe {
16005            (windows_core::Interface::vtable(self).SetExclusiveUserDataFolderAccess)(
16006                windows_core::Interface::as_raw(self),
16007                value.into(),
16008            )
16009            .ok()
16010        }
16011    }
16012}
16013#[repr(C)]
16014#[doc(hidden)]
16015pub struct ICoreWebView2EnvironmentOptions2_Vtbl {
16016    pub base__: windows_core::IUnknown_Vtbl,
16017    pub ExclusiveUserDataFolderAccess: unsafe extern "system" fn(
16018        *mut core::ffi::c_void,
16019        *mut windows_core::BOOL,
16020    ) -> windows_core::HRESULT,
16021    pub SetExclusiveUserDataFolderAccess: unsafe extern "system" fn(
16022        *mut core::ffi::c_void,
16023        windows_core::BOOL,
16024    ) -> windows_core::HRESULT,
16025}
16026pub trait ICoreWebView2EnvironmentOptions2_Impl: windows_core::IUnknownImpl {
16027    fn ExclusiveUserDataFolderAccess(
16028        &self,
16029        value: *mut windows_core::BOOL,
16030    ) -> windows_core::Result<()>;
16031    fn SetExclusiveUserDataFolderAccess(
16032        &self,
16033        value: windows_core::BOOL,
16034    ) -> windows_core::Result<()>;
16035}
16036impl ICoreWebView2EnvironmentOptions2_Vtbl {
16037    pub const fn new<Identity: ICoreWebView2EnvironmentOptions2_Impl, const OFFSET: isize>() -> Self
16038    {
16039        unsafe extern "system" fn ExclusiveUserDataFolderAccess<
16040            Identity: ICoreWebView2EnvironmentOptions2_Impl,
16041            const OFFSET: isize,
16042        >(
16043            this: *mut core::ffi::c_void,
16044            value: *mut windows_core::BOOL,
16045        ) -> windows_core::HRESULT {
16046            unsafe {
16047                let this: &Identity =
16048                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
16049                ICoreWebView2EnvironmentOptions2_Impl::ExclusiveUserDataFolderAccess(
16050                    this,
16051                    core::mem::transmute_copy(&value),
16052                )
16053                .into()
16054            }
16055        }
16056        unsafe extern "system" fn SetExclusiveUserDataFolderAccess<
16057            Identity: ICoreWebView2EnvironmentOptions2_Impl,
16058            const OFFSET: isize,
16059        >(
16060            this: *mut core::ffi::c_void,
16061            value: windows_core::BOOL,
16062        ) -> windows_core::HRESULT {
16063            unsafe {
16064                let this: &Identity =
16065                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
16066                ICoreWebView2EnvironmentOptions2_Impl::SetExclusiveUserDataFolderAccess(
16067                    this,
16068                    core::mem::transmute_copy(&value),
16069                )
16070                .into()
16071            }
16072        }
16073        Self {
16074            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
16075            ExclusiveUserDataFolderAccess: ExclusiveUserDataFolderAccess::<Identity, OFFSET>,
16076            SetExclusiveUserDataFolderAccess: SetExclusiveUserDataFolderAccess::<Identity, OFFSET>,
16077        }
16078    }
16079    pub fn matches(iid: &windows_core::GUID) -> bool {
16080        iid == &<ICoreWebView2EnvironmentOptions2 as windows_core::Interface>::IID
16081    }
16082}
16083impl windows_core::RuntimeName for ICoreWebView2EnvironmentOptions2 {}
16084windows_core::imp::define_interface!(
16085    ICoreWebView2EnvironmentOptions3,
16086    ICoreWebView2EnvironmentOptions3_Vtbl,
16087    0x4a5c436e_a9e3_4a2e_89c3_910d3513f5cc
16088);
16089windows_core::imp::interface_hierarchy!(ICoreWebView2EnvironmentOptions3, windows_core::IUnknown);
16090impl ICoreWebView2EnvironmentOptions3 {
16091    pub unsafe fn IsCustomCrashReportingEnabled(
16092        &self,
16093        value: *mut windows_core::BOOL,
16094    ) -> windows_core::Result<()> {
16095        unsafe {
16096            (windows_core::Interface::vtable(self).IsCustomCrashReportingEnabled)(
16097                windows_core::Interface::as_raw(self),
16098                value as _,
16099            )
16100            .ok()
16101        }
16102    }
16103    pub unsafe fn SetIsCustomCrashReportingEnabled(&self, value: bool) -> windows_core::Result<()> {
16104        unsafe {
16105            (windows_core::Interface::vtable(self).SetIsCustomCrashReportingEnabled)(
16106                windows_core::Interface::as_raw(self),
16107                value.into(),
16108            )
16109            .ok()
16110        }
16111    }
16112}
16113#[repr(C)]
16114#[doc(hidden)]
16115pub struct ICoreWebView2EnvironmentOptions3_Vtbl {
16116    pub base__: windows_core::IUnknown_Vtbl,
16117    pub IsCustomCrashReportingEnabled: unsafe extern "system" fn(
16118        *mut core::ffi::c_void,
16119        *mut windows_core::BOOL,
16120    ) -> windows_core::HRESULT,
16121    pub SetIsCustomCrashReportingEnabled: unsafe extern "system" fn(
16122        *mut core::ffi::c_void,
16123        windows_core::BOOL,
16124    ) -> windows_core::HRESULT,
16125}
16126pub trait ICoreWebView2EnvironmentOptions3_Impl: windows_core::IUnknownImpl {
16127    fn IsCustomCrashReportingEnabled(
16128        &self,
16129        value: *mut windows_core::BOOL,
16130    ) -> windows_core::Result<()>;
16131    fn SetIsCustomCrashReportingEnabled(
16132        &self,
16133        value: windows_core::BOOL,
16134    ) -> windows_core::Result<()>;
16135}
16136impl ICoreWebView2EnvironmentOptions3_Vtbl {
16137    pub const fn new<Identity: ICoreWebView2EnvironmentOptions3_Impl, const OFFSET: isize>() -> Self
16138    {
16139        unsafe extern "system" fn IsCustomCrashReportingEnabled<
16140            Identity: ICoreWebView2EnvironmentOptions3_Impl,
16141            const OFFSET: isize,
16142        >(
16143            this: *mut core::ffi::c_void,
16144            value: *mut windows_core::BOOL,
16145        ) -> windows_core::HRESULT {
16146            unsafe {
16147                let this: &Identity =
16148                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
16149                ICoreWebView2EnvironmentOptions3_Impl::IsCustomCrashReportingEnabled(
16150                    this,
16151                    core::mem::transmute_copy(&value),
16152                )
16153                .into()
16154            }
16155        }
16156        unsafe extern "system" fn SetIsCustomCrashReportingEnabled<
16157            Identity: ICoreWebView2EnvironmentOptions3_Impl,
16158            const OFFSET: isize,
16159        >(
16160            this: *mut core::ffi::c_void,
16161            value: windows_core::BOOL,
16162        ) -> windows_core::HRESULT {
16163            unsafe {
16164                let this: &Identity =
16165                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
16166                ICoreWebView2EnvironmentOptions3_Impl::SetIsCustomCrashReportingEnabled(
16167                    this,
16168                    core::mem::transmute_copy(&value),
16169                )
16170                .into()
16171            }
16172        }
16173        Self {
16174            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
16175            IsCustomCrashReportingEnabled: IsCustomCrashReportingEnabled::<Identity, OFFSET>,
16176            SetIsCustomCrashReportingEnabled: SetIsCustomCrashReportingEnabled::<Identity, OFFSET>,
16177        }
16178    }
16179    pub fn matches(iid: &windows_core::GUID) -> bool {
16180        iid == &<ICoreWebView2EnvironmentOptions3 as windows_core::Interface>::IID
16181    }
16182}
16183impl windows_core::RuntimeName for ICoreWebView2EnvironmentOptions3 {}
16184windows_core::imp::define_interface!(
16185    ICoreWebView2EnvironmentOptions4,
16186    ICoreWebView2EnvironmentOptions4_Vtbl,
16187    0xac52d13f_0d38_475a_9dca_876580d6793e
16188);
16189windows_core::imp::interface_hierarchy!(ICoreWebView2EnvironmentOptions4, windows_core::IUnknown);
16190impl ICoreWebView2EnvironmentOptions4 {
16191    pub unsafe fn GetCustomSchemeRegistrations(
16192        &self,
16193        count: *mut u32,
16194        schemeregistrations: *mut *mut Option<ICoreWebView2CustomSchemeRegistration>,
16195    ) -> windows_core::Result<()> {
16196        unsafe {
16197            (windows_core::Interface::vtable(self).GetCustomSchemeRegistrations)(
16198                windows_core::Interface::as_raw(self),
16199                count as _,
16200                schemeregistrations as _,
16201            )
16202            .ok()
16203        }
16204    }
16205    pub unsafe fn SetCustomSchemeRegistrations(
16206        &self,
16207        count: u32,
16208    ) -> windows_core::Result<ICoreWebView2CustomSchemeRegistration> {
16209        unsafe {
16210            let mut result__ = core::mem::zeroed();
16211            (windows_core::Interface::vtable(self).SetCustomSchemeRegistrations)(
16212                windows_core::Interface::as_raw(self),
16213                count,
16214                &mut result__,
16215            )
16216            .and_then(|| windows_core::Type::from_abi(result__))
16217        }
16218    }
16219}
16220#[repr(C)]
16221#[doc(hidden)]
16222pub struct ICoreWebView2EnvironmentOptions4_Vtbl {
16223    pub base__: windows_core::IUnknown_Vtbl,
16224    pub GetCustomSchemeRegistrations: unsafe extern "system" fn(
16225        *mut core::ffi::c_void,
16226        *mut u32,
16227        *mut *mut *mut core::ffi::c_void,
16228    ) -> windows_core::HRESULT,
16229    pub SetCustomSchemeRegistrations: unsafe extern "system" fn(
16230        *mut core::ffi::c_void,
16231        u32,
16232        *mut *mut core::ffi::c_void,
16233    ) -> windows_core::HRESULT,
16234}
16235pub trait ICoreWebView2EnvironmentOptions4_Impl: windows_core::IUnknownImpl {
16236    fn GetCustomSchemeRegistrations(
16237        &self,
16238        count: *mut u32,
16239        schemeregistrations: *mut *mut Option<ICoreWebView2CustomSchemeRegistration>,
16240    ) -> windows_core::Result<()>;
16241    fn SetCustomSchemeRegistrations(
16242        &self,
16243        count: u32,
16244    ) -> windows_core::Result<ICoreWebView2CustomSchemeRegistration>;
16245}
16246impl ICoreWebView2EnvironmentOptions4_Vtbl {
16247    pub const fn new<Identity: ICoreWebView2EnvironmentOptions4_Impl, const OFFSET: isize>() -> Self
16248    {
16249        unsafe extern "system" fn GetCustomSchemeRegistrations<
16250            Identity: ICoreWebView2EnvironmentOptions4_Impl,
16251            const OFFSET: isize,
16252        >(
16253            this: *mut core::ffi::c_void,
16254            count: *mut u32,
16255            schemeregistrations: *mut *mut *mut core::ffi::c_void,
16256        ) -> windows_core::HRESULT {
16257            unsafe {
16258                let this: &Identity =
16259                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
16260                ICoreWebView2EnvironmentOptions4_Impl::GetCustomSchemeRegistrations(
16261                    this,
16262                    core::mem::transmute_copy(&count),
16263                    core::mem::transmute_copy(&schemeregistrations),
16264                )
16265                .into()
16266            }
16267        }
16268        unsafe extern "system" fn SetCustomSchemeRegistrations<
16269            Identity: ICoreWebView2EnvironmentOptions4_Impl,
16270            const OFFSET: isize,
16271        >(
16272            this: *mut core::ffi::c_void,
16273            count: u32,
16274            schemeregistrations: *mut *mut core::ffi::c_void,
16275        ) -> windows_core::HRESULT {
16276            unsafe {
16277                let this: &Identity =
16278                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
16279                match ICoreWebView2EnvironmentOptions4_Impl::SetCustomSchemeRegistrations(
16280                    this,
16281                    core::mem::transmute_copy(&count),
16282                ) {
16283                    Ok(ok__) => {
16284                        schemeregistrations.write(core::mem::transmute(ok__));
16285                        windows_core::HRESULT(0)
16286                    }
16287                    Err(err) => err.into(),
16288                }
16289            }
16290        }
16291        Self {
16292            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
16293            GetCustomSchemeRegistrations: GetCustomSchemeRegistrations::<Identity, OFFSET>,
16294            SetCustomSchemeRegistrations: SetCustomSchemeRegistrations::<Identity, OFFSET>,
16295        }
16296    }
16297    pub fn matches(iid: &windows_core::GUID) -> bool {
16298        iid == &<ICoreWebView2EnvironmentOptions4 as windows_core::Interface>::IID
16299    }
16300}
16301impl windows_core::RuntimeName for ICoreWebView2EnvironmentOptions4 {}
16302windows_core::imp::define_interface!(
16303    ICoreWebView2EnvironmentOptions5,
16304    ICoreWebView2EnvironmentOptions5_Vtbl,
16305    0x0ae35d64_c47f_4464_814e_259c345d1501
16306);
16307windows_core::imp::interface_hierarchy!(ICoreWebView2EnvironmentOptions5, windows_core::IUnknown);
16308impl ICoreWebView2EnvironmentOptions5 {
16309    pub unsafe fn EnableTrackingPrevention(
16310        &self,
16311        value: *mut windows_core::BOOL,
16312    ) -> windows_core::Result<()> {
16313        unsafe {
16314            (windows_core::Interface::vtable(self).EnableTrackingPrevention)(
16315                windows_core::Interface::as_raw(self),
16316                value as _,
16317            )
16318            .ok()
16319        }
16320    }
16321    pub unsafe fn SetEnableTrackingPrevention(&self, value: bool) -> windows_core::Result<()> {
16322        unsafe {
16323            (windows_core::Interface::vtable(self).SetEnableTrackingPrevention)(
16324                windows_core::Interface::as_raw(self),
16325                value.into(),
16326            )
16327            .ok()
16328        }
16329    }
16330}
16331#[repr(C)]
16332#[doc(hidden)]
16333pub struct ICoreWebView2EnvironmentOptions5_Vtbl {
16334    pub base__: windows_core::IUnknown_Vtbl,
16335    pub EnableTrackingPrevention: unsafe extern "system" fn(
16336        *mut core::ffi::c_void,
16337        *mut windows_core::BOOL,
16338    ) -> windows_core::HRESULT,
16339    pub SetEnableTrackingPrevention: unsafe extern "system" fn(
16340        *mut core::ffi::c_void,
16341        windows_core::BOOL,
16342    ) -> windows_core::HRESULT,
16343}
16344pub trait ICoreWebView2EnvironmentOptions5_Impl: windows_core::IUnknownImpl {
16345    fn EnableTrackingPrevention(&self, value: *mut windows_core::BOOL) -> windows_core::Result<()>;
16346    fn SetEnableTrackingPrevention(&self, value: windows_core::BOOL) -> windows_core::Result<()>;
16347}
16348impl ICoreWebView2EnvironmentOptions5_Vtbl {
16349    pub const fn new<Identity: ICoreWebView2EnvironmentOptions5_Impl, const OFFSET: isize>() -> Self
16350    {
16351        unsafe extern "system" fn EnableTrackingPrevention<
16352            Identity: ICoreWebView2EnvironmentOptions5_Impl,
16353            const OFFSET: isize,
16354        >(
16355            this: *mut core::ffi::c_void,
16356            value: *mut windows_core::BOOL,
16357        ) -> windows_core::HRESULT {
16358            unsafe {
16359                let this: &Identity =
16360                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
16361                ICoreWebView2EnvironmentOptions5_Impl::EnableTrackingPrevention(
16362                    this,
16363                    core::mem::transmute_copy(&value),
16364                )
16365                .into()
16366            }
16367        }
16368        unsafe extern "system" fn SetEnableTrackingPrevention<
16369            Identity: ICoreWebView2EnvironmentOptions5_Impl,
16370            const OFFSET: isize,
16371        >(
16372            this: *mut core::ffi::c_void,
16373            value: windows_core::BOOL,
16374        ) -> windows_core::HRESULT {
16375            unsafe {
16376                let this: &Identity =
16377                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
16378                ICoreWebView2EnvironmentOptions5_Impl::SetEnableTrackingPrevention(
16379                    this,
16380                    core::mem::transmute_copy(&value),
16381                )
16382                .into()
16383            }
16384        }
16385        Self {
16386            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
16387            EnableTrackingPrevention: EnableTrackingPrevention::<Identity, OFFSET>,
16388            SetEnableTrackingPrevention: SetEnableTrackingPrevention::<Identity, OFFSET>,
16389        }
16390    }
16391    pub fn matches(iid: &windows_core::GUID) -> bool {
16392        iid == &<ICoreWebView2EnvironmentOptions5 as windows_core::Interface>::IID
16393    }
16394}
16395impl windows_core::RuntimeName for ICoreWebView2EnvironmentOptions5 {}
16396windows_core::imp::define_interface!(
16397    ICoreWebView2EnvironmentOptions6,
16398    ICoreWebView2EnvironmentOptions6_Vtbl,
16399    0x57d29cc3_c84f_42a0_b0e2_effbd5e179de
16400);
16401windows_core::imp::interface_hierarchy!(ICoreWebView2EnvironmentOptions6, windows_core::IUnknown);
16402impl ICoreWebView2EnvironmentOptions6 {
16403    pub unsafe fn AreBrowserExtensionsEnabled(
16404        &self,
16405        value: *mut windows_core::BOOL,
16406    ) -> windows_core::Result<()> {
16407        unsafe {
16408            (windows_core::Interface::vtable(self).AreBrowserExtensionsEnabled)(
16409                windows_core::Interface::as_raw(self),
16410                value as _,
16411            )
16412            .ok()
16413        }
16414    }
16415    pub unsafe fn SetAreBrowserExtensionsEnabled(&self, value: bool) -> windows_core::Result<()> {
16416        unsafe {
16417            (windows_core::Interface::vtable(self).SetAreBrowserExtensionsEnabled)(
16418                windows_core::Interface::as_raw(self),
16419                value.into(),
16420            )
16421            .ok()
16422        }
16423    }
16424}
16425#[repr(C)]
16426#[doc(hidden)]
16427pub struct ICoreWebView2EnvironmentOptions6_Vtbl {
16428    pub base__: windows_core::IUnknown_Vtbl,
16429    pub AreBrowserExtensionsEnabled: unsafe extern "system" fn(
16430        *mut core::ffi::c_void,
16431        *mut windows_core::BOOL,
16432    ) -> windows_core::HRESULT,
16433    pub SetAreBrowserExtensionsEnabled: unsafe extern "system" fn(
16434        *mut core::ffi::c_void,
16435        windows_core::BOOL,
16436    ) -> windows_core::HRESULT,
16437}
16438pub trait ICoreWebView2EnvironmentOptions6_Impl: windows_core::IUnknownImpl {
16439    fn AreBrowserExtensionsEnabled(
16440        &self,
16441        value: *mut windows_core::BOOL,
16442    ) -> windows_core::Result<()>;
16443    fn SetAreBrowserExtensionsEnabled(&self, value: windows_core::BOOL)
16444        -> windows_core::Result<()>;
16445}
16446impl ICoreWebView2EnvironmentOptions6_Vtbl {
16447    pub const fn new<Identity: ICoreWebView2EnvironmentOptions6_Impl, const OFFSET: isize>() -> Self
16448    {
16449        unsafe extern "system" fn AreBrowserExtensionsEnabled<
16450            Identity: ICoreWebView2EnvironmentOptions6_Impl,
16451            const OFFSET: isize,
16452        >(
16453            this: *mut core::ffi::c_void,
16454            value: *mut windows_core::BOOL,
16455        ) -> windows_core::HRESULT {
16456            unsafe {
16457                let this: &Identity =
16458                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
16459                ICoreWebView2EnvironmentOptions6_Impl::AreBrowserExtensionsEnabled(
16460                    this,
16461                    core::mem::transmute_copy(&value),
16462                )
16463                .into()
16464            }
16465        }
16466        unsafe extern "system" fn SetAreBrowserExtensionsEnabled<
16467            Identity: ICoreWebView2EnvironmentOptions6_Impl,
16468            const OFFSET: isize,
16469        >(
16470            this: *mut core::ffi::c_void,
16471            value: windows_core::BOOL,
16472        ) -> windows_core::HRESULT {
16473            unsafe {
16474                let this: &Identity =
16475                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
16476                ICoreWebView2EnvironmentOptions6_Impl::SetAreBrowserExtensionsEnabled(
16477                    this,
16478                    core::mem::transmute_copy(&value),
16479                )
16480                .into()
16481            }
16482        }
16483        Self {
16484            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
16485            AreBrowserExtensionsEnabled: AreBrowserExtensionsEnabled::<Identity, OFFSET>,
16486            SetAreBrowserExtensionsEnabled: SetAreBrowserExtensionsEnabled::<Identity, OFFSET>,
16487        }
16488    }
16489    pub fn matches(iid: &windows_core::GUID) -> bool {
16490        iid == &<ICoreWebView2EnvironmentOptions6 as windows_core::Interface>::IID
16491    }
16492}
16493impl windows_core::RuntimeName for ICoreWebView2EnvironmentOptions6 {}
16494windows_core::imp::define_interface!(
16495    ICoreWebView2EnvironmentOptions7,
16496    ICoreWebView2EnvironmentOptions7_Vtbl,
16497    0xc48d539f_e39f_441c_ae68_1f66e570bdc5
16498);
16499windows_core::imp::interface_hierarchy!(ICoreWebView2EnvironmentOptions7, windows_core::IUnknown);
16500impl ICoreWebView2EnvironmentOptions7 {
16501    pub unsafe fn ChannelSearchKind(
16502        &self,
16503        value: *mut COREWEBVIEW2_CHANNEL_SEARCH_KIND,
16504    ) -> windows_core::Result<()> {
16505        unsafe {
16506            (windows_core::Interface::vtable(self).ChannelSearchKind)(
16507                windows_core::Interface::as_raw(self),
16508                value as _,
16509            )
16510            .ok()
16511        }
16512    }
16513    pub unsafe fn SetChannelSearchKind(
16514        &self,
16515        value: COREWEBVIEW2_CHANNEL_SEARCH_KIND,
16516    ) -> windows_core::Result<()> {
16517        unsafe {
16518            (windows_core::Interface::vtable(self).SetChannelSearchKind)(
16519                windows_core::Interface::as_raw(self),
16520                value,
16521            )
16522            .ok()
16523        }
16524    }
16525    pub unsafe fn ReleaseChannels(
16526        &self,
16527        value: *mut COREWEBVIEW2_RELEASE_CHANNELS,
16528    ) -> windows_core::Result<()> {
16529        unsafe {
16530            (windows_core::Interface::vtable(self).ReleaseChannels)(
16531                windows_core::Interface::as_raw(self),
16532                value as _,
16533            )
16534            .ok()
16535        }
16536    }
16537    pub unsafe fn SetReleaseChannels(
16538        &self,
16539        value: COREWEBVIEW2_RELEASE_CHANNELS,
16540    ) -> windows_core::Result<()> {
16541        unsafe {
16542            (windows_core::Interface::vtable(self).SetReleaseChannels)(
16543                windows_core::Interface::as_raw(self),
16544                value,
16545            )
16546            .ok()
16547        }
16548    }
16549}
16550#[repr(C)]
16551#[doc(hidden)]
16552pub struct ICoreWebView2EnvironmentOptions7_Vtbl {
16553    pub base__: windows_core::IUnknown_Vtbl,
16554    pub ChannelSearchKind: unsafe extern "system" fn(
16555        *mut core::ffi::c_void,
16556        *mut COREWEBVIEW2_CHANNEL_SEARCH_KIND,
16557    ) -> windows_core::HRESULT,
16558    pub SetChannelSearchKind: unsafe extern "system" fn(
16559        *mut core::ffi::c_void,
16560        COREWEBVIEW2_CHANNEL_SEARCH_KIND,
16561    ) -> windows_core::HRESULT,
16562    pub ReleaseChannels: unsafe extern "system" fn(
16563        *mut core::ffi::c_void,
16564        *mut COREWEBVIEW2_RELEASE_CHANNELS,
16565    ) -> windows_core::HRESULT,
16566    pub SetReleaseChannels: unsafe extern "system" fn(
16567        *mut core::ffi::c_void,
16568        COREWEBVIEW2_RELEASE_CHANNELS,
16569    ) -> windows_core::HRESULT,
16570}
16571pub trait ICoreWebView2EnvironmentOptions7_Impl: windows_core::IUnknownImpl {
16572    fn ChannelSearchKind(
16573        &self,
16574        value: *mut COREWEBVIEW2_CHANNEL_SEARCH_KIND,
16575    ) -> windows_core::Result<()>;
16576    fn SetChannelSearchKind(
16577        &self,
16578        value: COREWEBVIEW2_CHANNEL_SEARCH_KIND,
16579    ) -> windows_core::Result<()>;
16580    fn ReleaseChannels(
16581        &self,
16582        value: *mut COREWEBVIEW2_RELEASE_CHANNELS,
16583    ) -> windows_core::Result<()>;
16584    fn SetReleaseChannels(&self, value: COREWEBVIEW2_RELEASE_CHANNELS) -> windows_core::Result<()>;
16585}
16586impl ICoreWebView2EnvironmentOptions7_Vtbl {
16587    pub const fn new<Identity: ICoreWebView2EnvironmentOptions7_Impl, const OFFSET: isize>() -> Self
16588    {
16589        unsafe extern "system" fn ChannelSearchKind<
16590            Identity: ICoreWebView2EnvironmentOptions7_Impl,
16591            const OFFSET: isize,
16592        >(
16593            this: *mut core::ffi::c_void,
16594            value: *mut COREWEBVIEW2_CHANNEL_SEARCH_KIND,
16595        ) -> windows_core::HRESULT {
16596            unsafe {
16597                let this: &Identity =
16598                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
16599                ICoreWebView2EnvironmentOptions7_Impl::ChannelSearchKind(
16600                    this,
16601                    core::mem::transmute_copy(&value),
16602                )
16603                .into()
16604            }
16605        }
16606        unsafe extern "system" fn SetChannelSearchKind<
16607            Identity: ICoreWebView2EnvironmentOptions7_Impl,
16608            const OFFSET: isize,
16609        >(
16610            this: *mut core::ffi::c_void,
16611            value: COREWEBVIEW2_CHANNEL_SEARCH_KIND,
16612        ) -> windows_core::HRESULT {
16613            unsafe {
16614                let this: &Identity =
16615                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
16616                ICoreWebView2EnvironmentOptions7_Impl::SetChannelSearchKind(
16617                    this,
16618                    core::mem::transmute_copy(&value),
16619                )
16620                .into()
16621            }
16622        }
16623        unsafe extern "system" fn ReleaseChannels<
16624            Identity: ICoreWebView2EnvironmentOptions7_Impl,
16625            const OFFSET: isize,
16626        >(
16627            this: *mut core::ffi::c_void,
16628            value: *mut COREWEBVIEW2_RELEASE_CHANNELS,
16629        ) -> windows_core::HRESULT {
16630            unsafe {
16631                let this: &Identity =
16632                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
16633                ICoreWebView2EnvironmentOptions7_Impl::ReleaseChannels(
16634                    this,
16635                    core::mem::transmute_copy(&value),
16636                )
16637                .into()
16638            }
16639        }
16640        unsafe extern "system" fn SetReleaseChannels<
16641            Identity: ICoreWebView2EnvironmentOptions7_Impl,
16642            const OFFSET: isize,
16643        >(
16644            this: *mut core::ffi::c_void,
16645            value: COREWEBVIEW2_RELEASE_CHANNELS,
16646        ) -> windows_core::HRESULT {
16647            unsafe {
16648                let this: &Identity =
16649                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
16650                ICoreWebView2EnvironmentOptions7_Impl::SetReleaseChannels(
16651                    this,
16652                    core::mem::transmute_copy(&value),
16653                )
16654                .into()
16655            }
16656        }
16657        Self {
16658            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
16659            ChannelSearchKind: ChannelSearchKind::<Identity, OFFSET>,
16660            SetChannelSearchKind: SetChannelSearchKind::<Identity, OFFSET>,
16661            ReleaseChannels: ReleaseChannels::<Identity, OFFSET>,
16662            SetReleaseChannels: SetReleaseChannels::<Identity, OFFSET>,
16663        }
16664    }
16665    pub fn matches(iid: &windows_core::GUID) -> bool {
16666        iid == &<ICoreWebView2EnvironmentOptions7 as windows_core::Interface>::IID
16667    }
16668}
16669impl windows_core::RuntimeName for ICoreWebView2EnvironmentOptions7 {}
16670windows_core::imp::define_interface!(
16671    ICoreWebView2EnvironmentOptions8,
16672    ICoreWebView2EnvironmentOptions8_Vtbl,
16673    0x7c7ecf51_e918_5caf_853c_e9a2bcc27775
16674);
16675windows_core::imp::interface_hierarchy!(ICoreWebView2EnvironmentOptions8, windows_core::IUnknown);
16676impl ICoreWebView2EnvironmentOptions8 {
16677    pub unsafe fn ScrollBarStyle(
16678        &self,
16679        value: *mut COREWEBVIEW2_SCROLLBAR_STYLE,
16680    ) -> windows_core::Result<()> {
16681        unsafe {
16682            (windows_core::Interface::vtable(self).ScrollBarStyle)(
16683                windows_core::Interface::as_raw(self),
16684                value as _,
16685            )
16686            .ok()
16687        }
16688    }
16689    pub unsafe fn SetScrollBarStyle(
16690        &self,
16691        value: COREWEBVIEW2_SCROLLBAR_STYLE,
16692    ) -> windows_core::Result<()> {
16693        unsafe {
16694            (windows_core::Interface::vtable(self).SetScrollBarStyle)(
16695                windows_core::Interface::as_raw(self),
16696                value,
16697            )
16698            .ok()
16699        }
16700    }
16701}
16702#[repr(C)]
16703#[doc(hidden)]
16704pub struct ICoreWebView2EnvironmentOptions8_Vtbl {
16705    pub base__: windows_core::IUnknown_Vtbl,
16706    pub ScrollBarStyle: unsafe extern "system" fn(
16707        *mut core::ffi::c_void,
16708        *mut COREWEBVIEW2_SCROLLBAR_STYLE,
16709    ) -> windows_core::HRESULT,
16710    pub SetScrollBarStyle: unsafe extern "system" fn(
16711        *mut core::ffi::c_void,
16712        COREWEBVIEW2_SCROLLBAR_STYLE,
16713    ) -> windows_core::HRESULT,
16714}
16715pub trait ICoreWebView2EnvironmentOptions8_Impl: windows_core::IUnknownImpl {
16716    fn ScrollBarStyle(&self, value: *mut COREWEBVIEW2_SCROLLBAR_STYLE) -> windows_core::Result<()>;
16717    fn SetScrollBarStyle(&self, value: COREWEBVIEW2_SCROLLBAR_STYLE) -> windows_core::Result<()>;
16718}
16719impl ICoreWebView2EnvironmentOptions8_Vtbl {
16720    pub const fn new<Identity: ICoreWebView2EnvironmentOptions8_Impl, const OFFSET: isize>() -> Self
16721    {
16722        unsafe extern "system" fn ScrollBarStyle<
16723            Identity: ICoreWebView2EnvironmentOptions8_Impl,
16724            const OFFSET: isize,
16725        >(
16726            this: *mut core::ffi::c_void,
16727            value: *mut COREWEBVIEW2_SCROLLBAR_STYLE,
16728        ) -> windows_core::HRESULT {
16729            unsafe {
16730                let this: &Identity =
16731                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
16732                ICoreWebView2EnvironmentOptions8_Impl::ScrollBarStyle(
16733                    this,
16734                    core::mem::transmute_copy(&value),
16735                )
16736                .into()
16737            }
16738        }
16739        unsafe extern "system" fn SetScrollBarStyle<
16740            Identity: ICoreWebView2EnvironmentOptions8_Impl,
16741            const OFFSET: isize,
16742        >(
16743            this: *mut core::ffi::c_void,
16744            value: COREWEBVIEW2_SCROLLBAR_STYLE,
16745        ) -> windows_core::HRESULT {
16746            unsafe {
16747                let this: &Identity =
16748                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
16749                ICoreWebView2EnvironmentOptions8_Impl::SetScrollBarStyle(
16750                    this,
16751                    core::mem::transmute_copy(&value),
16752                )
16753                .into()
16754            }
16755        }
16756        Self {
16757            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
16758            ScrollBarStyle: ScrollBarStyle::<Identity, OFFSET>,
16759            SetScrollBarStyle: SetScrollBarStyle::<Identity, OFFSET>,
16760        }
16761    }
16762    pub fn matches(iid: &windows_core::GUID) -> bool {
16763        iid == &<ICoreWebView2EnvironmentOptions8 as windows_core::Interface>::IID
16764    }
16765}
16766impl windows_core::RuntimeName for ICoreWebView2EnvironmentOptions8 {}
16767windows_core::imp::define_interface!(
16768    ICoreWebView2EstimatedEndTimeChangedEventHandler,
16769    ICoreWebView2EstimatedEndTimeChangedEventHandler_Vtbl,
16770    0x28f0d425_93fe_4e63_9f8d_2aeec6d3ba1e
16771);
16772windows_core::imp::interface_hierarchy!(
16773    ICoreWebView2EstimatedEndTimeChangedEventHandler,
16774    windows_core::IUnknown
16775);
16776impl ICoreWebView2EstimatedEndTimeChangedEventHandler {
16777    pub unsafe fn Invoke<P0, P1>(&self, sender: P0, args: P1) -> windows_core::Result<()>
16778    where
16779        P0: windows_core::Param<ICoreWebView2DownloadOperation>,
16780        P1: windows_core::Param<windows_core::IUnknown>,
16781    {
16782        unsafe {
16783            (windows_core::Interface::vtable(self).Invoke)(
16784                windows_core::Interface::as_raw(self),
16785                sender.param().abi(),
16786                args.param().abi(),
16787            )
16788            .ok()
16789        }
16790    }
16791}
16792#[repr(C)]
16793#[doc(hidden)]
16794pub struct ICoreWebView2EstimatedEndTimeChangedEventHandler_Vtbl {
16795    pub base__: windows_core::IUnknown_Vtbl,
16796    pub Invoke: unsafe extern "system" fn(
16797        *mut core::ffi::c_void,
16798        *mut core::ffi::c_void,
16799        *mut core::ffi::c_void,
16800    ) -> windows_core::HRESULT,
16801}
16802pub trait ICoreWebView2EstimatedEndTimeChangedEventHandler_Impl:
16803    windows_core::IUnknownImpl
16804{
16805    fn Invoke(
16806        &self,
16807        sender: windows_core::Ref<'_, ICoreWebView2DownloadOperation>,
16808        args: windows_core::Ref<'_, windows_core::IUnknown>,
16809    ) -> windows_core::Result<()>;
16810}
16811impl ICoreWebView2EstimatedEndTimeChangedEventHandler_Vtbl {
16812    pub const fn new<
16813        Identity: ICoreWebView2EstimatedEndTimeChangedEventHandler_Impl,
16814        const OFFSET: isize,
16815    >() -> Self {
16816        unsafe extern "system" fn Invoke<
16817            Identity: ICoreWebView2EstimatedEndTimeChangedEventHandler_Impl,
16818            const OFFSET: isize,
16819        >(
16820            this: *mut core::ffi::c_void,
16821            sender: *mut core::ffi::c_void,
16822            args: *mut core::ffi::c_void,
16823        ) -> windows_core::HRESULT {
16824            unsafe {
16825                let this: &Identity =
16826                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
16827                ICoreWebView2EstimatedEndTimeChangedEventHandler_Impl::Invoke(
16828                    this,
16829                    core::mem::transmute_copy(&sender),
16830                    core::mem::transmute_copy(&args),
16831                )
16832                .into()
16833            }
16834        }
16835        Self {
16836            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
16837            Invoke: Invoke::<Identity, OFFSET>,
16838        }
16839    }
16840    pub fn matches(iid: &windows_core::GUID) -> bool {
16841        iid == &<ICoreWebView2EstimatedEndTimeChangedEventHandler as windows_core::Interface>::IID
16842    }
16843}
16844impl windows_core::RuntimeName for ICoreWebView2EstimatedEndTimeChangedEventHandler {}
16845windows_core::imp::define_interface!(
16846    ICoreWebView2ExecuteScriptCompletedHandler,
16847    ICoreWebView2ExecuteScriptCompletedHandler_Vtbl,
16848    0x49511172_cc67_4bca_9923_137112f4c4cc
16849);
16850windows_core::imp::interface_hierarchy!(
16851    ICoreWebView2ExecuteScriptCompletedHandler,
16852    windows_core::IUnknown
16853);
16854impl ICoreWebView2ExecuteScriptCompletedHandler {
16855    pub unsafe fn Invoke<P1>(
16856        &self,
16857        errorcode: windows_core::HRESULT,
16858        result: P1,
16859    ) -> windows_core::Result<()>
16860    where
16861        P1: windows_core::Param<windows_core::PCWSTR>,
16862    {
16863        unsafe {
16864            (windows_core::Interface::vtable(self).Invoke)(
16865                windows_core::Interface::as_raw(self),
16866                errorcode,
16867                result.param().abi(),
16868            )
16869            .ok()
16870        }
16871    }
16872}
16873#[repr(C)]
16874#[doc(hidden)]
16875pub struct ICoreWebView2ExecuteScriptCompletedHandler_Vtbl {
16876    pub base__: windows_core::IUnknown_Vtbl,
16877    pub Invoke: unsafe extern "system" fn(
16878        *mut core::ffi::c_void,
16879        windows_core::HRESULT,
16880        windows_core::PCWSTR,
16881    ) -> windows_core::HRESULT,
16882}
16883pub trait ICoreWebView2ExecuteScriptCompletedHandler_Impl: windows_core::IUnknownImpl {
16884    fn Invoke(
16885        &self,
16886        errorcode: windows_core::HRESULT,
16887        result: &windows_core::PCWSTR,
16888    ) -> windows_core::Result<()>;
16889}
16890impl ICoreWebView2ExecuteScriptCompletedHandler_Vtbl {
16891    pub const fn new<
16892        Identity: ICoreWebView2ExecuteScriptCompletedHandler_Impl,
16893        const OFFSET: isize,
16894    >() -> Self {
16895        unsafe extern "system" fn Invoke<
16896            Identity: ICoreWebView2ExecuteScriptCompletedHandler_Impl,
16897            const OFFSET: isize,
16898        >(
16899            this: *mut core::ffi::c_void,
16900            errorcode: windows_core::HRESULT,
16901            result: windows_core::PCWSTR,
16902        ) -> windows_core::HRESULT {
16903            unsafe {
16904                let this: &Identity =
16905                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
16906                ICoreWebView2ExecuteScriptCompletedHandler_Impl::Invoke(
16907                    this,
16908                    core::mem::transmute_copy(&errorcode),
16909                    core::mem::transmute(&result),
16910                )
16911                .into()
16912            }
16913        }
16914        Self {
16915            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
16916            Invoke: Invoke::<Identity, OFFSET>,
16917        }
16918    }
16919    pub fn matches(iid: &windows_core::GUID) -> bool {
16920        iid == &<ICoreWebView2ExecuteScriptCompletedHandler as windows_core::Interface>::IID
16921    }
16922}
16923impl windows_core::RuntimeName for ICoreWebView2ExecuteScriptCompletedHandler {}
16924windows_core::imp::define_interface!(
16925    ICoreWebView2ExecuteScriptResult,
16926    ICoreWebView2ExecuteScriptResult_Vtbl,
16927    0x0ce15963_3698_4df7_9399_71ed6cdd8c9f
16928);
16929windows_core::imp::interface_hierarchy!(ICoreWebView2ExecuteScriptResult, windows_core::IUnknown);
16930impl ICoreWebView2ExecuteScriptResult {
16931    pub unsafe fn Succeeded(&self, value: *mut windows_core::BOOL) -> windows_core::Result<()> {
16932        unsafe {
16933            (windows_core::Interface::vtable(self).Succeeded)(
16934                windows_core::Interface::as_raw(self),
16935                value as _,
16936            )
16937            .ok()
16938        }
16939    }
16940    pub unsafe fn ResultAsJson(
16941        &self,
16942        jsonresult: *mut windows_core::PWSTR,
16943    ) -> windows_core::Result<()> {
16944        unsafe {
16945            (windows_core::Interface::vtable(self).ResultAsJson)(
16946                windows_core::Interface::as_raw(self),
16947                jsonresult as _,
16948            )
16949            .ok()
16950        }
16951    }
16952    pub unsafe fn TryGetResultAsString(
16953        &self,
16954        stringresult: *mut windows_core::PWSTR,
16955        value: *mut windows_core::BOOL,
16956    ) -> windows_core::Result<()> {
16957        unsafe {
16958            (windows_core::Interface::vtable(self).TryGetResultAsString)(
16959                windows_core::Interface::as_raw(self),
16960                stringresult as _,
16961                value as _,
16962            )
16963            .ok()
16964        }
16965    }
16966    pub unsafe fn Exception(&self) -> windows_core::Result<ICoreWebView2ScriptException> {
16967        unsafe {
16968            let mut result__ = core::mem::zeroed();
16969            (windows_core::Interface::vtable(self).Exception)(
16970                windows_core::Interface::as_raw(self),
16971                &mut result__,
16972            )
16973            .and_then(|| windows_core::Type::from_abi(result__))
16974        }
16975    }
16976}
16977#[repr(C)]
16978#[doc(hidden)]
16979pub struct ICoreWebView2ExecuteScriptResult_Vtbl {
16980    pub base__: windows_core::IUnknown_Vtbl,
16981    pub Succeeded: unsafe extern "system" fn(
16982        *mut core::ffi::c_void,
16983        *mut windows_core::BOOL,
16984    ) -> windows_core::HRESULT,
16985    pub ResultAsJson: unsafe extern "system" fn(
16986        *mut core::ffi::c_void,
16987        *mut windows_core::PWSTR,
16988    ) -> windows_core::HRESULT,
16989    pub TryGetResultAsString: unsafe extern "system" fn(
16990        *mut core::ffi::c_void,
16991        *mut windows_core::PWSTR,
16992        *mut windows_core::BOOL,
16993    ) -> windows_core::HRESULT,
16994    pub Exception: unsafe extern "system" fn(
16995        *mut core::ffi::c_void,
16996        *mut *mut core::ffi::c_void,
16997    ) -> windows_core::HRESULT,
16998}
16999pub trait ICoreWebView2ExecuteScriptResult_Impl: windows_core::IUnknownImpl {
17000    fn Succeeded(&self, value: *mut windows_core::BOOL) -> windows_core::Result<()>;
17001    fn ResultAsJson(&self, jsonresult: *mut windows_core::PWSTR) -> windows_core::Result<()>;
17002    fn TryGetResultAsString(
17003        &self,
17004        stringresult: *mut windows_core::PWSTR,
17005        value: *mut windows_core::BOOL,
17006    ) -> windows_core::Result<()>;
17007    fn Exception(&self) -> windows_core::Result<ICoreWebView2ScriptException>;
17008}
17009impl ICoreWebView2ExecuteScriptResult_Vtbl {
17010    pub const fn new<Identity: ICoreWebView2ExecuteScriptResult_Impl, const OFFSET: isize>() -> Self
17011    {
17012        unsafe extern "system" fn Succeeded<
17013            Identity: ICoreWebView2ExecuteScriptResult_Impl,
17014            const OFFSET: isize,
17015        >(
17016            this: *mut core::ffi::c_void,
17017            value: *mut windows_core::BOOL,
17018        ) -> windows_core::HRESULT {
17019            unsafe {
17020                let this: &Identity =
17021                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
17022                ICoreWebView2ExecuteScriptResult_Impl::Succeeded(
17023                    this,
17024                    core::mem::transmute_copy(&value),
17025                )
17026                .into()
17027            }
17028        }
17029        unsafe extern "system" fn ResultAsJson<
17030            Identity: ICoreWebView2ExecuteScriptResult_Impl,
17031            const OFFSET: isize,
17032        >(
17033            this: *mut core::ffi::c_void,
17034            jsonresult: *mut windows_core::PWSTR,
17035        ) -> windows_core::HRESULT {
17036            unsafe {
17037                let this: &Identity =
17038                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
17039                ICoreWebView2ExecuteScriptResult_Impl::ResultAsJson(
17040                    this,
17041                    core::mem::transmute_copy(&jsonresult),
17042                )
17043                .into()
17044            }
17045        }
17046        unsafe extern "system" fn TryGetResultAsString<
17047            Identity: ICoreWebView2ExecuteScriptResult_Impl,
17048            const OFFSET: isize,
17049        >(
17050            this: *mut core::ffi::c_void,
17051            stringresult: *mut windows_core::PWSTR,
17052            value: *mut windows_core::BOOL,
17053        ) -> windows_core::HRESULT {
17054            unsafe {
17055                let this: &Identity =
17056                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
17057                ICoreWebView2ExecuteScriptResult_Impl::TryGetResultAsString(
17058                    this,
17059                    core::mem::transmute_copy(&stringresult),
17060                    core::mem::transmute_copy(&value),
17061                )
17062                .into()
17063            }
17064        }
17065        unsafe extern "system" fn Exception<
17066            Identity: ICoreWebView2ExecuteScriptResult_Impl,
17067            const OFFSET: isize,
17068        >(
17069            this: *mut core::ffi::c_void,
17070            exception: *mut *mut core::ffi::c_void,
17071        ) -> windows_core::HRESULT {
17072            unsafe {
17073                let this: &Identity =
17074                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
17075                match ICoreWebView2ExecuteScriptResult_Impl::Exception(this) {
17076                    Ok(ok__) => {
17077                        exception.write(core::mem::transmute(ok__));
17078                        windows_core::HRESULT(0)
17079                    }
17080                    Err(err) => err.into(),
17081                }
17082            }
17083        }
17084        Self {
17085            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
17086            Succeeded: Succeeded::<Identity, OFFSET>,
17087            ResultAsJson: ResultAsJson::<Identity, OFFSET>,
17088            TryGetResultAsString: TryGetResultAsString::<Identity, OFFSET>,
17089            Exception: Exception::<Identity, OFFSET>,
17090        }
17091    }
17092    pub fn matches(iid: &windows_core::GUID) -> bool {
17093        iid == &<ICoreWebView2ExecuteScriptResult as windows_core::Interface>::IID
17094    }
17095}
17096impl windows_core::RuntimeName for ICoreWebView2ExecuteScriptResult {}
17097windows_core::imp::define_interface!(
17098    ICoreWebView2ExecuteScriptWithResultCompletedHandler,
17099    ICoreWebView2ExecuteScriptWithResultCompletedHandler_Vtbl,
17100    0x1bb5317b_8238_4c67_a7ff_baf6558f289d
17101);
17102windows_core::imp::interface_hierarchy!(
17103    ICoreWebView2ExecuteScriptWithResultCompletedHandler,
17104    windows_core::IUnknown
17105);
17106impl ICoreWebView2ExecuteScriptWithResultCompletedHandler {
17107    pub unsafe fn Invoke<P1>(
17108        &self,
17109        errorcode: windows_core::HRESULT,
17110        result: P1,
17111    ) -> windows_core::Result<()>
17112    where
17113        P1: windows_core::Param<ICoreWebView2ExecuteScriptResult>,
17114    {
17115        unsafe {
17116            (windows_core::Interface::vtable(self).Invoke)(
17117                windows_core::Interface::as_raw(self),
17118                errorcode,
17119                result.param().abi(),
17120            )
17121            .ok()
17122        }
17123    }
17124}
17125#[repr(C)]
17126#[doc(hidden)]
17127pub struct ICoreWebView2ExecuteScriptWithResultCompletedHandler_Vtbl {
17128    pub base__: windows_core::IUnknown_Vtbl,
17129    pub Invoke: unsafe extern "system" fn(
17130        *mut core::ffi::c_void,
17131        windows_core::HRESULT,
17132        *mut core::ffi::c_void,
17133    ) -> windows_core::HRESULT,
17134}
17135pub trait ICoreWebView2ExecuteScriptWithResultCompletedHandler_Impl:
17136    windows_core::IUnknownImpl
17137{
17138    fn Invoke(
17139        &self,
17140        errorcode: windows_core::HRESULT,
17141        result: windows_core::Ref<'_, ICoreWebView2ExecuteScriptResult>,
17142    ) -> windows_core::Result<()>;
17143}
17144impl ICoreWebView2ExecuteScriptWithResultCompletedHandler_Vtbl {
17145    pub const fn new<
17146        Identity: ICoreWebView2ExecuteScriptWithResultCompletedHandler_Impl,
17147        const OFFSET: isize,
17148    >() -> Self {
17149        unsafe extern "system" fn Invoke<
17150            Identity: ICoreWebView2ExecuteScriptWithResultCompletedHandler_Impl,
17151            const OFFSET: isize,
17152        >(
17153            this: *mut core::ffi::c_void,
17154            errorcode: windows_core::HRESULT,
17155            result: *mut core::ffi::c_void,
17156        ) -> windows_core::HRESULT {
17157            unsafe {
17158                let this: &Identity =
17159                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
17160                ICoreWebView2ExecuteScriptWithResultCompletedHandler_Impl::Invoke(
17161                    this,
17162                    core::mem::transmute_copy(&errorcode),
17163                    core::mem::transmute_copy(&result),
17164                )
17165                .into()
17166            }
17167        }
17168        Self {
17169            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
17170            Invoke: Invoke::<Identity, OFFSET>,
17171        }
17172    }
17173    pub fn matches(iid: &windows_core::GUID) -> bool {
17174        iid == & < ICoreWebView2ExecuteScriptWithResultCompletedHandler as windows_core::Interface >::IID
17175    }
17176}
17177impl windows_core::RuntimeName for ICoreWebView2ExecuteScriptWithResultCompletedHandler {}
17178windows_core::imp::define_interface!(
17179    ICoreWebView2FaviconChangedEventHandler,
17180    ICoreWebView2FaviconChangedEventHandler_Vtbl,
17181    0x2913da94_833d_4de0_8dca_900fc524a1a4
17182);
17183windows_core::imp::interface_hierarchy!(
17184    ICoreWebView2FaviconChangedEventHandler,
17185    windows_core::IUnknown
17186);
17187impl ICoreWebView2FaviconChangedEventHandler {
17188    pub unsafe fn Invoke<P0, P1>(&self, sender: P0, args: P1) -> windows_core::Result<()>
17189    where
17190        P0: windows_core::Param<ICoreWebView2>,
17191        P1: windows_core::Param<windows_core::IUnknown>,
17192    {
17193        unsafe {
17194            (windows_core::Interface::vtable(self).Invoke)(
17195                windows_core::Interface::as_raw(self),
17196                sender.param().abi(),
17197                args.param().abi(),
17198            )
17199            .ok()
17200        }
17201    }
17202}
17203#[repr(C)]
17204#[doc(hidden)]
17205pub struct ICoreWebView2FaviconChangedEventHandler_Vtbl {
17206    pub base__: windows_core::IUnknown_Vtbl,
17207    pub Invoke: unsafe extern "system" fn(
17208        *mut core::ffi::c_void,
17209        *mut core::ffi::c_void,
17210        *mut core::ffi::c_void,
17211    ) -> windows_core::HRESULT,
17212}
17213pub trait ICoreWebView2FaviconChangedEventHandler_Impl: windows_core::IUnknownImpl {
17214    fn Invoke(
17215        &self,
17216        sender: windows_core::Ref<'_, ICoreWebView2>,
17217        args: windows_core::Ref<'_, windows_core::IUnknown>,
17218    ) -> windows_core::Result<()>;
17219}
17220impl ICoreWebView2FaviconChangedEventHandler_Vtbl {
17221    pub const fn new<
17222        Identity: ICoreWebView2FaviconChangedEventHandler_Impl,
17223        const OFFSET: isize,
17224    >() -> Self {
17225        unsafe extern "system" fn Invoke<
17226            Identity: ICoreWebView2FaviconChangedEventHandler_Impl,
17227            const OFFSET: isize,
17228        >(
17229            this: *mut core::ffi::c_void,
17230            sender: *mut core::ffi::c_void,
17231            args: *mut core::ffi::c_void,
17232        ) -> windows_core::HRESULT {
17233            unsafe {
17234                let this: &Identity =
17235                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
17236                ICoreWebView2FaviconChangedEventHandler_Impl::Invoke(
17237                    this,
17238                    core::mem::transmute_copy(&sender),
17239                    core::mem::transmute_copy(&args),
17240                )
17241                .into()
17242            }
17243        }
17244        Self {
17245            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
17246            Invoke: Invoke::<Identity, OFFSET>,
17247        }
17248    }
17249    pub fn matches(iid: &windows_core::GUID) -> bool {
17250        iid == &<ICoreWebView2FaviconChangedEventHandler as windows_core::Interface>::IID
17251    }
17252}
17253impl windows_core::RuntimeName for ICoreWebView2FaviconChangedEventHandler {}
17254windows_core::imp::define_interface!(
17255    ICoreWebView2File,
17256    ICoreWebView2File_Vtbl,
17257    0xf2c19559_6bc1_4583_a757_90021be9afec
17258);
17259windows_core::imp::interface_hierarchy!(ICoreWebView2File, windows_core::IUnknown);
17260impl ICoreWebView2File {
17261    pub unsafe fn Path(&self, value: *mut windows_core::PWSTR) -> windows_core::Result<()> {
17262        unsafe {
17263            (windows_core::Interface::vtable(self).Path)(
17264                windows_core::Interface::as_raw(self),
17265                value as _,
17266            )
17267            .ok()
17268        }
17269    }
17270}
17271#[repr(C)]
17272#[doc(hidden)]
17273pub struct ICoreWebView2File_Vtbl {
17274    pub base__: windows_core::IUnknown_Vtbl,
17275    pub Path: unsafe extern "system" fn(
17276        *mut core::ffi::c_void,
17277        *mut windows_core::PWSTR,
17278    ) -> windows_core::HRESULT,
17279}
17280pub trait ICoreWebView2File_Impl: windows_core::IUnknownImpl {
17281    fn Path(&self, value: *mut windows_core::PWSTR) -> windows_core::Result<()>;
17282}
17283impl ICoreWebView2File_Vtbl {
17284    pub const fn new<Identity: ICoreWebView2File_Impl, const OFFSET: isize>() -> Self {
17285        unsafe extern "system" fn Path<Identity: ICoreWebView2File_Impl, const OFFSET: isize>(
17286            this: *mut core::ffi::c_void,
17287            value: *mut windows_core::PWSTR,
17288        ) -> windows_core::HRESULT {
17289            unsafe {
17290                let this: &Identity =
17291                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
17292                ICoreWebView2File_Impl::Path(this, core::mem::transmute_copy(&value)).into()
17293            }
17294        }
17295        Self {
17296            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
17297            Path: Path::<Identity, OFFSET>,
17298        }
17299    }
17300    pub fn matches(iid: &windows_core::GUID) -> bool {
17301        iid == &<ICoreWebView2File as windows_core::Interface>::IID
17302    }
17303}
17304impl windows_core::RuntimeName for ICoreWebView2File {}
17305windows_core::imp::define_interface!(
17306    ICoreWebView2FileSystemHandle,
17307    ICoreWebView2FileSystemHandle_Vtbl,
17308    0xc65100ac_0de2_5551_a362_23d9bd1d0e1f
17309);
17310windows_core::imp::interface_hierarchy!(ICoreWebView2FileSystemHandle, windows_core::IUnknown);
17311impl ICoreWebView2FileSystemHandle {
17312    pub unsafe fn Kind(
17313        &self,
17314        value: *mut COREWEBVIEW2_FILE_SYSTEM_HANDLE_KIND,
17315    ) -> windows_core::Result<()> {
17316        unsafe {
17317            (windows_core::Interface::vtable(self).Kind)(
17318                windows_core::Interface::as_raw(self),
17319                value as _,
17320            )
17321            .ok()
17322        }
17323    }
17324    pub unsafe fn Path(&self, value: *mut windows_core::PWSTR) -> windows_core::Result<()> {
17325        unsafe {
17326            (windows_core::Interface::vtable(self).Path)(
17327                windows_core::Interface::as_raw(self),
17328                value as _,
17329            )
17330            .ok()
17331        }
17332    }
17333    pub unsafe fn Permission(
17334        &self,
17335        value: *mut COREWEBVIEW2_FILE_SYSTEM_HANDLE_PERMISSION,
17336    ) -> windows_core::Result<()> {
17337        unsafe {
17338            (windows_core::Interface::vtable(self).Permission)(
17339                windows_core::Interface::as_raw(self),
17340                value as _,
17341            )
17342            .ok()
17343        }
17344    }
17345}
17346#[repr(C)]
17347#[doc(hidden)]
17348pub struct ICoreWebView2FileSystemHandle_Vtbl {
17349    pub base__: windows_core::IUnknown_Vtbl,
17350    pub Kind: unsafe extern "system" fn(
17351        *mut core::ffi::c_void,
17352        *mut COREWEBVIEW2_FILE_SYSTEM_HANDLE_KIND,
17353    ) -> windows_core::HRESULT,
17354    pub Path: unsafe extern "system" fn(
17355        *mut core::ffi::c_void,
17356        *mut windows_core::PWSTR,
17357    ) -> windows_core::HRESULT,
17358    pub Permission: unsafe extern "system" fn(
17359        *mut core::ffi::c_void,
17360        *mut COREWEBVIEW2_FILE_SYSTEM_HANDLE_PERMISSION,
17361    ) -> windows_core::HRESULT,
17362}
17363pub trait ICoreWebView2FileSystemHandle_Impl: windows_core::IUnknownImpl {
17364    fn Kind(&self, value: *mut COREWEBVIEW2_FILE_SYSTEM_HANDLE_KIND) -> windows_core::Result<()>;
17365    fn Path(&self, value: *mut windows_core::PWSTR) -> windows_core::Result<()>;
17366    fn Permission(
17367        &self,
17368        value: *mut COREWEBVIEW2_FILE_SYSTEM_HANDLE_PERMISSION,
17369    ) -> windows_core::Result<()>;
17370}
17371impl ICoreWebView2FileSystemHandle_Vtbl {
17372    pub const fn new<Identity: ICoreWebView2FileSystemHandle_Impl, const OFFSET: isize>() -> Self {
17373        unsafe extern "system" fn Kind<
17374            Identity: ICoreWebView2FileSystemHandle_Impl,
17375            const OFFSET: isize,
17376        >(
17377            this: *mut core::ffi::c_void,
17378            value: *mut COREWEBVIEW2_FILE_SYSTEM_HANDLE_KIND,
17379        ) -> windows_core::HRESULT {
17380            unsafe {
17381                let this: &Identity =
17382                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
17383                ICoreWebView2FileSystemHandle_Impl::Kind(this, core::mem::transmute_copy(&value))
17384                    .into()
17385            }
17386        }
17387        unsafe extern "system" fn Path<
17388            Identity: ICoreWebView2FileSystemHandle_Impl,
17389            const OFFSET: isize,
17390        >(
17391            this: *mut core::ffi::c_void,
17392            value: *mut windows_core::PWSTR,
17393        ) -> windows_core::HRESULT {
17394            unsafe {
17395                let this: &Identity =
17396                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
17397                ICoreWebView2FileSystemHandle_Impl::Path(this, core::mem::transmute_copy(&value))
17398                    .into()
17399            }
17400        }
17401        unsafe extern "system" fn Permission<
17402            Identity: ICoreWebView2FileSystemHandle_Impl,
17403            const OFFSET: isize,
17404        >(
17405            this: *mut core::ffi::c_void,
17406            value: *mut COREWEBVIEW2_FILE_SYSTEM_HANDLE_PERMISSION,
17407        ) -> windows_core::HRESULT {
17408            unsafe {
17409                let this: &Identity =
17410                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
17411                ICoreWebView2FileSystemHandle_Impl::Permission(
17412                    this,
17413                    core::mem::transmute_copy(&value),
17414                )
17415                .into()
17416            }
17417        }
17418        Self {
17419            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
17420            Kind: Kind::<Identity, OFFSET>,
17421            Path: Path::<Identity, OFFSET>,
17422            Permission: Permission::<Identity, OFFSET>,
17423        }
17424    }
17425    pub fn matches(iid: &windows_core::GUID) -> bool {
17426        iid == &<ICoreWebView2FileSystemHandle as windows_core::Interface>::IID
17427    }
17428}
17429impl windows_core::RuntimeName for ICoreWebView2FileSystemHandle {}
17430windows_core::imp::define_interface!(
17431    ICoreWebView2FocusChangedEventHandler,
17432    ICoreWebView2FocusChangedEventHandler_Vtbl,
17433    0x05ea24bd_6452_4926_9014_4b82b498135d
17434);
17435windows_core::imp::interface_hierarchy!(
17436    ICoreWebView2FocusChangedEventHandler,
17437    windows_core::IUnknown
17438);
17439impl ICoreWebView2FocusChangedEventHandler {
17440    pub unsafe fn Invoke<P0, P1>(&self, sender: P0, args: P1) -> windows_core::Result<()>
17441    where
17442        P0: windows_core::Param<ICoreWebView2Controller>,
17443        P1: windows_core::Param<windows_core::IUnknown>,
17444    {
17445        unsafe {
17446            (windows_core::Interface::vtable(self).Invoke)(
17447                windows_core::Interface::as_raw(self),
17448                sender.param().abi(),
17449                args.param().abi(),
17450            )
17451            .ok()
17452        }
17453    }
17454}
17455#[repr(C)]
17456#[doc(hidden)]
17457pub struct ICoreWebView2FocusChangedEventHandler_Vtbl {
17458    pub base__: windows_core::IUnknown_Vtbl,
17459    pub Invoke: unsafe extern "system" fn(
17460        *mut core::ffi::c_void,
17461        *mut core::ffi::c_void,
17462        *mut core::ffi::c_void,
17463    ) -> windows_core::HRESULT,
17464}
17465pub trait ICoreWebView2FocusChangedEventHandler_Impl: windows_core::IUnknownImpl {
17466    fn Invoke(
17467        &self,
17468        sender: windows_core::Ref<'_, ICoreWebView2Controller>,
17469        args: windows_core::Ref<'_, windows_core::IUnknown>,
17470    ) -> windows_core::Result<()>;
17471}
17472impl ICoreWebView2FocusChangedEventHandler_Vtbl {
17473    pub const fn new<Identity: ICoreWebView2FocusChangedEventHandler_Impl, const OFFSET: isize>(
17474    ) -> Self {
17475        unsafe extern "system" fn Invoke<
17476            Identity: ICoreWebView2FocusChangedEventHandler_Impl,
17477            const OFFSET: isize,
17478        >(
17479            this: *mut core::ffi::c_void,
17480            sender: *mut core::ffi::c_void,
17481            args: *mut core::ffi::c_void,
17482        ) -> windows_core::HRESULT {
17483            unsafe {
17484                let this: &Identity =
17485                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
17486                ICoreWebView2FocusChangedEventHandler_Impl::Invoke(
17487                    this,
17488                    core::mem::transmute_copy(&sender),
17489                    core::mem::transmute_copy(&args),
17490                )
17491                .into()
17492            }
17493        }
17494        Self {
17495            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
17496            Invoke: Invoke::<Identity, OFFSET>,
17497        }
17498    }
17499    pub fn matches(iid: &windows_core::GUID) -> bool {
17500        iid == &<ICoreWebView2FocusChangedEventHandler as windows_core::Interface>::IID
17501    }
17502}
17503impl windows_core::RuntimeName for ICoreWebView2FocusChangedEventHandler {}
17504windows_core::imp::define_interface!(
17505    ICoreWebView2Frame,
17506    ICoreWebView2Frame_Vtbl,
17507    0xf1131a5e_9ba9_11eb_a8b3_0242ac130003
17508);
17509windows_core::imp::interface_hierarchy!(ICoreWebView2Frame, windows_core::IUnknown);
17510impl ICoreWebView2Frame {
17511    pub unsafe fn Name(&self, name: *mut windows_core::PWSTR) -> windows_core::Result<()> {
17512        unsafe {
17513            (windows_core::Interface::vtable(self).Name)(
17514                windows_core::Interface::as_raw(self),
17515                name as _,
17516            )
17517            .ok()
17518        }
17519    }
17520    pub unsafe fn add_NameChanged<P0>(
17521        &self,
17522        eventhandler: P0,
17523        token: *mut i64,
17524    ) -> windows_core::Result<()>
17525    where
17526        P0: windows_core::Param<ICoreWebView2FrameNameChangedEventHandler>,
17527    {
17528        unsafe {
17529            (windows_core::Interface::vtable(self).add_NameChanged)(
17530                windows_core::Interface::as_raw(self),
17531                eventhandler.param().abi(),
17532                token as _,
17533            )
17534            .ok()
17535        }
17536    }
17537    pub unsafe fn remove_NameChanged(&self, token: i64) -> windows_core::Result<()> {
17538        unsafe {
17539            (windows_core::Interface::vtable(self).remove_NameChanged)(
17540                windows_core::Interface::as_raw(self),
17541                token,
17542            )
17543            .ok()
17544        }
17545    }
17546    pub unsafe fn AddHostObjectToScriptWithOrigins<P0>(
17547        &self,
17548        name: P0,
17549        object: *mut windows::Win32::System::Variant::VARIANT,
17550        originscount: u32,
17551        origins: *const windows_core::PCWSTR,
17552    ) -> windows_core::Result<()>
17553    where
17554        P0: windows_core::Param<windows_core::PCWSTR>,
17555    {
17556        unsafe {
17557            (windows_core::Interface::vtable(self).AddHostObjectToScriptWithOrigins)(
17558                windows_core::Interface::as_raw(self),
17559                name.param().abi(),
17560                core::mem::transmute(object),
17561                originscount,
17562                origins,
17563            )
17564            .ok()
17565        }
17566    }
17567    pub unsafe fn RemoveHostObjectFromScript<P0>(&self, name: P0) -> windows_core::Result<()>
17568    where
17569        P0: windows_core::Param<windows_core::PCWSTR>,
17570    {
17571        unsafe {
17572            (windows_core::Interface::vtable(self).RemoveHostObjectFromScript)(
17573                windows_core::Interface::as_raw(self),
17574                name.param().abi(),
17575            )
17576            .ok()
17577        }
17578    }
17579    pub unsafe fn add_Destroyed<P0>(
17580        &self,
17581        eventhandler: P0,
17582        token: *mut i64,
17583    ) -> windows_core::Result<()>
17584    where
17585        P0: windows_core::Param<ICoreWebView2FrameDestroyedEventHandler>,
17586    {
17587        unsafe {
17588            (windows_core::Interface::vtable(self).add_Destroyed)(
17589                windows_core::Interface::as_raw(self),
17590                eventhandler.param().abi(),
17591                token as _,
17592            )
17593            .ok()
17594        }
17595    }
17596    pub unsafe fn remove_Destroyed(&self, token: i64) -> windows_core::Result<()> {
17597        unsafe {
17598            (windows_core::Interface::vtable(self).remove_Destroyed)(
17599                windows_core::Interface::as_raw(self),
17600                token,
17601            )
17602            .ok()
17603        }
17604    }
17605    pub unsafe fn IsDestroyed(
17606        &self,
17607        destroyed: *mut windows_core::BOOL,
17608    ) -> windows_core::Result<()> {
17609        unsafe {
17610            (windows_core::Interface::vtable(self).IsDestroyed)(
17611                windows_core::Interface::as_raw(self),
17612                destroyed as _,
17613            )
17614            .ok()
17615        }
17616    }
17617}
17618#[repr(C)]
17619#[doc(hidden)]
17620pub struct ICoreWebView2Frame_Vtbl {
17621    pub base__: windows_core::IUnknown_Vtbl,
17622    pub Name: unsafe extern "system" fn(
17623        *mut core::ffi::c_void,
17624        *mut windows_core::PWSTR,
17625    ) -> windows_core::HRESULT,
17626    pub add_NameChanged: unsafe extern "system" fn(
17627        *mut core::ffi::c_void,
17628        *mut core::ffi::c_void,
17629        *mut i64,
17630    ) -> windows_core::HRESULT,
17631    pub remove_NameChanged:
17632        unsafe extern "system" fn(*mut core::ffi::c_void, i64) -> windows_core::HRESULT,
17633    pub AddHostObjectToScriptWithOrigins: unsafe extern "system" fn(
17634        *mut core::ffi::c_void,
17635        windows_core::PCWSTR,
17636        *mut windows::Win32::System::Variant::VARIANT,
17637        u32,
17638        *const windows_core::PCWSTR,
17639    ) -> windows_core::HRESULT,
17640    pub RemoveHostObjectFromScript: unsafe extern "system" fn(
17641        *mut core::ffi::c_void,
17642        windows_core::PCWSTR,
17643    ) -> windows_core::HRESULT,
17644    pub add_Destroyed: unsafe extern "system" fn(
17645        *mut core::ffi::c_void,
17646        *mut core::ffi::c_void,
17647        *mut i64,
17648    ) -> windows_core::HRESULT,
17649    pub remove_Destroyed:
17650        unsafe extern "system" fn(*mut core::ffi::c_void, i64) -> windows_core::HRESULT,
17651    pub IsDestroyed: unsafe extern "system" fn(
17652        *mut core::ffi::c_void,
17653        *mut windows_core::BOOL,
17654    ) -> windows_core::HRESULT,
17655}
17656pub trait ICoreWebView2Frame_Impl: windows_core::IUnknownImpl {
17657    fn Name(&self, name: *mut windows_core::PWSTR) -> windows_core::Result<()>;
17658    fn add_NameChanged(
17659        &self,
17660        eventhandler: windows_core::Ref<'_, ICoreWebView2FrameNameChangedEventHandler>,
17661        token: *mut i64,
17662    ) -> windows_core::Result<()>;
17663    fn remove_NameChanged(&self, token: i64) -> windows_core::Result<()>;
17664    fn AddHostObjectToScriptWithOrigins(
17665        &self,
17666        name: &windows_core::PCWSTR,
17667        object: *mut windows::Win32::System::Variant::VARIANT,
17668        originscount: u32,
17669        origins: *const windows_core::PCWSTR,
17670    ) -> windows_core::Result<()>;
17671    fn RemoveHostObjectFromScript(&self, name: &windows_core::PCWSTR) -> windows_core::Result<()>;
17672    fn add_Destroyed(
17673        &self,
17674        eventhandler: windows_core::Ref<'_, ICoreWebView2FrameDestroyedEventHandler>,
17675        token: *mut i64,
17676    ) -> windows_core::Result<()>;
17677    fn remove_Destroyed(&self, token: i64) -> windows_core::Result<()>;
17678    fn IsDestroyed(&self, destroyed: *mut windows_core::BOOL) -> windows_core::Result<()>;
17679}
17680impl ICoreWebView2Frame_Vtbl {
17681    pub const fn new<Identity: ICoreWebView2Frame_Impl, const OFFSET: isize>() -> Self {
17682        unsafe extern "system" fn Name<Identity: ICoreWebView2Frame_Impl, const OFFSET: isize>(
17683            this: *mut core::ffi::c_void,
17684            name: *mut windows_core::PWSTR,
17685        ) -> windows_core::HRESULT {
17686            unsafe {
17687                let this: &Identity =
17688                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
17689                ICoreWebView2Frame_Impl::Name(this, core::mem::transmute_copy(&name)).into()
17690            }
17691        }
17692        unsafe extern "system" fn add_NameChanged<
17693            Identity: ICoreWebView2Frame_Impl,
17694            const OFFSET: isize,
17695        >(
17696            this: *mut core::ffi::c_void,
17697            eventhandler: *mut core::ffi::c_void,
17698            token: *mut i64,
17699        ) -> windows_core::HRESULT {
17700            unsafe {
17701                let this: &Identity =
17702                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
17703                ICoreWebView2Frame_Impl::add_NameChanged(
17704                    this,
17705                    core::mem::transmute_copy(&eventhandler),
17706                    core::mem::transmute_copy(&token),
17707                )
17708                .into()
17709            }
17710        }
17711        unsafe extern "system" fn remove_NameChanged<
17712            Identity: ICoreWebView2Frame_Impl,
17713            const OFFSET: isize,
17714        >(
17715            this: *mut core::ffi::c_void,
17716            token: i64,
17717        ) -> windows_core::HRESULT {
17718            unsafe {
17719                let this: &Identity =
17720                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
17721                ICoreWebView2Frame_Impl::remove_NameChanged(this, core::mem::transmute_copy(&token))
17722                    .into()
17723            }
17724        }
17725        unsafe extern "system" fn AddHostObjectToScriptWithOrigins<
17726            Identity: ICoreWebView2Frame_Impl,
17727            const OFFSET: isize,
17728        >(
17729            this: *mut core::ffi::c_void,
17730            name: windows_core::PCWSTR,
17731            object: *mut windows::Win32::System::Variant::VARIANT,
17732            originscount: u32,
17733            origins: *const windows_core::PCWSTR,
17734        ) -> windows_core::HRESULT {
17735            unsafe {
17736                let this: &Identity =
17737                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
17738                ICoreWebView2Frame_Impl::AddHostObjectToScriptWithOrigins(
17739                    this,
17740                    core::mem::transmute(&name),
17741                    core::mem::transmute_copy(&object),
17742                    core::mem::transmute_copy(&originscount),
17743                    core::mem::transmute_copy(&origins),
17744                )
17745                .into()
17746            }
17747        }
17748        unsafe extern "system" fn RemoveHostObjectFromScript<
17749            Identity: ICoreWebView2Frame_Impl,
17750            const OFFSET: isize,
17751        >(
17752            this: *mut core::ffi::c_void,
17753            name: windows_core::PCWSTR,
17754        ) -> windows_core::HRESULT {
17755            unsafe {
17756                let this: &Identity =
17757                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
17758                ICoreWebView2Frame_Impl::RemoveHostObjectFromScript(
17759                    this,
17760                    core::mem::transmute(&name),
17761                )
17762                .into()
17763            }
17764        }
17765        unsafe extern "system" fn add_Destroyed<
17766            Identity: ICoreWebView2Frame_Impl,
17767            const OFFSET: isize,
17768        >(
17769            this: *mut core::ffi::c_void,
17770            eventhandler: *mut core::ffi::c_void,
17771            token: *mut i64,
17772        ) -> windows_core::HRESULT {
17773            unsafe {
17774                let this: &Identity =
17775                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
17776                ICoreWebView2Frame_Impl::add_Destroyed(
17777                    this,
17778                    core::mem::transmute_copy(&eventhandler),
17779                    core::mem::transmute_copy(&token),
17780                )
17781                .into()
17782            }
17783        }
17784        unsafe extern "system" fn remove_Destroyed<
17785            Identity: ICoreWebView2Frame_Impl,
17786            const OFFSET: isize,
17787        >(
17788            this: *mut core::ffi::c_void,
17789            token: i64,
17790        ) -> windows_core::HRESULT {
17791            unsafe {
17792                let this: &Identity =
17793                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
17794                ICoreWebView2Frame_Impl::remove_Destroyed(this, core::mem::transmute_copy(&token))
17795                    .into()
17796            }
17797        }
17798        unsafe extern "system" fn IsDestroyed<
17799            Identity: ICoreWebView2Frame_Impl,
17800            const OFFSET: isize,
17801        >(
17802            this: *mut core::ffi::c_void,
17803            destroyed: *mut windows_core::BOOL,
17804        ) -> windows_core::HRESULT {
17805            unsafe {
17806                let this: &Identity =
17807                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
17808                ICoreWebView2Frame_Impl::IsDestroyed(this, core::mem::transmute_copy(&destroyed))
17809                    .into()
17810            }
17811        }
17812        Self {
17813            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
17814            Name: Name::<Identity, OFFSET>,
17815            add_NameChanged: add_NameChanged::<Identity, OFFSET>,
17816            remove_NameChanged: remove_NameChanged::<Identity, OFFSET>,
17817            AddHostObjectToScriptWithOrigins: AddHostObjectToScriptWithOrigins::<Identity, OFFSET>,
17818            RemoveHostObjectFromScript: RemoveHostObjectFromScript::<Identity, OFFSET>,
17819            add_Destroyed: add_Destroyed::<Identity, OFFSET>,
17820            remove_Destroyed: remove_Destroyed::<Identity, OFFSET>,
17821            IsDestroyed: IsDestroyed::<Identity, OFFSET>,
17822        }
17823    }
17824    pub fn matches(iid: &windows_core::GUID) -> bool {
17825        iid == &<ICoreWebView2Frame as windows_core::Interface>::IID
17826    }
17827}
17828impl windows_core::RuntimeName for ICoreWebView2Frame {}
17829windows_core::imp::define_interface!(
17830    ICoreWebView2Frame2,
17831    ICoreWebView2Frame2_Vtbl,
17832    0x7a6a5834_d185_4dbf_b63f_4a9bc43107d4
17833);
17834impl core::ops::Deref for ICoreWebView2Frame2 {
17835    type Target = ICoreWebView2Frame;
17836    fn deref(&self) -> &Self::Target {
17837        unsafe { core::mem::transmute(self) }
17838    }
17839}
17840windows_core::imp::interface_hierarchy!(
17841    ICoreWebView2Frame2,
17842    windows_core::IUnknown,
17843    ICoreWebView2Frame
17844);
17845impl ICoreWebView2Frame2 {
17846    pub unsafe fn add_NavigationStarting<P0>(
17847        &self,
17848        eventhandler: P0,
17849        token: *mut i64,
17850    ) -> windows_core::Result<()>
17851    where
17852        P0: windows_core::Param<ICoreWebView2FrameNavigationStartingEventHandler>,
17853    {
17854        unsafe {
17855            (windows_core::Interface::vtable(self).add_NavigationStarting)(
17856                windows_core::Interface::as_raw(self),
17857                eventhandler.param().abi(),
17858                token as _,
17859            )
17860            .ok()
17861        }
17862    }
17863    pub unsafe fn remove_NavigationStarting(&self, token: i64) -> windows_core::Result<()> {
17864        unsafe {
17865            (windows_core::Interface::vtable(self).remove_NavigationStarting)(
17866                windows_core::Interface::as_raw(self),
17867                token,
17868            )
17869            .ok()
17870        }
17871    }
17872    pub unsafe fn add_ContentLoading<P0>(
17873        &self,
17874        eventhandler: P0,
17875        token: *mut i64,
17876    ) -> windows_core::Result<()>
17877    where
17878        P0: windows_core::Param<ICoreWebView2FrameContentLoadingEventHandler>,
17879    {
17880        unsafe {
17881            (windows_core::Interface::vtable(self).add_ContentLoading)(
17882                windows_core::Interface::as_raw(self),
17883                eventhandler.param().abi(),
17884                token as _,
17885            )
17886            .ok()
17887        }
17888    }
17889    pub unsafe fn remove_ContentLoading(&self, token: i64) -> windows_core::Result<()> {
17890        unsafe {
17891            (windows_core::Interface::vtable(self).remove_ContentLoading)(
17892                windows_core::Interface::as_raw(self),
17893                token,
17894            )
17895            .ok()
17896        }
17897    }
17898    pub unsafe fn add_NavigationCompleted<P0>(
17899        &self,
17900        eventhandler: P0,
17901        token: *mut i64,
17902    ) -> windows_core::Result<()>
17903    where
17904        P0: windows_core::Param<ICoreWebView2FrameNavigationCompletedEventHandler>,
17905    {
17906        unsafe {
17907            (windows_core::Interface::vtable(self).add_NavigationCompleted)(
17908                windows_core::Interface::as_raw(self),
17909                eventhandler.param().abi(),
17910                token as _,
17911            )
17912            .ok()
17913        }
17914    }
17915    pub unsafe fn remove_NavigationCompleted(&self, token: i64) -> windows_core::Result<()> {
17916        unsafe {
17917            (windows_core::Interface::vtable(self).remove_NavigationCompleted)(
17918                windows_core::Interface::as_raw(self),
17919                token,
17920            )
17921            .ok()
17922        }
17923    }
17924    pub unsafe fn add_DOMContentLoaded<P0>(
17925        &self,
17926        eventhandler: P0,
17927        token: *mut i64,
17928    ) -> windows_core::Result<()>
17929    where
17930        P0: windows_core::Param<ICoreWebView2FrameDOMContentLoadedEventHandler>,
17931    {
17932        unsafe {
17933            (windows_core::Interface::vtable(self).add_DOMContentLoaded)(
17934                windows_core::Interface::as_raw(self),
17935                eventhandler.param().abi(),
17936                token as _,
17937            )
17938            .ok()
17939        }
17940    }
17941    pub unsafe fn remove_DOMContentLoaded(&self, token: i64) -> windows_core::Result<()> {
17942        unsafe {
17943            (windows_core::Interface::vtable(self).remove_DOMContentLoaded)(
17944                windows_core::Interface::as_raw(self),
17945                token,
17946            )
17947            .ok()
17948        }
17949    }
17950    pub unsafe fn ExecuteScript<P0, P1>(
17951        &self,
17952        javascript: P0,
17953        handler: P1,
17954    ) -> windows_core::Result<()>
17955    where
17956        P0: windows_core::Param<windows_core::PCWSTR>,
17957        P1: windows_core::Param<ICoreWebView2ExecuteScriptCompletedHandler>,
17958    {
17959        unsafe {
17960            (windows_core::Interface::vtable(self).ExecuteScript)(
17961                windows_core::Interface::as_raw(self),
17962                javascript.param().abi(),
17963                handler.param().abi(),
17964            )
17965            .ok()
17966        }
17967    }
17968    pub unsafe fn PostWebMessageAsJson<P0>(&self, webmessageasjson: P0) -> windows_core::Result<()>
17969    where
17970        P0: windows_core::Param<windows_core::PCWSTR>,
17971    {
17972        unsafe {
17973            (windows_core::Interface::vtable(self).PostWebMessageAsJson)(
17974                windows_core::Interface::as_raw(self),
17975                webmessageasjson.param().abi(),
17976            )
17977            .ok()
17978        }
17979    }
17980    pub unsafe fn PostWebMessageAsString<P0>(
17981        &self,
17982        webmessageasstring: P0,
17983    ) -> windows_core::Result<()>
17984    where
17985        P0: windows_core::Param<windows_core::PCWSTR>,
17986    {
17987        unsafe {
17988            (windows_core::Interface::vtable(self).PostWebMessageAsString)(
17989                windows_core::Interface::as_raw(self),
17990                webmessageasstring.param().abi(),
17991            )
17992            .ok()
17993        }
17994    }
17995    pub unsafe fn add_WebMessageReceived<P0>(
17996        &self,
17997        handler: P0,
17998        token: *mut i64,
17999    ) -> windows_core::Result<()>
18000    where
18001        P0: windows_core::Param<ICoreWebView2FrameWebMessageReceivedEventHandler>,
18002    {
18003        unsafe {
18004            (windows_core::Interface::vtable(self).add_WebMessageReceived)(
18005                windows_core::Interface::as_raw(self),
18006                handler.param().abi(),
18007                token as _,
18008            )
18009            .ok()
18010        }
18011    }
18012    pub unsafe fn remove_WebMessageReceived(&self, token: i64) -> windows_core::Result<()> {
18013        unsafe {
18014            (windows_core::Interface::vtable(self).remove_WebMessageReceived)(
18015                windows_core::Interface::as_raw(self),
18016                token,
18017            )
18018            .ok()
18019        }
18020    }
18021}
18022#[repr(C)]
18023#[doc(hidden)]
18024pub struct ICoreWebView2Frame2_Vtbl {
18025    pub base__: ICoreWebView2Frame_Vtbl,
18026    pub add_NavigationStarting: unsafe extern "system" fn(
18027        *mut core::ffi::c_void,
18028        *mut core::ffi::c_void,
18029        *mut i64,
18030    ) -> windows_core::HRESULT,
18031    pub remove_NavigationStarting:
18032        unsafe extern "system" fn(*mut core::ffi::c_void, i64) -> windows_core::HRESULT,
18033    pub add_ContentLoading: unsafe extern "system" fn(
18034        *mut core::ffi::c_void,
18035        *mut core::ffi::c_void,
18036        *mut i64,
18037    ) -> windows_core::HRESULT,
18038    pub remove_ContentLoading:
18039        unsafe extern "system" fn(*mut core::ffi::c_void, i64) -> windows_core::HRESULT,
18040    pub add_NavigationCompleted: unsafe extern "system" fn(
18041        *mut core::ffi::c_void,
18042        *mut core::ffi::c_void,
18043        *mut i64,
18044    ) -> windows_core::HRESULT,
18045    pub remove_NavigationCompleted:
18046        unsafe extern "system" fn(*mut core::ffi::c_void, i64) -> windows_core::HRESULT,
18047    pub add_DOMContentLoaded: unsafe extern "system" fn(
18048        *mut core::ffi::c_void,
18049        *mut core::ffi::c_void,
18050        *mut i64,
18051    ) -> windows_core::HRESULT,
18052    pub remove_DOMContentLoaded:
18053        unsafe extern "system" fn(*mut core::ffi::c_void, i64) -> windows_core::HRESULT,
18054    pub ExecuteScript: unsafe extern "system" fn(
18055        *mut core::ffi::c_void,
18056        windows_core::PCWSTR,
18057        *mut core::ffi::c_void,
18058    ) -> windows_core::HRESULT,
18059    pub PostWebMessageAsJson: unsafe extern "system" fn(
18060        *mut core::ffi::c_void,
18061        windows_core::PCWSTR,
18062    ) -> windows_core::HRESULT,
18063    pub PostWebMessageAsString: unsafe extern "system" fn(
18064        *mut core::ffi::c_void,
18065        windows_core::PCWSTR,
18066    ) -> windows_core::HRESULT,
18067    pub add_WebMessageReceived: unsafe extern "system" fn(
18068        *mut core::ffi::c_void,
18069        *mut core::ffi::c_void,
18070        *mut i64,
18071    ) -> windows_core::HRESULT,
18072    pub remove_WebMessageReceived:
18073        unsafe extern "system" fn(*mut core::ffi::c_void, i64) -> windows_core::HRESULT,
18074}
18075pub trait ICoreWebView2Frame2_Impl: ICoreWebView2Frame_Impl {
18076    fn add_NavigationStarting(
18077        &self,
18078        eventhandler: windows_core::Ref<'_, ICoreWebView2FrameNavigationStartingEventHandler>,
18079        token: *mut i64,
18080    ) -> windows_core::Result<()>;
18081    fn remove_NavigationStarting(&self, token: i64) -> windows_core::Result<()>;
18082    fn add_ContentLoading(
18083        &self,
18084        eventhandler: windows_core::Ref<'_, ICoreWebView2FrameContentLoadingEventHandler>,
18085        token: *mut i64,
18086    ) -> windows_core::Result<()>;
18087    fn remove_ContentLoading(&self, token: i64) -> windows_core::Result<()>;
18088    fn add_NavigationCompleted(
18089        &self,
18090        eventhandler: windows_core::Ref<'_, ICoreWebView2FrameNavigationCompletedEventHandler>,
18091        token: *mut i64,
18092    ) -> windows_core::Result<()>;
18093    fn remove_NavigationCompleted(&self, token: i64) -> windows_core::Result<()>;
18094    fn add_DOMContentLoaded(
18095        &self,
18096        eventhandler: windows_core::Ref<'_, ICoreWebView2FrameDOMContentLoadedEventHandler>,
18097        token: *mut i64,
18098    ) -> windows_core::Result<()>;
18099    fn remove_DOMContentLoaded(&self, token: i64) -> windows_core::Result<()>;
18100    fn ExecuteScript(
18101        &self,
18102        javascript: &windows_core::PCWSTR,
18103        handler: windows_core::Ref<'_, ICoreWebView2ExecuteScriptCompletedHandler>,
18104    ) -> windows_core::Result<()>;
18105    fn PostWebMessageAsJson(
18106        &self,
18107        webmessageasjson: &windows_core::PCWSTR,
18108    ) -> windows_core::Result<()>;
18109    fn PostWebMessageAsString(
18110        &self,
18111        webmessageasstring: &windows_core::PCWSTR,
18112    ) -> windows_core::Result<()>;
18113    fn add_WebMessageReceived(
18114        &self,
18115        handler: windows_core::Ref<'_, ICoreWebView2FrameWebMessageReceivedEventHandler>,
18116        token: *mut i64,
18117    ) -> windows_core::Result<()>;
18118    fn remove_WebMessageReceived(&self, token: i64) -> windows_core::Result<()>;
18119}
18120impl ICoreWebView2Frame2_Vtbl {
18121    pub const fn new<Identity: ICoreWebView2Frame2_Impl, const OFFSET: isize>() -> Self {
18122        unsafe extern "system" fn add_NavigationStarting<
18123            Identity: ICoreWebView2Frame2_Impl,
18124            const OFFSET: isize,
18125        >(
18126            this: *mut core::ffi::c_void,
18127            eventhandler: *mut core::ffi::c_void,
18128            token: *mut i64,
18129        ) -> windows_core::HRESULT {
18130            unsafe {
18131                let this: &Identity =
18132                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
18133                ICoreWebView2Frame2_Impl::add_NavigationStarting(
18134                    this,
18135                    core::mem::transmute_copy(&eventhandler),
18136                    core::mem::transmute_copy(&token),
18137                )
18138                .into()
18139            }
18140        }
18141        unsafe extern "system" fn remove_NavigationStarting<
18142            Identity: ICoreWebView2Frame2_Impl,
18143            const OFFSET: isize,
18144        >(
18145            this: *mut core::ffi::c_void,
18146            token: i64,
18147        ) -> windows_core::HRESULT {
18148            unsafe {
18149                let this: &Identity =
18150                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
18151                ICoreWebView2Frame2_Impl::remove_NavigationStarting(
18152                    this,
18153                    core::mem::transmute_copy(&token),
18154                )
18155                .into()
18156            }
18157        }
18158        unsafe extern "system" fn add_ContentLoading<
18159            Identity: ICoreWebView2Frame2_Impl,
18160            const OFFSET: isize,
18161        >(
18162            this: *mut core::ffi::c_void,
18163            eventhandler: *mut core::ffi::c_void,
18164            token: *mut i64,
18165        ) -> windows_core::HRESULT {
18166            unsafe {
18167                let this: &Identity =
18168                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
18169                ICoreWebView2Frame2_Impl::add_ContentLoading(
18170                    this,
18171                    core::mem::transmute_copy(&eventhandler),
18172                    core::mem::transmute_copy(&token),
18173                )
18174                .into()
18175            }
18176        }
18177        unsafe extern "system" fn remove_ContentLoading<
18178            Identity: ICoreWebView2Frame2_Impl,
18179            const OFFSET: isize,
18180        >(
18181            this: *mut core::ffi::c_void,
18182            token: i64,
18183        ) -> windows_core::HRESULT {
18184            unsafe {
18185                let this: &Identity =
18186                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
18187                ICoreWebView2Frame2_Impl::remove_ContentLoading(
18188                    this,
18189                    core::mem::transmute_copy(&token),
18190                )
18191                .into()
18192            }
18193        }
18194        unsafe extern "system" fn add_NavigationCompleted<
18195            Identity: ICoreWebView2Frame2_Impl,
18196            const OFFSET: isize,
18197        >(
18198            this: *mut core::ffi::c_void,
18199            eventhandler: *mut core::ffi::c_void,
18200            token: *mut i64,
18201        ) -> windows_core::HRESULT {
18202            unsafe {
18203                let this: &Identity =
18204                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
18205                ICoreWebView2Frame2_Impl::add_NavigationCompleted(
18206                    this,
18207                    core::mem::transmute_copy(&eventhandler),
18208                    core::mem::transmute_copy(&token),
18209                )
18210                .into()
18211            }
18212        }
18213        unsafe extern "system" fn remove_NavigationCompleted<
18214            Identity: ICoreWebView2Frame2_Impl,
18215            const OFFSET: isize,
18216        >(
18217            this: *mut core::ffi::c_void,
18218            token: i64,
18219        ) -> windows_core::HRESULT {
18220            unsafe {
18221                let this: &Identity =
18222                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
18223                ICoreWebView2Frame2_Impl::remove_NavigationCompleted(
18224                    this,
18225                    core::mem::transmute_copy(&token),
18226                )
18227                .into()
18228            }
18229        }
18230        unsafe extern "system" fn add_DOMContentLoaded<
18231            Identity: ICoreWebView2Frame2_Impl,
18232            const OFFSET: isize,
18233        >(
18234            this: *mut core::ffi::c_void,
18235            eventhandler: *mut core::ffi::c_void,
18236            token: *mut i64,
18237        ) -> windows_core::HRESULT {
18238            unsafe {
18239                let this: &Identity =
18240                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
18241                ICoreWebView2Frame2_Impl::add_DOMContentLoaded(
18242                    this,
18243                    core::mem::transmute_copy(&eventhandler),
18244                    core::mem::transmute_copy(&token),
18245                )
18246                .into()
18247            }
18248        }
18249        unsafe extern "system" fn remove_DOMContentLoaded<
18250            Identity: ICoreWebView2Frame2_Impl,
18251            const OFFSET: isize,
18252        >(
18253            this: *mut core::ffi::c_void,
18254            token: i64,
18255        ) -> windows_core::HRESULT {
18256            unsafe {
18257                let this: &Identity =
18258                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
18259                ICoreWebView2Frame2_Impl::remove_DOMContentLoaded(
18260                    this,
18261                    core::mem::transmute_copy(&token),
18262                )
18263                .into()
18264            }
18265        }
18266        unsafe extern "system" fn ExecuteScript<
18267            Identity: ICoreWebView2Frame2_Impl,
18268            const OFFSET: isize,
18269        >(
18270            this: *mut core::ffi::c_void,
18271            javascript: windows_core::PCWSTR,
18272            handler: *mut core::ffi::c_void,
18273        ) -> windows_core::HRESULT {
18274            unsafe {
18275                let this: &Identity =
18276                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
18277                ICoreWebView2Frame2_Impl::ExecuteScript(
18278                    this,
18279                    core::mem::transmute(&javascript),
18280                    core::mem::transmute_copy(&handler),
18281                )
18282                .into()
18283            }
18284        }
18285        unsafe extern "system" fn PostWebMessageAsJson<
18286            Identity: ICoreWebView2Frame2_Impl,
18287            const OFFSET: isize,
18288        >(
18289            this: *mut core::ffi::c_void,
18290            webmessageasjson: windows_core::PCWSTR,
18291        ) -> windows_core::HRESULT {
18292            unsafe {
18293                let this: &Identity =
18294                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
18295                ICoreWebView2Frame2_Impl::PostWebMessageAsJson(
18296                    this,
18297                    core::mem::transmute(&webmessageasjson),
18298                )
18299                .into()
18300            }
18301        }
18302        unsafe extern "system" fn PostWebMessageAsString<
18303            Identity: ICoreWebView2Frame2_Impl,
18304            const OFFSET: isize,
18305        >(
18306            this: *mut core::ffi::c_void,
18307            webmessageasstring: windows_core::PCWSTR,
18308        ) -> windows_core::HRESULT {
18309            unsafe {
18310                let this: &Identity =
18311                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
18312                ICoreWebView2Frame2_Impl::PostWebMessageAsString(
18313                    this,
18314                    core::mem::transmute(&webmessageasstring),
18315                )
18316                .into()
18317            }
18318        }
18319        unsafe extern "system" fn add_WebMessageReceived<
18320            Identity: ICoreWebView2Frame2_Impl,
18321            const OFFSET: isize,
18322        >(
18323            this: *mut core::ffi::c_void,
18324            handler: *mut core::ffi::c_void,
18325            token: *mut i64,
18326        ) -> windows_core::HRESULT {
18327            unsafe {
18328                let this: &Identity =
18329                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
18330                ICoreWebView2Frame2_Impl::add_WebMessageReceived(
18331                    this,
18332                    core::mem::transmute_copy(&handler),
18333                    core::mem::transmute_copy(&token),
18334                )
18335                .into()
18336            }
18337        }
18338        unsafe extern "system" fn remove_WebMessageReceived<
18339            Identity: ICoreWebView2Frame2_Impl,
18340            const OFFSET: isize,
18341        >(
18342            this: *mut core::ffi::c_void,
18343            token: i64,
18344        ) -> windows_core::HRESULT {
18345            unsafe {
18346                let this: &Identity =
18347                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
18348                ICoreWebView2Frame2_Impl::remove_WebMessageReceived(
18349                    this,
18350                    core::mem::transmute_copy(&token),
18351                )
18352                .into()
18353            }
18354        }
18355        Self {
18356            base__: ICoreWebView2Frame_Vtbl::new::<Identity, OFFSET>(),
18357            add_NavigationStarting: add_NavigationStarting::<Identity, OFFSET>,
18358            remove_NavigationStarting: remove_NavigationStarting::<Identity, OFFSET>,
18359            add_ContentLoading: add_ContentLoading::<Identity, OFFSET>,
18360            remove_ContentLoading: remove_ContentLoading::<Identity, OFFSET>,
18361            add_NavigationCompleted: add_NavigationCompleted::<Identity, OFFSET>,
18362            remove_NavigationCompleted: remove_NavigationCompleted::<Identity, OFFSET>,
18363            add_DOMContentLoaded: add_DOMContentLoaded::<Identity, OFFSET>,
18364            remove_DOMContentLoaded: remove_DOMContentLoaded::<Identity, OFFSET>,
18365            ExecuteScript: ExecuteScript::<Identity, OFFSET>,
18366            PostWebMessageAsJson: PostWebMessageAsJson::<Identity, OFFSET>,
18367            PostWebMessageAsString: PostWebMessageAsString::<Identity, OFFSET>,
18368            add_WebMessageReceived: add_WebMessageReceived::<Identity, OFFSET>,
18369            remove_WebMessageReceived: remove_WebMessageReceived::<Identity, OFFSET>,
18370        }
18371    }
18372    pub fn matches(iid: &windows_core::GUID) -> bool {
18373        iid == &<ICoreWebView2Frame2 as windows_core::Interface>::IID
18374            || iid == &<ICoreWebView2Frame as windows_core::Interface>::IID
18375    }
18376}
18377impl windows_core::RuntimeName for ICoreWebView2Frame2 {}
18378windows_core::imp::define_interface!(
18379    ICoreWebView2Frame3,
18380    ICoreWebView2Frame3_Vtbl,
18381    0xb50d82cc_cc28_481d_9614_cb048895e6a0
18382);
18383impl core::ops::Deref for ICoreWebView2Frame3 {
18384    type Target = ICoreWebView2Frame2;
18385    fn deref(&self) -> &Self::Target {
18386        unsafe { core::mem::transmute(self) }
18387    }
18388}
18389windows_core::imp::interface_hierarchy!(
18390    ICoreWebView2Frame3,
18391    windows_core::IUnknown,
18392    ICoreWebView2Frame,
18393    ICoreWebView2Frame2
18394);
18395impl ICoreWebView2Frame3 {
18396    pub unsafe fn add_PermissionRequested<P0>(
18397        &self,
18398        eventhandler: P0,
18399        token: *mut i64,
18400    ) -> windows_core::Result<()>
18401    where
18402        P0: windows_core::Param<ICoreWebView2FramePermissionRequestedEventHandler>,
18403    {
18404        unsafe {
18405            (windows_core::Interface::vtable(self).add_PermissionRequested)(
18406                windows_core::Interface::as_raw(self),
18407                eventhandler.param().abi(),
18408                token as _,
18409            )
18410            .ok()
18411        }
18412    }
18413    pub unsafe fn remove_PermissionRequested(&self, token: i64) -> windows_core::Result<()> {
18414        unsafe {
18415            (windows_core::Interface::vtable(self).remove_PermissionRequested)(
18416                windows_core::Interface::as_raw(self),
18417                token,
18418            )
18419            .ok()
18420        }
18421    }
18422}
18423#[repr(C)]
18424#[doc(hidden)]
18425pub struct ICoreWebView2Frame3_Vtbl {
18426    pub base__: ICoreWebView2Frame2_Vtbl,
18427    pub add_PermissionRequested: unsafe extern "system" fn(
18428        *mut core::ffi::c_void,
18429        *mut core::ffi::c_void,
18430        *mut i64,
18431    ) -> windows_core::HRESULT,
18432    pub remove_PermissionRequested:
18433        unsafe extern "system" fn(*mut core::ffi::c_void, i64) -> windows_core::HRESULT,
18434}
18435pub trait ICoreWebView2Frame3_Impl: ICoreWebView2Frame2_Impl {
18436    fn add_PermissionRequested(
18437        &self,
18438        eventhandler: windows_core::Ref<'_, ICoreWebView2FramePermissionRequestedEventHandler>,
18439        token: *mut i64,
18440    ) -> windows_core::Result<()>;
18441    fn remove_PermissionRequested(&self, token: i64) -> windows_core::Result<()>;
18442}
18443impl ICoreWebView2Frame3_Vtbl {
18444    pub const fn new<Identity: ICoreWebView2Frame3_Impl, const OFFSET: isize>() -> Self {
18445        unsafe extern "system" fn add_PermissionRequested<
18446            Identity: ICoreWebView2Frame3_Impl,
18447            const OFFSET: isize,
18448        >(
18449            this: *mut core::ffi::c_void,
18450            eventhandler: *mut core::ffi::c_void,
18451            token: *mut i64,
18452        ) -> windows_core::HRESULT {
18453            unsafe {
18454                let this: &Identity =
18455                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
18456                ICoreWebView2Frame3_Impl::add_PermissionRequested(
18457                    this,
18458                    core::mem::transmute_copy(&eventhandler),
18459                    core::mem::transmute_copy(&token),
18460                )
18461                .into()
18462            }
18463        }
18464        unsafe extern "system" fn remove_PermissionRequested<
18465            Identity: ICoreWebView2Frame3_Impl,
18466            const OFFSET: isize,
18467        >(
18468            this: *mut core::ffi::c_void,
18469            token: i64,
18470        ) -> windows_core::HRESULT {
18471            unsafe {
18472                let this: &Identity =
18473                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
18474                ICoreWebView2Frame3_Impl::remove_PermissionRequested(
18475                    this,
18476                    core::mem::transmute_copy(&token),
18477                )
18478                .into()
18479            }
18480        }
18481        Self {
18482            base__: ICoreWebView2Frame2_Vtbl::new::<Identity, OFFSET>(),
18483            add_PermissionRequested: add_PermissionRequested::<Identity, OFFSET>,
18484            remove_PermissionRequested: remove_PermissionRequested::<Identity, OFFSET>,
18485        }
18486    }
18487    pub fn matches(iid: &windows_core::GUID) -> bool {
18488        iid == &<ICoreWebView2Frame3 as windows_core::Interface>::IID
18489            || iid == &<ICoreWebView2Frame as windows_core::Interface>::IID
18490            || iid == &<ICoreWebView2Frame2 as windows_core::Interface>::IID
18491    }
18492}
18493impl windows_core::RuntimeName for ICoreWebView2Frame3 {}
18494windows_core::imp::define_interface!(
18495    ICoreWebView2Frame4,
18496    ICoreWebView2Frame4_Vtbl,
18497    0x188782dc_92aa_4732_ab3c_fcc59f6f68b9
18498);
18499impl core::ops::Deref for ICoreWebView2Frame4 {
18500    type Target = ICoreWebView2Frame3;
18501    fn deref(&self) -> &Self::Target {
18502        unsafe { core::mem::transmute(self) }
18503    }
18504}
18505windows_core::imp::interface_hierarchy!(
18506    ICoreWebView2Frame4,
18507    windows_core::IUnknown,
18508    ICoreWebView2Frame,
18509    ICoreWebView2Frame2,
18510    ICoreWebView2Frame3
18511);
18512impl ICoreWebView2Frame4 {
18513    pub unsafe fn PostSharedBufferToScript<P0, P2>(
18514        &self,
18515        sharedbuffer: P0,
18516        access: COREWEBVIEW2_SHARED_BUFFER_ACCESS,
18517        additionaldataasjson: P2,
18518    ) -> windows_core::Result<()>
18519    where
18520        P0: windows_core::Param<ICoreWebView2SharedBuffer>,
18521        P2: windows_core::Param<windows_core::PCWSTR>,
18522    {
18523        unsafe {
18524            (windows_core::Interface::vtable(self).PostSharedBufferToScript)(
18525                windows_core::Interface::as_raw(self),
18526                sharedbuffer.param().abi(),
18527                access,
18528                additionaldataasjson.param().abi(),
18529            )
18530            .ok()
18531        }
18532    }
18533}
18534#[repr(C)]
18535#[doc(hidden)]
18536pub struct ICoreWebView2Frame4_Vtbl {
18537    pub base__: ICoreWebView2Frame3_Vtbl,
18538    pub PostSharedBufferToScript: unsafe extern "system" fn(
18539        *mut core::ffi::c_void,
18540        *mut core::ffi::c_void,
18541        COREWEBVIEW2_SHARED_BUFFER_ACCESS,
18542        windows_core::PCWSTR,
18543    ) -> windows_core::HRESULT,
18544}
18545pub trait ICoreWebView2Frame4_Impl: ICoreWebView2Frame3_Impl {
18546    fn PostSharedBufferToScript(
18547        &self,
18548        sharedbuffer: windows_core::Ref<'_, ICoreWebView2SharedBuffer>,
18549        access: COREWEBVIEW2_SHARED_BUFFER_ACCESS,
18550        additionaldataasjson: &windows_core::PCWSTR,
18551    ) -> windows_core::Result<()>;
18552}
18553impl ICoreWebView2Frame4_Vtbl {
18554    pub const fn new<Identity: ICoreWebView2Frame4_Impl, const OFFSET: isize>() -> Self {
18555        unsafe extern "system" fn PostSharedBufferToScript<
18556            Identity: ICoreWebView2Frame4_Impl,
18557            const OFFSET: isize,
18558        >(
18559            this: *mut core::ffi::c_void,
18560            sharedbuffer: *mut core::ffi::c_void,
18561            access: COREWEBVIEW2_SHARED_BUFFER_ACCESS,
18562            additionaldataasjson: windows_core::PCWSTR,
18563        ) -> windows_core::HRESULT {
18564            unsafe {
18565                let this: &Identity =
18566                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
18567                ICoreWebView2Frame4_Impl::PostSharedBufferToScript(
18568                    this,
18569                    core::mem::transmute_copy(&sharedbuffer),
18570                    core::mem::transmute_copy(&access),
18571                    core::mem::transmute(&additionaldataasjson),
18572                )
18573                .into()
18574            }
18575        }
18576        Self {
18577            base__: ICoreWebView2Frame3_Vtbl::new::<Identity, OFFSET>(),
18578            PostSharedBufferToScript: PostSharedBufferToScript::<Identity, OFFSET>,
18579        }
18580    }
18581    pub fn matches(iid: &windows_core::GUID) -> bool {
18582        iid == &<ICoreWebView2Frame4 as windows_core::Interface>::IID
18583            || iid == &<ICoreWebView2Frame as windows_core::Interface>::IID
18584            || iid == &<ICoreWebView2Frame2 as windows_core::Interface>::IID
18585            || iid == &<ICoreWebView2Frame3 as windows_core::Interface>::IID
18586    }
18587}
18588impl windows_core::RuntimeName for ICoreWebView2Frame4 {}
18589windows_core::imp::define_interface!(
18590    ICoreWebView2Frame5,
18591    ICoreWebView2Frame5_Vtbl,
18592    0x99d199c4_7305_11ee_b962_0242ac120002
18593);
18594impl core::ops::Deref for ICoreWebView2Frame5 {
18595    type Target = ICoreWebView2Frame4;
18596    fn deref(&self) -> &Self::Target {
18597        unsafe { core::mem::transmute(self) }
18598    }
18599}
18600windows_core::imp::interface_hierarchy!(
18601    ICoreWebView2Frame5,
18602    windows_core::IUnknown,
18603    ICoreWebView2Frame,
18604    ICoreWebView2Frame2,
18605    ICoreWebView2Frame3,
18606    ICoreWebView2Frame4
18607);
18608impl ICoreWebView2Frame5 {
18609    pub unsafe fn FrameId(&self, value: *mut u32) -> windows_core::Result<()> {
18610        unsafe {
18611            (windows_core::Interface::vtable(self).FrameId)(
18612                windows_core::Interface::as_raw(self),
18613                value as _,
18614            )
18615            .ok()
18616        }
18617    }
18618}
18619#[repr(C)]
18620#[doc(hidden)]
18621pub struct ICoreWebView2Frame5_Vtbl {
18622    pub base__: ICoreWebView2Frame4_Vtbl,
18623    pub FrameId:
18624        unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
18625}
18626pub trait ICoreWebView2Frame5_Impl: ICoreWebView2Frame4_Impl {
18627    fn FrameId(&self, value: *mut u32) -> windows_core::Result<()>;
18628}
18629impl ICoreWebView2Frame5_Vtbl {
18630    pub const fn new<Identity: ICoreWebView2Frame5_Impl, const OFFSET: isize>() -> Self {
18631        unsafe extern "system" fn FrameId<
18632            Identity: ICoreWebView2Frame5_Impl,
18633            const OFFSET: isize,
18634        >(
18635            this: *mut core::ffi::c_void,
18636            value: *mut u32,
18637        ) -> windows_core::HRESULT {
18638            unsafe {
18639                let this: &Identity =
18640                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
18641                ICoreWebView2Frame5_Impl::FrameId(this, core::mem::transmute_copy(&value)).into()
18642            }
18643        }
18644        Self {
18645            base__: ICoreWebView2Frame4_Vtbl::new::<Identity, OFFSET>(),
18646            FrameId: FrameId::<Identity, OFFSET>,
18647        }
18648    }
18649    pub fn matches(iid: &windows_core::GUID) -> bool {
18650        iid == &<ICoreWebView2Frame5 as windows_core::Interface>::IID
18651            || iid == &<ICoreWebView2Frame as windows_core::Interface>::IID
18652            || iid == &<ICoreWebView2Frame2 as windows_core::Interface>::IID
18653            || iid == &<ICoreWebView2Frame3 as windows_core::Interface>::IID
18654            || iid == &<ICoreWebView2Frame4 as windows_core::Interface>::IID
18655    }
18656}
18657impl windows_core::RuntimeName for ICoreWebView2Frame5 {}
18658windows_core::imp::define_interface!(
18659    ICoreWebView2Frame6,
18660    ICoreWebView2Frame6_Vtbl,
18661    0x0de611fd_31e9_5ddc_9d71_95eda26eff32
18662);
18663impl core::ops::Deref for ICoreWebView2Frame6 {
18664    type Target = ICoreWebView2Frame5;
18665    fn deref(&self) -> &Self::Target {
18666        unsafe { core::mem::transmute(self) }
18667    }
18668}
18669windows_core::imp::interface_hierarchy!(
18670    ICoreWebView2Frame6,
18671    windows_core::IUnknown,
18672    ICoreWebView2Frame,
18673    ICoreWebView2Frame2,
18674    ICoreWebView2Frame3,
18675    ICoreWebView2Frame4,
18676    ICoreWebView2Frame5
18677);
18678impl ICoreWebView2Frame6 {
18679    pub unsafe fn add_ScreenCaptureStarting<P0>(
18680        &self,
18681        eventhandler: P0,
18682        token: *mut i64,
18683    ) -> windows_core::Result<()>
18684    where
18685        P0: windows_core::Param<ICoreWebView2FrameScreenCaptureStartingEventHandler>,
18686    {
18687        unsafe {
18688            (windows_core::Interface::vtable(self).add_ScreenCaptureStarting)(
18689                windows_core::Interface::as_raw(self),
18690                eventhandler.param().abi(),
18691                token as _,
18692            )
18693            .ok()
18694        }
18695    }
18696    pub unsafe fn remove_ScreenCaptureStarting(&self, token: i64) -> windows_core::Result<()> {
18697        unsafe {
18698            (windows_core::Interface::vtable(self).remove_ScreenCaptureStarting)(
18699                windows_core::Interface::as_raw(self),
18700                token,
18701            )
18702            .ok()
18703        }
18704    }
18705}
18706#[repr(C)]
18707#[doc(hidden)]
18708pub struct ICoreWebView2Frame6_Vtbl {
18709    pub base__: ICoreWebView2Frame5_Vtbl,
18710    pub add_ScreenCaptureStarting: unsafe extern "system" fn(
18711        *mut core::ffi::c_void,
18712        *mut core::ffi::c_void,
18713        *mut i64,
18714    ) -> windows_core::HRESULT,
18715    pub remove_ScreenCaptureStarting:
18716        unsafe extern "system" fn(*mut core::ffi::c_void, i64) -> windows_core::HRESULT,
18717}
18718pub trait ICoreWebView2Frame6_Impl: ICoreWebView2Frame5_Impl {
18719    fn add_ScreenCaptureStarting(
18720        &self,
18721        eventhandler: windows_core::Ref<'_, ICoreWebView2FrameScreenCaptureStartingEventHandler>,
18722        token: *mut i64,
18723    ) -> windows_core::Result<()>;
18724    fn remove_ScreenCaptureStarting(&self, token: i64) -> windows_core::Result<()>;
18725}
18726impl ICoreWebView2Frame6_Vtbl {
18727    pub const fn new<Identity: ICoreWebView2Frame6_Impl, const OFFSET: isize>() -> Self {
18728        unsafe extern "system" fn add_ScreenCaptureStarting<
18729            Identity: ICoreWebView2Frame6_Impl,
18730            const OFFSET: isize,
18731        >(
18732            this: *mut core::ffi::c_void,
18733            eventhandler: *mut core::ffi::c_void,
18734            token: *mut i64,
18735        ) -> windows_core::HRESULT {
18736            unsafe {
18737                let this: &Identity =
18738                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
18739                ICoreWebView2Frame6_Impl::add_ScreenCaptureStarting(
18740                    this,
18741                    core::mem::transmute_copy(&eventhandler),
18742                    core::mem::transmute_copy(&token),
18743                )
18744                .into()
18745            }
18746        }
18747        unsafe extern "system" fn remove_ScreenCaptureStarting<
18748            Identity: ICoreWebView2Frame6_Impl,
18749            const OFFSET: isize,
18750        >(
18751            this: *mut core::ffi::c_void,
18752            token: i64,
18753        ) -> windows_core::HRESULT {
18754            unsafe {
18755                let this: &Identity =
18756                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
18757                ICoreWebView2Frame6_Impl::remove_ScreenCaptureStarting(
18758                    this,
18759                    core::mem::transmute_copy(&token),
18760                )
18761                .into()
18762            }
18763        }
18764        Self {
18765            base__: ICoreWebView2Frame5_Vtbl::new::<Identity, OFFSET>(),
18766            add_ScreenCaptureStarting: add_ScreenCaptureStarting::<Identity, OFFSET>,
18767            remove_ScreenCaptureStarting: remove_ScreenCaptureStarting::<Identity, OFFSET>,
18768        }
18769    }
18770    pub fn matches(iid: &windows_core::GUID) -> bool {
18771        iid == &<ICoreWebView2Frame6 as windows_core::Interface>::IID
18772            || iid == &<ICoreWebView2Frame as windows_core::Interface>::IID
18773            || iid == &<ICoreWebView2Frame2 as windows_core::Interface>::IID
18774            || iid == &<ICoreWebView2Frame3 as windows_core::Interface>::IID
18775            || iid == &<ICoreWebView2Frame4 as windows_core::Interface>::IID
18776            || iid == &<ICoreWebView2Frame5 as windows_core::Interface>::IID
18777    }
18778}
18779impl windows_core::RuntimeName for ICoreWebView2Frame6 {}
18780windows_core::imp::define_interface!(
18781    ICoreWebView2FrameContentLoadingEventHandler,
18782    ICoreWebView2FrameContentLoadingEventHandler_Vtbl,
18783    0x0d6156f2_d332_49a7_9e03_7d8f2feeee54
18784);
18785windows_core::imp::interface_hierarchy!(
18786    ICoreWebView2FrameContentLoadingEventHandler,
18787    windows_core::IUnknown
18788);
18789impl ICoreWebView2FrameContentLoadingEventHandler {
18790    pub unsafe fn Invoke<P0, P1>(&self, sender: P0, args: P1) -> windows_core::Result<()>
18791    where
18792        P0: windows_core::Param<ICoreWebView2Frame>,
18793        P1: windows_core::Param<ICoreWebView2ContentLoadingEventArgs>,
18794    {
18795        unsafe {
18796            (windows_core::Interface::vtable(self).Invoke)(
18797                windows_core::Interface::as_raw(self),
18798                sender.param().abi(),
18799                args.param().abi(),
18800            )
18801            .ok()
18802        }
18803    }
18804}
18805#[repr(C)]
18806#[doc(hidden)]
18807pub struct ICoreWebView2FrameContentLoadingEventHandler_Vtbl {
18808    pub base__: windows_core::IUnknown_Vtbl,
18809    pub Invoke: unsafe extern "system" fn(
18810        *mut core::ffi::c_void,
18811        *mut core::ffi::c_void,
18812        *mut core::ffi::c_void,
18813    ) -> windows_core::HRESULT,
18814}
18815pub trait ICoreWebView2FrameContentLoadingEventHandler_Impl: windows_core::IUnknownImpl {
18816    fn Invoke(
18817        &self,
18818        sender: windows_core::Ref<'_, ICoreWebView2Frame>,
18819        args: windows_core::Ref<'_, ICoreWebView2ContentLoadingEventArgs>,
18820    ) -> windows_core::Result<()>;
18821}
18822impl ICoreWebView2FrameContentLoadingEventHandler_Vtbl {
18823    pub const fn new<
18824        Identity: ICoreWebView2FrameContentLoadingEventHandler_Impl,
18825        const OFFSET: isize,
18826    >() -> Self {
18827        unsafe extern "system" fn Invoke<
18828            Identity: ICoreWebView2FrameContentLoadingEventHandler_Impl,
18829            const OFFSET: isize,
18830        >(
18831            this: *mut core::ffi::c_void,
18832            sender: *mut core::ffi::c_void,
18833            args: *mut core::ffi::c_void,
18834        ) -> windows_core::HRESULT {
18835            unsafe {
18836                let this: &Identity =
18837                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
18838                ICoreWebView2FrameContentLoadingEventHandler_Impl::Invoke(
18839                    this,
18840                    core::mem::transmute_copy(&sender),
18841                    core::mem::transmute_copy(&args),
18842                )
18843                .into()
18844            }
18845        }
18846        Self {
18847            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
18848            Invoke: Invoke::<Identity, OFFSET>,
18849        }
18850    }
18851    pub fn matches(iid: &windows_core::GUID) -> bool {
18852        iid == &<ICoreWebView2FrameContentLoadingEventHandler as windows_core::Interface>::IID
18853    }
18854}
18855impl windows_core::RuntimeName for ICoreWebView2FrameContentLoadingEventHandler {}
18856windows_core::imp::define_interface!(
18857    ICoreWebView2FrameCreatedEventArgs,
18858    ICoreWebView2FrameCreatedEventArgs_Vtbl,
18859    0x4d6e7b5e_9baa_11eb_a8b3_0242ac130003
18860);
18861windows_core::imp::interface_hierarchy!(ICoreWebView2FrameCreatedEventArgs, windows_core::IUnknown);
18862impl ICoreWebView2FrameCreatedEventArgs {
18863    pub unsafe fn Frame(&self) -> windows_core::Result<ICoreWebView2Frame> {
18864        unsafe {
18865            let mut result__ = core::mem::zeroed();
18866            (windows_core::Interface::vtable(self).Frame)(
18867                windows_core::Interface::as_raw(self),
18868                &mut result__,
18869            )
18870            .and_then(|| windows_core::Type::from_abi(result__))
18871        }
18872    }
18873}
18874#[repr(C)]
18875#[doc(hidden)]
18876pub struct ICoreWebView2FrameCreatedEventArgs_Vtbl {
18877    pub base__: windows_core::IUnknown_Vtbl,
18878    pub Frame: unsafe extern "system" fn(
18879        *mut core::ffi::c_void,
18880        *mut *mut core::ffi::c_void,
18881    ) -> windows_core::HRESULT,
18882}
18883pub trait ICoreWebView2FrameCreatedEventArgs_Impl: windows_core::IUnknownImpl {
18884    fn Frame(&self) -> windows_core::Result<ICoreWebView2Frame>;
18885}
18886impl ICoreWebView2FrameCreatedEventArgs_Vtbl {
18887    pub const fn new<Identity: ICoreWebView2FrameCreatedEventArgs_Impl, const OFFSET: isize>(
18888    ) -> Self {
18889        unsafe extern "system" fn Frame<
18890            Identity: ICoreWebView2FrameCreatedEventArgs_Impl,
18891            const OFFSET: isize,
18892        >(
18893            this: *mut core::ffi::c_void,
18894            value: *mut *mut core::ffi::c_void,
18895        ) -> windows_core::HRESULT {
18896            unsafe {
18897                let this: &Identity =
18898                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
18899                match ICoreWebView2FrameCreatedEventArgs_Impl::Frame(this) {
18900                    Ok(ok__) => {
18901                        value.write(core::mem::transmute(ok__));
18902                        windows_core::HRESULT(0)
18903                    }
18904                    Err(err) => err.into(),
18905                }
18906            }
18907        }
18908        Self {
18909            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
18910            Frame: Frame::<Identity, OFFSET>,
18911        }
18912    }
18913    pub fn matches(iid: &windows_core::GUID) -> bool {
18914        iid == &<ICoreWebView2FrameCreatedEventArgs as windows_core::Interface>::IID
18915    }
18916}
18917impl windows_core::RuntimeName for ICoreWebView2FrameCreatedEventArgs {}
18918windows_core::imp::define_interface!(
18919    ICoreWebView2FrameCreatedEventHandler,
18920    ICoreWebView2FrameCreatedEventHandler_Vtbl,
18921    0x38059770_9baa_11eb_a8b3_0242ac130003
18922);
18923windows_core::imp::interface_hierarchy!(
18924    ICoreWebView2FrameCreatedEventHandler,
18925    windows_core::IUnknown
18926);
18927impl ICoreWebView2FrameCreatedEventHandler {
18928    pub unsafe fn Invoke<P0, P1>(&self, sender: P0, args: P1) -> windows_core::Result<()>
18929    where
18930        P0: windows_core::Param<ICoreWebView2>,
18931        P1: windows_core::Param<ICoreWebView2FrameCreatedEventArgs>,
18932    {
18933        unsafe {
18934            (windows_core::Interface::vtable(self).Invoke)(
18935                windows_core::Interface::as_raw(self),
18936                sender.param().abi(),
18937                args.param().abi(),
18938            )
18939            .ok()
18940        }
18941    }
18942}
18943#[repr(C)]
18944#[doc(hidden)]
18945pub struct ICoreWebView2FrameCreatedEventHandler_Vtbl {
18946    pub base__: windows_core::IUnknown_Vtbl,
18947    pub Invoke: unsafe extern "system" fn(
18948        *mut core::ffi::c_void,
18949        *mut core::ffi::c_void,
18950        *mut core::ffi::c_void,
18951    ) -> windows_core::HRESULT,
18952}
18953pub trait ICoreWebView2FrameCreatedEventHandler_Impl: windows_core::IUnknownImpl {
18954    fn Invoke(
18955        &self,
18956        sender: windows_core::Ref<'_, ICoreWebView2>,
18957        args: windows_core::Ref<'_, ICoreWebView2FrameCreatedEventArgs>,
18958    ) -> windows_core::Result<()>;
18959}
18960impl ICoreWebView2FrameCreatedEventHandler_Vtbl {
18961    pub const fn new<Identity: ICoreWebView2FrameCreatedEventHandler_Impl, const OFFSET: isize>(
18962    ) -> Self {
18963        unsafe extern "system" fn Invoke<
18964            Identity: ICoreWebView2FrameCreatedEventHandler_Impl,
18965            const OFFSET: isize,
18966        >(
18967            this: *mut core::ffi::c_void,
18968            sender: *mut core::ffi::c_void,
18969            args: *mut core::ffi::c_void,
18970        ) -> windows_core::HRESULT {
18971            unsafe {
18972                let this: &Identity =
18973                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
18974                ICoreWebView2FrameCreatedEventHandler_Impl::Invoke(
18975                    this,
18976                    core::mem::transmute_copy(&sender),
18977                    core::mem::transmute_copy(&args),
18978                )
18979                .into()
18980            }
18981        }
18982        Self {
18983            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
18984            Invoke: Invoke::<Identity, OFFSET>,
18985        }
18986    }
18987    pub fn matches(iid: &windows_core::GUID) -> bool {
18988        iid == &<ICoreWebView2FrameCreatedEventHandler as windows_core::Interface>::IID
18989    }
18990}
18991impl windows_core::RuntimeName for ICoreWebView2FrameCreatedEventHandler {}
18992windows_core::imp::define_interface!(
18993    ICoreWebView2FrameDOMContentLoadedEventHandler,
18994    ICoreWebView2FrameDOMContentLoadedEventHandler_Vtbl,
18995    0x38d9520d_340f_4d1e_a775_43fce9753683
18996);
18997windows_core::imp::interface_hierarchy!(
18998    ICoreWebView2FrameDOMContentLoadedEventHandler,
18999    windows_core::IUnknown
19000);
19001impl ICoreWebView2FrameDOMContentLoadedEventHandler {
19002    pub unsafe fn Invoke<P0, P1>(&self, sender: P0, args: P1) -> windows_core::Result<()>
19003    where
19004        P0: windows_core::Param<ICoreWebView2Frame>,
19005        P1: windows_core::Param<ICoreWebView2DOMContentLoadedEventArgs>,
19006    {
19007        unsafe {
19008            (windows_core::Interface::vtable(self).Invoke)(
19009                windows_core::Interface::as_raw(self),
19010                sender.param().abi(),
19011                args.param().abi(),
19012            )
19013            .ok()
19014        }
19015    }
19016}
19017#[repr(C)]
19018#[doc(hidden)]
19019pub struct ICoreWebView2FrameDOMContentLoadedEventHandler_Vtbl {
19020    pub base__: windows_core::IUnknown_Vtbl,
19021    pub Invoke: unsafe extern "system" fn(
19022        *mut core::ffi::c_void,
19023        *mut core::ffi::c_void,
19024        *mut core::ffi::c_void,
19025    ) -> windows_core::HRESULT,
19026}
19027pub trait ICoreWebView2FrameDOMContentLoadedEventHandler_Impl: windows_core::IUnknownImpl {
19028    fn Invoke(
19029        &self,
19030        sender: windows_core::Ref<'_, ICoreWebView2Frame>,
19031        args: windows_core::Ref<'_, ICoreWebView2DOMContentLoadedEventArgs>,
19032    ) -> windows_core::Result<()>;
19033}
19034impl ICoreWebView2FrameDOMContentLoadedEventHandler_Vtbl {
19035    pub const fn new<
19036        Identity: ICoreWebView2FrameDOMContentLoadedEventHandler_Impl,
19037        const OFFSET: isize,
19038    >() -> Self {
19039        unsafe extern "system" fn Invoke<
19040            Identity: ICoreWebView2FrameDOMContentLoadedEventHandler_Impl,
19041            const OFFSET: isize,
19042        >(
19043            this: *mut core::ffi::c_void,
19044            sender: *mut core::ffi::c_void,
19045            args: *mut core::ffi::c_void,
19046        ) -> windows_core::HRESULT {
19047            unsafe {
19048                let this: &Identity =
19049                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
19050                ICoreWebView2FrameDOMContentLoadedEventHandler_Impl::Invoke(
19051                    this,
19052                    core::mem::transmute_copy(&sender),
19053                    core::mem::transmute_copy(&args),
19054                )
19055                .into()
19056            }
19057        }
19058        Self {
19059            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
19060            Invoke: Invoke::<Identity, OFFSET>,
19061        }
19062    }
19063    pub fn matches(iid: &windows_core::GUID) -> bool {
19064        iid == &<ICoreWebView2FrameDOMContentLoadedEventHandler as windows_core::Interface>::IID
19065    }
19066}
19067impl windows_core::RuntimeName for ICoreWebView2FrameDOMContentLoadedEventHandler {}
19068windows_core::imp::define_interface!(
19069    ICoreWebView2FrameDestroyedEventHandler,
19070    ICoreWebView2FrameDestroyedEventHandler_Vtbl,
19071    0x59dd7b4c_9baa_11eb_a8b3_0242ac130003
19072);
19073windows_core::imp::interface_hierarchy!(
19074    ICoreWebView2FrameDestroyedEventHandler,
19075    windows_core::IUnknown
19076);
19077impl ICoreWebView2FrameDestroyedEventHandler {
19078    pub unsafe fn Invoke<P0, P1>(&self, sender: P0, args: P1) -> windows_core::Result<()>
19079    where
19080        P0: windows_core::Param<ICoreWebView2Frame>,
19081        P1: windows_core::Param<windows_core::IUnknown>,
19082    {
19083        unsafe {
19084            (windows_core::Interface::vtable(self).Invoke)(
19085                windows_core::Interface::as_raw(self),
19086                sender.param().abi(),
19087                args.param().abi(),
19088            )
19089            .ok()
19090        }
19091    }
19092}
19093#[repr(C)]
19094#[doc(hidden)]
19095pub struct ICoreWebView2FrameDestroyedEventHandler_Vtbl {
19096    pub base__: windows_core::IUnknown_Vtbl,
19097    pub Invoke: unsafe extern "system" fn(
19098        *mut core::ffi::c_void,
19099        *mut core::ffi::c_void,
19100        *mut core::ffi::c_void,
19101    ) -> windows_core::HRESULT,
19102}
19103pub trait ICoreWebView2FrameDestroyedEventHandler_Impl: windows_core::IUnknownImpl {
19104    fn Invoke(
19105        &self,
19106        sender: windows_core::Ref<'_, ICoreWebView2Frame>,
19107        args: windows_core::Ref<'_, windows_core::IUnknown>,
19108    ) -> windows_core::Result<()>;
19109}
19110impl ICoreWebView2FrameDestroyedEventHandler_Vtbl {
19111    pub const fn new<
19112        Identity: ICoreWebView2FrameDestroyedEventHandler_Impl,
19113        const OFFSET: isize,
19114    >() -> Self {
19115        unsafe extern "system" fn Invoke<
19116            Identity: ICoreWebView2FrameDestroyedEventHandler_Impl,
19117            const OFFSET: isize,
19118        >(
19119            this: *mut core::ffi::c_void,
19120            sender: *mut core::ffi::c_void,
19121            args: *mut core::ffi::c_void,
19122        ) -> windows_core::HRESULT {
19123            unsafe {
19124                let this: &Identity =
19125                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
19126                ICoreWebView2FrameDestroyedEventHandler_Impl::Invoke(
19127                    this,
19128                    core::mem::transmute_copy(&sender),
19129                    core::mem::transmute_copy(&args),
19130                )
19131                .into()
19132            }
19133        }
19134        Self {
19135            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
19136            Invoke: Invoke::<Identity, OFFSET>,
19137        }
19138    }
19139    pub fn matches(iid: &windows_core::GUID) -> bool {
19140        iid == &<ICoreWebView2FrameDestroyedEventHandler as windows_core::Interface>::IID
19141    }
19142}
19143impl windows_core::RuntimeName for ICoreWebView2FrameDestroyedEventHandler {}
19144windows_core::imp::define_interface!(
19145    ICoreWebView2FrameInfo,
19146    ICoreWebView2FrameInfo_Vtbl,
19147    0xda86b8a1_bdf3_4f11_9955_528cefa59727
19148);
19149windows_core::imp::interface_hierarchy!(ICoreWebView2FrameInfo, windows_core::IUnknown);
19150impl ICoreWebView2FrameInfo {
19151    pub unsafe fn Name(&self, value: *mut windows_core::PWSTR) -> windows_core::Result<()> {
19152        unsafe {
19153            (windows_core::Interface::vtable(self).Name)(
19154                windows_core::Interface::as_raw(self),
19155                value as _,
19156            )
19157            .ok()
19158        }
19159    }
19160    pub unsafe fn Source(&self, value: *mut windows_core::PWSTR) -> windows_core::Result<()> {
19161        unsafe {
19162            (windows_core::Interface::vtable(self).Source)(
19163                windows_core::Interface::as_raw(self),
19164                value as _,
19165            )
19166            .ok()
19167        }
19168    }
19169}
19170#[repr(C)]
19171#[doc(hidden)]
19172pub struct ICoreWebView2FrameInfo_Vtbl {
19173    pub base__: windows_core::IUnknown_Vtbl,
19174    pub Name: unsafe extern "system" fn(
19175        *mut core::ffi::c_void,
19176        *mut windows_core::PWSTR,
19177    ) -> windows_core::HRESULT,
19178    pub Source: unsafe extern "system" fn(
19179        *mut core::ffi::c_void,
19180        *mut windows_core::PWSTR,
19181    ) -> windows_core::HRESULT,
19182}
19183pub trait ICoreWebView2FrameInfo_Impl: windows_core::IUnknownImpl {
19184    fn Name(&self, value: *mut windows_core::PWSTR) -> windows_core::Result<()>;
19185    fn Source(&self, value: *mut windows_core::PWSTR) -> windows_core::Result<()>;
19186}
19187impl ICoreWebView2FrameInfo_Vtbl {
19188    pub const fn new<Identity: ICoreWebView2FrameInfo_Impl, const OFFSET: isize>() -> Self {
19189        unsafe extern "system" fn Name<
19190            Identity: ICoreWebView2FrameInfo_Impl,
19191            const OFFSET: isize,
19192        >(
19193            this: *mut core::ffi::c_void,
19194            value: *mut windows_core::PWSTR,
19195        ) -> windows_core::HRESULT {
19196            unsafe {
19197                let this: &Identity =
19198                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
19199                ICoreWebView2FrameInfo_Impl::Name(this, core::mem::transmute_copy(&value)).into()
19200            }
19201        }
19202        unsafe extern "system" fn Source<
19203            Identity: ICoreWebView2FrameInfo_Impl,
19204            const OFFSET: isize,
19205        >(
19206            this: *mut core::ffi::c_void,
19207            value: *mut windows_core::PWSTR,
19208        ) -> windows_core::HRESULT {
19209            unsafe {
19210                let this: &Identity =
19211                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
19212                ICoreWebView2FrameInfo_Impl::Source(this, core::mem::transmute_copy(&value)).into()
19213            }
19214        }
19215        Self {
19216            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
19217            Name: Name::<Identity, OFFSET>,
19218            Source: Source::<Identity, OFFSET>,
19219        }
19220    }
19221    pub fn matches(iid: &windows_core::GUID) -> bool {
19222        iid == &<ICoreWebView2FrameInfo as windows_core::Interface>::IID
19223    }
19224}
19225impl windows_core::RuntimeName for ICoreWebView2FrameInfo {}
19226windows_core::imp::define_interface!(
19227    ICoreWebView2FrameInfo2,
19228    ICoreWebView2FrameInfo2_Vtbl,
19229    0x56f85cfa_72c4_11ee_b962_0242ac120002
19230);
19231impl core::ops::Deref for ICoreWebView2FrameInfo2 {
19232    type Target = ICoreWebView2FrameInfo;
19233    fn deref(&self) -> &Self::Target {
19234        unsafe { core::mem::transmute(self) }
19235    }
19236}
19237windows_core::imp::interface_hierarchy!(
19238    ICoreWebView2FrameInfo2,
19239    windows_core::IUnknown,
19240    ICoreWebView2FrameInfo
19241);
19242impl ICoreWebView2FrameInfo2 {
19243    pub unsafe fn ParentFrameInfo(&self) -> windows_core::Result<ICoreWebView2FrameInfo> {
19244        unsafe {
19245            let mut result__ = core::mem::zeroed();
19246            (windows_core::Interface::vtable(self).ParentFrameInfo)(
19247                windows_core::Interface::as_raw(self),
19248                &mut result__,
19249            )
19250            .and_then(|| windows_core::Type::from_abi(result__))
19251        }
19252    }
19253    pub unsafe fn FrameId(&self, id: *mut u32) -> windows_core::Result<()> {
19254        unsafe {
19255            (windows_core::Interface::vtable(self).FrameId)(
19256                windows_core::Interface::as_raw(self),
19257                id as _,
19258            )
19259            .ok()
19260        }
19261    }
19262    pub unsafe fn FrameKind(&self, kind: *mut COREWEBVIEW2_FRAME_KIND) -> windows_core::Result<()> {
19263        unsafe {
19264            (windows_core::Interface::vtable(self).FrameKind)(
19265                windows_core::Interface::as_raw(self),
19266                kind as _,
19267            )
19268            .ok()
19269        }
19270    }
19271}
19272#[repr(C)]
19273#[doc(hidden)]
19274pub struct ICoreWebView2FrameInfo2_Vtbl {
19275    pub base__: ICoreWebView2FrameInfo_Vtbl,
19276    pub ParentFrameInfo: unsafe extern "system" fn(
19277        *mut core::ffi::c_void,
19278        *mut *mut core::ffi::c_void,
19279    ) -> windows_core::HRESULT,
19280    pub FrameId:
19281        unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
19282    pub FrameKind: unsafe extern "system" fn(
19283        *mut core::ffi::c_void,
19284        *mut COREWEBVIEW2_FRAME_KIND,
19285    ) -> windows_core::HRESULT,
19286}
19287pub trait ICoreWebView2FrameInfo2_Impl: ICoreWebView2FrameInfo_Impl {
19288    fn ParentFrameInfo(&self) -> windows_core::Result<ICoreWebView2FrameInfo>;
19289    fn FrameId(&self, id: *mut u32) -> windows_core::Result<()>;
19290    fn FrameKind(&self, kind: *mut COREWEBVIEW2_FRAME_KIND) -> windows_core::Result<()>;
19291}
19292impl ICoreWebView2FrameInfo2_Vtbl {
19293    pub const fn new<Identity: ICoreWebView2FrameInfo2_Impl, const OFFSET: isize>() -> Self {
19294        unsafe extern "system" fn ParentFrameInfo<
19295            Identity: ICoreWebView2FrameInfo2_Impl,
19296            const OFFSET: isize,
19297        >(
19298            this: *mut core::ffi::c_void,
19299            frameinfo: *mut *mut core::ffi::c_void,
19300        ) -> windows_core::HRESULT {
19301            unsafe {
19302                let this: &Identity =
19303                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
19304                match ICoreWebView2FrameInfo2_Impl::ParentFrameInfo(this) {
19305                    Ok(ok__) => {
19306                        frameinfo.write(core::mem::transmute(ok__));
19307                        windows_core::HRESULT(0)
19308                    }
19309                    Err(err) => err.into(),
19310                }
19311            }
19312        }
19313        unsafe extern "system" fn FrameId<
19314            Identity: ICoreWebView2FrameInfo2_Impl,
19315            const OFFSET: isize,
19316        >(
19317            this: *mut core::ffi::c_void,
19318            id: *mut u32,
19319        ) -> windows_core::HRESULT {
19320            unsafe {
19321                let this: &Identity =
19322                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
19323                ICoreWebView2FrameInfo2_Impl::FrameId(this, core::mem::transmute_copy(&id)).into()
19324            }
19325        }
19326        unsafe extern "system" fn FrameKind<
19327            Identity: ICoreWebView2FrameInfo2_Impl,
19328            const OFFSET: isize,
19329        >(
19330            this: *mut core::ffi::c_void,
19331            kind: *mut COREWEBVIEW2_FRAME_KIND,
19332        ) -> windows_core::HRESULT {
19333            unsafe {
19334                let this: &Identity =
19335                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
19336                ICoreWebView2FrameInfo2_Impl::FrameKind(this, core::mem::transmute_copy(&kind))
19337                    .into()
19338            }
19339        }
19340        Self {
19341            base__: ICoreWebView2FrameInfo_Vtbl::new::<Identity, OFFSET>(),
19342            ParentFrameInfo: ParentFrameInfo::<Identity, OFFSET>,
19343            FrameId: FrameId::<Identity, OFFSET>,
19344            FrameKind: FrameKind::<Identity, OFFSET>,
19345        }
19346    }
19347    pub fn matches(iid: &windows_core::GUID) -> bool {
19348        iid == &<ICoreWebView2FrameInfo2 as windows_core::Interface>::IID
19349            || iid == &<ICoreWebView2FrameInfo as windows_core::Interface>::IID
19350    }
19351}
19352impl windows_core::RuntimeName for ICoreWebView2FrameInfo2 {}
19353windows_core::imp::define_interface!(
19354    ICoreWebView2FrameInfoCollection,
19355    ICoreWebView2FrameInfoCollection_Vtbl,
19356    0x8f834154_d38e_4d90_affb_6800a7272839
19357);
19358windows_core::imp::interface_hierarchy!(ICoreWebView2FrameInfoCollection, windows_core::IUnknown);
19359impl ICoreWebView2FrameInfoCollection {
19360    pub unsafe fn GetIterator(
19361        &self,
19362    ) -> windows_core::Result<ICoreWebView2FrameInfoCollectionIterator> {
19363        unsafe {
19364            let mut result__ = core::mem::zeroed();
19365            (windows_core::Interface::vtable(self).GetIterator)(
19366                windows_core::Interface::as_raw(self),
19367                &mut result__,
19368            )
19369            .and_then(|| windows_core::Type::from_abi(result__))
19370        }
19371    }
19372}
19373#[repr(C)]
19374#[doc(hidden)]
19375pub struct ICoreWebView2FrameInfoCollection_Vtbl {
19376    pub base__: windows_core::IUnknown_Vtbl,
19377    pub GetIterator: unsafe extern "system" fn(
19378        *mut core::ffi::c_void,
19379        *mut *mut core::ffi::c_void,
19380    ) -> windows_core::HRESULT,
19381}
19382pub trait ICoreWebView2FrameInfoCollection_Impl: windows_core::IUnknownImpl {
19383    fn GetIterator(&self) -> windows_core::Result<ICoreWebView2FrameInfoCollectionIterator>;
19384}
19385impl ICoreWebView2FrameInfoCollection_Vtbl {
19386    pub const fn new<Identity: ICoreWebView2FrameInfoCollection_Impl, const OFFSET: isize>() -> Self
19387    {
19388        unsafe extern "system" fn GetIterator<
19389            Identity: ICoreWebView2FrameInfoCollection_Impl,
19390            const OFFSET: isize,
19391        >(
19392            this: *mut core::ffi::c_void,
19393            value: *mut *mut core::ffi::c_void,
19394        ) -> windows_core::HRESULT {
19395            unsafe {
19396                let this: &Identity =
19397                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
19398                match ICoreWebView2FrameInfoCollection_Impl::GetIterator(this) {
19399                    Ok(ok__) => {
19400                        value.write(core::mem::transmute(ok__));
19401                        windows_core::HRESULT(0)
19402                    }
19403                    Err(err) => err.into(),
19404                }
19405            }
19406        }
19407        Self {
19408            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
19409            GetIterator: GetIterator::<Identity, OFFSET>,
19410        }
19411    }
19412    pub fn matches(iid: &windows_core::GUID) -> bool {
19413        iid == &<ICoreWebView2FrameInfoCollection as windows_core::Interface>::IID
19414    }
19415}
19416impl windows_core::RuntimeName for ICoreWebView2FrameInfoCollection {}
19417windows_core::imp::define_interface!(
19418    ICoreWebView2FrameInfoCollectionIterator,
19419    ICoreWebView2FrameInfoCollectionIterator_Vtbl,
19420    0x1bf89e2d_1b2b_4629_b28f_05099b41bb03
19421);
19422windows_core::imp::interface_hierarchy!(
19423    ICoreWebView2FrameInfoCollectionIterator,
19424    windows_core::IUnknown
19425);
19426impl ICoreWebView2FrameInfoCollectionIterator {
19427    pub unsafe fn HasCurrent(&self, value: *mut windows_core::BOOL) -> windows_core::Result<()> {
19428        unsafe {
19429            (windows_core::Interface::vtable(self).HasCurrent)(
19430                windows_core::Interface::as_raw(self),
19431                value as _,
19432            )
19433            .ok()
19434        }
19435    }
19436    pub unsafe fn GetCurrent(&self) -> windows_core::Result<ICoreWebView2FrameInfo> {
19437        unsafe {
19438            let mut result__ = core::mem::zeroed();
19439            (windows_core::Interface::vtable(self).GetCurrent)(
19440                windows_core::Interface::as_raw(self),
19441                &mut result__,
19442            )
19443            .and_then(|| windows_core::Type::from_abi(result__))
19444        }
19445    }
19446    pub unsafe fn MoveNext(&self, value: *mut windows_core::BOOL) -> windows_core::Result<()> {
19447        unsafe {
19448            (windows_core::Interface::vtable(self).MoveNext)(
19449                windows_core::Interface::as_raw(self),
19450                value as _,
19451            )
19452            .ok()
19453        }
19454    }
19455}
19456#[repr(C)]
19457#[doc(hidden)]
19458pub struct ICoreWebView2FrameInfoCollectionIterator_Vtbl {
19459    pub base__: windows_core::IUnknown_Vtbl,
19460    pub HasCurrent: unsafe extern "system" fn(
19461        *mut core::ffi::c_void,
19462        *mut windows_core::BOOL,
19463    ) -> windows_core::HRESULT,
19464    pub GetCurrent: unsafe extern "system" fn(
19465        *mut core::ffi::c_void,
19466        *mut *mut core::ffi::c_void,
19467    ) -> windows_core::HRESULT,
19468    pub MoveNext: unsafe extern "system" fn(
19469        *mut core::ffi::c_void,
19470        *mut windows_core::BOOL,
19471    ) -> windows_core::HRESULT,
19472}
19473pub trait ICoreWebView2FrameInfoCollectionIterator_Impl: windows_core::IUnknownImpl {
19474    fn HasCurrent(&self, value: *mut windows_core::BOOL) -> windows_core::Result<()>;
19475    fn GetCurrent(&self) -> windows_core::Result<ICoreWebView2FrameInfo>;
19476    fn MoveNext(&self, value: *mut windows_core::BOOL) -> windows_core::Result<()>;
19477}
19478impl ICoreWebView2FrameInfoCollectionIterator_Vtbl {
19479    pub const fn new<
19480        Identity: ICoreWebView2FrameInfoCollectionIterator_Impl,
19481        const OFFSET: isize,
19482    >() -> Self {
19483        unsafe extern "system" fn HasCurrent<
19484            Identity: ICoreWebView2FrameInfoCollectionIterator_Impl,
19485            const OFFSET: isize,
19486        >(
19487            this: *mut core::ffi::c_void,
19488            value: *mut windows_core::BOOL,
19489        ) -> windows_core::HRESULT {
19490            unsafe {
19491                let this: &Identity =
19492                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
19493                ICoreWebView2FrameInfoCollectionIterator_Impl::HasCurrent(
19494                    this,
19495                    core::mem::transmute_copy(&value),
19496                )
19497                .into()
19498            }
19499        }
19500        unsafe extern "system" fn GetCurrent<
19501            Identity: ICoreWebView2FrameInfoCollectionIterator_Impl,
19502            const OFFSET: isize,
19503        >(
19504            this: *mut core::ffi::c_void,
19505            value: *mut *mut core::ffi::c_void,
19506        ) -> windows_core::HRESULT {
19507            unsafe {
19508                let this: &Identity =
19509                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
19510                match ICoreWebView2FrameInfoCollectionIterator_Impl::GetCurrent(this) {
19511                    Ok(ok__) => {
19512                        value.write(core::mem::transmute(ok__));
19513                        windows_core::HRESULT(0)
19514                    }
19515                    Err(err) => err.into(),
19516                }
19517            }
19518        }
19519        unsafe extern "system" fn MoveNext<
19520            Identity: ICoreWebView2FrameInfoCollectionIterator_Impl,
19521            const OFFSET: isize,
19522        >(
19523            this: *mut core::ffi::c_void,
19524            value: *mut windows_core::BOOL,
19525        ) -> windows_core::HRESULT {
19526            unsafe {
19527                let this: &Identity =
19528                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
19529                ICoreWebView2FrameInfoCollectionIterator_Impl::MoveNext(
19530                    this,
19531                    core::mem::transmute_copy(&value),
19532                )
19533                .into()
19534            }
19535        }
19536        Self {
19537            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
19538            HasCurrent: HasCurrent::<Identity, OFFSET>,
19539            GetCurrent: GetCurrent::<Identity, OFFSET>,
19540            MoveNext: MoveNext::<Identity, OFFSET>,
19541        }
19542    }
19543    pub fn matches(iid: &windows_core::GUID) -> bool {
19544        iid == &<ICoreWebView2FrameInfoCollectionIterator as windows_core::Interface>::IID
19545    }
19546}
19547impl windows_core::RuntimeName for ICoreWebView2FrameInfoCollectionIterator {}
19548windows_core::imp::define_interface!(
19549    ICoreWebView2FrameNameChangedEventHandler,
19550    ICoreWebView2FrameNameChangedEventHandler_Vtbl,
19551    0x435c7dc8_9baa_11eb_a8b3_0242ac130003
19552);
19553windows_core::imp::interface_hierarchy!(
19554    ICoreWebView2FrameNameChangedEventHandler,
19555    windows_core::IUnknown
19556);
19557impl ICoreWebView2FrameNameChangedEventHandler {
19558    pub unsafe fn Invoke<P0, P1>(&self, sender: P0, args: P1) -> windows_core::Result<()>
19559    where
19560        P0: windows_core::Param<ICoreWebView2Frame>,
19561        P1: windows_core::Param<windows_core::IUnknown>,
19562    {
19563        unsafe {
19564            (windows_core::Interface::vtable(self).Invoke)(
19565                windows_core::Interface::as_raw(self),
19566                sender.param().abi(),
19567                args.param().abi(),
19568            )
19569            .ok()
19570        }
19571    }
19572}
19573#[repr(C)]
19574#[doc(hidden)]
19575pub struct ICoreWebView2FrameNameChangedEventHandler_Vtbl {
19576    pub base__: windows_core::IUnknown_Vtbl,
19577    pub Invoke: unsafe extern "system" fn(
19578        *mut core::ffi::c_void,
19579        *mut core::ffi::c_void,
19580        *mut core::ffi::c_void,
19581    ) -> windows_core::HRESULT,
19582}
19583pub trait ICoreWebView2FrameNameChangedEventHandler_Impl: windows_core::IUnknownImpl {
19584    fn Invoke(
19585        &self,
19586        sender: windows_core::Ref<'_, ICoreWebView2Frame>,
19587        args: windows_core::Ref<'_, windows_core::IUnknown>,
19588    ) -> windows_core::Result<()>;
19589}
19590impl ICoreWebView2FrameNameChangedEventHandler_Vtbl {
19591    pub const fn new<
19592        Identity: ICoreWebView2FrameNameChangedEventHandler_Impl,
19593        const OFFSET: isize,
19594    >() -> Self {
19595        unsafe extern "system" fn Invoke<
19596            Identity: ICoreWebView2FrameNameChangedEventHandler_Impl,
19597            const OFFSET: isize,
19598        >(
19599            this: *mut core::ffi::c_void,
19600            sender: *mut core::ffi::c_void,
19601            args: *mut core::ffi::c_void,
19602        ) -> windows_core::HRESULT {
19603            unsafe {
19604                let this: &Identity =
19605                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
19606                ICoreWebView2FrameNameChangedEventHandler_Impl::Invoke(
19607                    this,
19608                    core::mem::transmute_copy(&sender),
19609                    core::mem::transmute_copy(&args),
19610                )
19611                .into()
19612            }
19613        }
19614        Self {
19615            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
19616            Invoke: Invoke::<Identity, OFFSET>,
19617        }
19618    }
19619    pub fn matches(iid: &windows_core::GUID) -> bool {
19620        iid == &<ICoreWebView2FrameNameChangedEventHandler as windows_core::Interface>::IID
19621    }
19622}
19623impl windows_core::RuntimeName for ICoreWebView2FrameNameChangedEventHandler {}
19624windows_core::imp::define_interface!(
19625    ICoreWebView2FrameNavigationCompletedEventHandler,
19626    ICoreWebView2FrameNavigationCompletedEventHandler_Vtbl,
19627    0x609302ad_0e36_4f9a_a210_6a45272842a9
19628);
19629windows_core::imp::interface_hierarchy!(
19630    ICoreWebView2FrameNavigationCompletedEventHandler,
19631    windows_core::IUnknown
19632);
19633impl ICoreWebView2FrameNavigationCompletedEventHandler {
19634    pub unsafe fn Invoke<P0, P1>(&self, sender: P0, args: P1) -> windows_core::Result<()>
19635    where
19636        P0: windows_core::Param<ICoreWebView2Frame>,
19637        P1: windows_core::Param<ICoreWebView2NavigationCompletedEventArgs>,
19638    {
19639        unsafe {
19640            (windows_core::Interface::vtable(self).Invoke)(
19641                windows_core::Interface::as_raw(self),
19642                sender.param().abi(),
19643                args.param().abi(),
19644            )
19645            .ok()
19646        }
19647    }
19648}
19649#[repr(C)]
19650#[doc(hidden)]
19651pub struct ICoreWebView2FrameNavigationCompletedEventHandler_Vtbl {
19652    pub base__: windows_core::IUnknown_Vtbl,
19653    pub Invoke: unsafe extern "system" fn(
19654        *mut core::ffi::c_void,
19655        *mut core::ffi::c_void,
19656        *mut core::ffi::c_void,
19657    ) -> windows_core::HRESULT,
19658}
19659pub trait ICoreWebView2FrameNavigationCompletedEventHandler_Impl:
19660    windows_core::IUnknownImpl
19661{
19662    fn Invoke(
19663        &self,
19664        sender: windows_core::Ref<'_, ICoreWebView2Frame>,
19665        args: windows_core::Ref<'_, ICoreWebView2NavigationCompletedEventArgs>,
19666    ) -> windows_core::Result<()>;
19667}
19668impl ICoreWebView2FrameNavigationCompletedEventHandler_Vtbl {
19669    pub const fn new<
19670        Identity: ICoreWebView2FrameNavigationCompletedEventHandler_Impl,
19671        const OFFSET: isize,
19672    >() -> Self {
19673        unsafe extern "system" fn Invoke<
19674            Identity: ICoreWebView2FrameNavigationCompletedEventHandler_Impl,
19675            const OFFSET: isize,
19676        >(
19677            this: *mut core::ffi::c_void,
19678            sender: *mut core::ffi::c_void,
19679            args: *mut core::ffi::c_void,
19680        ) -> windows_core::HRESULT {
19681            unsafe {
19682                let this: &Identity =
19683                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
19684                ICoreWebView2FrameNavigationCompletedEventHandler_Impl::Invoke(
19685                    this,
19686                    core::mem::transmute_copy(&sender),
19687                    core::mem::transmute_copy(&args),
19688                )
19689                .into()
19690            }
19691        }
19692        Self {
19693            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
19694            Invoke: Invoke::<Identity, OFFSET>,
19695        }
19696    }
19697    pub fn matches(iid: &windows_core::GUID) -> bool {
19698        iid == &<ICoreWebView2FrameNavigationCompletedEventHandler as windows_core::Interface>::IID
19699    }
19700}
19701impl windows_core::RuntimeName for ICoreWebView2FrameNavigationCompletedEventHandler {}
19702windows_core::imp::define_interface!(
19703    ICoreWebView2FrameNavigationStartingEventHandler,
19704    ICoreWebView2FrameNavigationStartingEventHandler_Vtbl,
19705    0xe79908bf_2d5d_4968_83db_263fea2c1da3
19706);
19707windows_core::imp::interface_hierarchy!(
19708    ICoreWebView2FrameNavigationStartingEventHandler,
19709    windows_core::IUnknown
19710);
19711impl ICoreWebView2FrameNavigationStartingEventHandler {
19712    pub unsafe fn Invoke<P0, P1>(&self, sender: P0, args: P1) -> windows_core::Result<()>
19713    where
19714        P0: windows_core::Param<ICoreWebView2Frame>,
19715        P1: windows_core::Param<ICoreWebView2NavigationStartingEventArgs>,
19716    {
19717        unsafe {
19718            (windows_core::Interface::vtable(self).Invoke)(
19719                windows_core::Interface::as_raw(self),
19720                sender.param().abi(),
19721                args.param().abi(),
19722            )
19723            .ok()
19724        }
19725    }
19726}
19727#[repr(C)]
19728#[doc(hidden)]
19729pub struct ICoreWebView2FrameNavigationStartingEventHandler_Vtbl {
19730    pub base__: windows_core::IUnknown_Vtbl,
19731    pub Invoke: unsafe extern "system" fn(
19732        *mut core::ffi::c_void,
19733        *mut core::ffi::c_void,
19734        *mut core::ffi::c_void,
19735    ) -> windows_core::HRESULT,
19736}
19737pub trait ICoreWebView2FrameNavigationStartingEventHandler_Impl:
19738    windows_core::IUnknownImpl
19739{
19740    fn Invoke(
19741        &self,
19742        sender: windows_core::Ref<'_, ICoreWebView2Frame>,
19743        args: windows_core::Ref<'_, ICoreWebView2NavigationStartingEventArgs>,
19744    ) -> windows_core::Result<()>;
19745}
19746impl ICoreWebView2FrameNavigationStartingEventHandler_Vtbl {
19747    pub const fn new<
19748        Identity: ICoreWebView2FrameNavigationStartingEventHandler_Impl,
19749        const OFFSET: isize,
19750    >() -> Self {
19751        unsafe extern "system" fn Invoke<
19752            Identity: ICoreWebView2FrameNavigationStartingEventHandler_Impl,
19753            const OFFSET: isize,
19754        >(
19755            this: *mut core::ffi::c_void,
19756            sender: *mut core::ffi::c_void,
19757            args: *mut core::ffi::c_void,
19758        ) -> windows_core::HRESULT {
19759            unsafe {
19760                let this: &Identity =
19761                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
19762                ICoreWebView2FrameNavigationStartingEventHandler_Impl::Invoke(
19763                    this,
19764                    core::mem::transmute_copy(&sender),
19765                    core::mem::transmute_copy(&args),
19766                )
19767                .into()
19768            }
19769        }
19770        Self {
19771            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
19772            Invoke: Invoke::<Identity, OFFSET>,
19773        }
19774    }
19775    pub fn matches(iid: &windows_core::GUID) -> bool {
19776        iid == &<ICoreWebView2FrameNavigationStartingEventHandler as windows_core::Interface>::IID
19777    }
19778}
19779impl windows_core::RuntimeName for ICoreWebView2FrameNavigationStartingEventHandler {}
19780windows_core::imp::define_interface!(
19781    ICoreWebView2FramePermissionRequestedEventHandler,
19782    ICoreWebView2FramePermissionRequestedEventHandler_Vtbl,
19783    0x845d0edd_8bd8_429b_9915_4821789f23e9
19784);
19785windows_core::imp::interface_hierarchy!(
19786    ICoreWebView2FramePermissionRequestedEventHandler,
19787    windows_core::IUnknown
19788);
19789impl ICoreWebView2FramePermissionRequestedEventHandler {
19790    pub unsafe fn Invoke<P0, P1>(&self, sender: P0, args: P1) -> windows_core::Result<()>
19791    where
19792        P0: windows_core::Param<ICoreWebView2Frame>,
19793        P1: windows_core::Param<ICoreWebView2PermissionRequestedEventArgs2>,
19794    {
19795        unsafe {
19796            (windows_core::Interface::vtable(self).Invoke)(
19797                windows_core::Interface::as_raw(self),
19798                sender.param().abi(),
19799                args.param().abi(),
19800            )
19801            .ok()
19802        }
19803    }
19804}
19805#[repr(C)]
19806#[doc(hidden)]
19807pub struct ICoreWebView2FramePermissionRequestedEventHandler_Vtbl {
19808    pub base__: windows_core::IUnknown_Vtbl,
19809    pub Invoke: unsafe extern "system" fn(
19810        *mut core::ffi::c_void,
19811        *mut core::ffi::c_void,
19812        *mut core::ffi::c_void,
19813    ) -> windows_core::HRESULT,
19814}
19815pub trait ICoreWebView2FramePermissionRequestedEventHandler_Impl:
19816    windows_core::IUnknownImpl
19817{
19818    fn Invoke(
19819        &self,
19820        sender: windows_core::Ref<'_, ICoreWebView2Frame>,
19821        args: windows_core::Ref<'_, ICoreWebView2PermissionRequestedEventArgs2>,
19822    ) -> windows_core::Result<()>;
19823}
19824impl ICoreWebView2FramePermissionRequestedEventHandler_Vtbl {
19825    pub const fn new<
19826        Identity: ICoreWebView2FramePermissionRequestedEventHandler_Impl,
19827        const OFFSET: isize,
19828    >() -> Self {
19829        unsafe extern "system" fn Invoke<
19830            Identity: ICoreWebView2FramePermissionRequestedEventHandler_Impl,
19831            const OFFSET: isize,
19832        >(
19833            this: *mut core::ffi::c_void,
19834            sender: *mut core::ffi::c_void,
19835            args: *mut core::ffi::c_void,
19836        ) -> windows_core::HRESULT {
19837            unsafe {
19838                let this: &Identity =
19839                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
19840                ICoreWebView2FramePermissionRequestedEventHandler_Impl::Invoke(
19841                    this,
19842                    core::mem::transmute_copy(&sender),
19843                    core::mem::transmute_copy(&args),
19844                )
19845                .into()
19846            }
19847        }
19848        Self {
19849            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
19850            Invoke: Invoke::<Identity, OFFSET>,
19851        }
19852    }
19853    pub fn matches(iid: &windows_core::GUID) -> bool {
19854        iid == &<ICoreWebView2FramePermissionRequestedEventHandler as windows_core::Interface>::IID
19855    }
19856}
19857impl windows_core::RuntimeName for ICoreWebView2FramePermissionRequestedEventHandler {}
19858windows_core::imp::define_interface!(
19859    ICoreWebView2FrameScreenCaptureStartingEventHandler,
19860    ICoreWebView2FrameScreenCaptureStartingEventHandler_Vtbl,
19861    0xa6c1d8ad_bb80_59c5_895b_fba1698b9309
19862);
19863windows_core::imp::interface_hierarchy!(
19864    ICoreWebView2FrameScreenCaptureStartingEventHandler,
19865    windows_core::IUnknown
19866);
19867impl ICoreWebView2FrameScreenCaptureStartingEventHandler {
19868    pub unsafe fn Invoke<P0, P1>(&self, sender: P0, args: P1) -> windows_core::Result<()>
19869    where
19870        P0: windows_core::Param<ICoreWebView2Frame>,
19871        P1: windows_core::Param<ICoreWebView2ScreenCaptureStartingEventArgs>,
19872    {
19873        unsafe {
19874            (windows_core::Interface::vtable(self).Invoke)(
19875                windows_core::Interface::as_raw(self),
19876                sender.param().abi(),
19877                args.param().abi(),
19878            )
19879            .ok()
19880        }
19881    }
19882}
19883#[repr(C)]
19884#[doc(hidden)]
19885pub struct ICoreWebView2FrameScreenCaptureStartingEventHandler_Vtbl {
19886    pub base__: windows_core::IUnknown_Vtbl,
19887    pub Invoke: unsafe extern "system" fn(
19888        *mut core::ffi::c_void,
19889        *mut core::ffi::c_void,
19890        *mut core::ffi::c_void,
19891    ) -> windows_core::HRESULT,
19892}
19893pub trait ICoreWebView2FrameScreenCaptureStartingEventHandler_Impl:
19894    windows_core::IUnknownImpl
19895{
19896    fn Invoke(
19897        &self,
19898        sender: windows_core::Ref<'_, ICoreWebView2Frame>,
19899        args: windows_core::Ref<'_, ICoreWebView2ScreenCaptureStartingEventArgs>,
19900    ) -> windows_core::Result<()>;
19901}
19902impl ICoreWebView2FrameScreenCaptureStartingEventHandler_Vtbl {
19903    pub const fn new<
19904        Identity: ICoreWebView2FrameScreenCaptureStartingEventHandler_Impl,
19905        const OFFSET: isize,
19906    >() -> Self {
19907        unsafe extern "system" fn Invoke<
19908            Identity: ICoreWebView2FrameScreenCaptureStartingEventHandler_Impl,
19909            const OFFSET: isize,
19910        >(
19911            this: *mut core::ffi::c_void,
19912            sender: *mut core::ffi::c_void,
19913            args: *mut core::ffi::c_void,
19914        ) -> windows_core::HRESULT {
19915            unsafe {
19916                let this: &Identity =
19917                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
19918                ICoreWebView2FrameScreenCaptureStartingEventHandler_Impl::Invoke(
19919                    this,
19920                    core::mem::transmute_copy(&sender),
19921                    core::mem::transmute_copy(&args),
19922                )
19923                .into()
19924            }
19925        }
19926        Self {
19927            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
19928            Invoke: Invoke::<Identity, OFFSET>,
19929        }
19930    }
19931    pub fn matches(iid: &windows_core::GUID) -> bool {
19932        iid == & < ICoreWebView2FrameScreenCaptureStartingEventHandler as windows_core::Interface >::IID
19933    }
19934}
19935impl windows_core::RuntimeName for ICoreWebView2FrameScreenCaptureStartingEventHandler {}
19936windows_core::imp::define_interface!(
19937    ICoreWebView2FrameWebMessageReceivedEventHandler,
19938    ICoreWebView2FrameWebMessageReceivedEventHandler_Vtbl,
19939    0xe371e005_6d1d_4517_934b_a8f1629c62a5
19940);
19941windows_core::imp::interface_hierarchy!(
19942    ICoreWebView2FrameWebMessageReceivedEventHandler,
19943    windows_core::IUnknown
19944);
19945impl ICoreWebView2FrameWebMessageReceivedEventHandler {
19946    pub unsafe fn Invoke<P0, P1>(&self, sender: P0, args: P1) -> windows_core::Result<()>
19947    where
19948        P0: windows_core::Param<ICoreWebView2Frame>,
19949        P1: windows_core::Param<ICoreWebView2WebMessageReceivedEventArgs>,
19950    {
19951        unsafe {
19952            (windows_core::Interface::vtable(self).Invoke)(
19953                windows_core::Interface::as_raw(self),
19954                sender.param().abi(),
19955                args.param().abi(),
19956            )
19957            .ok()
19958        }
19959    }
19960}
19961#[repr(C)]
19962#[doc(hidden)]
19963pub struct ICoreWebView2FrameWebMessageReceivedEventHandler_Vtbl {
19964    pub base__: windows_core::IUnknown_Vtbl,
19965    pub Invoke: unsafe extern "system" fn(
19966        *mut core::ffi::c_void,
19967        *mut core::ffi::c_void,
19968        *mut core::ffi::c_void,
19969    ) -> windows_core::HRESULT,
19970}
19971pub trait ICoreWebView2FrameWebMessageReceivedEventHandler_Impl:
19972    windows_core::IUnknownImpl
19973{
19974    fn Invoke(
19975        &self,
19976        sender: windows_core::Ref<'_, ICoreWebView2Frame>,
19977        args: windows_core::Ref<'_, ICoreWebView2WebMessageReceivedEventArgs>,
19978    ) -> windows_core::Result<()>;
19979}
19980impl ICoreWebView2FrameWebMessageReceivedEventHandler_Vtbl {
19981    pub const fn new<
19982        Identity: ICoreWebView2FrameWebMessageReceivedEventHandler_Impl,
19983        const OFFSET: isize,
19984    >() -> Self {
19985        unsafe extern "system" fn Invoke<
19986            Identity: ICoreWebView2FrameWebMessageReceivedEventHandler_Impl,
19987            const OFFSET: isize,
19988        >(
19989            this: *mut core::ffi::c_void,
19990            sender: *mut core::ffi::c_void,
19991            args: *mut core::ffi::c_void,
19992        ) -> windows_core::HRESULT {
19993            unsafe {
19994                let this: &Identity =
19995                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
19996                ICoreWebView2FrameWebMessageReceivedEventHandler_Impl::Invoke(
19997                    this,
19998                    core::mem::transmute_copy(&sender),
19999                    core::mem::transmute_copy(&args),
20000                )
20001                .into()
20002            }
20003        }
20004        Self {
20005            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
20006            Invoke: Invoke::<Identity, OFFSET>,
20007        }
20008    }
20009    pub fn matches(iid: &windows_core::GUID) -> bool {
20010        iid == &<ICoreWebView2FrameWebMessageReceivedEventHandler as windows_core::Interface>::IID
20011    }
20012}
20013impl windows_core::RuntimeName for ICoreWebView2FrameWebMessageReceivedEventHandler {}
20014windows_core::imp::define_interface!(
20015    ICoreWebView2GetCookiesCompletedHandler,
20016    ICoreWebView2GetCookiesCompletedHandler_Vtbl,
20017    0x5a4f5069_5c15_47c3_8646_f4de1c116670
20018);
20019windows_core::imp::interface_hierarchy!(
20020    ICoreWebView2GetCookiesCompletedHandler,
20021    windows_core::IUnknown
20022);
20023impl ICoreWebView2GetCookiesCompletedHandler {
20024    pub unsafe fn Invoke<P1>(
20025        &self,
20026        errorcode: windows_core::HRESULT,
20027        result: P1,
20028    ) -> windows_core::Result<()>
20029    where
20030        P1: windows_core::Param<ICoreWebView2CookieList>,
20031    {
20032        unsafe {
20033            (windows_core::Interface::vtable(self).Invoke)(
20034                windows_core::Interface::as_raw(self),
20035                errorcode,
20036                result.param().abi(),
20037            )
20038            .ok()
20039        }
20040    }
20041}
20042#[repr(C)]
20043#[doc(hidden)]
20044pub struct ICoreWebView2GetCookiesCompletedHandler_Vtbl {
20045    pub base__: windows_core::IUnknown_Vtbl,
20046    pub Invoke: unsafe extern "system" fn(
20047        *mut core::ffi::c_void,
20048        windows_core::HRESULT,
20049        *mut core::ffi::c_void,
20050    ) -> windows_core::HRESULT,
20051}
20052pub trait ICoreWebView2GetCookiesCompletedHandler_Impl: windows_core::IUnknownImpl {
20053    fn Invoke(
20054        &self,
20055        errorcode: windows_core::HRESULT,
20056        result: windows_core::Ref<'_, ICoreWebView2CookieList>,
20057    ) -> windows_core::Result<()>;
20058}
20059impl ICoreWebView2GetCookiesCompletedHandler_Vtbl {
20060    pub const fn new<
20061        Identity: ICoreWebView2GetCookiesCompletedHandler_Impl,
20062        const OFFSET: isize,
20063    >() -> Self {
20064        unsafe extern "system" fn Invoke<
20065            Identity: ICoreWebView2GetCookiesCompletedHandler_Impl,
20066            const OFFSET: isize,
20067        >(
20068            this: *mut core::ffi::c_void,
20069            errorcode: windows_core::HRESULT,
20070            result: *mut core::ffi::c_void,
20071        ) -> windows_core::HRESULT {
20072            unsafe {
20073                let this: &Identity =
20074                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
20075                ICoreWebView2GetCookiesCompletedHandler_Impl::Invoke(
20076                    this,
20077                    core::mem::transmute_copy(&errorcode),
20078                    core::mem::transmute_copy(&result),
20079                )
20080                .into()
20081            }
20082        }
20083        Self {
20084            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
20085            Invoke: Invoke::<Identity, OFFSET>,
20086        }
20087    }
20088    pub fn matches(iid: &windows_core::GUID) -> bool {
20089        iid == &<ICoreWebView2GetCookiesCompletedHandler as windows_core::Interface>::IID
20090    }
20091}
20092impl windows_core::RuntimeName for ICoreWebView2GetCookiesCompletedHandler {}
20093windows_core::imp::define_interface!(
20094    ICoreWebView2GetFaviconCompletedHandler,
20095    ICoreWebView2GetFaviconCompletedHandler_Vtbl,
20096    0xa2508329_7da8_49d7_8c05_fa125e4aee8d
20097);
20098windows_core::imp::interface_hierarchy!(
20099    ICoreWebView2GetFaviconCompletedHandler,
20100    windows_core::IUnknown
20101);
20102impl ICoreWebView2GetFaviconCompletedHandler {
20103    pub unsafe fn Invoke<P1>(
20104        &self,
20105        errorcode: windows_core::HRESULT,
20106        result: P1,
20107    ) -> windows_core::Result<()>
20108    where
20109        P1: windows_core::Param<windows::Win32::System::Com::IStream>,
20110    {
20111        unsafe {
20112            (windows_core::Interface::vtable(self).Invoke)(
20113                windows_core::Interface::as_raw(self),
20114                errorcode,
20115                result.param().abi(),
20116            )
20117            .ok()
20118        }
20119    }
20120}
20121#[repr(C)]
20122#[doc(hidden)]
20123pub struct ICoreWebView2GetFaviconCompletedHandler_Vtbl {
20124    pub base__: windows_core::IUnknown_Vtbl,
20125    pub Invoke: unsafe extern "system" fn(
20126        *mut core::ffi::c_void,
20127        windows_core::HRESULT,
20128        *mut core::ffi::c_void,
20129    ) -> windows_core::HRESULT,
20130}
20131pub trait ICoreWebView2GetFaviconCompletedHandler_Impl: windows_core::IUnknownImpl {
20132    fn Invoke(
20133        &self,
20134        errorcode: windows_core::HRESULT,
20135        result: windows_core::Ref<'_, windows::Win32::System::Com::IStream>,
20136    ) -> windows_core::Result<()>;
20137}
20138impl ICoreWebView2GetFaviconCompletedHandler_Vtbl {
20139    pub const fn new<
20140        Identity: ICoreWebView2GetFaviconCompletedHandler_Impl,
20141        const OFFSET: isize,
20142    >() -> Self {
20143        unsafe extern "system" fn Invoke<
20144            Identity: ICoreWebView2GetFaviconCompletedHandler_Impl,
20145            const OFFSET: isize,
20146        >(
20147            this: *mut core::ffi::c_void,
20148            errorcode: windows_core::HRESULT,
20149            result: *mut core::ffi::c_void,
20150        ) -> windows_core::HRESULT {
20151            unsafe {
20152                let this: &Identity =
20153                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
20154                ICoreWebView2GetFaviconCompletedHandler_Impl::Invoke(
20155                    this,
20156                    core::mem::transmute_copy(&errorcode),
20157                    core::mem::transmute_copy(&result),
20158                )
20159                .into()
20160            }
20161        }
20162        Self {
20163            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
20164            Invoke: Invoke::<Identity, OFFSET>,
20165        }
20166    }
20167    pub fn matches(iid: &windows_core::GUID) -> bool {
20168        iid == &<ICoreWebView2GetFaviconCompletedHandler as windows_core::Interface>::IID
20169    }
20170}
20171impl windows_core::RuntimeName for ICoreWebView2GetFaviconCompletedHandler {}
20172windows_core::imp::define_interface!(
20173    ICoreWebView2GetNonDefaultPermissionSettingsCompletedHandler,
20174    ICoreWebView2GetNonDefaultPermissionSettingsCompletedHandler_Vtbl,
20175    0x38274481_a15c_4563_94cf_990edc9aeb95
20176);
20177windows_core::imp::interface_hierarchy!(
20178    ICoreWebView2GetNonDefaultPermissionSettingsCompletedHandler,
20179    windows_core::IUnknown
20180);
20181impl ICoreWebView2GetNonDefaultPermissionSettingsCompletedHandler {
20182    pub unsafe fn Invoke<P1>(
20183        &self,
20184        errorcode: windows_core::HRESULT,
20185        result: P1,
20186    ) -> windows_core::Result<()>
20187    where
20188        P1: windows_core::Param<ICoreWebView2PermissionSettingCollectionView>,
20189    {
20190        unsafe {
20191            (windows_core::Interface::vtable(self).Invoke)(
20192                windows_core::Interface::as_raw(self),
20193                errorcode,
20194                result.param().abi(),
20195            )
20196            .ok()
20197        }
20198    }
20199}
20200#[repr(C)]
20201#[doc(hidden)]
20202pub struct ICoreWebView2GetNonDefaultPermissionSettingsCompletedHandler_Vtbl {
20203    pub base__: windows_core::IUnknown_Vtbl,
20204    pub Invoke: unsafe extern "system" fn(
20205        *mut core::ffi::c_void,
20206        windows_core::HRESULT,
20207        *mut core::ffi::c_void,
20208    ) -> windows_core::HRESULT,
20209}
20210pub trait ICoreWebView2GetNonDefaultPermissionSettingsCompletedHandler_Impl:
20211    windows_core::IUnknownImpl
20212{
20213    fn Invoke(
20214        &self,
20215        errorcode: windows_core::HRESULT,
20216        result: windows_core::Ref<'_, ICoreWebView2PermissionSettingCollectionView>,
20217    ) -> windows_core::Result<()>;
20218}
20219impl ICoreWebView2GetNonDefaultPermissionSettingsCompletedHandler_Vtbl {
20220    pub const fn new<
20221        Identity: ICoreWebView2GetNonDefaultPermissionSettingsCompletedHandler_Impl,
20222        const OFFSET: isize,
20223    >() -> Self {
20224        unsafe extern "system" fn Invoke<
20225            Identity: ICoreWebView2GetNonDefaultPermissionSettingsCompletedHandler_Impl,
20226            const OFFSET: isize,
20227        >(
20228            this: *mut core::ffi::c_void,
20229            errorcode: windows_core::HRESULT,
20230            result: *mut core::ffi::c_void,
20231        ) -> windows_core::HRESULT {
20232            unsafe {
20233                let this: &Identity =
20234                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
20235                ICoreWebView2GetNonDefaultPermissionSettingsCompletedHandler_Impl::Invoke(
20236                    this,
20237                    core::mem::transmute_copy(&errorcode),
20238                    core::mem::transmute_copy(&result),
20239                )
20240                .into()
20241            }
20242        }
20243        Self {
20244            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
20245            Invoke: Invoke::<Identity, OFFSET>,
20246        }
20247    }
20248    pub fn matches(iid: &windows_core::GUID) -> bool {
20249        iid == & < ICoreWebView2GetNonDefaultPermissionSettingsCompletedHandler as windows_core::Interface >::IID
20250    }
20251}
20252impl windows_core::RuntimeName for ICoreWebView2GetNonDefaultPermissionSettingsCompletedHandler {}
20253windows_core::imp::define_interface!(
20254    ICoreWebView2GetProcessExtendedInfosCompletedHandler,
20255    ICoreWebView2GetProcessExtendedInfosCompletedHandler_Vtbl,
20256    0xf45e55aa_3bc2_11ee_be56_0242ac120002
20257);
20258windows_core::imp::interface_hierarchy!(
20259    ICoreWebView2GetProcessExtendedInfosCompletedHandler,
20260    windows_core::IUnknown
20261);
20262impl ICoreWebView2GetProcessExtendedInfosCompletedHandler {
20263    pub unsafe fn Invoke<P1>(
20264        &self,
20265        errorcode: windows_core::HRESULT,
20266        result: P1,
20267    ) -> windows_core::Result<()>
20268    where
20269        P1: windows_core::Param<ICoreWebView2ProcessExtendedInfoCollection>,
20270    {
20271        unsafe {
20272            (windows_core::Interface::vtable(self).Invoke)(
20273                windows_core::Interface::as_raw(self),
20274                errorcode,
20275                result.param().abi(),
20276            )
20277            .ok()
20278        }
20279    }
20280}
20281#[repr(C)]
20282#[doc(hidden)]
20283pub struct ICoreWebView2GetProcessExtendedInfosCompletedHandler_Vtbl {
20284    pub base__: windows_core::IUnknown_Vtbl,
20285    pub Invoke: unsafe extern "system" fn(
20286        *mut core::ffi::c_void,
20287        windows_core::HRESULT,
20288        *mut core::ffi::c_void,
20289    ) -> windows_core::HRESULT,
20290}
20291pub trait ICoreWebView2GetProcessExtendedInfosCompletedHandler_Impl:
20292    windows_core::IUnknownImpl
20293{
20294    fn Invoke(
20295        &self,
20296        errorcode: windows_core::HRESULT,
20297        result: windows_core::Ref<'_, ICoreWebView2ProcessExtendedInfoCollection>,
20298    ) -> windows_core::Result<()>;
20299}
20300impl ICoreWebView2GetProcessExtendedInfosCompletedHandler_Vtbl {
20301    pub const fn new<
20302        Identity: ICoreWebView2GetProcessExtendedInfosCompletedHandler_Impl,
20303        const OFFSET: isize,
20304    >() -> Self {
20305        unsafe extern "system" fn Invoke<
20306            Identity: ICoreWebView2GetProcessExtendedInfosCompletedHandler_Impl,
20307            const OFFSET: isize,
20308        >(
20309            this: *mut core::ffi::c_void,
20310            errorcode: windows_core::HRESULT,
20311            result: *mut core::ffi::c_void,
20312        ) -> windows_core::HRESULT {
20313            unsafe {
20314                let this: &Identity =
20315                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
20316                ICoreWebView2GetProcessExtendedInfosCompletedHandler_Impl::Invoke(
20317                    this,
20318                    core::mem::transmute_copy(&errorcode),
20319                    core::mem::transmute_copy(&result),
20320                )
20321                .into()
20322            }
20323        }
20324        Self {
20325            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
20326            Invoke: Invoke::<Identity, OFFSET>,
20327        }
20328    }
20329    pub fn matches(iid: &windows_core::GUID) -> bool {
20330        iid == & < ICoreWebView2GetProcessExtendedInfosCompletedHandler as windows_core::Interface >::IID
20331    }
20332}
20333impl windows_core::RuntimeName for ICoreWebView2GetProcessExtendedInfosCompletedHandler {}
20334windows_core::imp::define_interface!(
20335    ICoreWebView2HistoryChangedEventHandler,
20336    ICoreWebView2HistoryChangedEventHandler_Vtbl,
20337    0xc79a420c_efd9_4058_9295_3e8b4bcab645
20338);
20339windows_core::imp::interface_hierarchy!(
20340    ICoreWebView2HistoryChangedEventHandler,
20341    windows_core::IUnknown
20342);
20343impl ICoreWebView2HistoryChangedEventHandler {
20344    pub unsafe fn Invoke<P0, P1>(&self, sender: P0, args: P1) -> windows_core::Result<()>
20345    where
20346        P0: windows_core::Param<ICoreWebView2>,
20347        P1: windows_core::Param<windows_core::IUnknown>,
20348    {
20349        unsafe {
20350            (windows_core::Interface::vtable(self).Invoke)(
20351                windows_core::Interface::as_raw(self),
20352                sender.param().abi(),
20353                args.param().abi(),
20354            )
20355            .ok()
20356        }
20357    }
20358}
20359#[repr(C)]
20360#[doc(hidden)]
20361pub struct ICoreWebView2HistoryChangedEventHandler_Vtbl {
20362    pub base__: windows_core::IUnknown_Vtbl,
20363    pub Invoke: unsafe extern "system" fn(
20364        *mut core::ffi::c_void,
20365        *mut core::ffi::c_void,
20366        *mut core::ffi::c_void,
20367    ) -> windows_core::HRESULT,
20368}
20369pub trait ICoreWebView2HistoryChangedEventHandler_Impl: windows_core::IUnknownImpl {
20370    fn Invoke(
20371        &self,
20372        sender: windows_core::Ref<'_, ICoreWebView2>,
20373        args: windows_core::Ref<'_, windows_core::IUnknown>,
20374    ) -> windows_core::Result<()>;
20375}
20376impl ICoreWebView2HistoryChangedEventHandler_Vtbl {
20377    pub const fn new<
20378        Identity: ICoreWebView2HistoryChangedEventHandler_Impl,
20379        const OFFSET: isize,
20380    >() -> Self {
20381        unsafe extern "system" fn Invoke<
20382            Identity: ICoreWebView2HistoryChangedEventHandler_Impl,
20383            const OFFSET: isize,
20384        >(
20385            this: *mut core::ffi::c_void,
20386            sender: *mut core::ffi::c_void,
20387            args: *mut core::ffi::c_void,
20388        ) -> windows_core::HRESULT {
20389            unsafe {
20390                let this: &Identity =
20391                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
20392                ICoreWebView2HistoryChangedEventHandler_Impl::Invoke(
20393                    this,
20394                    core::mem::transmute_copy(&sender),
20395                    core::mem::transmute_copy(&args),
20396                )
20397                .into()
20398            }
20399        }
20400        Self {
20401            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
20402            Invoke: Invoke::<Identity, OFFSET>,
20403        }
20404    }
20405    pub fn matches(iid: &windows_core::GUID) -> bool {
20406        iid == &<ICoreWebView2HistoryChangedEventHandler as windows_core::Interface>::IID
20407    }
20408}
20409impl windows_core::RuntimeName for ICoreWebView2HistoryChangedEventHandler {}
20410windows_core::imp::define_interface!(
20411    ICoreWebView2HttpHeadersCollectionIterator,
20412    ICoreWebView2HttpHeadersCollectionIterator_Vtbl,
20413    0x0702fc30_f43b_47bb_ab52_a42cb552ad9f
20414);
20415windows_core::imp::interface_hierarchy!(
20416    ICoreWebView2HttpHeadersCollectionIterator,
20417    windows_core::IUnknown
20418);
20419impl ICoreWebView2HttpHeadersCollectionIterator {
20420    pub unsafe fn GetCurrentHeader(
20421        &self,
20422        name: *mut windows_core::PWSTR,
20423        value: *mut windows_core::PWSTR,
20424    ) -> windows_core::Result<()> {
20425        unsafe {
20426            (windows_core::Interface::vtable(self).GetCurrentHeader)(
20427                windows_core::Interface::as_raw(self),
20428                name as _,
20429                value as _,
20430            )
20431            .ok()
20432        }
20433    }
20434    pub unsafe fn HasCurrentHeader(
20435        &self,
20436        hascurrent: *mut windows_core::BOOL,
20437    ) -> windows_core::Result<()> {
20438        unsafe {
20439            (windows_core::Interface::vtable(self).HasCurrentHeader)(
20440                windows_core::Interface::as_raw(self),
20441                hascurrent as _,
20442            )
20443            .ok()
20444        }
20445    }
20446    pub unsafe fn MoveNext(&self, hasnext: *mut windows_core::BOOL) -> windows_core::Result<()> {
20447        unsafe {
20448            (windows_core::Interface::vtable(self).MoveNext)(
20449                windows_core::Interface::as_raw(self),
20450                hasnext as _,
20451            )
20452            .ok()
20453        }
20454    }
20455}
20456#[repr(C)]
20457#[doc(hidden)]
20458pub struct ICoreWebView2HttpHeadersCollectionIterator_Vtbl {
20459    pub base__: windows_core::IUnknown_Vtbl,
20460    pub GetCurrentHeader: unsafe extern "system" fn(
20461        *mut core::ffi::c_void,
20462        *mut windows_core::PWSTR,
20463        *mut windows_core::PWSTR,
20464    ) -> windows_core::HRESULT,
20465    pub HasCurrentHeader: unsafe extern "system" fn(
20466        *mut core::ffi::c_void,
20467        *mut windows_core::BOOL,
20468    ) -> windows_core::HRESULT,
20469    pub MoveNext: unsafe extern "system" fn(
20470        *mut core::ffi::c_void,
20471        *mut windows_core::BOOL,
20472    ) -> windows_core::HRESULT,
20473}
20474pub trait ICoreWebView2HttpHeadersCollectionIterator_Impl: windows_core::IUnknownImpl {
20475    fn GetCurrentHeader(
20476        &self,
20477        name: *mut windows_core::PWSTR,
20478        value: *mut windows_core::PWSTR,
20479    ) -> windows_core::Result<()>;
20480    fn HasCurrentHeader(&self, hascurrent: *mut windows_core::BOOL) -> windows_core::Result<()>;
20481    fn MoveNext(&self, hasnext: *mut windows_core::BOOL) -> windows_core::Result<()>;
20482}
20483impl ICoreWebView2HttpHeadersCollectionIterator_Vtbl {
20484    pub const fn new<
20485        Identity: ICoreWebView2HttpHeadersCollectionIterator_Impl,
20486        const OFFSET: isize,
20487    >() -> Self {
20488        unsafe extern "system" fn GetCurrentHeader<
20489            Identity: ICoreWebView2HttpHeadersCollectionIterator_Impl,
20490            const OFFSET: isize,
20491        >(
20492            this: *mut core::ffi::c_void,
20493            name: *mut windows_core::PWSTR,
20494            value: *mut windows_core::PWSTR,
20495        ) -> windows_core::HRESULT {
20496            unsafe {
20497                let this: &Identity =
20498                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
20499                ICoreWebView2HttpHeadersCollectionIterator_Impl::GetCurrentHeader(
20500                    this,
20501                    core::mem::transmute_copy(&name),
20502                    core::mem::transmute_copy(&value),
20503                )
20504                .into()
20505            }
20506        }
20507        unsafe extern "system" fn HasCurrentHeader<
20508            Identity: ICoreWebView2HttpHeadersCollectionIterator_Impl,
20509            const OFFSET: isize,
20510        >(
20511            this: *mut core::ffi::c_void,
20512            hascurrent: *mut windows_core::BOOL,
20513        ) -> windows_core::HRESULT {
20514            unsafe {
20515                let this: &Identity =
20516                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
20517                ICoreWebView2HttpHeadersCollectionIterator_Impl::HasCurrentHeader(
20518                    this,
20519                    core::mem::transmute_copy(&hascurrent),
20520                )
20521                .into()
20522            }
20523        }
20524        unsafe extern "system" fn MoveNext<
20525            Identity: ICoreWebView2HttpHeadersCollectionIterator_Impl,
20526            const OFFSET: isize,
20527        >(
20528            this: *mut core::ffi::c_void,
20529            hasnext: *mut windows_core::BOOL,
20530        ) -> windows_core::HRESULT {
20531            unsafe {
20532                let this: &Identity =
20533                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
20534                ICoreWebView2HttpHeadersCollectionIterator_Impl::MoveNext(
20535                    this,
20536                    core::mem::transmute_copy(&hasnext),
20537                )
20538                .into()
20539            }
20540        }
20541        Self {
20542            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
20543            GetCurrentHeader: GetCurrentHeader::<Identity, OFFSET>,
20544            HasCurrentHeader: HasCurrentHeader::<Identity, OFFSET>,
20545            MoveNext: MoveNext::<Identity, OFFSET>,
20546        }
20547    }
20548    pub fn matches(iid: &windows_core::GUID) -> bool {
20549        iid == &<ICoreWebView2HttpHeadersCollectionIterator as windows_core::Interface>::IID
20550    }
20551}
20552impl windows_core::RuntimeName for ICoreWebView2HttpHeadersCollectionIterator {}
20553windows_core::imp::define_interface!(
20554    ICoreWebView2HttpRequestHeaders,
20555    ICoreWebView2HttpRequestHeaders_Vtbl,
20556    0xe86cac0e_5523_465c_b536_8fb9fc8c8c60
20557);
20558windows_core::imp::interface_hierarchy!(ICoreWebView2HttpRequestHeaders, windows_core::IUnknown);
20559impl ICoreWebView2HttpRequestHeaders {
20560    pub unsafe fn GetHeader<P0>(
20561        &self,
20562        name: P0,
20563        value: *mut windows_core::PWSTR,
20564    ) -> windows_core::Result<()>
20565    where
20566        P0: windows_core::Param<windows_core::PCWSTR>,
20567    {
20568        unsafe {
20569            (windows_core::Interface::vtable(self).GetHeader)(
20570                windows_core::Interface::as_raw(self),
20571                name.param().abi(),
20572                value as _,
20573            )
20574            .ok()
20575        }
20576    }
20577    pub unsafe fn GetHeaders<P0>(
20578        &self,
20579        name: P0,
20580    ) -> windows_core::Result<ICoreWebView2HttpHeadersCollectionIterator>
20581    where
20582        P0: windows_core::Param<windows_core::PCWSTR>,
20583    {
20584        unsafe {
20585            let mut result__ = core::mem::zeroed();
20586            (windows_core::Interface::vtable(self).GetHeaders)(
20587                windows_core::Interface::as_raw(self),
20588                name.param().abi(),
20589                &mut result__,
20590            )
20591            .and_then(|| windows_core::Type::from_abi(result__))
20592        }
20593    }
20594    pub unsafe fn Contains<P0>(
20595        &self,
20596        name: P0,
20597        value: *mut windows_core::BOOL,
20598    ) -> windows_core::Result<()>
20599    where
20600        P0: windows_core::Param<windows_core::PCWSTR>,
20601    {
20602        unsafe {
20603            (windows_core::Interface::vtable(self).Contains)(
20604                windows_core::Interface::as_raw(self),
20605                name.param().abi(),
20606                value as _,
20607            )
20608            .ok()
20609        }
20610    }
20611    pub unsafe fn SetHeader<P0, P1>(&self, name: P0, value: P1) -> windows_core::Result<()>
20612    where
20613        P0: windows_core::Param<windows_core::PCWSTR>,
20614        P1: windows_core::Param<windows_core::PCWSTR>,
20615    {
20616        unsafe {
20617            (windows_core::Interface::vtable(self).SetHeader)(
20618                windows_core::Interface::as_raw(self),
20619                name.param().abi(),
20620                value.param().abi(),
20621            )
20622            .ok()
20623        }
20624    }
20625    pub unsafe fn RemoveHeader<P0>(&self, name: P0) -> windows_core::Result<()>
20626    where
20627        P0: windows_core::Param<windows_core::PCWSTR>,
20628    {
20629        unsafe {
20630            (windows_core::Interface::vtable(self).RemoveHeader)(
20631                windows_core::Interface::as_raw(self),
20632                name.param().abi(),
20633            )
20634            .ok()
20635        }
20636    }
20637    pub unsafe fn GetIterator(
20638        &self,
20639    ) -> windows_core::Result<ICoreWebView2HttpHeadersCollectionIterator> {
20640        unsafe {
20641            let mut result__ = core::mem::zeroed();
20642            (windows_core::Interface::vtable(self).GetIterator)(
20643                windows_core::Interface::as_raw(self),
20644                &mut result__,
20645            )
20646            .and_then(|| windows_core::Type::from_abi(result__))
20647        }
20648    }
20649}
20650#[repr(C)]
20651#[doc(hidden)]
20652pub struct ICoreWebView2HttpRequestHeaders_Vtbl {
20653    pub base__: windows_core::IUnknown_Vtbl,
20654    pub GetHeader: unsafe extern "system" fn(
20655        *mut core::ffi::c_void,
20656        windows_core::PCWSTR,
20657        *mut windows_core::PWSTR,
20658    ) -> windows_core::HRESULT,
20659    pub GetHeaders: unsafe extern "system" fn(
20660        *mut core::ffi::c_void,
20661        windows_core::PCWSTR,
20662        *mut *mut core::ffi::c_void,
20663    ) -> windows_core::HRESULT,
20664    pub Contains: unsafe extern "system" fn(
20665        *mut core::ffi::c_void,
20666        windows_core::PCWSTR,
20667        *mut windows_core::BOOL,
20668    ) -> windows_core::HRESULT,
20669    pub SetHeader: unsafe extern "system" fn(
20670        *mut core::ffi::c_void,
20671        windows_core::PCWSTR,
20672        windows_core::PCWSTR,
20673    ) -> windows_core::HRESULT,
20674    pub RemoveHeader: unsafe extern "system" fn(
20675        *mut core::ffi::c_void,
20676        windows_core::PCWSTR,
20677    ) -> windows_core::HRESULT,
20678    pub GetIterator: unsafe extern "system" fn(
20679        *mut core::ffi::c_void,
20680        *mut *mut core::ffi::c_void,
20681    ) -> windows_core::HRESULT,
20682}
20683pub trait ICoreWebView2HttpRequestHeaders_Impl: windows_core::IUnknownImpl {
20684    fn GetHeader(
20685        &self,
20686        name: &windows_core::PCWSTR,
20687        value: *mut windows_core::PWSTR,
20688    ) -> windows_core::Result<()>;
20689    fn GetHeaders(
20690        &self,
20691        name: &windows_core::PCWSTR,
20692    ) -> windows_core::Result<ICoreWebView2HttpHeadersCollectionIterator>;
20693    fn Contains(
20694        &self,
20695        name: &windows_core::PCWSTR,
20696        value: *mut windows_core::BOOL,
20697    ) -> windows_core::Result<()>;
20698    fn SetHeader(
20699        &self,
20700        name: &windows_core::PCWSTR,
20701        value: &windows_core::PCWSTR,
20702    ) -> windows_core::Result<()>;
20703    fn RemoveHeader(&self, name: &windows_core::PCWSTR) -> windows_core::Result<()>;
20704    fn GetIterator(&self) -> windows_core::Result<ICoreWebView2HttpHeadersCollectionIterator>;
20705}
20706impl ICoreWebView2HttpRequestHeaders_Vtbl {
20707    pub const fn new<Identity: ICoreWebView2HttpRequestHeaders_Impl, const OFFSET: isize>() -> Self
20708    {
20709        unsafe extern "system" fn GetHeader<
20710            Identity: ICoreWebView2HttpRequestHeaders_Impl,
20711            const OFFSET: isize,
20712        >(
20713            this: *mut core::ffi::c_void,
20714            name: windows_core::PCWSTR,
20715            value: *mut windows_core::PWSTR,
20716        ) -> windows_core::HRESULT {
20717            unsafe {
20718                let this: &Identity =
20719                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
20720                ICoreWebView2HttpRequestHeaders_Impl::GetHeader(
20721                    this,
20722                    core::mem::transmute(&name),
20723                    core::mem::transmute_copy(&value),
20724                )
20725                .into()
20726            }
20727        }
20728        unsafe extern "system" fn GetHeaders<
20729            Identity: ICoreWebView2HttpRequestHeaders_Impl,
20730            const OFFSET: isize,
20731        >(
20732            this: *mut core::ffi::c_void,
20733            name: windows_core::PCWSTR,
20734            value: *mut *mut core::ffi::c_void,
20735        ) -> windows_core::HRESULT {
20736            unsafe {
20737                let this: &Identity =
20738                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
20739                match ICoreWebView2HttpRequestHeaders_Impl::GetHeaders(
20740                    this,
20741                    core::mem::transmute(&name),
20742                ) {
20743                    Ok(ok__) => {
20744                        value.write(core::mem::transmute(ok__));
20745                        windows_core::HRESULT(0)
20746                    }
20747                    Err(err) => err.into(),
20748                }
20749            }
20750        }
20751        unsafe extern "system" fn Contains<
20752            Identity: ICoreWebView2HttpRequestHeaders_Impl,
20753            const OFFSET: isize,
20754        >(
20755            this: *mut core::ffi::c_void,
20756            name: windows_core::PCWSTR,
20757            value: *mut windows_core::BOOL,
20758        ) -> windows_core::HRESULT {
20759            unsafe {
20760                let this: &Identity =
20761                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
20762                ICoreWebView2HttpRequestHeaders_Impl::Contains(
20763                    this,
20764                    core::mem::transmute(&name),
20765                    core::mem::transmute_copy(&value),
20766                )
20767                .into()
20768            }
20769        }
20770        unsafe extern "system" fn SetHeader<
20771            Identity: ICoreWebView2HttpRequestHeaders_Impl,
20772            const OFFSET: isize,
20773        >(
20774            this: *mut core::ffi::c_void,
20775            name: windows_core::PCWSTR,
20776            value: windows_core::PCWSTR,
20777        ) -> windows_core::HRESULT {
20778            unsafe {
20779                let this: &Identity =
20780                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
20781                ICoreWebView2HttpRequestHeaders_Impl::SetHeader(
20782                    this,
20783                    core::mem::transmute(&name),
20784                    core::mem::transmute(&value),
20785                )
20786                .into()
20787            }
20788        }
20789        unsafe extern "system" fn RemoveHeader<
20790            Identity: ICoreWebView2HttpRequestHeaders_Impl,
20791            const OFFSET: isize,
20792        >(
20793            this: *mut core::ffi::c_void,
20794            name: windows_core::PCWSTR,
20795        ) -> windows_core::HRESULT {
20796            unsafe {
20797                let this: &Identity =
20798                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
20799                ICoreWebView2HttpRequestHeaders_Impl::RemoveHeader(
20800                    this,
20801                    core::mem::transmute(&name),
20802                )
20803                .into()
20804            }
20805        }
20806        unsafe extern "system" fn GetIterator<
20807            Identity: ICoreWebView2HttpRequestHeaders_Impl,
20808            const OFFSET: isize,
20809        >(
20810            this: *mut core::ffi::c_void,
20811            value: *mut *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                match ICoreWebView2HttpRequestHeaders_Impl::GetIterator(this) {
20817                    Ok(ok__) => {
20818                        value.write(core::mem::transmute(ok__));
20819                        windows_core::HRESULT(0)
20820                    }
20821                    Err(err) => err.into(),
20822                }
20823            }
20824        }
20825        Self {
20826            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
20827            GetHeader: GetHeader::<Identity, OFFSET>,
20828            GetHeaders: GetHeaders::<Identity, OFFSET>,
20829            Contains: Contains::<Identity, OFFSET>,
20830            SetHeader: SetHeader::<Identity, OFFSET>,
20831            RemoveHeader: RemoveHeader::<Identity, OFFSET>,
20832            GetIterator: GetIterator::<Identity, OFFSET>,
20833        }
20834    }
20835    pub fn matches(iid: &windows_core::GUID) -> bool {
20836        iid == &<ICoreWebView2HttpRequestHeaders as windows_core::Interface>::IID
20837    }
20838}
20839impl windows_core::RuntimeName for ICoreWebView2HttpRequestHeaders {}
20840windows_core::imp::define_interface!(
20841    ICoreWebView2HttpResponseHeaders,
20842    ICoreWebView2HttpResponseHeaders_Vtbl,
20843    0x03c5ff5a_9b45_4a88_881c_89a9f328619c
20844);
20845windows_core::imp::interface_hierarchy!(ICoreWebView2HttpResponseHeaders, windows_core::IUnknown);
20846impl ICoreWebView2HttpResponseHeaders {
20847    pub unsafe fn AppendHeader<P0, P1>(&self, name: P0, value: P1) -> windows_core::Result<()>
20848    where
20849        P0: windows_core::Param<windows_core::PCWSTR>,
20850        P1: windows_core::Param<windows_core::PCWSTR>,
20851    {
20852        unsafe {
20853            (windows_core::Interface::vtable(self).AppendHeader)(
20854                windows_core::Interface::as_raw(self),
20855                name.param().abi(),
20856                value.param().abi(),
20857            )
20858            .ok()
20859        }
20860    }
20861    pub unsafe fn Contains<P0>(
20862        &self,
20863        name: P0,
20864        value: *mut windows_core::BOOL,
20865    ) -> windows_core::Result<()>
20866    where
20867        P0: windows_core::Param<windows_core::PCWSTR>,
20868    {
20869        unsafe {
20870            (windows_core::Interface::vtable(self).Contains)(
20871                windows_core::Interface::as_raw(self),
20872                name.param().abi(),
20873                value as _,
20874            )
20875            .ok()
20876        }
20877    }
20878    pub unsafe fn GetHeader<P0>(
20879        &self,
20880        name: P0,
20881        value: *mut windows_core::PWSTR,
20882    ) -> windows_core::Result<()>
20883    where
20884        P0: windows_core::Param<windows_core::PCWSTR>,
20885    {
20886        unsafe {
20887            (windows_core::Interface::vtable(self).GetHeader)(
20888                windows_core::Interface::as_raw(self),
20889                name.param().abi(),
20890                value as _,
20891            )
20892            .ok()
20893        }
20894    }
20895    pub unsafe fn GetHeaders<P0>(
20896        &self,
20897        name: P0,
20898    ) -> windows_core::Result<ICoreWebView2HttpHeadersCollectionIterator>
20899    where
20900        P0: windows_core::Param<windows_core::PCWSTR>,
20901    {
20902        unsafe {
20903            let mut result__ = core::mem::zeroed();
20904            (windows_core::Interface::vtable(self).GetHeaders)(
20905                windows_core::Interface::as_raw(self),
20906                name.param().abi(),
20907                &mut result__,
20908            )
20909            .and_then(|| windows_core::Type::from_abi(result__))
20910        }
20911    }
20912    pub unsafe fn GetIterator(
20913        &self,
20914    ) -> windows_core::Result<ICoreWebView2HttpHeadersCollectionIterator> {
20915        unsafe {
20916            let mut result__ = core::mem::zeroed();
20917            (windows_core::Interface::vtable(self).GetIterator)(
20918                windows_core::Interface::as_raw(self),
20919                &mut result__,
20920            )
20921            .and_then(|| windows_core::Type::from_abi(result__))
20922        }
20923    }
20924}
20925#[repr(C)]
20926#[doc(hidden)]
20927pub struct ICoreWebView2HttpResponseHeaders_Vtbl {
20928    pub base__: windows_core::IUnknown_Vtbl,
20929    pub AppendHeader: unsafe extern "system" fn(
20930        *mut core::ffi::c_void,
20931        windows_core::PCWSTR,
20932        windows_core::PCWSTR,
20933    ) -> windows_core::HRESULT,
20934    pub Contains: unsafe extern "system" fn(
20935        *mut core::ffi::c_void,
20936        windows_core::PCWSTR,
20937        *mut windows_core::BOOL,
20938    ) -> windows_core::HRESULT,
20939    pub GetHeader: unsafe extern "system" fn(
20940        *mut core::ffi::c_void,
20941        windows_core::PCWSTR,
20942        *mut windows_core::PWSTR,
20943    ) -> windows_core::HRESULT,
20944    pub GetHeaders: unsafe extern "system" fn(
20945        *mut core::ffi::c_void,
20946        windows_core::PCWSTR,
20947        *mut *mut core::ffi::c_void,
20948    ) -> windows_core::HRESULT,
20949    pub GetIterator: unsafe extern "system" fn(
20950        *mut core::ffi::c_void,
20951        *mut *mut core::ffi::c_void,
20952    ) -> windows_core::HRESULT,
20953}
20954pub trait ICoreWebView2HttpResponseHeaders_Impl: windows_core::IUnknownImpl {
20955    fn AppendHeader(
20956        &self,
20957        name: &windows_core::PCWSTR,
20958        value: &windows_core::PCWSTR,
20959    ) -> windows_core::Result<()>;
20960    fn Contains(
20961        &self,
20962        name: &windows_core::PCWSTR,
20963        value: *mut windows_core::BOOL,
20964    ) -> windows_core::Result<()>;
20965    fn GetHeader(
20966        &self,
20967        name: &windows_core::PCWSTR,
20968        value: *mut windows_core::PWSTR,
20969    ) -> windows_core::Result<()>;
20970    fn GetHeaders(
20971        &self,
20972        name: &windows_core::PCWSTR,
20973    ) -> windows_core::Result<ICoreWebView2HttpHeadersCollectionIterator>;
20974    fn GetIterator(&self) -> windows_core::Result<ICoreWebView2HttpHeadersCollectionIterator>;
20975}
20976impl ICoreWebView2HttpResponseHeaders_Vtbl {
20977    pub const fn new<Identity: ICoreWebView2HttpResponseHeaders_Impl, const OFFSET: isize>() -> Self
20978    {
20979        unsafe extern "system" fn AppendHeader<
20980            Identity: ICoreWebView2HttpResponseHeaders_Impl,
20981            const OFFSET: isize,
20982        >(
20983            this: *mut core::ffi::c_void,
20984            name: windows_core::PCWSTR,
20985            value: windows_core::PCWSTR,
20986        ) -> windows_core::HRESULT {
20987            unsafe {
20988                let this: &Identity =
20989                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
20990                ICoreWebView2HttpResponseHeaders_Impl::AppendHeader(
20991                    this,
20992                    core::mem::transmute(&name),
20993                    core::mem::transmute(&value),
20994                )
20995                .into()
20996            }
20997        }
20998        unsafe extern "system" fn Contains<
20999            Identity: ICoreWebView2HttpResponseHeaders_Impl,
21000            const OFFSET: isize,
21001        >(
21002            this: *mut core::ffi::c_void,
21003            name: windows_core::PCWSTR,
21004            value: *mut windows_core::BOOL,
21005        ) -> windows_core::HRESULT {
21006            unsafe {
21007                let this: &Identity =
21008                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
21009                ICoreWebView2HttpResponseHeaders_Impl::Contains(
21010                    this,
21011                    core::mem::transmute(&name),
21012                    core::mem::transmute_copy(&value),
21013                )
21014                .into()
21015            }
21016        }
21017        unsafe extern "system" fn GetHeader<
21018            Identity: ICoreWebView2HttpResponseHeaders_Impl,
21019            const OFFSET: isize,
21020        >(
21021            this: *mut core::ffi::c_void,
21022            name: windows_core::PCWSTR,
21023            value: *mut windows_core::PWSTR,
21024        ) -> windows_core::HRESULT {
21025            unsafe {
21026                let this: &Identity =
21027                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
21028                ICoreWebView2HttpResponseHeaders_Impl::GetHeader(
21029                    this,
21030                    core::mem::transmute(&name),
21031                    core::mem::transmute_copy(&value),
21032                )
21033                .into()
21034            }
21035        }
21036        unsafe extern "system" fn GetHeaders<
21037            Identity: ICoreWebView2HttpResponseHeaders_Impl,
21038            const OFFSET: isize,
21039        >(
21040            this: *mut core::ffi::c_void,
21041            name: windows_core::PCWSTR,
21042            value: *mut *mut core::ffi::c_void,
21043        ) -> windows_core::HRESULT {
21044            unsafe {
21045                let this: &Identity =
21046                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
21047                match ICoreWebView2HttpResponseHeaders_Impl::GetHeaders(
21048                    this,
21049                    core::mem::transmute(&name),
21050                ) {
21051                    Ok(ok__) => {
21052                        value.write(core::mem::transmute(ok__));
21053                        windows_core::HRESULT(0)
21054                    }
21055                    Err(err) => err.into(),
21056                }
21057            }
21058        }
21059        unsafe extern "system" fn GetIterator<
21060            Identity: ICoreWebView2HttpResponseHeaders_Impl,
21061            const OFFSET: isize,
21062        >(
21063            this: *mut core::ffi::c_void,
21064            value: *mut *mut core::ffi::c_void,
21065        ) -> windows_core::HRESULT {
21066            unsafe {
21067                let this: &Identity =
21068                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
21069                match ICoreWebView2HttpResponseHeaders_Impl::GetIterator(this) {
21070                    Ok(ok__) => {
21071                        value.write(core::mem::transmute(ok__));
21072                        windows_core::HRESULT(0)
21073                    }
21074                    Err(err) => err.into(),
21075                }
21076            }
21077        }
21078        Self {
21079            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
21080            AppendHeader: AppendHeader::<Identity, OFFSET>,
21081            Contains: Contains::<Identity, OFFSET>,
21082            GetHeader: GetHeader::<Identity, OFFSET>,
21083            GetHeaders: GetHeaders::<Identity, OFFSET>,
21084            GetIterator: GetIterator::<Identity, OFFSET>,
21085        }
21086    }
21087    pub fn matches(iid: &windows_core::GUID) -> bool {
21088        iid == &<ICoreWebView2HttpResponseHeaders as windows_core::Interface>::IID
21089    }
21090}
21091impl windows_core::RuntimeName for ICoreWebView2HttpResponseHeaders {}
21092windows_core::imp::define_interface!(
21093    ICoreWebView2IsDefaultDownloadDialogOpenChangedEventHandler,
21094    ICoreWebView2IsDefaultDownloadDialogOpenChangedEventHandler_Vtbl,
21095    0x3117da26_ae13_438d_bd46_edbeb2c4ce81
21096);
21097windows_core::imp::interface_hierarchy!(
21098    ICoreWebView2IsDefaultDownloadDialogOpenChangedEventHandler,
21099    windows_core::IUnknown
21100);
21101impl ICoreWebView2IsDefaultDownloadDialogOpenChangedEventHandler {
21102    pub unsafe fn Invoke<P0, P1>(&self, sender: P0, args: P1) -> windows_core::Result<()>
21103    where
21104        P0: windows_core::Param<ICoreWebView2>,
21105        P1: windows_core::Param<windows_core::IUnknown>,
21106    {
21107        unsafe {
21108            (windows_core::Interface::vtable(self).Invoke)(
21109                windows_core::Interface::as_raw(self),
21110                sender.param().abi(),
21111                args.param().abi(),
21112            )
21113            .ok()
21114        }
21115    }
21116}
21117#[repr(C)]
21118#[doc(hidden)]
21119pub struct ICoreWebView2IsDefaultDownloadDialogOpenChangedEventHandler_Vtbl {
21120    pub base__: windows_core::IUnknown_Vtbl,
21121    pub Invoke: unsafe extern "system" fn(
21122        *mut core::ffi::c_void,
21123        *mut core::ffi::c_void,
21124        *mut core::ffi::c_void,
21125    ) -> windows_core::HRESULT,
21126}
21127pub trait ICoreWebView2IsDefaultDownloadDialogOpenChangedEventHandler_Impl:
21128    windows_core::IUnknownImpl
21129{
21130    fn Invoke(
21131        &self,
21132        sender: windows_core::Ref<'_, ICoreWebView2>,
21133        args: windows_core::Ref<'_, windows_core::IUnknown>,
21134    ) -> windows_core::Result<()>;
21135}
21136impl ICoreWebView2IsDefaultDownloadDialogOpenChangedEventHandler_Vtbl {
21137    pub const fn new<
21138        Identity: ICoreWebView2IsDefaultDownloadDialogOpenChangedEventHandler_Impl,
21139        const OFFSET: isize,
21140    >() -> Self {
21141        unsafe extern "system" fn Invoke<
21142            Identity: ICoreWebView2IsDefaultDownloadDialogOpenChangedEventHandler_Impl,
21143            const OFFSET: isize,
21144        >(
21145            this: *mut core::ffi::c_void,
21146            sender: *mut core::ffi::c_void,
21147            args: *mut core::ffi::c_void,
21148        ) -> windows_core::HRESULT {
21149            unsafe {
21150                let this: &Identity =
21151                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
21152                ICoreWebView2IsDefaultDownloadDialogOpenChangedEventHandler_Impl::Invoke(
21153                    this,
21154                    core::mem::transmute_copy(&sender),
21155                    core::mem::transmute_copy(&args),
21156                )
21157                .into()
21158            }
21159        }
21160        Self {
21161            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
21162            Invoke: Invoke::<Identity, OFFSET>,
21163        }
21164    }
21165    pub fn matches(iid: &windows_core::GUID) -> bool {
21166        iid == & < ICoreWebView2IsDefaultDownloadDialogOpenChangedEventHandler as windows_core::Interface >::IID
21167    }
21168}
21169impl windows_core::RuntimeName for ICoreWebView2IsDefaultDownloadDialogOpenChangedEventHandler {}
21170windows_core::imp::define_interface!(
21171    ICoreWebView2IsDocumentPlayingAudioChangedEventHandler,
21172    ICoreWebView2IsDocumentPlayingAudioChangedEventHandler_Vtbl,
21173    0x5def109a_2f4b_49fa_b7f6_11c39e513328
21174);
21175windows_core::imp::interface_hierarchy!(
21176    ICoreWebView2IsDocumentPlayingAudioChangedEventHandler,
21177    windows_core::IUnknown
21178);
21179impl ICoreWebView2IsDocumentPlayingAudioChangedEventHandler {
21180    pub unsafe fn Invoke<P0, P1>(&self, sender: P0, args: P1) -> windows_core::Result<()>
21181    where
21182        P0: windows_core::Param<ICoreWebView2>,
21183        P1: windows_core::Param<windows_core::IUnknown>,
21184    {
21185        unsafe {
21186            (windows_core::Interface::vtable(self).Invoke)(
21187                windows_core::Interface::as_raw(self),
21188                sender.param().abi(),
21189                args.param().abi(),
21190            )
21191            .ok()
21192        }
21193    }
21194}
21195#[repr(C)]
21196#[doc(hidden)]
21197pub struct ICoreWebView2IsDocumentPlayingAudioChangedEventHandler_Vtbl {
21198    pub base__: windows_core::IUnknown_Vtbl,
21199    pub Invoke: unsafe extern "system" fn(
21200        *mut core::ffi::c_void,
21201        *mut core::ffi::c_void,
21202        *mut core::ffi::c_void,
21203    ) -> windows_core::HRESULT,
21204}
21205pub trait ICoreWebView2IsDocumentPlayingAudioChangedEventHandler_Impl:
21206    windows_core::IUnknownImpl
21207{
21208    fn Invoke(
21209        &self,
21210        sender: windows_core::Ref<'_, ICoreWebView2>,
21211        args: windows_core::Ref<'_, windows_core::IUnknown>,
21212    ) -> windows_core::Result<()>;
21213}
21214impl ICoreWebView2IsDocumentPlayingAudioChangedEventHandler_Vtbl {
21215    pub const fn new<
21216        Identity: ICoreWebView2IsDocumentPlayingAudioChangedEventHandler_Impl,
21217        const OFFSET: isize,
21218    >() -> Self {
21219        unsafe extern "system" fn Invoke<
21220            Identity: ICoreWebView2IsDocumentPlayingAudioChangedEventHandler_Impl,
21221            const OFFSET: isize,
21222        >(
21223            this: *mut core::ffi::c_void,
21224            sender: *mut core::ffi::c_void,
21225            args: *mut core::ffi::c_void,
21226        ) -> windows_core::HRESULT {
21227            unsafe {
21228                let this: &Identity =
21229                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
21230                ICoreWebView2IsDocumentPlayingAudioChangedEventHandler_Impl::Invoke(
21231                    this,
21232                    core::mem::transmute_copy(&sender),
21233                    core::mem::transmute_copy(&args),
21234                )
21235                .into()
21236            }
21237        }
21238        Self {
21239            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
21240            Invoke: Invoke::<Identity, OFFSET>,
21241        }
21242    }
21243    pub fn matches(iid: &windows_core::GUID) -> bool {
21244        iid == & < ICoreWebView2IsDocumentPlayingAudioChangedEventHandler as windows_core::Interface >::IID
21245    }
21246}
21247impl windows_core::RuntimeName for ICoreWebView2IsDocumentPlayingAudioChangedEventHandler {}
21248windows_core::imp::define_interface!(
21249    ICoreWebView2IsMutedChangedEventHandler,
21250    ICoreWebView2IsMutedChangedEventHandler_Vtbl,
21251    0x57d90347_cd0e_4952_a4a2_7483a2756f08
21252);
21253windows_core::imp::interface_hierarchy!(
21254    ICoreWebView2IsMutedChangedEventHandler,
21255    windows_core::IUnknown
21256);
21257impl ICoreWebView2IsMutedChangedEventHandler {
21258    pub unsafe fn Invoke<P0, P1>(&self, sender: P0, args: P1) -> windows_core::Result<()>
21259    where
21260        P0: windows_core::Param<ICoreWebView2>,
21261        P1: windows_core::Param<windows_core::IUnknown>,
21262    {
21263        unsafe {
21264            (windows_core::Interface::vtable(self).Invoke)(
21265                windows_core::Interface::as_raw(self),
21266                sender.param().abi(),
21267                args.param().abi(),
21268            )
21269            .ok()
21270        }
21271    }
21272}
21273#[repr(C)]
21274#[doc(hidden)]
21275pub struct ICoreWebView2IsMutedChangedEventHandler_Vtbl {
21276    pub base__: windows_core::IUnknown_Vtbl,
21277    pub Invoke: unsafe extern "system" fn(
21278        *mut core::ffi::c_void,
21279        *mut core::ffi::c_void,
21280        *mut core::ffi::c_void,
21281    ) -> windows_core::HRESULT,
21282}
21283pub trait ICoreWebView2IsMutedChangedEventHandler_Impl: windows_core::IUnknownImpl {
21284    fn Invoke(
21285        &self,
21286        sender: windows_core::Ref<'_, ICoreWebView2>,
21287        args: windows_core::Ref<'_, windows_core::IUnknown>,
21288    ) -> windows_core::Result<()>;
21289}
21290impl ICoreWebView2IsMutedChangedEventHandler_Vtbl {
21291    pub const fn new<
21292        Identity: ICoreWebView2IsMutedChangedEventHandler_Impl,
21293        const OFFSET: isize,
21294    >() -> Self {
21295        unsafe extern "system" fn Invoke<
21296            Identity: ICoreWebView2IsMutedChangedEventHandler_Impl,
21297            const OFFSET: isize,
21298        >(
21299            this: *mut core::ffi::c_void,
21300            sender: *mut core::ffi::c_void,
21301            args: *mut core::ffi::c_void,
21302        ) -> windows_core::HRESULT {
21303            unsafe {
21304                let this: &Identity =
21305                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
21306                ICoreWebView2IsMutedChangedEventHandler_Impl::Invoke(
21307                    this,
21308                    core::mem::transmute_copy(&sender),
21309                    core::mem::transmute_copy(&args),
21310                )
21311                .into()
21312            }
21313        }
21314        Self {
21315            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
21316            Invoke: Invoke::<Identity, OFFSET>,
21317        }
21318    }
21319    pub fn matches(iid: &windows_core::GUID) -> bool {
21320        iid == &<ICoreWebView2IsMutedChangedEventHandler as windows_core::Interface>::IID
21321    }
21322}
21323impl windows_core::RuntimeName for ICoreWebView2IsMutedChangedEventHandler {}
21324windows_core::imp::define_interface!(
21325    ICoreWebView2LaunchingExternalUriSchemeEventArgs,
21326    ICoreWebView2LaunchingExternalUriSchemeEventArgs_Vtbl,
21327    0x07d1a6c3_7175_4ba1_9306_e593ca07e46c
21328);
21329windows_core::imp::interface_hierarchy!(
21330    ICoreWebView2LaunchingExternalUriSchemeEventArgs,
21331    windows_core::IUnknown
21332);
21333impl ICoreWebView2LaunchingExternalUriSchemeEventArgs {
21334    pub unsafe fn Uri(&self, value: *mut windows_core::PWSTR) -> windows_core::Result<()> {
21335        unsafe {
21336            (windows_core::Interface::vtable(self).Uri)(
21337                windows_core::Interface::as_raw(self),
21338                value as _,
21339            )
21340            .ok()
21341        }
21342    }
21343    pub unsafe fn InitiatingOrigin(
21344        &self,
21345        value: *mut windows_core::PWSTR,
21346    ) -> windows_core::Result<()> {
21347        unsafe {
21348            (windows_core::Interface::vtable(self).InitiatingOrigin)(
21349                windows_core::Interface::as_raw(self),
21350                value as _,
21351            )
21352            .ok()
21353        }
21354    }
21355    pub unsafe fn IsUserInitiated(
21356        &self,
21357        value: *mut windows_core::BOOL,
21358    ) -> windows_core::Result<()> {
21359        unsafe {
21360            (windows_core::Interface::vtable(self).IsUserInitiated)(
21361                windows_core::Interface::as_raw(self),
21362                value as _,
21363            )
21364            .ok()
21365        }
21366    }
21367    pub unsafe fn Cancel(&self, value: *mut windows_core::BOOL) -> windows_core::Result<()> {
21368        unsafe {
21369            (windows_core::Interface::vtable(self).Cancel)(
21370                windows_core::Interface::as_raw(self),
21371                value as _,
21372            )
21373            .ok()
21374        }
21375    }
21376    pub unsafe fn SetCancel(&self, value: bool) -> windows_core::Result<()> {
21377        unsafe {
21378            (windows_core::Interface::vtable(self).SetCancel)(
21379                windows_core::Interface::as_raw(self),
21380                value.into(),
21381            )
21382            .ok()
21383        }
21384    }
21385    pub unsafe fn GetDeferral(&self) -> windows_core::Result<ICoreWebView2Deferral> {
21386        unsafe {
21387            let mut result__ = core::mem::zeroed();
21388            (windows_core::Interface::vtable(self).GetDeferral)(
21389                windows_core::Interface::as_raw(self),
21390                &mut result__,
21391            )
21392            .and_then(|| windows_core::Type::from_abi(result__))
21393        }
21394    }
21395}
21396#[repr(C)]
21397#[doc(hidden)]
21398pub struct ICoreWebView2LaunchingExternalUriSchemeEventArgs_Vtbl {
21399    pub base__: windows_core::IUnknown_Vtbl,
21400    pub Uri: unsafe extern "system" fn(
21401        *mut core::ffi::c_void,
21402        *mut windows_core::PWSTR,
21403    ) -> windows_core::HRESULT,
21404    pub InitiatingOrigin: unsafe extern "system" fn(
21405        *mut core::ffi::c_void,
21406        *mut windows_core::PWSTR,
21407    ) -> windows_core::HRESULT,
21408    pub IsUserInitiated: unsafe extern "system" fn(
21409        *mut core::ffi::c_void,
21410        *mut windows_core::BOOL,
21411    ) -> windows_core::HRESULT,
21412    pub Cancel: unsafe extern "system" fn(
21413        *mut core::ffi::c_void,
21414        *mut windows_core::BOOL,
21415    ) -> windows_core::HRESULT,
21416    pub SetCancel: unsafe extern "system" fn(
21417        *mut core::ffi::c_void,
21418        windows_core::BOOL,
21419    ) -> windows_core::HRESULT,
21420    pub GetDeferral: unsafe extern "system" fn(
21421        *mut core::ffi::c_void,
21422        *mut *mut core::ffi::c_void,
21423    ) -> windows_core::HRESULT,
21424}
21425pub trait ICoreWebView2LaunchingExternalUriSchemeEventArgs_Impl:
21426    windows_core::IUnknownImpl
21427{
21428    fn Uri(&self, value: *mut windows_core::PWSTR) -> windows_core::Result<()>;
21429    fn InitiatingOrigin(&self, value: *mut windows_core::PWSTR) -> windows_core::Result<()>;
21430    fn IsUserInitiated(&self, value: *mut windows_core::BOOL) -> windows_core::Result<()>;
21431    fn Cancel(&self, value: *mut windows_core::BOOL) -> windows_core::Result<()>;
21432    fn SetCancel(&self, value: windows_core::BOOL) -> windows_core::Result<()>;
21433    fn GetDeferral(&self) -> windows_core::Result<ICoreWebView2Deferral>;
21434}
21435impl ICoreWebView2LaunchingExternalUriSchemeEventArgs_Vtbl {
21436    pub const fn new<
21437        Identity: ICoreWebView2LaunchingExternalUriSchemeEventArgs_Impl,
21438        const OFFSET: isize,
21439    >() -> Self {
21440        unsafe extern "system" fn Uri<
21441            Identity: ICoreWebView2LaunchingExternalUriSchemeEventArgs_Impl,
21442            const OFFSET: isize,
21443        >(
21444            this: *mut core::ffi::c_void,
21445            value: *mut windows_core::PWSTR,
21446        ) -> windows_core::HRESULT {
21447            unsafe {
21448                let this: &Identity =
21449                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
21450                ICoreWebView2LaunchingExternalUriSchemeEventArgs_Impl::Uri(
21451                    this,
21452                    core::mem::transmute_copy(&value),
21453                )
21454                .into()
21455            }
21456        }
21457        unsafe extern "system" fn InitiatingOrigin<
21458            Identity: ICoreWebView2LaunchingExternalUriSchemeEventArgs_Impl,
21459            const OFFSET: isize,
21460        >(
21461            this: *mut core::ffi::c_void,
21462            value: *mut windows_core::PWSTR,
21463        ) -> windows_core::HRESULT {
21464            unsafe {
21465                let this: &Identity =
21466                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
21467                ICoreWebView2LaunchingExternalUriSchemeEventArgs_Impl::InitiatingOrigin(
21468                    this,
21469                    core::mem::transmute_copy(&value),
21470                )
21471                .into()
21472            }
21473        }
21474        unsafe extern "system" fn IsUserInitiated<
21475            Identity: ICoreWebView2LaunchingExternalUriSchemeEventArgs_Impl,
21476            const OFFSET: isize,
21477        >(
21478            this: *mut core::ffi::c_void,
21479            value: *mut windows_core::BOOL,
21480        ) -> windows_core::HRESULT {
21481            unsafe {
21482                let this: &Identity =
21483                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
21484                ICoreWebView2LaunchingExternalUriSchemeEventArgs_Impl::IsUserInitiated(
21485                    this,
21486                    core::mem::transmute_copy(&value),
21487                )
21488                .into()
21489            }
21490        }
21491        unsafe extern "system" fn Cancel<
21492            Identity: ICoreWebView2LaunchingExternalUriSchemeEventArgs_Impl,
21493            const OFFSET: isize,
21494        >(
21495            this: *mut core::ffi::c_void,
21496            value: *mut windows_core::BOOL,
21497        ) -> windows_core::HRESULT {
21498            unsafe {
21499                let this: &Identity =
21500                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
21501                ICoreWebView2LaunchingExternalUriSchemeEventArgs_Impl::Cancel(
21502                    this,
21503                    core::mem::transmute_copy(&value),
21504                )
21505                .into()
21506            }
21507        }
21508        unsafe extern "system" fn SetCancel<
21509            Identity: ICoreWebView2LaunchingExternalUriSchemeEventArgs_Impl,
21510            const OFFSET: isize,
21511        >(
21512            this: *mut core::ffi::c_void,
21513            value: windows_core::BOOL,
21514        ) -> windows_core::HRESULT {
21515            unsafe {
21516                let this: &Identity =
21517                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
21518                ICoreWebView2LaunchingExternalUriSchemeEventArgs_Impl::SetCancel(
21519                    this,
21520                    core::mem::transmute_copy(&value),
21521                )
21522                .into()
21523            }
21524        }
21525        unsafe extern "system" fn GetDeferral<
21526            Identity: ICoreWebView2LaunchingExternalUriSchemeEventArgs_Impl,
21527            const OFFSET: isize,
21528        >(
21529            this: *mut core::ffi::c_void,
21530            value: *mut *mut core::ffi::c_void,
21531        ) -> windows_core::HRESULT {
21532            unsafe {
21533                let this: &Identity =
21534                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
21535                match ICoreWebView2LaunchingExternalUriSchemeEventArgs_Impl::GetDeferral(this) {
21536                    Ok(ok__) => {
21537                        value.write(core::mem::transmute(ok__));
21538                        windows_core::HRESULT(0)
21539                    }
21540                    Err(err) => err.into(),
21541                }
21542            }
21543        }
21544        Self {
21545            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
21546            Uri: Uri::<Identity, OFFSET>,
21547            InitiatingOrigin: InitiatingOrigin::<Identity, OFFSET>,
21548            IsUserInitiated: IsUserInitiated::<Identity, OFFSET>,
21549            Cancel: Cancel::<Identity, OFFSET>,
21550            SetCancel: SetCancel::<Identity, OFFSET>,
21551            GetDeferral: GetDeferral::<Identity, OFFSET>,
21552        }
21553    }
21554    pub fn matches(iid: &windows_core::GUID) -> bool {
21555        iid == &<ICoreWebView2LaunchingExternalUriSchemeEventArgs as windows_core::Interface>::IID
21556    }
21557}
21558impl windows_core::RuntimeName for ICoreWebView2LaunchingExternalUriSchemeEventArgs {}
21559windows_core::imp::define_interface!(
21560    ICoreWebView2LaunchingExternalUriSchemeEventHandler,
21561    ICoreWebView2LaunchingExternalUriSchemeEventHandler_Vtbl,
21562    0x74f712e0_8165_43a9_a13f_0cce597e75df
21563);
21564windows_core::imp::interface_hierarchy!(
21565    ICoreWebView2LaunchingExternalUriSchemeEventHandler,
21566    windows_core::IUnknown
21567);
21568impl ICoreWebView2LaunchingExternalUriSchemeEventHandler {
21569    pub unsafe fn Invoke<P0, P1>(&self, sender: P0, args: P1) -> windows_core::Result<()>
21570    where
21571        P0: windows_core::Param<ICoreWebView2>,
21572        P1: windows_core::Param<ICoreWebView2LaunchingExternalUriSchemeEventArgs>,
21573    {
21574        unsafe {
21575            (windows_core::Interface::vtable(self).Invoke)(
21576                windows_core::Interface::as_raw(self),
21577                sender.param().abi(),
21578                args.param().abi(),
21579            )
21580            .ok()
21581        }
21582    }
21583}
21584#[repr(C)]
21585#[doc(hidden)]
21586pub struct ICoreWebView2LaunchingExternalUriSchemeEventHandler_Vtbl {
21587    pub base__: windows_core::IUnknown_Vtbl,
21588    pub Invoke: unsafe extern "system" fn(
21589        *mut core::ffi::c_void,
21590        *mut core::ffi::c_void,
21591        *mut core::ffi::c_void,
21592    ) -> windows_core::HRESULT,
21593}
21594pub trait ICoreWebView2LaunchingExternalUriSchemeEventHandler_Impl:
21595    windows_core::IUnknownImpl
21596{
21597    fn Invoke(
21598        &self,
21599        sender: windows_core::Ref<'_, ICoreWebView2>,
21600        args: windows_core::Ref<'_, ICoreWebView2LaunchingExternalUriSchemeEventArgs>,
21601    ) -> windows_core::Result<()>;
21602}
21603impl ICoreWebView2LaunchingExternalUriSchemeEventHandler_Vtbl {
21604    pub const fn new<
21605        Identity: ICoreWebView2LaunchingExternalUriSchemeEventHandler_Impl,
21606        const OFFSET: isize,
21607    >() -> Self {
21608        unsafe extern "system" fn Invoke<
21609            Identity: ICoreWebView2LaunchingExternalUriSchemeEventHandler_Impl,
21610            const OFFSET: isize,
21611        >(
21612            this: *mut core::ffi::c_void,
21613            sender: *mut core::ffi::c_void,
21614            args: *mut core::ffi::c_void,
21615        ) -> windows_core::HRESULT {
21616            unsafe {
21617                let this: &Identity =
21618                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
21619                ICoreWebView2LaunchingExternalUriSchemeEventHandler_Impl::Invoke(
21620                    this,
21621                    core::mem::transmute_copy(&sender),
21622                    core::mem::transmute_copy(&args),
21623                )
21624                .into()
21625            }
21626        }
21627        Self {
21628            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
21629            Invoke: Invoke::<Identity, OFFSET>,
21630        }
21631    }
21632    pub fn matches(iid: &windows_core::GUID) -> bool {
21633        iid == & < ICoreWebView2LaunchingExternalUriSchemeEventHandler as windows_core::Interface >::IID
21634    }
21635}
21636impl windows_core::RuntimeName for ICoreWebView2LaunchingExternalUriSchemeEventHandler {}
21637windows_core::imp::define_interface!(
21638    ICoreWebView2MoveFocusRequestedEventArgs,
21639    ICoreWebView2MoveFocusRequestedEventArgs_Vtbl,
21640    0x2d6aa13b_3839_4a15_92fc_d88b3c0d9c9d
21641);
21642windows_core::imp::interface_hierarchy!(
21643    ICoreWebView2MoveFocusRequestedEventArgs,
21644    windows_core::IUnknown
21645);
21646impl ICoreWebView2MoveFocusRequestedEventArgs {
21647    pub unsafe fn Reason(
21648        &self,
21649        reason: *mut COREWEBVIEW2_MOVE_FOCUS_REASON,
21650    ) -> windows_core::Result<()> {
21651        unsafe {
21652            (windows_core::Interface::vtable(self).Reason)(
21653                windows_core::Interface::as_raw(self),
21654                reason as _,
21655            )
21656            .ok()
21657        }
21658    }
21659    pub unsafe fn Handled(&self, value: *mut windows_core::BOOL) -> windows_core::Result<()> {
21660        unsafe {
21661            (windows_core::Interface::vtable(self).Handled)(
21662                windows_core::Interface::as_raw(self),
21663                value as _,
21664            )
21665            .ok()
21666        }
21667    }
21668    pub unsafe fn SetHandled(&self, value: bool) -> windows_core::Result<()> {
21669        unsafe {
21670            (windows_core::Interface::vtable(self).SetHandled)(
21671                windows_core::Interface::as_raw(self),
21672                value.into(),
21673            )
21674            .ok()
21675        }
21676    }
21677}
21678#[repr(C)]
21679#[doc(hidden)]
21680pub struct ICoreWebView2MoveFocusRequestedEventArgs_Vtbl {
21681    pub base__: windows_core::IUnknown_Vtbl,
21682    pub Reason: unsafe extern "system" fn(
21683        *mut core::ffi::c_void,
21684        *mut COREWEBVIEW2_MOVE_FOCUS_REASON,
21685    ) -> windows_core::HRESULT,
21686    pub Handled: unsafe extern "system" fn(
21687        *mut core::ffi::c_void,
21688        *mut windows_core::BOOL,
21689    ) -> windows_core::HRESULT,
21690    pub SetHandled: unsafe extern "system" fn(
21691        *mut core::ffi::c_void,
21692        windows_core::BOOL,
21693    ) -> windows_core::HRESULT,
21694}
21695pub trait ICoreWebView2MoveFocusRequestedEventArgs_Impl: windows_core::IUnknownImpl {
21696    fn Reason(&self, reason: *mut COREWEBVIEW2_MOVE_FOCUS_REASON) -> windows_core::Result<()>;
21697    fn Handled(&self, value: *mut windows_core::BOOL) -> windows_core::Result<()>;
21698    fn SetHandled(&self, value: windows_core::BOOL) -> windows_core::Result<()>;
21699}
21700impl ICoreWebView2MoveFocusRequestedEventArgs_Vtbl {
21701    pub const fn new<
21702        Identity: ICoreWebView2MoveFocusRequestedEventArgs_Impl,
21703        const OFFSET: isize,
21704    >() -> Self {
21705        unsafe extern "system" fn Reason<
21706            Identity: ICoreWebView2MoveFocusRequestedEventArgs_Impl,
21707            const OFFSET: isize,
21708        >(
21709            this: *mut core::ffi::c_void,
21710            reason: *mut COREWEBVIEW2_MOVE_FOCUS_REASON,
21711        ) -> windows_core::HRESULT {
21712            unsafe {
21713                let this: &Identity =
21714                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
21715                ICoreWebView2MoveFocusRequestedEventArgs_Impl::Reason(
21716                    this,
21717                    core::mem::transmute_copy(&reason),
21718                )
21719                .into()
21720            }
21721        }
21722        unsafe extern "system" fn Handled<
21723            Identity: ICoreWebView2MoveFocusRequestedEventArgs_Impl,
21724            const OFFSET: isize,
21725        >(
21726            this: *mut core::ffi::c_void,
21727            value: *mut windows_core::BOOL,
21728        ) -> windows_core::HRESULT {
21729            unsafe {
21730                let this: &Identity =
21731                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
21732                ICoreWebView2MoveFocusRequestedEventArgs_Impl::Handled(
21733                    this,
21734                    core::mem::transmute_copy(&value),
21735                )
21736                .into()
21737            }
21738        }
21739        unsafe extern "system" fn SetHandled<
21740            Identity: ICoreWebView2MoveFocusRequestedEventArgs_Impl,
21741            const OFFSET: isize,
21742        >(
21743            this: *mut core::ffi::c_void,
21744            value: windows_core::BOOL,
21745        ) -> windows_core::HRESULT {
21746            unsafe {
21747                let this: &Identity =
21748                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
21749                ICoreWebView2MoveFocusRequestedEventArgs_Impl::SetHandled(
21750                    this,
21751                    core::mem::transmute_copy(&value),
21752                )
21753                .into()
21754            }
21755        }
21756        Self {
21757            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
21758            Reason: Reason::<Identity, OFFSET>,
21759            Handled: Handled::<Identity, OFFSET>,
21760            SetHandled: SetHandled::<Identity, OFFSET>,
21761        }
21762    }
21763    pub fn matches(iid: &windows_core::GUID) -> bool {
21764        iid == &<ICoreWebView2MoveFocusRequestedEventArgs as windows_core::Interface>::IID
21765    }
21766}
21767impl windows_core::RuntimeName for ICoreWebView2MoveFocusRequestedEventArgs {}
21768windows_core::imp::define_interface!(
21769    ICoreWebView2MoveFocusRequestedEventHandler,
21770    ICoreWebView2MoveFocusRequestedEventHandler_Vtbl,
21771    0x69035451_6dc7_4cb8_9bce_b2bd70ad289f
21772);
21773windows_core::imp::interface_hierarchy!(
21774    ICoreWebView2MoveFocusRequestedEventHandler,
21775    windows_core::IUnknown
21776);
21777impl ICoreWebView2MoveFocusRequestedEventHandler {
21778    pub unsafe fn Invoke<P0, P1>(&self, sender: P0, args: P1) -> windows_core::Result<()>
21779    where
21780        P0: windows_core::Param<ICoreWebView2Controller>,
21781        P1: windows_core::Param<ICoreWebView2MoveFocusRequestedEventArgs>,
21782    {
21783        unsafe {
21784            (windows_core::Interface::vtable(self).Invoke)(
21785                windows_core::Interface::as_raw(self),
21786                sender.param().abi(),
21787                args.param().abi(),
21788            )
21789            .ok()
21790        }
21791    }
21792}
21793#[repr(C)]
21794#[doc(hidden)]
21795pub struct ICoreWebView2MoveFocusRequestedEventHandler_Vtbl {
21796    pub base__: windows_core::IUnknown_Vtbl,
21797    pub Invoke: unsafe extern "system" fn(
21798        *mut core::ffi::c_void,
21799        *mut core::ffi::c_void,
21800        *mut core::ffi::c_void,
21801    ) -> windows_core::HRESULT,
21802}
21803pub trait ICoreWebView2MoveFocusRequestedEventHandler_Impl: windows_core::IUnknownImpl {
21804    fn Invoke(
21805        &self,
21806        sender: windows_core::Ref<'_, ICoreWebView2Controller>,
21807        args: windows_core::Ref<'_, ICoreWebView2MoveFocusRequestedEventArgs>,
21808    ) -> windows_core::Result<()>;
21809}
21810impl ICoreWebView2MoveFocusRequestedEventHandler_Vtbl {
21811    pub const fn new<
21812        Identity: ICoreWebView2MoveFocusRequestedEventHandler_Impl,
21813        const OFFSET: isize,
21814    >() -> Self {
21815        unsafe extern "system" fn Invoke<
21816            Identity: ICoreWebView2MoveFocusRequestedEventHandler_Impl,
21817            const OFFSET: isize,
21818        >(
21819            this: *mut core::ffi::c_void,
21820            sender: *mut core::ffi::c_void,
21821            args: *mut core::ffi::c_void,
21822        ) -> windows_core::HRESULT {
21823            unsafe {
21824                let this: &Identity =
21825                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
21826                ICoreWebView2MoveFocusRequestedEventHandler_Impl::Invoke(
21827                    this,
21828                    core::mem::transmute_copy(&sender),
21829                    core::mem::transmute_copy(&args),
21830                )
21831                .into()
21832            }
21833        }
21834        Self {
21835            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
21836            Invoke: Invoke::<Identity, OFFSET>,
21837        }
21838    }
21839    pub fn matches(iid: &windows_core::GUID) -> bool {
21840        iid == &<ICoreWebView2MoveFocusRequestedEventHandler as windows_core::Interface>::IID
21841    }
21842}
21843impl windows_core::RuntimeName for ICoreWebView2MoveFocusRequestedEventHandler {}
21844windows_core::imp::define_interface!(
21845    ICoreWebView2NavigationCompletedEventArgs,
21846    ICoreWebView2NavigationCompletedEventArgs_Vtbl,
21847    0x30d68b7d_20d9_4752_a9ca_ec8448fbb5c1
21848);
21849windows_core::imp::interface_hierarchy!(
21850    ICoreWebView2NavigationCompletedEventArgs,
21851    windows_core::IUnknown
21852);
21853impl ICoreWebView2NavigationCompletedEventArgs {
21854    pub unsafe fn IsSuccess(&self, issuccess: *mut windows_core::BOOL) -> windows_core::Result<()> {
21855        unsafe {
21856            (windows_core::Interface::vtable(self).IsSuccess)(
21857                windows_core::Interface::as_raw(self),
21858                issuccess as _,
21859            )
21860            .ok()
21861        }
21862    }
21863    pub unsafe fn WebErrorStatus(
21864        &self,
21865        weberrorstatus: *mut COREWEBVIEW2_WEB_ERROR_STATUS,
21866    ) -> windows_core::Result<()> {
21867        unsafe {
21868            (windows_core::Interface::vtable(self).WebErrorStatus)(
21869                windows_core::Interface::as_raw(self),
21870                weberrorstatus as _,
21871            )
21872            .ok()
21873        }
21874    }
21875    pub unsafe fn NavigationId(&self, navigationid: *mut u64) -> windows_core::Result<()> {
21876        unsafe {
21877            (windows_core::Interface::vtable(self).NavigationId)(
21878                windows_core::Interface::as_raw(self),
21879                navigationid as _,
21880            )
21881            .ok()
21882        }
21883    }
21884}
21885#[repr(C)]
21886#[doc(hidden)]
21887pub struct ICoreWebView2NavigationCompletedEventArgs_Vtbl {
21888    pub base__: windows_core::IUnknown_Vtbl,
21889    pub IsSuccess: unsafe extern "system" fn(
21890        *mut core::ffi::c_void,
21891        *mut windows_core::BOOL,
21892    ) -> windows_core::HRESULT,
21893    pub WebErrorStatus: unsafe extern "system" fn(
21894        *mut core::ffi::c_void,
21895        *mut COREWEBVIEW2_WEB_ERROR_STATUS,
21896    ) -> windows_core::HRESULT,
21897    pub NavigationId:
21898        unsafe extern "system" fn(*mut core::ffi::c_void, *mut u64) -> windows_core::HRESULT,
21899}
21900pub trait ICoreWebView2NavigationCompletedEventArgs_Impl: windows_core::IUnknownImpl {
21901    fn IsSuccess(&self, issuccess: *mut windows_core::BOOL) -> windows_core::Result<()>;
21902    fn WebErrorStatus(
21903        &self,
21904        weberrorstatus: *mut COREWEBVIEW2_WEB_ERROR_STATUS,
21905    ) -> windows_core::Result<()>;
21906    fn NavigationId(&self, navigationid: *mut u64) -> windows_core::Result<()>;
21907}
21908impl ICoreWebView2NavigationCompletedEventArgs_Vtbl {
21909    pub const fn new<
21910        Identity: ICoreWebView2NavigationCompletedEventArgs_Impl,
21911        const OFFSET: isize,
21912    >() -> Self {
21913        unsafe extern "system" fn IsSuccess<
21914            Identity: ICoreWebView2NavigationCompletedEventArgs_Impl,
21915            const OFFSET: isize,
21916        >(
21917            this: *mut core::ffi::c_void,
21918            issuccess: *mut windows_core::BOOL,
21919        ) -> windows_core::HRESULT {
21920            unsafe {
21921                let this: &Identity =
21922                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
21923                ICoreWebView2NavigationCompletedEventArgs_Impl::IsSuccess(
21924                    this,
21925                    core::mem::transmute_copy(&issuccess),
21926                )
21927                .into()
21928            }
21929        }
21930        unsafe extern "system" fn WebErrorStatus<
21931            Identity: ICoreWebView2NavigationCompletedEventArgs_Impl,
21932            const OFFSET: isize,
21933        >(
21934            this: *mut core::ffi::c_void,
21935            weberrorstatus: *mut COREWEBVIEW2_WEB_ERROR_STATUS,
21936        ) -> windows_core::HRESULT {
21937            unsafe {
21938                let this: &Identity =
21939                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
21940                ICoreWebView2NavigationCompletedEventArgs_Impl::WebErrorStatus(
21941                    this,
21942                    core::mem::transmute_copy(&weberrorstatus),
21943                )
21944                .into()
21945            }
21946        }
21947        unsafe extern "system" fn NavigationId<
21948            Identity: ICoreWebView2NavigationCompletedEventArgs_Impl,
21949            const OFFSET: isize,
21950        >(
21951            this: *mut core::ffi::c_void,
21952            navigationid: *mut u64,
21953        ) -> windows_core::HRESULT {
21954            unsafe {
21955                let this: &Identity =
21956                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
21957                ICoreWebView2NavigationCompletedEventArgs_Impl::NavigationId(
21958                    this,
21959                    core::mem::transmute_copy(&navigationid),
21960                )
21961                .into()
21962            }
21963        }
21964        Self {
21965            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
21966            IsSuccess: IsSuccess::<Identity, OFFSET>,
21967            WebErrorStatus: WebErrorStatus::<Identity, OFFSET>,
21968            NavigationId: NavigationId::<Identity, OFFSET>,
21969        }
21970    }
21971    pub fn matches(iid: &windows_core::GUID) -> bool {
21972        iid == &<ICoreWebView2NavigationCompletedEventArgs as windows_core::Interface>::IID
21973    }
21974}
21975impl windows_core::RuntimeName for ICoreWebView2NavigationCompletedEventArgs {}
21976windows_core::imp::define_interface!(
21977    ICoreWebView2NavigationCompletedEventArgs2,
21978    ICoreWebView2NavigationCompletedEventArgs2_Vtbl,
21979    0xfdf8b738_ee1e_4db2_a329_8d7d7b74d792
21980);
21981impl core::ops::Deref for ICoreWebView2NavigationCompletedEventArgs2 {
21982    type Target = ICoreWebView2NavigationCompletedEventArgs;
21983    fn deref(&self) -> &Self::Target {
21984        unsafe { core::mem::transmute(self) }
21985    }
21986}
21987windows_core::imp::interface_hierarchy!(
21988    ICoreWebView2NavigationCompletedEventArgs2,
21989    windows_core::IUnknown,
21990    ICoreWebView2NavigationCompletedEventArgs
21991);
21992impl ICoreWebView2NavigationCompletedEventArgs2 {
21993    pub unsafe fn HttpStatusCode(&self, value: *mut i32) -> windows_core::Result<()> {
21994        unsafe {
21995            (windows_core::Interface::vtable(self).HttpStatusCode)(
21996                windows_core::Interface::as_raw(self),
21997                value as _,
21998            )
21999            .ok()
22000        }
22001    }
22002}
22003#[repr(C)]
22004#[doc(hidden)]
22005pub struct ICoreWebView2NavigationCompletedEventArgs2_Vtbl {
22006    pub base__: ICoreWebView2NavigationCompletedEventArgs_Vtbl,
22007    pub HttpStatusCode:
22008        unsafe extern "system" fn(*mut core::ffi::c_void, *mut i32) -> windows_core::HRESULT,
22009}
22010pub trait ICoreWebView2NavigationCompletedEventArgs2_Impl:
22011    ICoreWebView2NavigationCompletedEventArgs_Impl
22012{
22013    fn HttpStatusCode(&self, value: *mut i32) -> windows_core::Result<()>;
22014}
22015impl ICoreWebView2NavigationCompletedEventArgs2_Vtbl {
22016    pub const fn new<
22017        Identity: ICoreWebView2NavigationCompletedEventArgs2_Impl,
22018        const OFFSET: isize,
22019    >() -> Self {
22020        unsafe extern "system" fn HttpStatusCode<
22021            Identity: ICoreWebView2NavigationCompletedEventArgs2_Impl,
22022            const OFFSET: isize,
22023        >(
22024            this: *mut core::ffi::c_void,
22025            value: *mut i32,
22026        ) -> windows_core::HRESULT {
22027            unsafe {
22028                let this: &Identity =
22029                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
22030                ICoreWebView2NavigationCompletedEventArgs2_Impl::HttpStatusCode(
22031                    this,
22032                    core::mem::transmute_copy(&value),
22033                )
22034                .into()
22035            }
22036        }
22037        Self {
22038            base__: ICoreWebView2NavigationCompletedEventArgs_Vtbl::new::<Identity, OFFSET>(),
22039            HttpStatusCode: HttpStatusCode::<Identity, OFFSET>,
22040        }
22041    }
22042    pub fn matches(iid: &windows_core::GUID) -> bool {
22043        iid == &<ICoreWebView2NavigationCompletedEventArgs2 as windows_core::Interface>::IID
22044            || iid == &<ICoreWebView2NavigationCompletedEventArgs as windows_core::Interface>::IID
22045    }
22046}
22047impl windows_core::RuntimeName for ICoreWebView2NavigationCompletedEventArgs2 {}
22048windows_core::imp::define_interface!(
22049    ICoreWebView2NavigationCompletedEventHandler,
22050    ICoreWebView2NavigationCompletedEventHandler_Vtbl,
22051    0xd33a35bf_1c49_4f98_93ab_006e0533fe1c
22052);
22053windows_core::imp::interface_hierarchy!(
22054    ICoreWebView2NavigationCompletedEventHandler,
22055    windows_core::IUnknown
22056);
22057impl ICoreWebView2NavigationCompletedEventHandler {
22058    pub unsafe fn Invoke<P0, P1>(&self, sender: P0, args: P1) -> windows_core::Result<()>
22059    where
22060        P0: windows_core::Param<ICoreWebView2>,
22061        P1: windows_core::Param<ICoreWebView2NavigationCompletedEventArgs>,
22062    {
22063        unsafe {
22064            (windows_core::Interface::vtable(self).Invoke)(
22065                windows_core::Interface::as_raw(self),
22066                sender.param().abi(),
22067                args.param().abi(),
22068            )
22069            .ok()
22070        }
22071    }
22072}
22073#[repr(C)]
22074#[doc(hidden)]
22075pub struct ICoreWebView2NavigationCompletedEventHandler_Vtbl {
22076    pub base__: windows_core::IUnknown_Vtbl,
22077    pub Invoke: unsafe extern "system" fn(
22078        *mut core::ffi::c_void,
22079        *mut core::ffi::c_void,
22080        *mut core::ffi::c_void,
22081    ) -> windows_core::HRESULT,
22082}
22083pub trait ICoreWebView2NavigationCompletedEventHandler_Impl: windows_core::IUnknownImpl {
22084    fn Invoke(
22085        &self,
22086        sender: windows_core::Ref<'_, ICoreWebView2>,
22087        args: windows_core::Ref<'_, ICoreWebView2NavigationCompletedEventArgs>,
22088    ) -> windows_core::Result<()>;
22089}
22090impl ICoreWebView2NavigationCompletedEventHandler_Vtbl {
22091    pub const fn new<
22092        Identity: ICoreWebView2NavigationCompletedEventHandler_Impl,
22093        const OFFSET: isize,
22094    >() -> Self {
22095        unsafe extern "system" fn Invoke<
22096            Identity: ICoreWebView2NavigationCompletedEventHandler_Impl,
22097            const OFFSET: isize,
22098        >(
22099            this: *mut core::ffi::c_void,
22100            sender: *mut core::ffi::c_void,
22101            args: *mut core::ffi::c_void,
22102        ) -> windows_core::HRESULT {
22103            unsafe {
22104                let this: &Identity =
22105                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
22106                ICoreWebView2NavigationCompletedEventHandler_Impl::Invoke(
22107                    this,
22108                    core::mem::transmute_copy(&sender),
22109                    core::mem::transmute_copy(&args),
22110                )
22111                .into()
22112            }
22113        }
22114        Self {
22115            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
22116            Invoke: Invoke::<Identity, OFFSET>,
22117        }
22118    }
22119    pub fn matches(iid: &windows_core::GUID) -> bool {
22120        iid == &<ICoreWebView2NavigationCompletedEventHandler as windows_core::Interface>::IID
22121    }
22122}
22123impl windows_core::RuntimeName for ICoreWebView2NavigationCompletedEventHandler {}
22124windows_core::imp::define_interface!(
22125    ICoreWebView2NavigationStartingEventArgs,
22126    ICoreWebView2NavigationStartingEventArgs_Vtbl,
22127    0x5b495469_e119_438a_9b18_7604f25f2e49
22128);
22129windows_core::imp::interface_hierarchy!(
22130    ICoreWebView2NavigationStartingEventArgs,
22131    windows_core::IUnknown
22132);
22133impl ICoreWebView2NavigationStartingEventArgs {
22134    pub unsafe fn Uri(&self, uri: *mut windows_core::PWSTR) -> windows_core::Result<()> {
22135        unsafe {
22136            (windows_core::Interface::vtable(self).Uri)(
22137                windows_core::Interface::as_raw(self),
22138                uri as _,
22139            )
22140            .ok()
22141        }
22142    }
22143    pub unsafe fn IsUserInitiated(
22144        &self,
22145        isuserinitiated: *mut windows_core::BOOL,
22146    ) -> windows_core::Result<()> {
22147        unsafe {
22148            (windows_core::Interface::vtable(self).IsUserInitiated)(
22149                windows_core::Interface::as_raw(self),
22150                isuserinitiated as _,
22151            )
22152            .ok()
22153        }
22154    }
22155    pub unsafe fn IsRedirected(
22156        &self,
22157        isredirected: *mut windows_core::BOOL,
22158    ) -> windows_core::Result<()> {
22159        unsafe {
22160            (windows_core::Interface::vtable(self).IsRedirected)(
22161                windows_core::Interface::as_raw(self),
22162                isredirected as _,
22163            )
22164            .ok()
22165        }
22166    }
22167    pub unsafe fn RequestHeaders(&self) -> windows_core::Result<ICoreWebView2HttpRequestHeaders> {
22168        unsafe {
22169            let mut result__ = core::mem::zeroed();
22170            (windows_core::Interface::vtable(self).RequestHeaders)(
22171                windows_core::Interface::as_raw(self),
22172                &mut result__,
22173            )
22174            .and_then(|| windows_core::Type::from_abi(result__))
22175        }
22176    }
22177    pub unsafe fn Cancel(&self, cancel: *mut windows_core::BOOL) -> windows_core::Result<()> {
22178        unsafe {
22179            (windows_core::Interface::vtable(self).Cancel)(
22180                windows_core::Interface::as_raw(self),
22181                cancel as _,
22182            )
22183            .ok()
22184        }
22185    }
22186    pub unsafe fn SetCancel(&self, cancel: bool) -> windows_core::Result<()> {
22187        unsafe {
22188            (windows_core::Interface::vtable(self).SetCancel)(
22189                windows_core::Interface::as_raw(self),
22190                cancel.into(),
22191            )
22192            .ok()
22193        }
22194    }
22195    pub unsafe fn NavigationId(&self, navigationid: *mut u64) -> windows_core::Result<()> {
22196        unsafe {
22197            (windows_core::Interface::vtable(self).NavigationId)(
22198                windows_core::Interface::as_raw(self),
22199                navigationid as _,
22200            )
22201            .ok()
22202        }
22203    }
22204}
22205#[repr(C)]
22206#[doc(hidden)]
22207pub struct ICoreWebView2NavigationStartingEventArgs_Vtbl {
22208    pub base__: windows_core::IUnknown_Vtbl,
22209    pub Uri: unsafe extern "system" fn(
22210        *mut core::ffi::c_void,
22211        *mut windows_core::PWSTR,
22212    ) -> windows_core::HRESULT,
22213    pub IsUserInitiated: unsafe extern "system" fn(
22214        *mut core::ffi::c_void,
22215        *mut windows_core::BOOL,
22216    ) -> windows_core::HRESULT,
22217    pub IsRedirected: unsafe extern "system" fn(
22218        *mut core::ffi::c_void,
22219        *mut windows_core::BOOL,
22220    ) -> windows_core::HRESULT,
22221    pub RequestHeaders: unsafe extern "system" fn(
22222        *mut core::ffi::c_void,
22223        *mut *mut core::ffi::c_void,
22224    ) -> windows_core::HRESULT,
22225    pub Cancel: unsafe extern "system" fn(
22226        *mut core::ffi::c_void,
22227        *mut windows_core::BOOL,
22228    ) -> windows_core::HRESULT,
22229    pub SetCancel: unsafe extern "system" fn(
22230        *mut core::ffi::c_void,
22231        windows_core::BOOL,
22232    ) -> windows_core::HRESULT,
22233    pub NavigationId:
22234        unsafe extern "system" fn(*mut core::ffi::c_void, *mut u64) -> windows_core::HRESULT,
22235}
22236pub trait ICoreWebView2NavigationStartingEventArgs_Impl: windows_core::IUnknownImpl {
22237    fn Uri(&self, uri: *mut windows_core::PWSTR) -> windows_core::Result<()>;
22238    fn IsUserInitiated(&self, isuserinitiated: *mut windows_core::BOOL)
22239        -> windows_core::Result<()>;
22240    fn IsRedirected(&self, isredirected: *mut windows_core::BOOL) -> windows_core::Result<()>;
22241    fn RequestHeaders(&self) -> windows_core::Result<ICoreWebView2HttpRequestHeaders>;
22242    fn Cancel(&self, cancel: *mut windows_core::BOOL) -> windows_core::Result<()>;
22243    fn SetCancel(&self, cancel: windows_core::BOOL) -> windows_core::Result<()>;
22244    fn NavigationId(&self, navigationid: *mut u64) -> windows_core::Result<()>;
22245}
22246impl ICoreWebView2NavigationStartingEventArgs_Vtbl {
22247    pub const fn new<
22248        Identity: ICoreWebView2NavigationStartingEventArgs_Impl,
22249        const OFFSET: isize,
22250    >() -> Self {
22251        unsafe extern "system" fn Uri<
22252            Identity: ICoreWebView2NavigationStartingEventArgs_Impl,
22253            const OFFSET: isize,
22254        >(
22255            this: *mut core::ffi::c_void,
22256            uri: *mut windows_core::PWSTR,
22257        ) -> windows_core::HRESULT {
22258            unsafe {
22259                let this: &Identity =
22260                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
22261                ICoreWebView2NavigationStartingEventArgs_Impl::Uri(
22262                    this,
22263                    core::mem::transmute_copy(&uri),
22264                )
22265                .into()
22266            }
22267        }
22268        unsafe extern "system" fn IsUserInitiated<
22269            Identity: ICoreWebView2NavigationStartingEventArgs_Impl,
22270            const OFFSET: isize,
22271        >(
22272            this: *mut core::ffi::c_void,
22273            isuserinitiated: *mut windows_core::BOOL,
22274        ) -> windows_core::HRESULT {
22275            unsafe {
22276                let this: &Identity =
22277                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
22278                ICoreWebView2NavigationStartingEventArgs_Impl::IsUserInitiated(
22279                    this,
22280                    core::mem::transmute_copy(&isuserinitiated),
22281                )
22282                .into()
22283            }
22284        }
22285        unsafe extern "system" fn IsRedirected<
22286            Identity: ICoreWebView2NavigationStartingEventArgs_Impl,
22287            const OFFSET: isize,
22288        >(
22289            this: *mut core::ffi::c_void,
22290            isredirected: *mut windows_core::BOOL,
22291        ) -> windows_core::HRESULT {
22292            unsafe {
22293                let this: &Identity =
22294                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
22295                ICoreWebView2NavigationStartingEventArgs_Impl::IsRedirected(
22296                    this,
22297                    core::mem::transmute_copy(&isredirected),
22298                )
22299                .into()
22300            }
22301        }
22302        unsafe extern "system" fn RequestHeaders<
22303            Identity: ICoreWebView2NavigationStartingEventArgs_Impl,
22304            const OFFSET: isize,
22305        >(
22306            this: *mut core::ffi::c_void,
22307            requestheaders: *mut *mut core::ffi::c_void,
22308        ) -> windows_core::HRESULT {
22309            unsafe {
22310                let this: &Identity =
22311                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
22312                match ICoreWebView2NavigationStartingEventArgs_Impl::RequestHeaders(this) {
22313                    Ok(ok__) => {
22314                        requestheaders.write(core::mem::transmute(ok__));
22315                        windows_core::HRESULT(0)
22316                    }
22317                    Err(err) => err.into(),
22318                }
22319            }
22320        }
22321        unsafe extern "system" fn Cancel<
22322            Identity: ICoreWebView2NavigationStartingEventArgs_Impl,
22323            const OFFSET: isize,
22324        >(
22325            this: *mut core::ffi::c_void,
22326            cancel: *mut windows_core::BOOL,
22327        ) -> windows_core::HRESULT {
22328            unsafe {
22329                let this: &Identity =
22330                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
22331                ICoreWebView2NavigationStartingEventArgs_Impl::Cancel(
22332                    this,
22333                    core::mem::transmute_copy(&cancel),
22334                )
22335                .into()
22336            }
22337        }
22338        unsafe extern "system" fn SetCancel<
22339            Identity: ICoreWebView2NavigationStartingEventArgs_Impl,
22340            const OFFSET: isize,
22341        >(
22342            this: *mut core::ffi::c_void,
22343            cancel: windows_core::BOOL,
22344        ) -> windows_core::HRESULT {
22345            unsafe {
22346                let this: &Identity =
22347                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
22348                ICoreWebView2NavigationStartingEventArgs_Impl::SetCancel(
22349                    this,
22350                    core::mem::transmute_copy(&cancel),
22351                )
22352                .into()
22353            }
22354        }
22355        unsafe extern "system" fn NavigationId<
22356            Identity: ICoreWebView2NavigationStartingEventArgs_Impl,
22357            const OFFSET: isize,
22358        >(
22359            this: *mut core::ffi::c_void,
22360            navigationid: *mut u64,
22361        ) -> windows_core::HRESULT {
22362            unsafe {
22363                let this: &Identity =
22364                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
22365                ICoreWebView2NavigationStartingEventArgs_Impl::NavigationId(
22366                    this,
22367                    core::mem::transmute_copy(&navigationid),
22368                )
22369                .into()
22370            }
22371        }
22372        Self {
22373            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
22374            Uri: Uri::<Identity, OFFSET>,
22375            IsUserInitiated: IsUserInitiated::<Identity, OFFSET>,
22376            IsRedirected: IsRedirected::<Identity, OFFSET>,
22377            RequestHeaders: RequestHeaders::<Identity, OFFSET>,
22378            Cancel: Cancel::<Identity, OFFSET>,
22379            SetCancel: SetCancel::<Identity, OFFSET>,
22380            NavigationId: NavigationId::<Identity, OFFSET>,
22381        }
22382    }
22383    pub fn matches(iid: &windows_core::GUID) -> bool {
22384        iid == &<ICoreWebView2NavigationStartingEventArgs as windows_core::Interface>::IID
22385    }
22386}
22387impl windows_core::RuntimeName for ICoreWebView2NavigationStartingEventArgs {}
22388windows_core::imp::define_interface!(
22389    ICoreWebView2NavigationStartingEventArgs2,
22390    ICoreWebView2NavigationStartingEventArgs2_Vtbl,
22391    0x9086be93_91aa_472d_a7e0_579f2ba006ad
22392);
22393impl core::ops::Deref for ICoreWebView2NavigationStartingEventArgs2 {
22394    type Target = ICoreWebView2NavigationStartingEventArgs;
22395    fn deref(&self) -> &Self::Target {
22396        unsafe { core::mem::transmute(self) }
22397    }
22398}
22399windows_core::imp::interface_hierarchy!(
22400    ICoreWebView2NavigationStartingEventArgs2,
22401    windows_core::IUnknown,
22402    ICoreWebView2NavigationStartingEventArgs
22403);
22404impl ICoreWebView2NavigationStartingEventArgs2 {
22405    pub unsafe fn AdditionalAllowedFrameAncestors(
22406        &self,
22407        value: *mut windows_core::PWSTR,
22408    ) -> windows_core::Result<()> {
22409        unsafe {
22410            (windows_core::Interface::vtable(self).AdditionalAllowedFrameAncestors)(
22411                windows_core::Interface::as_raw(self),
22412                value as _,
22413            )
22414            .ok()
22415        }
22416    }
22417    pub unsafe fn SetAdditionalAllowedFrameAncestors<P0>(
22418        &self,
22419        value: P0,
22420    ) -> windows_core::Result<()>
22421    where
22422        P0: windows_core::Param<windows_core::PCWSTR>,
22423    {
22424        unsafe {
22425            (windows_core::Interface::vtable(self).SetAdditionalAllowedFrameAncestors)(
22426                windows_core::Interface::as_raw(self),
22427                value.param().abi(),
22428            )
22429            .ok()
22430        }
22431    }
22432}
22433#[repr(C)]
22434#[doc(hidden)]
22435pub struct ICoreWebView2NavigationStartingEventArgs2_Vtbl {
22436    pub base__: ICoreWebView2NavigationStartingEventArgs_Vtbl,
22437    pub AdditionalAllowedFrameAncestors: unsafe extern "system" fn(
22438        *mut core::ffi::c_void,
22439        *mut windows_core::PWSTR,
22440    ) -> windows_core::HRESULT,
22441    pub SetAdditionalAllowedFrameAncestors: unsafe extern "system" fn(
22442        *mut core::ffi::c_void,
22443        windows_core::PCWSTR,
22444    ) -> windows_core::HRESULT,
22445}
22446pub trait ICoreWebView2NavigationStartingEventArgs2_Impl:
22447    ICoreWebView2NavigationStartingEventArgs_Impl
22448{
22449    fn AdditionalAllowedFrameAncestors(
22450        &self,
22451        value: *mut windows_core::PWSTR,
22452    ) -> windows_core::Result<()>;
22453    fn SetAdditionalAllowedFrameAncestors(
22454        &self,
22455        value: &windows_core::PCWSTR,
22456    ) -> windows_core::Result<()>;
22457}
22458impl ICoreWebView2NavigationStartingEventArgs2_Vtbl {
22459    pub const fn new<
22460        Identity: ICoreWebView2NavigationStartingEventArgs2_Impl,
22461        const OFFSET: isize,
22462    >() -> Self {
22463        unsafe extern "system" fn AdditionalAllowedFrameAncestors<
22464            Identity: ICoreWebView2NavigationStartingEventArgs2_Impl,
22465            const OFFSET: isize,
22466        >(
22467            this: *mut core::ffi::c_void,
22468            value: *mut windows_core::PWSTR,
22469        ) -> windows_core::HRESULT {
22470            unsafe {
22471                let this: &Identity =
22472                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
22473                ICoreWebView2NavigationStartingEventArgs2_Impl::AdditionalAllowedFrameAncestors(
22474                    this,
22475                    core::mem::transmute_copy(&value),
22476                )
22477                .into()
22478            }
22479        }
22480        unsafe extern "system" fn SetAdditionalAllowedFrameAncestors<
22481            Identity: ICoreWebView2NavigationStartingEventArgs2_Impl,
22482            const OFFSET: isize,
22483        >(
22484            this: *mut core::ffi::c_void,
22485            value: windows_core::PCWSTR,
22486        ) -> windows_core::HRESULT {
22487            unsafe {
22488                let this: &Identity =
22489                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
22490                ICoreWebView2NavigationStartingEventArgs2_Impl::SetAdditionalAllowedFrameAncestors(
22491                    this,
22492                    core::mem::transmute(&value),
22493                )
22494                .into()
22495            }
22496        }
22497        Self {
22498            base__: ICoreWebView2NavigationStartingEventArgs_Vtbl::new::<Identity, OFFSET>(),
22499            AdditionalAllowedFrameAncestors: AdditionalAllowedFrameAncestors::<Identity, OFFSET>,
22500            SetAdditionalAllowedFrameAncestors: SetAdditionalAllowedFrameAncestors::<
22501                Identity,
22502                OFFSET,
22503            >,
22504        }
22505    }
22506    pub fn matches(iid: &windows_core::GUID) -> bool {
22507        iid == &<ICoreWebView2NavigationStartingEventArgs2 as windows_core::Interface>::IID
22508            || iid == &<ICoreWebView2NavigationStartingEventArgs as windows_core::Interface>::IID
22509    }
22510}
22511impl windows_core::RuntimeName for ICoreWebView2NavigationStartingEventArgs2 {}
22512windows_core::imp::define_interface!(
22513    ICoreWebView2NavigationStartingEventArgs3,
22514    ICoreWebView2NavigationStartingEventArgs3_Vtbl,
22515    0xddffe494_4942_4bd2_ab73_35b8ff40e19f
22516);
22517impl core::ops::Deref for ICoreWebView2NavigationStartingEventArgs3 {
22518    type Target = ICoreWebView2NavigationStartingEventArgs2;
22519    fn deref(&self) -> &Self::Target {
22520        unsafe { core::mem::transmute(self) }
22521    }
22522}
22523windows_core::imp::interface_hierarchy!(
22524    ICoreWebView2NavigationStartingEventArgs3,
22525    windows_core::IUnknown,
22526    ICoreWebView2NavigationStartingEventArgs,
22527    ICoreWebView2NavigationStartingEventArgs2
22528);
22529impl ICoreWebView2NavigationStartingEventArgs3 {
22530    pub unsafe fn NavigationKind(
22531        &self,
22532        value: *mut COREWEBVIEW2_NAVIGATION_KIND,
22533    ) -> windows_core::Result<()> {
22534        unsafe {
22535            (windows_core::Interface::vtable(self).NavigationKind)(
22536                windows_core::Interface::as_raw(self),
22537                value as _,
22538            )
22539            .ok()
22540        }
22541    }
22542}
22543#[repr(C)]
22544#[doc(hidden)]
22545pub struct ICoreWebView2NavigationStartingEventArgs3_Vtbl {
22546    pub base__: ICoreWebView2NavigationStartingEventArgs2_Vtbl,
22547    pub NavigationKind: unsafe extern "system" fn(
22548        *mut core::ffi::c_void,
22549        *mut COREWEBVIEW2_NAVIGATION_KIND,
22550    ) -> windows_core::HRESULT,
22551}
22552pub trait ICoreWebView2NavigationStartingEventArgs3_Impl:
22553    ICoreWebView2NavigationStartingEventArgs2_Impl
22554{
22555    fn NavigationKind(&self, value: *mut COREWEBVIEW2_NAVIGATION_KIND) -> windows_core::Result<()>;
22556}
22557impl ICoreWebView2NavigationStartingEventArgs3_Vtbl {
22558    pub const fn new<
22559        Identity: ICoreWebView2NavigationStartingEventArgs3_Impl,
22560        const OFFSET: isize,
22561    >() -> Self {
22562        unsafe extern "system" fn NavigationKind<
22563            Identity: ICoreWebView2NavigationStartingEventArgs3_Impl,
22564            const OFFSET: isize,
22565        >(
22566            this: *mut core::ffi::c_void,
22567            value: *mut COREWEBVIEW2_NAVIGATION_KIND,
22568        ) -> windows_core::HRESULT {
22569            unsafe {
22570                let this: &Identity =
22571                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
22572                ICoreWebView2NavigationStartingEventArgs3_Impl::NavigationKind(
22573                    this,
22574                    core::mem::transmute_copy(&value),
22575                )
22576                .into()
22577            }
22578        }
22579        Self {
22580            base__: ICoreWebView2NavigationStartingEventArgs2_Vtbl::new::<Identity, OFFSET>(),
22581            NavigationKind: NavigationKind::<Identity, OFFSET>,
22582        }
22583    }
22584    pub fn matches(iid: &windows_core::GUID) -> bool {
22585        iid == &<ICoreWebView2NavigationStartingEventArgs3 as windows_core::Interface>::IID
22586            || iid == &<ICoreWebView2NavigationStartingEventArgs as windows_core::Interface>::IID
22587            || iid == &<ICoreWebView2NavigationStartingEventArgs2 as windows_core::Interface>::IID
22588    }
22589}
22590impl windows_core::RuntimeName for ICoreWebView2NavigationStartingEventArgs3 {}
22591windows_core::imp::define_interface!(
22592    ICoreWebView2NavigationStartingEventHandler,
22593    ICoreWebView2NavigationStartingEventHandler_Vtbl,
22594    0x9adbe429_f36d_432b_9ddc_f8881fbd76e3
22595);
22596windows_core::imp::interface_hierarchy!(
22597    ICoreWebView2NavigationStartingEventHandler,
22598    windows_core::IUnknown
22599);
22600impl ICoreWebView2NavigationStartingEventHandler {
22601    pub unsafe fn Invoke<P0, P1>(&self, sender: P0, args: P1) -> windows_core::Result<()>
22602    where
22603        P0: windows_core::Param<ICoreWebView2>,
22604        P1: windows_core::Param<ICoreWebView2NavigationStartingEventArgs>,
22605    {
22606        unsafe {
22607            (windows_core::Interface::vtable(self).Invoke)(
22608                windows_core::Interface::as_raw(self),
22609                sender.param().abi(),
22610                args.param().abi(),
22611            )
22612            .ok()
22613        }
22614    }
22615}
22616#[repr(C)]
22617#[doc(hidden)]
22618pub struct ICoreWebView2NavigationStartingEventHandler_Vtbl {
22619    pub base__: windows_core::IUnknown_Vtbl,
22620    pub Invoke: unsafe extern "system" fn(
22621        *mut core::ffi::c_void,
22622        *mut core::ffi::c_void,
22623        *mut core::ffi::c_void,
22624    ) -> windows_core::HRESULT,
22625}
22626pub trait ICoreWebView2NavigationStartingEventHandler_Impl: windows_core::IUnknownImpl {
22627    fn Invoke(
22628        &self,
22629        sender: windows_core::Ref<'_, ICoreWebView2>,
22630        args: windows_core::Ref<'_, ICoreWebView2NavigationStartingEventArgs>,
22631    ) -> windows_core::Result<()>;
22632}
22633impl ICoreWebView2NavigationStartingEventHandler_Vtbl {
22634    pub const fn new<
22635        Identity: ICoreWebView2NavigationStartingEventHandler_Impl,
22636        const OFFSET: isize,
22637    >() -> Self {
22638        unsafe extern "system" fn Invoke<
22639            Identity: ICoreWebView2NavigationStartingEventHandler_Impl,
22640            const OFFSET: isize,
22641        >(
22642            this: *mut core::ffi::c_void,
22643            sender: *mut core::ffi::c_void,
22644            args: *mut core::ffi::c_void,
22645        ) -> windows_core::HRESULT {
22646            unsafe {
22647                let this: &Identity =
22648                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
22649                ICoreWebView2NavigationStartingEventHandler_Impl::Invoke(
22650                    this,
22651                    core::mem::transmute_copy(&sender),
22652                    core::mem::transmute_copy(&args),
22653                )
22654                .into()
22655            }
22656        }
22657        Self {
22658            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
22659            Invoke: Invoke::<Identity, OFFSET>,
22660        }
22661    }
22662    pub fn matches(iid: &windows_core::GUID) -> bool {
22663        iid == &<ICoreWebView2NavigationStartingEventHandler as windows_core::Interface>::IID
22664    }
22665}
22666impl windows_core::RuntimeName for ICoreWebView2NavigationStartingEventHandler {}
22667windows_core::imp::define_interface!(
22668    ICoreWebView2NewBrowserVersionAvailableEventHandler,
22669    ICoreWebView2NewBrowserVersionAvailableEventHandler_Vtbl,
22670    0xf9a2976e_d34e_44fc_adee_81b6b57ca914
22671);
22672windows_core::imp::interface_hierarchy!(
22673    ICoreWebView2NewBrowserVersionAvailableEventHandler,
22674    windows_core::IUnknown
22675);
22676impl ICoreWebView2NewBrowserVersionAvailableEventHandler {
22677    pub unsafe fn Invoke<P0, P1>(&self, sender: P0, args: P1) -> windows_core::Result<()>
22678    where
22679        P0: windows_core::Param<ICoreWebView2Environment>,
22680        P1: windows_core::Param<windows_core::IUnknown>,
22681    {
22682        unsafe {
22683            (windows_core::Interface::vtable(self).Invoke)(
22684                windows_core::Interface::as_raw(self),
22685                sender.param().abi(),
22686                args.param().abi(),
22687            )
22688            .ok()
22689        }
22690    }
22691}
22692#[repr(C)]
22693#[doc(hidden)]
22694pub struct ICoreWebView2NewBrowserVersionAvailableEventHandler_Vtbl {
22695    pub base__: windows_core::IUnknown_Vtbl,
22696    pub Invoke: unsafe extern "system" fn(
22697        *mut core::ffi::c_void,
22698        *mut core::ffi::c_void,
22699        *mut core::ffi::c_void,
22700    ) -> windows_core::HRESULT,
22701}
22702pub trait ICoreWebView2NewBrowserVersionAvailableEventHandler_Impl:
22703    windows_core::IUnknownImpl
22704{
22705    fn Invoke(
22706        &self,
22707        sender: windows_core::Ref<'_, ICoreWebView2Environment>,
22708        args: windows_core::Ref<'_, windows_core::IUnknown>,
22709    ) -> windows_core::Result<()>;
22710}
22711impl ICoreWebView2NewBrowserVersionAvailableEventHandler_Vtbl {
22712    pub const fn new<
22713        Identity: ICoreWebView2NewBrowserVersionAvailableEventHandler_Impl,
22714        const OFFSET: isize,
22715    >() -> Self {
22716        unsafe extern "system" fn Invoke<
22717            Identity: ICoreWebView2NewBrowserVersionAvailableEventHandler_Impl,
22718            const OFFSET: isize,
22719        >(
22720            this: *mut core::ffi::c_void,
22721            sender: *mut core::ffi::c_void,
22722            args: *mut core::ffi::c_void,
22723        ) -> windows_core::HRESULT {
22724            unsafe {
22725                let this: &Identity =
22726                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
22727                ICoreWebView2NewBrowserVersionAvailableEventHandler_Impl::Invoke(
22728                    this,
22729                    core::mem::transmute_copy(&sender),
22730                    core::mem::transmute_copy(&args),
22731                )
22732                .into()
22733            }
22734        }
22735        Self {
22736            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
22737            Invoke: Invoke::<Identity, OFFSET>,
22738        }
22739    }
22740    pub fn matches(iid: &windows_core::GUID) -> bool {
22741        iid == & < ICoreWebView2NewBrowserVersionAvailableEventHandler as windows_core::Interface >::IID
22742    }
22743}
22744impl windows_core::RuntimeName for ICoreWebView2NewBrowserVersionAvailableEventHandler {}
22745windows_core::imp::define_interface!(
22746    ICoreWebView2NewWindowRequestedEventArgs,
22747    ICoreWebView2NewWindowRequestedEventArgs_Vtbl,
22748    0x34acb11c_fc37_4418_9132_f9c21d1eafb9
22749);
22750windows_core::imp::interface_hierarchy!(
22751    ICoreWebView2NewWindowRequestedEventArgs,
22752    windows_core::IUnknown
22753);
22754impl ICoreWebView2NewWindowRequestedEventArgs {
22755    pub unsafe fn Uri(&self, uri: *mut windows_core::PWSTR) -> windows_core::Result<()> {
22756        unsafe {
22757            (windows_core::Interface::vtable(self).Uri)(
22758                windows_core::Interface::as_raw(self),
22759                uri as _,
22760            )
22761            .ok()
22762        }
22763    }
22764    pub unsafe fn SetNewWindow<P0>(&self, newwindow: P0) -> windows_core::Result<()>
22765    where
22766        P0: windows_core::Param<ICoreWebView2>,
22767    {
22768        unsafe {
22769            (windows_core::Interface::vtable(self).SetNewWindow)(
22770                windows_core::Interface::as_raw(self),
22771                newwindow.param().abi(),
22772            )
22773            .ok()
22774        }
22775    }
22776    pub unsafe fn NewWindow(&self) -> windows_core::Result<ICoreWebView2> {
22777        unsafe {
22778            let mut result__ = core::mem::zeroed();
22779            (windows_core::Interface::vtable(self).NewWindow)(
22780                windows_core::Interface::as_raw(self),
22781                &mut result__,
22782            )
22783            .and_then(|| windows_core::Type::from_abi(result__))
22784        }
22785    }
22786    pub unsafe fn SetHandled(&self, handled: bool) -> windows_core::Result<()> {
22787        unsafe {
22788            (windows_core::Interface::vtable(self).SetHandled)(
22789                windows_core::Interface::as_raw(self),
22790                handled.into(),
22791            )
22792            .ok()
22793        }
22794    }
22795    pub unsafe fn Handled(&self, handled: *mut windows_core::BOOL) -> windows_core::Result<()> {
22796        unsafe {
22797            (windows_core::Interface::vtable(self).Handled)(
22798                windows_core::Interface::as_raw(self),
22799                handled as _,
22800            )
22801            .ok()
22802        }
22803    }
22804    pub unsafe fn IsUserInitiated(
22805        &self,
22806        isuserinitiated: *mut windows_core::BOOL,
22807    ) -> windows_core::Result<()> {
22808        unsafe {
22809            (windows_core::Interface::vtable(self).IsUserInitiated)(
22810                windows_core::Interface::as_raw(self),
22811                isuserinitiated as _,
22812            )
22813            .ok()
22814        }
22815    }
22816    pub unsafe fn GetDeferral(&self) -> windows_core::Result<ICoreWebView2Deferral> {
22817        unsafe {
22818            let mut result__ = core::mem::zeroed();
22819            (windows_core::Interface::vtable(self).GetDeferral)(
22820                windows_core::Interface::as_raw(self),
22821                &mut result__,
22822            )
22823            .and_then(|| windows_core::Type::from_abi(result__))
22824        }
22825    }
22826    pub unsafe fn WindowFeatures(&self) -> windows_core::Result<ICoreWebView2WindowFeatures> {
22827        unsafe {
22828            let mut result__ = core::mem::zeroed();
22829            (windows_core::Interface::vtable(self).WindowFeatures)(
22830                windows_core::Interface::as_raw(self),
22831                &mut result__,
22832            )
22833            .and_then(|| windows_core::Type::from_abi(result__))
22834        }
22835    }
22836}
22837#[repr(C)]
22838#[doc(hidden)]
22839pub struct ICoreWebView2NewWindowRequestedEventArgs_Vtbl {
22840    pub base__: windows_core::IUnknown_Vtbl,
22841    pub Uri: unsafe extern "system" fn(
22842        *mut core::ffi::c_void,
22843        *mut windows_core::PWSTR,
22844    ) -> windows_core::HRESULT,
22845    pub SetNewWindow: unsafe extern "system" fn(
22846        *mut core::ffi::c_void,
22847        *mut core::ffi::c_void,
22848    ) -> windows_core::HRESULT,
22849    pub NewWindow: unsafe extern "system" fn(
22850        *mut core::ffi::c_void,
22851        *mut *mut core::ffi::c_void,
22852    ) -> windows_core::HRESULT,
22853    pub SetHandled: unsafe extern "system" fn(
22854        *mut core::ffi::c_void,
22855        windows_core::BOOL,
22856    ) -> windows_core::HRESULT,
22857    pub Handled: unsafe extern "system" fn(
22858        *mut core::ffi::c_void,
22859        *mut windows_core::BOOL,
22860    ) -> windows_core::HRESULT,
22861    pub IsUserInitiated: unsafe extern "system" fn(
22862        *mut core::ffi::c_void,
22863        *mut windows_core::BOOL,
22864    ) -> windows_core::HRESULT,
22865    pub GetDeferral: unsafe extern "system" fn(
22866        *mut core::ffi::c_void,
22867        *mut *mut core::ffi::c_void,
22868    ) -> windows_core::HRESULT,
22869    pub WindowFeatures: unsafe extern "system" fn(
22870        *mut core::ffi::c_void,
22871        *mut *mut core::ffi::c_void,
22872    ) -> windows_core::HRESULT,
22873}
22874pub trait ICoreWebView2NewWindowRequestedEventArgs_Impl: windows_core::IUnknownImpl {
22875    fn Uri(&self, uri: *mut windows_core::PWSTR) -> windows_core::Result<()>;
22876    fn SetNewWindow(
22877        &self,
22878        newwindow: windows_core::Ref<'_, ICoreWebView2>,
22879    ) -> windows_core::Result<()>;
22880    fn NewWindow(&self) -> windows_core::Result<ICoreWebView2>;
22881    fn SetHandled(&self, handled: windows_core::BOOL) -> windows_core::Result<()>;
22882    fn Handled(&self, handled: *mut windows_core::BOOL) -> windows_core::Result<()>;
22883    fn IsUserInitiated(&self, isuserinitiated: *mut windows_core::BOOL)
22884        -> windows_core::Result<()>;
22885    fn GetDeferral(&self) -> windows_core::Result<ICoreWebView2Deferral>;
22886    fn WindowFeatures(&self) -> windows_core::Result<ICoreWebView2WindowFeatures>;
22887}
22888impl ICoreWebView2NewWindowRequestedEventArgs_Vtbl {
22889    pub const fn new<
22890        Identity: ICoreWebView2NewWindowRequestedEventArgs_Impl,
22891        const OFFSET: isize,
22892    >() -> Self {
22893        unsafe extern "system" fn Uri<
22894            Identity: ICoreWebView2NewWindowRequestedEventArgs_Impl,
22895            const OFFSET: isize,
22896        >(
22897            this: *mut core::ffi::c_void,
22898            uri: *mut windows_core::PWSTR,
22899        ) -> windows_core::HRESULT {
22900            unsafe {
22901                let this: &Identity =
22902                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
22903                ICoreWebView2NewWindowRequestedEventArgs_Impl::Uri(
22904                    this,
22905                    core::mem::transmute_copy(&uri),
22906                )
22907                .into()
22908            }
22909        }
22910        unsafe extern "system" fn SetNewWindow<
22911            Identity: ICoreWebView2NewWindowRequestedEventArgs_Impl,
22912            const OFFSET: isize,
22913        >(
22914            this: *mut core::ffi::c_void,
22915            newwindow: *mut core::ffi::c_void,
22916        ) -> windows_core::HRESULT {
22917            unsafe {
22918                let this: &Identity =
22919                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
22920                ICoreWebView2NewWindowRequestedEventArgs_Impl::SetNewWindow(
22921                    this,
22922                    core::mem::transmute_copy(&newwindow),
22923                )
22924                .into()
22925            }
22926        }
22927        unsafe extern "system" fn NewWindow<
22928            Identity: ICoreWebView2NewWindowRequestedEventArgs_Impl,
22929            const OFFSET: isize,
22930        >(
22931            this: *mut core::ffi::c_void,
22932            newwindow: *mut *mut core::ffi::c_void,
22933        ) -> windows_core::HRESULT {
22934            unsafe {
22935                let this: &Identity =
22936                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
22937                match ICoreWebView2NewWindowRequestedEventArgs_Impl::NewWindow(this) {
22938                    Ok(ok__) => {
22939                        newwindow.write(core::mem::transmute(ok__));
22940                        windows_core::HRESULT(0)
22941                    }
22942                    Err(err) => err.into(),
22943                }
22944            }
22945        }
22946        unsafe extern "system" fn SetHandled<
22947            Identity: ICoreWebView2NewWindowRequestedEventArgs_Impl,
22948            const OFFSET: isize,
22949        >(
22950            this: *mut core::ffi::c_void,
22951            handled: windows_core::BOOL,
22952        ) -> windows_core::HRESULT {
22953            unsafe {
22954                let this: &Identity =
22955                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
22956                ICoreWebView2NewWindowRequestedEventArgs_Impl::SetHandled(
22957                    this,
22958                    core::mem::transmute_copy(&handled),
22959                )
22960                .into()
22961            }
22962        }
22963        unsafe extern "system" fn Handled<
22964            Identity: ICoreWebView2NewWindowRequestedEventArgs_Impl,
22965            const OFFSET: isize,
22966        >(
22967            this: *mut core::ffi::c_void,
22968            handled: *mut windows_core::BOOL,
22969        ) -> windows_core::HRESULT {
22970            unsafe {
22971                let this: &Identity =
22972                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
22973                ICoreWebView2NewWindowRequestedEventArgs_Impl::Handled(
22974                    this,
22975                    core::mem::transmute_copy(&handled),
22976                )
22977                .into()
22978            }
22979        }
22980        unsafe extern "system" fn IsUserInitiated<
22981            Identity: ICoreWebView2NewWindowRequestedEventArgs_Impl,
22982            const OFFSET: isize,
22983        >(
22984            this: *mut core::ffi::c_void,
22985            isuserinitiated: *mut windows_core::BOOL,
22986        ) -> windows_core::HRESULT {
22987            unsafe {
22988                let this: &Identity =
22989                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
22990                ICoreWebView2NewWindowRequestedEventArgs_Impl::IsUserInitiated(
22991                    this,
22992                    core::mem::transmute_copy(&isuserinitiated),
22993                )
22994                .into()
22995            }
22996        }
22997        unsafe extern "system" fn GetDeferral<
22998            Identity: ICoreWebView2NewWindowRequestedEventArgs_Impl,
22999            const OFFSET: isize,
23000        >(
23001            this: *mut core::ffi::c_void,
23002            deferral: *mut *mut core::ffi::c_void,
23003        ) -> windows_core::HRESULT {
23004            unsafe {
23005                let this: &Identity =
23006                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
23007                match ICoreWebView2NewWindowRequestedEventArgs_Impl::GetDeferral(this) {
23008                    Ok(ok__) => {
23009                        deferral.write(core::mem::transmute(ok__));
23010                        windows_core::HRESULT(0)
23011                    }
23012                    Err(err) => err.into(),
23013                }
23014            }
23015        }
23016        unsafe extern "system" fn WindowFeatures<
23017            Identity: ICoreWebView2NewWindowRequestedEventArgs_Impl,
23018            const OFFSET: isize,
23019        >(
23020            this: *mut core::ffi::c_void,
23021            value: *mut *mut core::ffi::c_void,
23022        ) -> windows_core::HRESULT {
23023            unsafe {
23024                let this: &Identity =
23025                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
23026                match ICoreWebView2NewWindowRequestedEventArgs_Impl::WindowFeatures(this) {
23027                    Ok(ok__) => {
23028                        value.write(core::mem::transmute(ok__));
23029                        windows_core::HRESULT(0)
23030                    }
23031                    Err(err) => err.into(),
23032                }
23033            }
23034        }
23035        Self {
23036            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
23037            Uri: Uri::<Identity, OFFSET>,
23038            SetNewWindow: SetNewWindow::<Identity, OFFSET>,
23039            NewWindow: NewWindow::<Identity, OFFSET>,
23040            SetHandled: SetHandled::<Identity, OFFSET>,
23041            Handled: Handled::<Identity, OFFSET>,
23042            IsUserInitiated: IsUserInitiated::<Identity, OFFSET>,
23043            GetDeferral: GetDeferral::<Identity, OFFSET>,
23044            WindowFeatures: WindowFeatures::<Identity, OFFSET>,
23045        }
23046    }
23047    pub fn matches(iid: &windows_core::GUID) -> bool {
23048        iid == &<ICoreWebView2NewWindowRequestedEventArgs as windows_core::Interface>::IID
23049    }
23050}
23051impl windows_core::RuntimeName for ICoreWebView2NewWindowRequestedEventArgs {}
23052windows_core::imp::define_interface!(
23053    ICoreWebView2NewWindowRequestedEventArgs2,
23054    ICoreWebView2NewWindowRequestedEventArgs2_Vtbl,
23055    0xbbc7baed_74c6_4c92_b63a_7f5aeae03de3
23056);
23057impl core::ops::Deref for ICoreWebView2NewWindowRequestedEventArgs2 {
23058    type Target = ICoreWebView2NewWindowRequestedEventArgs;
23059    fn deref(&self) -> &Self::Target {
23060        unsafe { core::mem::transmute(self) }
23061    }
23062}
23063windows_core::imp::interface_hierarchy!(
23064    ICoreWebView2NewWindowRequestedEventArgs2,
23065    windows_core::IUnknown,
23066    ICoreWebView2NewWindowRequestedEventArgs
23067);
23068impl ICoreWebView2NewWindowRequestedEventArgs2 {
23069    pub unsafe fn Name(&self, value: *mut windows_core::PWSTR) -> windows_core::Result<()> {
23070        unsafe {
23071            (windows_core::Interface::vtable(self).Name)(
23072                windows_core::Interface::as_raw(self),
23073                value as _,
23074            )
23075            .ok()
23076        }
23077    }
23078}
23079#[repr(C)]
23080#[doc(hidden)]
23081pub struct ICoreWebView2NewWindowRequestedEventArgs2_Vtbl {
23082    pub base__: ICoreWebView2NewWindowRequestedEventArgs_Vtbl,
23083    pub Name: unsafe extern "system" fn(
23084        *mut core::ffi::c_void,
23085        *mut windows_core::PWSTR,
23086    ) -> windows_core::HRESULT,
23087}
23088pub trait ICoreWebView2NewWindowRequestedEventArgs2_Impl:
23089    ICoreWebView2NewWindowRequestedEventArgs_Impl
23090{
23091    fn Name(&self, value: *mut windows_core::PWSTR) -> windows_core::Result<()>;
23092}
23093impl ICoreWebView2NewWindowRequestedEventArgs2_Vtbl {
23094    pub const fn new<
23095        Identity: ICoreWebView2NewWindowRequestedEventArgs2_Impl,
23096        const OFFSET: isize,
23097    >() -> Self {
23098        unsafe extern "system" fn Name<
23099            Identity: ICoreWebView2NewWindowRequestedEventArgs2_Impl,
23100            const OFFSET: isize,
23101        >(
23102            this: *mut core::ffi::c_void,
23103            value: *mut windows_core::PWSTR,
23104        ) -> windows_core::HRESULT {
23105            unsafe {
23106                let this: &Identity =
23107                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
23108                ICoreWebView2NewWindowRequestedEventArgs2_Impl::Name(
23109                    this,
23110                    core::mem::transmute_copy(&value),
23111                )
23112                .into()
23113            }
23114        }
23115        Self {
23116            base__: ICoreWebView2NewWindowRequestedEventArgs_Vtbl::new::<Identity, OFFSET>(),
23117            Name: Name::<Identity, OFFSET>,
23118        }
23119    }
23120    pub fn matches(iid: &windows_core::GUID) -> bool {
23121        iid == &<ICoreWebView2NewWindowRequestedEventArgs2 as windows_core::Interface>::IID
23122            || iid == &<ICoreWebView2NewWindowRequestedEventArgs as windows_core::Interface>::IID
23123    }
23124}
23125impl windows_core::RuntimeName for ICoreWebView2NewWindowRequestedEventArgs2 {}
23126windows_core::imp::define_interface!(
23127    ICoreWebView2NewWindowRequestedEventArgs3,
23128    ICoreWebView2NewWindowRequestedEventArgs3_Vtbl,
23129    0x842bed3c_6ad6_4dd9_b938_28c96667ad66
23130);
23131impl core::ops::Deref for ICoreWebView2NewWindowRequestedEventArgs3 {
23132    type Target = ICoreWebView2NewWindowRequestedEventArgs2;
23133    fn deref(&self) -> &Self::Target {
23134        unsafe { core::mem::transmute(self) }
23135    }
23136}
23137windows_core::imp::interface_hierarchy!(
23138    ICoreWebView2NewWindowRequestedEventArgs3,
23139    windows_core::IUnknown,
23140    ICoreWebView2NewWindowRequestedEventArgs,
23141    ICoreWebView2NewWindowRequestedEventArgs2
23142);
23143impl ICoreWebView2NewWindowRequestedEventArgs3 {
23144    pub unsafe fn OriginalSourceFrameInfo(&self) -> windows_core::Result<ICoreWebView2FrameInfo> {
23145        unsafe {
23146            let mut result__ = core::mem::zeroed();
23147            (windows_core::Interface::vtable(self).OriginalSourceFrameInfo)(
23148                windows_core::Interface::as_raw(self),
23149                &mut result__,
23150            )
23151            .and_then(|| windows_core::Type::from_abi(result__))
23152        }
23153    }
23154}
23155#[repr(C)]
23156#[doc(hidden)]
23157pub struct ICoreWebView2NewWindowRequestedEventArgs3_Vtbl {
23158    pub base__: ICoreWebView2NewWindowRequestedEventArgs2_Vtbl,
23159    pub OriginalSourceFrameInfo: unsafe extern "system" fn(
23160        *mut core::ffi::c_void,
23161        *mut *mut core::ffi::c_void,
23162    ) -> windows_core::HRESULT,
23163}
23164pub trait ICoreWebView2NewWindowRequestedEventArgs3_Impl:
23165    ICoreWebView2NewWindowRequestedEventArgs2_Impl
23166{
23167    fn OriginalSourceFrameInfo(&self) -> windows_core::Result<ICoreWebView2FrameInfo>;
23168}
23169impl ICoreWebView2NewWindowRequestedEventArgs3_Vtbl {
23170    pub const fn new<
23171        Identity: ICoreWebView2NewWindowRequestedEventArgs3_Impl,
23172        const OFFSET: isize,
23173    >() -> Self {
23174        unsafe extern "system" fn OriginalSourceFrameInfo<
23175            Identity: ICoreWebView2NewWindowRequestedEventArgs3_Impl,
23176            const OFFSET: isize,
23177        >(
23178            this: *mut core::ffi::c_void,
23179            value: *mut *mut core::ffi::c_void,
23180        ) -> windows_core::HRESULT {
23181            unsafe {
23182                let this: &Identity =
23183                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
23184                match ICoreWebView2NewWindowRequestedEventArgs3_Impl::OriginalSourceFrameInfo(this)
23185                {
23186                    Ok(ok__) => {
23187                        value.write(core::mem::transmute(ok__));
23188                        windows_core::HRESULT(0)
23189                    }
23190                    Err(err) => err.into(),
23191                }
23192            }
23193        }
23194        Self {
23195            base__: ICoreWebView2NewWindowRequestedEventArgs2_Vtbl::new::<Identity, OFFSET>(),
23196            OriginalSourceFrameInfo: OriginalSourceFrameInfo::<Identity, OFFSET>,
23197        }
23198    }
23199    pub fn matches(iid: &windows_core::GUID) -> bool {
23200        iid == &<ICoreWebView2NewWindowRequestedEventArgs3 as windows_core::Interface>::IID
23201            || iid == &<ICoreWebView2NewWindowRequestedEventArgs as windows_core::Interface>::IID
23202            || iid == &<ICoreWebView2NewWindowRequestedEventArgs2 as windows_core::Interface>::IID
23203    }
23204}
23205impl windows_core::RuntimeName for ICoreWebView2NewWindowRequestedEventArgs3 {}
23206windows_core::imp::define_interface!(
23207    ICoreWebView2NewWindowRequestedEventHandler,
23208    ICoreWebView2NewWindowRequestedEventHandler_Vtbl,
23209    0xd4c185fe_c81c_4989_97af_2d3fa7ab5651
23210);
23211windows_core::imp::interface_hierarchy!(
23212    ICoreWebView2NewWindowRequestedEventHandler,
23213    windows_core::IUnknown
23214);
23215impl ICoreWebView2NewWindowRequestedEventHandler {
23216    pub unsafe fn Invoke<P0, P1>(&self, sender: P0, args: P1) -> windows_core::Result<()>
23217    where
23218        P0: windows_core::Param<ICoreWebView2>,
23219        P1: windows_core::Param<ICoreWebView2NewWindowRequestedEventArgs>,
23220    {
23221        unsafe {
23222            (windows_core::Interface::vtable(self).Invoke)(
23223                windows_core::Interface::as_raw(self),
23224                sender.param().abi(),
23225                args.param().abi(),
23226            )
23227            .ok()
23228        }
23229    }
23230}
23231#[repr(C)]
23232#[doc(hidden)]
23233pub struct ICoreWebView2NewWindowRequestedEventHandler_Vtbl {
23234    pub base__: windows_core::IUnknown_Vtbl,
23235    pub Invoke: unsafe extern "system" fn(
23236        *mut core::ffi::c_void,
23237        *mut core::ffi::c_void,
23238        *mut core::ffi::c_void,
23239    ) -> windows_core::HRESULT,
23240}
23241pub trait ICoreWebView2NewWindowRequestedEventHandler_Impl: windows_core::IUnknownImpl {
23242    fn Invoke(
23243        &self,
23244        sender: windows_core::Ref<'_, ICoreWebView2>,
23245        args: windows_core::Ref<'_, ICoreWebView2NewWindowRequestedEventArgs>,
23246    ) -> windows_core::Result<()>;
23247}
23248impl ICoreWebView2NewWindowRequestedEventHandler_Vtbl {
23249    pub const fn new<
23250        Identity: ICoreWebView2NewWindowRequestedEventHandler_Impl,
23251        const OFFSET: isize,
23252    >() -> Self {
23253        unsafe extern "system" fn Invoke<
23254            Identity: ICoreWebView2NewWindowRequestedEventHandler_Impl,
23255            const OFFSET: isize,
23256        >(
23257            this: *mut core::ffi::c_void,
23258            sender: *mut core::ffi::c_void,
23259            args: *mut core::ffi::c_void,
23260        ) -> windows_core::HRESULT {
23261            unsafe {
23262                let this: &Identity =
23263                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
23264                ICoreWebView2NewWindowRequestedEventHandler_Impl::Invoke(
23265                    this,
23266                    core::mem::transmute_copy(&sender),
23267                    core::mem::transmute_copy(&args),
23268                )
23269                .into()
23270            }
23271        }
23272        Self {
23273            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
23274            Invoke: Invoke::<Identity, OFFSET>,
23275        }
23276    }
23277    pub fn matches(iid: &windows_core::GUID) -> bool {
23278        iid == &<ICoreWebView2NewWindowRequestedEventHandler as windows_core::Interface>::IID
23279    }
23280}
23281impl windows_core::RuntimeName for ICoreWebView2NewWindowRequestedEventHandler {}
23282windows_core::imp::define_interface!(
23283    ICoreWebView2NonClientRegionChangedEventArgs,
23284    ICoreWebView2NonClientRegionChangedEventArgs_Vtbl,
23285    0xab71d500_0820_4a52_809c_48db04ff93bf
23286);
23287windows_core::imp::interface_hierarchy!(
23288    ICoreWebView2NonClientRegionChangedEventArgs,
23289    windows_core::IUnknown
23290);
23291impl ICoreWebView2NonClientRegionChangedEventArgs {
23292    pub unsafe fn RegionKind(
23293        &self,
23294        value: *mut COREWEBVIEW2_NON_CLIENT_REGION_KIND,
23295    ) -> windows_core::Result<()> {
23296        unsafe {
23297            (windows_core::Interface::vtable(self).RegionKind)(
23298                windows_core::Interface::as_raw(self),
23299                value as _,
23300            )
23301            .ok()
23302        }
23303    }
23304}
23305#[repr(C)]
23306#[doc(hidden)]
23307pub struct ICoreWebView2NonClientRegionChangedEventArgs_Vtbl {
23308    pub base__: windows_core::IUnknown_Vtbl,
23309    pub RegionKind: unsafe extern "system" fn(
23310        *mut core::ffi::c_void,
23311        *mut COREWEBVIEW2_NON_CLIENT_REGION_KIND,
23312    ) -> windows_core::HRESULT,
23313}
23314pub trait ICoreWebView2NonClientRegionChangedEventArgs_Impl: windows_core::IUnknownImpl {
23315    fn RegionKind(
23316        &self,
23317        value: *mut COREWEBVIEW2_NON_CLIENT_REGION_KIND,
23318    ) -> windows_core::Result<()>;
23319}
23320impl ICoreWebView2NonClientRegionChangedEventArgs_Vtbl {
23321    pub const fn new<
23322        Identity: ICoreWebView2NonClientRegionChangedEventArgs_Impl,
23323        const OFFSET: isize,
23324    >() -> Self {
23325        unsafe extern "system" fn RegionKind<
23326            Identity: ICoreWebView2NonClientRegionChangedEventArgs_Impl,
23327            const OFFSET: isize,
23328        >(
23329            this: *mut core::ffi::c_void,
23330            value: *mut COREWEBVIEW2_NON_CLIENT_REGION_KIND,
23331        ) -> windows_core::HRESULT {
23332            unsafe {
23333                let this: &Identity =
23334                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
23335                ICoreWebView2NonClientRegionChangedEventArgs_Impl::RegionKind(
23336                    this,
23337                    core::mem::transmute_copy(&value),
23338                )
23339                .into()
23340            }
23341        }
23342        Self {
23343            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
23344            RegionKind: RegionKind::<Identity, OFFSET>,
23345        }
23346    }
23347    pub fn matches(iid: &windows_core::GUID) -> bool {
23348        iid == &<ICoreWebView2NonClientRegionChangedEventArgs as windows_core::Interface>::IID
23349    }
23350}
23351impl windows_core::RuntimeName for ICoreWebView2NonClientRegionChangedEventArgs {}
23352windows_core::imp::define_interface!(
23353    ICoreWebView2NonClientRegionChangedEventHandler,
23354    ICoreWebView2NonClientRegionChangedEventHandler_Vtbl,
23355    0x4a794e66_aa6c_46bd_93a3_382196837680
23356);
23357windows_core::imp::interface_hierarchy!(
23358    ICoreWebView2NonClientRegionChangedEventHandler,
23359    windows_core::IUnknown
23360);
23361impl ICoreWebView2NonClientRegionChangedEventHandler {
23362    pub unsafe fn Invoke<P0, P1>(&self, sender: P0, args: P1) -> windows_core::Result<()>
23363    where
23364        P0: windows_core::Param<ICoreWebView2CompositionController>,
23365        P1: windows_core::Param<ICoreWebView2NonClientRegionChangedEventArgs>,
23366    {
23367        unsafe {
23368            (windows_core::Interface::vtable(self).Invoke)(
23369                windows_core::Interface::as_raw(self),
23370                sender.param().abi(),
23371                args.param().abi(),
23372            )
23373            .ok()
23374        }
23375    }
23376}
23377#[repr(C)]
23378#[doc(hidden)]
23379pub struct ICoreWebView2NonClientRegionChangedEventHandler_Vtbl {
23380    pub base__: windows_core::IUnknown_Vtbl,
23381    pub Invoke: unsafe extern "system" fn(
23382        *mut core::ffi::c_void,
23383        *mut core::ffi::c_void,
23384        *mut core::ffi::c_void,
23385    ) -> windows_core::HRESULT,
23386}
23387pub trait ICoreWebView2NonClientRegionChangedEventHandler_Impl: windows_core::IUnknownImpl {
23388    fn Invoke(
23389        &self,
23390        sender: windows_core::Ref<'_, ICoreWebView2CompositionController>,
23391        args: windows_core::Ref<'_, ICoreWebView2NonClientRegionChangedEventArgs>,
23392    ) -> windows_core::Result<()>;
23393}
23394impl ICoreWebView2NonClientRegionChangedEventHandler_Vtbl {
23395    pub const fn new<
23396        Identity: ICoreWebView2NonClientRegionChangedEventHandler_Impl,
23397        const OFFSET: isize,
23398    >() -> Self {
23399        unsafe extern "system" fn Invoke<
23400            Identity: ICoreWebView2NonClientRegionChangedEventHandler_Impl,
23401            const OFFSET: isize,
23402        >(
23403            this: *mut core::ffi::c_void,
23404            sender: *mut core::ffi::c_void,
23405            args: *mut core::ffi::c_void,
23406        ) -> windows_core::HRESULT {
23407            unsafe {
23408                let this: &Identity =
23409                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
23410                ICoreWebView2NonClientRegionChangedEventHandler_Impl::Invoke(
23411                    this,
23412                    core::mem::transmute_copy(&sender),
23413                    core::mem::transmute_copy(&args),
23414                )
23415                .into()
23416            }
23417        }
23418        Self {
23419            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
23420            Invoke: Invoke::<Identity, OFFSET>,
23421        }
23422    }
23423    pub fn matches(iid: &windows_core::GUID) -> bool {
23424        iid == &<ICoreWebView2NonClientRegionChangedEventHandler as windows_core::Interface>::IID
23425    }
23426}
23427impl windows_core::RuntimeName for ICoreWebView2NonClientRegionChangedEventHandler {}
23428windows_core::imp::define_interface!(
23429    ICoreWebView2Notification,
23430    ICoreWebView2Notification_Vtbl,
23431    0xb7434d98_6bc8_419d_9da5_fb5a96d4dacd
23432);
23433windows_core::imp::interface_hierarchy!(ICoreWebView2Notification, windows_core::IUnknown);
23434impl ICoreWebView2Notification {
23435    pub unsafe fn add_CloseRequested<P0>(
23436        &self,
23437        eventhandler: P0,
23438        token: *mut i64,
23439    ) -> windows_core::Result<()>
23440    where
23441        P0: windows_core::Param<ICoreWebView2NotificationCloseRequestedEventHandler>,
23442    {
23443        unsafe {
23444            (windows_core::Interface::vtable(self).add_CloseRequested)(
23445                windows_core::Interface::as_raw(self),
23446                eventhandler.param().abi(),
23447                token as _,
23448            )
23449            .ok()
23450        }
23451    }
23452    pub unsafe fn remove_CloseRequested(&self, token: i64) -> windows_core::Result<()> {
23453        unsafe {
23454            (windows_core::Interface::vtable(self).remove_CloseRequested)(
23455                windows_core::Interface::as_raw(self),
23456                token,
23457            )
23458            .ok()
23459        }
23460    }
23461    pub unsafe fn ReportShown(&self) -> windows_core::Result<()> {
23462        unsafe {
23463            (windows_core::Interface::vtable(self).ReportShown)(windows_core::Interface::as_raw(
23464                self,
23465            ))
23466            .ok()
23467        }
23468    }
23469    pub unsafe fn ReportClicked(&self) -> windows_core::Result<()> {
23470        unsafe {
23471            (windows_core::Interface::vtable(self).ReportClicked)(windows_core::Interface::as_raw(
23472                self,
23473            ))
23474            .ok()
23475        }
23476    }
23477    pub unsafe fn ReportClosed(&self) -> windows_core::Result<()> {
23478        unsafe {
23479            (windows_core::Interface::vtable(self).ReportClosed)(windows_core::Interface::as_raw(
23480                self,
23481            ))
23482            .ok()
23483        }
23484    }
23485    pub unsafe fn Body(&self, value: *mut windows_core::PWSTR) -> windows_core::Result<()> {
23486        unsafe {
23487            (windows_core::Interface::vtable(self).Body)(
23488                windows_core::Interface::as_raw(self),
23489                value as _,
23490            )
23491            .ok()
23492        }
23493    }
23494    pub unsafe fn Direction(
23495        &self,
23496        value: *mut COREWEBVIEW2_TEXT_DIRECTION_KIND,
23497    ) -> windows_core::Result<()> {
23498        unsafe {
23499            (windows_core::Interface::vtable(self).Direction)(
23500                windows_core::Interface::as_raw(self),
23501                value as _,
23502            )
23503            .ok()
23504        }
23505    }
23506    pub unsafe fn Language(&self, value: *mut windows_core::PWSTR) -> windows_core::Result<()> {
23507        unsafe {
23508            (windows_core::Interface::vtable(self).Language)(
23509                windows_core::Interface::as_raw(self),
23510                value as _,
23511            )
23512            .ok()
23513        }
23514    }
23515    pub unsafe fn Tag(&self, value: *mut windows_core::PWSTR) -> windows_core::Result<()> {
23516        unsafe {
23517            (windows_core::Interface::vtable(self).Tag)(
23518                windows_core::Interface::as_raw(self),
23519                value as _,
23520            )
23521            .ok()
23522        }
23523    }
23524    pub unsafe fn IconUri(&self, value: *mut windows_core::PWSTR) -> windows_core::Result<()> {
23525        unsafe {
23526            (windows_core::Interface::vtable(self).IconUri)(
23527                windows_core::Interface::as_raw(self),
23528                value as _,
23529            )
23530            .ok()
23531        }
23532    }
23533    pub unsafe fn Title(&self, value: *mut windows_core::PWSTR) -> windows_core::Result<()> {
23534        unsafe {
23535            (windows_core::Interface::vtable(self).Title)(
23536                windows_core::Interface::as_raw(self),
23537                value as _,
23538            )
23539            .ok()
23540        }
23541    }
23542    pub unsafe fn BadgeUri(&self, value: *mut windows_core::PWSTR) -> windows_core::Result<()> {
23543        unsafe {
23544            (windows_core::Interface::vtable(self).BadgeUri)(
23545                windows_core::Interface::as_raw(self),
23546                value as _,
23547            )
23548            .ok()
23549        }
23550    }
23551    pub unsafe fn BodyImageUri(&self, value: *mut windows_core::PWSTR) -> windows_core::Result<()> {
23552        unsafe {
23553            (windows_core::Interface::vtable(self).BodyImageUri)(
23554                windows_core::Interface::as_raw(self),
23555                value as _,
23556            )
23557            .ok()
23558        }
23559    }
23560    pub unsafe fn ShouldRenotify(
23561        &self,
23562        value: *mut windows_core::BOOL,
23563    ) -> windows_core::Result<()> {
23564        unsafe {
23565            (windows_core::Interface::vtable(self).ShouldRenotify)(
23566                windows_core::Interface::as_raw(self),
23567                value as _,
23568            )
23569            .ok()
23570        }
23571    }
23572    pub unsafe fn RequiresInteraction(
23573        &self,
23574        value: *mut windows_core::BOOL,
23575    ) -> windows_core::Result<()> {
23576        unsafe {
23577            (windows_core::Interface::vtable(self).RequiresInteraction)(
23578                windows_core::Interface::as_raw(self),
23579                value as _,
23580            )
23581            .ok()
23582        }
23583    }
23584    pub unsafe fn IsSilent(&self, value: *mut windows_core::BOOL) -> windows_core::Result<()> {
23585        unsafe {
23586            (windows_core::Interface::vtable(self).IsSilent)(
23587                windows_core::Interface::as_raw(self),
23588                value as _,
23589            )
23590            .ok()
23591        }
23592    }
23593    pub unsafe fn Timestamp(&self, value: *mut f64) -> windows_core::Result<()> {
23594        unsafe {
23595            (windows_core::Interface::vtable(self).Timestamp)(
23596                windows_core::Interface::as_raw(self),
23597                value as _,
23598            )
23599            .ok()
23600        }
23601    }
23602    pub unsafe fn GetVibrationPattern(
23603        &self,
23604        count: *mut u32,
23605        vibrationpattern: *mut *mut u64,
23606    ) -> windows_core::Result<()> {
23607        unsafe {
23608            (windows_core::Interface::vtable(self).GetVibrationPattern)(
23609                windows_core::Interface::as_raw(self),
23610                count as _,
23611                vibrationpattern as _,
23612            )
23613            .ok()
23614        }
23615    }
23616}
23617#[repr(C)]
23618#[doc(hidden)]
23619pub struct ICoreWebView2Notification_Vtbl {
23620    pub base__: windows_core::IUnknown_Vtbl,
23621    pub add_CloseRequested: unsafe extern "system" fn(
23622        *mut core::ffi::c_void,
23623        *mut core::ffi::c_void,
23624        *mut i64,
23625    ) -> windows_core::HRESULT,
23626    pub remove_CloseRequested:
23627        unsafe extern "system" fn(*mut core::ffi::c_void, i64) -> windows_core::HRESULT,
23628    pub ReportShown: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
23629    pub ReportClicked: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
23630    pub ReportClosed: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
23631    pub Body: unsafe extern "system" fn(
23632        *mut core::ffi::c_void,
23633        *mut windows_core::PWSTR,
23634    ) -> windows_core::HRESULT,
23635    pub Direction: unsafe extern "system" fn(
23636        *mut core::ffi::c_void,
23637        *mut COREWEBVIEW2_TEXT_DIRECTION_KIND,
23638    ) -> windows_core::HRESULT,
23639    pub Language: unsafe extern "system" fn(
23640        *mut core::ffi::c_void,
23641        *mut windows_core::PWSTR,
23642    ) -> windows_core::HRESULT,
23643    pub Tag: unsafe extern "system" fn(
23644        *mut core::ffi::c_void,
23645        *mut windows_core::PWSTR,
23646    ) -> windows_core::HRESULT,
23647    pub IconUri: unsafe extern "system" fn(
23648        *mut core::ffi::c_void,
23649        *mut windows_core::PWSTR,
23650    ) -> windows_core::HRESULT,
23651    pub Title: unsafe extern "system" fn(
23652        *mut core::ffi::c_void,
23653        *mut windows_core::PWSTR,
23654    ) -> windows_core::HRESULT,
23655    pub BadgeUri: unsafe extern "system" fn(
23656        *mut core::ffi::c_void,
23657        *mut windows_core::PWSTR,
23658    ) -> windows_core::HRESULT,
23659    pub BodyImageUri: unsafe extern "system" fn(
23660        *mut core::ffi::c_void,
23661        *mut windows_core::PWSTR,
23662    ) -> windows_core::HRESULT,
23663    pub ShouldRenotify: unsafe extern "system" fn(
23664        *mut core::ffi::c_void,
23665        *mut windows_core::BOOL,
23666    ) -> windows_core::HRESULT,
23667    pub RequiresInteraction: unsafe extern "system" fn(
23668        *mut core::ffi::c_void,
23669        *mut windows_core::BOOL,
23670    ) -> windows_core::HRESULT,
23671    pub IsSilent: unsafe extern "system" fn(
23672        *mut core::ffi::c_void,
23673        *mut windows_core::BOOL,
23674    ) -> windows_core::HRESULT,
23675    pub Timestamp:
23676        unsafe extern "system" fn(*mut core::ffi::c_void, *mut f64) -> windows_core::HRESULT,
23677    pub GetVibrationPattern: unsafe extern "system" fn(
23678        *mut core::ffi::c_void,
23679        *mut u32,
23680        *mut *mut u64,
23681    ) -> windows_core::HRESULT,
23682}
23683pub trait ICoreWebView2Notification_Impl: windows_core::IUnknownImpl {
23684    fn add_CloseRequested(
23685        &self,
23686        eventhandler: windows_core::Ref<'_, ICoreWebView2NotificationCloseRequestedEventHandler>,
23687        token: *mut i64,
23688    ) -> windows_core::Result<()>;
23689    fn remove_CloseRequested(&self, token: i64) -> windows_core::Result<()>;
23690    fn ReportShown(&self) -> windows_core::Result<()>;
23691    fn ReportClicked(&self) -> windows_core::Result<()>;
23692    fn ReportClosed(&self) -> windows_core::Result<()>;
23693    fn Body(&self, value: *mut windows_core::PWSTR) -> windows_core::Result<()>;
23694    fn Direction(&self, value: *mut COREWEBVIEW2_TEXT_DIRECTION_KIND) -> windows_core::Result<()>;
23695    fn Language(&self, value: *mut windows_core::PWSTR) -> windows_core::Result<()>;
23696    fn Tag(&self, value: *mut windows_core::PWSTR) -> windows_core::Result<()>;
23697    fn IconUri(&self, value: *mut windows_core::PWSTR) -> windows_core::Result<()>;
23698    fn Title(&self, value: *mut windows_core::PWSTR) -> windows_core::Result<()>;
23699    fn BadgeUri(&self, value: *mut windows_core::PWSTR) -> windows_core::Result<()>;
23700    fn BodyImageUri(&self, value: *mut windows_core::PWSTR) -> windows_core::Result<()>;
23701    fn ShouldRenotify(&self, value: *mut windows_core::BOOL) -> windows_core::Result<()>;
23702    fn RequiresInteraction(&self, value: *mut windows_core::BOOL) -> windows_core::Result<()>;
23703    fn IsSilent(&self, value: *mut windows_core::BOOL) -> windows_core::Result<()>;
23704    fn Timestamp(&self, value: *mut f64) -> windows_core::Result<()>;
23705    fn GetVibrationPattern(
23706        &self,
23707        count: *mut u32,
23708        vibrationpattern: *mut *mut u64,
23709    ) -> windows_core::Result<()>;
23710}
23711impl ICoreWebView2Notification_Vtbl {
23712    pub const fn new<Identity: ICoreWebView2Notification_Impl, const OFFSET: isize>() -> Self {
23713        unsafe extern "system" fn add_CloseRequested<
23714            Identity: ICoreWebView2Notification_Impl,
23715            const OFFSET: isize,
23716        >(
23717            this: *mut core::ffi::c_void,
23718            eventhandler: *mut core::ffi::c_void,
23719            token: *mut i64,
23720        ) -> windows_core::HRESULT {
23721            unsafe {
23722                let this: &Identity =
23723                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
23724                ICoreWebView2Notification_Impl::add_CloseRequested(
23725                    this,
23726                    core::mem::transmute_copy(&eventhandler),
23727                    core::mem::transmute_copy(&token),
23728                )
23729                .into()
23730            }
23731        }
23732        unsafe extern "system" fn remove_CloseRequested<
23733            Identity: ICoreWebView2Notification_Impl,
23734            const OFFSET: isize,
23735        >(
23736            this: *mut core::ffi::c_void,
23737            token: i64,
23738        ) -> windows_core::HRESULT {
23739            unsafe {
23740                let this: &Identity =
23741                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
23742                ICoreWebView2Notification_Impl::remove_CloseRequested(
23743                    this,
23744                    core::mem::transmute_copy(&token),
23745                )
23746                .into()
23747            }
23748        }
23749        unsafe extern "system" fn ReportShown<
23750            Identity: ICoreWebView2Notification_Impl,
23751            const OFFSET: isize,
23752        >(
23753            this: *mut core::ffi::c_void,
23754        ) -> windows_core::HRESULT {
23755            unsafe {
23756                let this: &Identity =
23757                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
23758                ICoreWebView2Notification_Impl::ReportShown(this).into()
23759            }
23760        }
23761        unsafe extern "system" fn ReportClicked<
23762            Identity: ICoreWebView2Notification_Impl,
23763            const OFFSET: isize,
23764        >(
23765            this: *mut core::ffi::c_void,
23766        ) -> windows_core::HRESULT {
23767            unsafe {
23768                let this: &Identity =
23769                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
23770                ICoreWebView2Notification_Impl::ReportClicked(this).into()
23771            }
23772        }
23773        unsafe extern "system" fn ReportClosed<
23774            Identity: ICoreWebView2Notification_Impl,
23775            const OFFSET: isize,
23776        >(
23777            this: *mut core::ffi::c_void,
23778        ) -> windows_core::HRESULT {
23779            unsafe {
23780                let this: &Identity =
23781                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
23782                ICoreWebView2Notification_Impl::ReportClosed(this).into()
23783            }
23784        }
23785        unsafe extern "system" fn Body<
23786            Identity: ICoreWebView2Notification_Impl,
23787            const OFFSET: isize,
23788        >(
23789            this: *mut core::ffi::c_void,
23790            value: *mut windows_core::PWSTR,
23791        ) -> windows_core::HRESULT {
23792            unsafe {
23793                let this: &Identity =
23794                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
23795                ICoreWebView2Notification_Impl::Body(this, core::mem::transmute_copy(&value)).into()
23796            }
23797        }
23798        unsafe extern "system" fn Direction<
23799            Identity: ICoreWebView2Notification_Impl,
23800            const OFFSET: isize,
23801        >(
23802            this: *mut core::ffi::c_void,
23803            value: *mut COREWEBVIEW2_TEXT_DIRECTION_KIND,
23804        ) -> windows_core::HRESULT {
23805            unsafe {
23806                let this: &Identity =
23807                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
23808                ICoreWebView2Notification_Impl::Direction(this, core::mem::transmute_copy(&value))
23809                    .into()
23810            }
23811        }
23812        unsafe extern "system" fn Language<
23813            Identity: ICoreWebView2Notification_Impl,
23814            const OFFSET: isize,
23815        >(
23816            this: *mut core::ffi::c_void,
23817            value: *mut windows_core::PWSTR,
23818        ) -> windows_core::HRESULT {
23819            unsafe {
23820                let this: &Identity =
23821                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
23822                ICoreWebView2Notification_Impl::Language(this, core::mem::transmute_copy(&value))
23823                    .into()
23824            }
23825        }
23826        unsafe extern "system" fn Tag<
23827            Identity: ICoreWebView2Notification_Impl,
23828            const OFFSET: isize,
23829        >(
23830            this: *mut core::ffi::c_void,
23831            value: *mut windows_core::PWSTR,
23832        ) -> windows_core::HRESULT {
23833            unsafe {
23834                let this: &Identity =
23835                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
23836                ICoreWebView2Notification_Impl::Tag(this, core::mem::transmute_copy(&value)).into()
23837            }
23838        }
23839        unsafe extern "system" fn IconUri<
23840            Identity: ICoreWebView2Notification_Impl,
23841            const OFFSET: isize,
23842        >(
23843            this: *mut core::ffi::c_void,
23844            value: *mut windows_core::PWSTR,
23845        ) -> windows_core::HRESULT {
23846            unsafe {
23847                let this: &Identity =
23848                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
23849                ICoreWebView2Notification_Impl::IconUri(this, core::mem::transmute_copy(&value))
23850                    .into()
23851            }
23852        }
23853        unsafe extern "system" fn Title<
23854            Identity: ICoreWebView2Notification_Impl,
23855            const OFFSET: isize,
23856        >(
23857            this: *mut core::ffi::c_void,
23858            value: *mut windows_core::PWSTR,
23859        ) -> windows_core::HRESULT {
23860            unsafe {
23861                let this: &Identity =
23862                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
23863                ICoreWebView2Notification_Impl::Title(this, core::mem::transmute_copy(&value))
23864                    .into()
23865            }
23866        }
23867        unsafe extern "system" fn BadgeUri<
23868            Identity: ICoreWebView2Notification_Impl,
23869            const OFFSET: isize,
23870        >(
23871            this: *mut core::ffi::c_void,
23872            value: *mut windows_core::PWSTR,
23873        ) -> windows_core::HRESULT {
23874            unsafe {
23875                let this: &Identity =
23876                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
23877                ICoreWebView2Notification_Impl::BadgeUri(this, core::mem::transmute_copy(&value))
23878                    .into()
23879            }
23880        }
23881        unsafe extern "system" fn BodyImageUri<
23882            Identity: ICoreWebView2Notification_Impl,
23883            const OFFSET: isize,
23884        >(
23885            this: *mut core::ffi::c_void,
23886            value: *mut windows_core::PWSTR,
23887        ) -> windows_core::HRESULT {
23888            unsafe {
23889                let this: &Identity =
23890                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
23891                ICoreWebView2Notification_Impl::BodyImageUri(
23892                    this,
23893                    core::mem::transmute_copy(&value),
23894                )
23895                .into()
23896            }
23897        }
23898        unsafe extern "system" fn ShouldRenotify<
23899            Identity: ICoreWebView2Notification_Impl,
23900            const OFFSET: isize,
23901        >(
23902            this: *mut core::ffi::c_void,
23903            value: *mut windows_core::BOOL,
23904        ) -> windows_core::HRESULT {
23905            unsafe {
23906                let this: &Identity =
23907                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
23908                ICoreWebView2Notification_Impl::ShouldRenotify(
23909                    this,
23910                    core::mem::transmute_copy(&value),
23911                )
23912                .into()
23913            }
23914        }
23915        unsafe extern "system" fn RequiresInteraction<
23916            Identity: ICoreWebView2Notification_Impl,
23917            const OFFSET: isize,
23918        >(
23919            this: *mut core::ffi::c_void,
23920            value: *mut windows_core::BOOL,
23921        ) -> windows_core::HRESULT {
23922            unsafe {
23923                let this: &Identity =
23924                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
23925                ICoreWebView2Notification_Impl::RequiresInteraction(
23926                    this,
23927                    core::mem::transmute_copy(&value),
23928                )
23929                .into()
23930            }
23931        }
23932        unsafe extern "system" fn IsSilent<
23933            Identity: ICoreWebView2Notification_Impl,
23934            const OFFSET: isize,
23935        >(
23936            this: *mut core::ffi::c_void,
23937            value: *mut windows_core::BOOL,
23938        ) -> windows_core::HRESULT {
23939            unsafe {
23940                let this: &Identity =
23941                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
23942                ICoreWebView2Notification_Impl::IsSilent(this, core::mem::transmute_copy(&value))
23943                    .into()
23944            }
23945        }
23946        unsafe extern "system" fn Timestamp<
23947            Identity: ICoreWebView2Notification_Impl,
23948            const OFFSET: isize,
23949        >(
23950            this: *mut core::ffi::c_void,
23951            value: *mut f64,
23952        ) -> windows_core::HRESULT {
23953            unsafe {
23954                let this: &Identity =
23955                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
23956                ICoreWebView2Notification_Impl::Timestamp(this, core::mem::transmute_copy(&value))
23957                    .into()
23958            }
23959        }
23960        unsafe extern "system" fn GetVibrationPattern<
23961            Identity: ICoreWebView2Notification_Impl,
23962            const OFFSET: isize,
23963        >(
23964            this: *mut core::ffi::c_void,
23965            count: *mut u32,
23966            vibrationpattern: *mut *mut u64,
23967        ) -> windows_core::HRESULT {
23968            unsafe {
23969                let this: &Identity =
23970                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
23971                ICoreWebView2Notification_Impl::GetVibrationPattern(
23972                    this,
23973                    core::mem::transmute_copy(&count),
23974                    core::mem::transmute_copy(&vibrationpattern),
23975                )
23976                .into()
23977            }
23978        }
23979        Self {
23980            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
23981            add_CloseRequested: add_CloseRequested::<Identity, OFFSET>,
23982            remove_CloseRequested: remove_CloseRequested::<Identity, OFFSET>,
23983            ReportShown: ReportShown::<Identity, OFFSET>,
23984            ReportClicked: ReportClicked::<Identity, OFFSET>,
23985            ReportClosed: ReportClosed::<Identity, OFFSET>,
23986            Body: Body::<Identity, OFFSET>,
23987            Direction: Direction::<Identity, OFFSET>,
23988            Language: Language::<Identity, OFFSET>,
23989            Tag: Tag::<Identity, OFFSET>,
23990            IconUri: IconUri::<Identity, OFFSET>,
23991            Title: Title::<Identity, OFFSET>,
23992            BadgeUri: BadgeUri::<Identity, OFFSET>,
23993            BodyImageUri: BodyImageUri::<Identity, OFFSET>,
23994            ShouldRenotify: ShouldRenotify::<Identity, OFFSET>,
23995            RequiresInteraction: RequiresInteraction::<Identity, OFFSET>,
23996            IsSilent: IsSilent::<Identity, OFFSET>,
23997            Timestamp: Timestamp::<Identity, OFFSET>,
23998            GetVibrationPattern: GetVibrationPattern::<Identity, OFFSET>,
23999        }
24000    }
24001    pub fn matches(iid: &windows_core::GUID) -> bool {
24002        iid == &<ICoreWebView2Notification as windows_core::Interface>::IID
24003    }
24004}
24005impl windows_core::RuntimeName for ICoreWebView2Notification {}
24006windows_core::imp::define_interface!(
24007    ICoreWebView2NotificationCloseRequestedEventHandler,
24008    ICoreWebView2NotificationCloseRequestedEventHandler_Vtbl,
24009    0x47c32d23_1e94_4733_85f1_d9bf4acd0974
24010);
24011windows_core::imp::interface_hierarchy!(
24012    ICoreWebView2NotificationCloseRequestedEventHandler,
24013    windows_core::IUnknown
24014);
24015impl ICoreWebView2NotificationCloseRequestedEventHandler {
24016    pub unsafe fn Invoke<P0, P1>(&self, sender: P0, args: P1) -> windows_core::Result<()>
24017    where
24018        P0: windows_core::Param<ICoreWebView2Notification>,
24019        P1: windows_core::Param<windows_core::IUnknown>,
24020    {
24021        unsafe {
24022            (windows_core::Interface::vtable(self).Invoke)(
24023                windows_core::Interface::as_raw(self),
24024                sender.param().abi(),
24025                args.param().abi(),
24026            )
24027            .ok()
24028        }
24029    }
24030}
24031#[repr(C)]
24032#[doc(hidden)]
24033pub struct ICoreWebView2NotificationCloseRequestedEventHandler_Vtbl {
24034    pub base__: windows_core::IUnknown_Vtbl,
24035    pub Invoke: unsafe extern "system" fn(
24036        *mut core::ffi::c_void,
24037        *mut core::ffi::c_void,
24038        *mut core::ffi::c_void,
24039    ) -> windows_core::HRESULT,
24040}
24041pub trait ICoreWebView2NotificationCloseRequestedEventHandler_Impl:
24042    windows_core::IUnknownImpl
24043{
24044    fn Invoke(
24045        &self,
24046        sender: windows_core::Ref<'_, ICoreWebView2Notification>,
24047        args: windows_core::Ref<'_, windows_core::IUnknown>,
24048    ) -> windows_core::Result<()>;
24049}
24050impl ICoreWebView2NotificationCloseRequestedEventHandler_Vtbl {
24051    pub const fn new<
24052        Identity: ICoreWebView2NotificationCloseRequestedEventHandler_Impl,
24053        const OFFSET: isize,
24054    >() -> Self {
24055        unsafe extern "system" fn Invoke<
24056            Identity: ICoreWebView2NotificationCloseRequestedEventHandler_Impl,
24057            const OFFSET: isize,
24058        >(
24059            this: *mut core::ffi::c_void,
24060            sender: *mut core::ffi::c_void,
24061            args: *mut core::ffi::c_void,
24062        ) -> windows_core::HRESULT {
24063            unsafe {
24064                let this: &Identity =
24065                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
24066                ICoreWebView2NotificationCloseRequestedEventHandler_Impl::Invoke(
24067                    this,
24068                    core::mem::transmute_copy(&sender),
24069                    core::mem::transmute_copy(&args),
24070                )
24071                .into()
24072            }
24073        }
24074        Self {
24075            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
24076            Invoke: Invoke::<Identity, OFFSET>,
24077        }
24078    }
24079    pub fn matches(iid: &windows_core::GUID) -> bool {
24080        iid == & < ICoreWebView2NotificationCloseRequestedEventHandler as windows_core::Interface >::IID
24081    }
24082}
24083impl windows_core::RuntimeName for ICoreWebView2NotificationCloseRequestedEventHandler {}
24084windows_core::imp::define_interface!(
24085    ICoreWebView2NotificationReceivedEventArgs,
24086    ICoreWebView2NotificationReceivedEventArgs_Vtbl,
24087    0x1512dd5b_5514_4f85_886e_21c3a4c9cfe6
24088);
24089windows_core::imp::interface_hierarchy!(
24090    ICoreWebView2NotificationReceivedEventArgs,
24091    windows_core::IUnknown
24092);
24093impl ICoreWebView2NotificationReceivedEventArgs {
24094    pub unsafe fn SenderOrigin(&self, value: *mut windows_core::PWSTR) -> windows_core::Result<()> {
24095        unsafe {
24096            (windows_core::Interface::vtable(self).SenderOrigin)(
24097                windows_core::Interface::as_raw(self),
24098                value as _,
24099            )
24100            .ok()
24101        }
24102    }
24103    pub unsafe fn Notification(&self) -> windows_core::Result<ICoreWebView2Notification> {
24104        unsafe {
24105            let mut result__ = core::mem::zeroed();
24106            (windows_core::Interface::vtable(self).Notification)(
24107                windows_core::Interface::as_raw(self),
24108                &mut result__,
24109            )
24110            .and_then(|| windows_core::Type::from_abi(result__))
24111        }
24112    }
24113    pub unsafe fn SetHandled(&self, value: bool) -> windows_core::Result<()> {
24114        unsafe {
24115            (windows_core::Interface::vtable(self).SetHandled)(
24116                windows_core::Interface::as_raw(self),
24117                value.into(),
24118            )
24119            .ok()
24120        }
24121    }
24122    pub unsafe fn Handled(&self, value: *mut windows_core::BOOL) -> windows_core::Result<()> {
24123        unsafe {
24124            (windows_core::Interface::vtable(self).Handled)(
24125                windows_core::Interface::as_raw(self),
24126                value as _,
24127            )
24128            .ok()
24129        }
24130    }
24131    pub unsafe fn GetDeferral(&self) -> windows_core::Result<ICoreWebView2Deferral> {
24132        unsafe {
24133            let mut result__ = core::mem::zeroed();
24134            (windows_core::Interface::vtable(self).GetDeferral)(
24135                windows_core::Interface::as_raw(self),
24136                &mut result__,
24137            )
24138            .and_then(|| windows_core::Type::from_abi(result__))
24139        }
24140    }
24141}
24142#[repr(C)]
24143#[doc(hidden)]
24144pub struct ICoreWebView2NotificationReceivedEventArgs_Vtbl {
24145    pub base__: windows_core::IUnknown_Vtbl,
24146    pub SenderOrigin: unsafe extern "system" fn(
24147        *mut core::ffi::c_void,
24148        *mut windows_core::PWSTR,
24149    ) -> windows_core::HRESULT,
24150    pub Notification: unsafe extern "system" fn(
24151        *mut core::ffi::c_void,
24152        *mut *mut core::ffi::c_void,
24153    ) -> windows_core::HRESULT,
24154    pub SetHandled: unsafe extern "system" fn(
24155        *mut core::ffi::c_void,
24156        windows_core::BOOL,
24157    ) -> windows_core::HRESULT,
24158    pub Handled: unsafe extern "system" fn(
24159        *mut core::ffi::c_void,
24160        *mut windows_core::BOOL,
24161    ) -> windows_core::HRESULT,
24162    pub GetDeferral: unsafe extern "system" fn(
24163        *mut core::ffi::c_void,
24164        *mut *mut core::ffi::c_void,
24165    ) -> windows_core::HRESULT,
24166}
24167pub trait ICoreWebView2NotificationReceivedEventArgs_Impl: windows_core::IUnknownImpl {
24168    fn SenderOrigin(&self, value: *mut windows_core::PWSTR) -> windows_core::Result<()>;
24169    fn Notification(&self) -> windows_core::Result<ICoreWebView2Notification>;
24170    fn SetHandled(&self, value: windows_core::BOOL) -> windows_core::Result<()>;
24171    fn Handled(&self, value: *mut windows_core::BOOL) -> windows_core::Result<()>;
24172    fn GetDeferral(&self) -> windows_core::Result<ICoreWebView2Deferral>;
24173}
24174impl ICoreWebView2NotificationReceivedEventArgs_Vtbl {
24175    pub const fn new<
24176        Identity: ICoreWebView2NotificationReceivedEventArgs_Impl,
24177        const OFFSET: isize,
24178    >() -> Self {
24179        unsafe extern "system" fn SenderOrigin<
24180            Identity: ICoreWebView2NotificationReceivedEventArgs_Impl,
24181            const OFFSET: isize,
24182        >(
24183            this: *mut core::ffi::c_void,
24184            value: *mut windows_core::PWSTR,
24185        ) -> windows_core::HRESULT {
24186            unsafe {
24187                let this: &Identity =
24188                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
24189                ICoreWebView2NotificationReceivedEventArgs_Impl::SenderOrigin(
24190                    this,
24191                    core::mem::transmute_copy(&value),
24192                )
24193                .into()
24194            }
24195        }
24196        unsafe extern "system" fn Notification<
24197            Identity: ICoreWebView2NotificationReceivedEventArgs_Impl,
24198            const OFFSET: isize,
24199        >(
24200            this: *mut core::ffi::c_void,
24201            value: *mut *mut core::ffi::c_void,
24202        ) -> windows_core::HRESULT {
24203            unsafe {
24204                let this: &Identity =
24205                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
24206                match ICoreWebView2NotificationReceivedEventArgs_Impl::Notification(this) {
24207                    Ok(ok__) => {
24208                        value.write(core::mem::transmute(ok__));
24209                        windows_core::HRESULT(0)
24210                    }
24211                    Err(err) => err.into(),
24212                }
24213            }
24214        }
24215        unsafe extern "system" fn SetHandled<
24216            Identity: ICoreWebView2NotificationReceivedEventArgs_Impl,
24217            const OFFSET: isize,
24218        >(
24219            this: *mut core::ffi::c_void,
24220            value: windows_core::BOOL,
24221        ) -> windows_core::HRESULT {
24222            unsafe {
24223                let this: &Identity =
24224                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
24225                ICoreWebView2NotificationReceivedEventArgs_Impl::SetHandled(
24226                    this,
24227                    core::mem::transmute_copy(&value),
24228                )
24229                .into()
24230            }
24231        }
24232        unsafe extern "system" fn Handled<
24233            Identity: ICoreWebView2NotificationReceivedEventArgs_Impl,
24234            const OFFSET: isize,
24235        >(
24236            this: *mut core::ffi::c_void,
24237            value: *mut windows_core::BOOL,
24238        ) -> windows_core::HRESULT {
24239            unsafe {
24240                let this: &Identity =
24241                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
24242                ICoreWebView2NotificationReceivedEventArgs_Impl::Handled(
24243                    this,
24244                    core::mem::transmute_copy(&value),
24245                )
24246                .into()
24247            }
24248        }
24249        unsafe extern "system" fn GetDeferral<
24250            Identity: ICoreWebView2NotificationReceivedEventArgs_Impl,
24251            const OFFSET: isize,
24252        >(
24253            this: *mut core::ffi::c_void,
24254            deferral: *mut *mut core::ffi::c_void,
24255        ) -> windows_core::HRESULT {
24256            unsafe {
24257                let this: &Identity =
24258                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
24259                match ICoreWebView2NotificationReceivedEventArgs_Impl::GetDeferral(this) {
24260                    Ok(ok__) => {
24261                        deferral.write(core::mem::transmute(ok__));
24262                        windows_core::HRESULT(0)
24263                    }
24264                    Err(err) => err.into(),
24265                }
24266            }
24267        }
24268        Self {
24269            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
24270            SenderOrigin: SenderOrigin::<Identity, OFFSET>,
24271            Notification: Notification::<Identity, OFFSET>,
24272            SetHandled: SetHandled::<Identity, OFFSET>,
24273            Handled: Handled::<Identity, OFFSET>,
24274            GetDeferral: GetDeferral::<Identity, OFFSET>,
24275        }
24276    }
24277    pub fn matches(iid: &windows_core::GUID) -> bool {
24278        iid == &<ICoreWebView2NotificationReceivedEventArgs as windows_core::Interface>::IID
24279    }
24280}
24281impl windows_core::RuntimeName for ICoreWebView2NotificationReceivedEventArgs {}
24282windows_core::imp::define_interface!(
24283    ICoreWebView2NotificationReceivedEventHandler,
24284    ICoreWebView2NotificationReceivedEventHandler_Vtbl,
24285    0x89c5d598_8788_423b_be97_e6e01c0f9ee3
24286);
24287windows_core::imp::interface_hierarchy!(
24288    ICoreWebView2NotificationReceivedEventHandler,
24289    windows_core::IUnknown
24290);
24291impl ICoreWebView2NotificationReceivedEventHandler {
24292    pub unsafe fn Invoke<P0, P1>(&self, sender: P0, args: P1) -> windows_core::Result<()>
24293    where
24294        P0: windows_core::Param<ICoreWebView2>,
24295        P1: windows_core::Param<ICoreWebView2NotificationReceivedEventArgs>,
24296    {
24297        unsafe {
24298            (windows_core::Interface::vtable(self).Invoke)(
24299                windows_core::Interface::as_raw(self),
24300                sender.param().abi(),
24301                args.param().abi(),
24302            )
24303            .ok()
24304        }
24305    }
24306}
24307#[repr(C)]
24308#[doc(hidden)]
24309pub struct ICoreWebView2NotificationReceivedEventHandler_Vtbl {
24310    pub base__: windows_core::IUnknown_Vtbl,
24311    pub Invoke: unsafe extern "system" fn(
24312        *mut core::ffi::c_void,
24313        *mut core::ffi::c_void,
24314        *mut core::ffi::c_void,
24315    ) -> windows_core::HRESULT,
24316}
24317pub trait ICoreWebView2NotificationReceivedEventHandler_Impl: windows_core::IUnknownImpl {
24318    fn Invoke(
24319        &self,
24320        sender: windows_core::Ref<'_, ICoreWebView2>,
24321        args: windows_core::Ref<'_, ICoreWebView2NotificationReceivedEventArgs>,
24322    ) -> windows_core::Result<()>;
24323}
24324impl ICoreWebView2NotificationReceivedEventHandler_Vtbl {
24325    pub const fn new<
24326        Identity: ICoreWebView2NotificationReceivedEventHandler_Impl,
24327        const OFFSET: isize,
24328    >() -> Self {
24329        unsafe extern "system" fn Invoke<
24330            Identity: ICoreWebView2NotificationReceivedEventHandler_Impl,
24331            const OFFSET: isize,
24332        >(
24333            this: *mut core::ffi::c_void,
24334            sender: *mut core::ffi::c_void,
24335            args: *mut core::ffi::c_void,
24336        ) -> windows_core::HRESULT {
24337            unsafe {
24338                let this: &Identity =
24339                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
24340                ICoreWebView2NotificationReceivedEventHandler_Impl::Invoke(
24341                    this,
24342                    core::mem::transmute_copy(&sender),
24343                    core::mem::transmute_copy(&args),
24344                )
24345                .into()
24346            }
24347        }
24348        Self {
24349            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
24350            Invoke: Invoke::<Identity, OFFSET>,
24351        }
24352    }
24353    pub fn matches(iid: &windows_core::GUID) -> bool {
24354        iid == &<ICoreWebView2NotificationReceivedEventHandler as windows_core::Interface>::IID
24355    }
24356}
24357impl windows_core::RuntimeName for ICoreWebView2NotificationReceivedEventHandler {}
24358windows_core::imp::define_interface!(
24359    ICoreWebView2ObjectCollection,
24360    ICoreWebView2ObjectCollection_Vtbl,
24361    0x5cfec11c_25bd_4e8d_9e1a_7acdaeeec047
24362);
24363impl core::ops::Deref for ICoreWebView2ObjectCollection {
24364    type Target = ICoreWebView2ObjectCollectionView;
24365    fn deref(&self) -> &Self::Target {
24366        unsafe { core::mem::transmute(self) }
24367    }
24368}
24369windows_core::imp::interface_hierarchy!(
24370    ICoreWebView2ObjectCollection,
24371    windows_core::IUnknown,
24372    ICoreWebView2ObjectCollectionView
24373);
24374impl ICoreWebView2ObjectCollection {
24375    pub unsafe fn RemoveValueAtIndex(&self, index: u32) -> windows_core::Result<()> {
24376        unsafe {
24377            (windows_core::Interface::vtable(self).RemoveValueAtIndex)(
24378                windows_core::Interface::as_raw(self),
24379                index,
24380            )
24381            .ok()
24382        }
24383    }
24384    pub unsafe fn InsertValueAtIndex<P1>(&self, index: u32, value: P1) -> windows_core::Result<()>
24385    where
24386        P1: windows_core::Param<windows_core::IUnknown>,
24387    {
24388        unsafe {
24389            (windows_core::Interface::vtable(self).InsertValueAtIndex)(
24390                windows_core::Interface::as_raw(self),
24391                index,
24392                value.param().abi(),
24393            )
24394            .ok()
24395        }
24396    }
24397}
24398#[repr(C)]
24399#[doc(hidden)]
24400pub struct ICoreWebView2ObjectCollection_Vtbl {
24401    pub base__: ICoreWebView2ObjectCollectionView_Vtbl,
24402    pub RemoveValueAtIndex:
24403        unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
24404    pub InsertValueAtIndex: unsafe extern "system" fn(
24405        *mut core::ffi::c_void,
24406        u32,
24407        *mut core::ffi::c_void,
24408    ) -> windows_core::HRESULT,
24409}
24410pub trait ICoreWebView2ObjectCollection_Impl: ICoreWebView2ObjectCollectionView_Impl {
24411    fn RemoveValueAtIndex(&self, index: u32) -> windows_core::Result<()>;
24412    fn InsertValueAtIndex(
24413        &self,
24414        index: u32,
24415        value: windows_core::Ref<'_, windows_core::IUnknown>,
24416    ) -> windows_core::Result<()>;
24417}
24418impl ICoreWebView2ObjectCollection_Vtbl {
24419    pub const fn new<Identity: ICoreWebView2ObjectCollection_Impl, const OFFSET: isize>() -> Self {
24420        unsafe extern "system" fn RemoveValueAtIndex<
24421            Identity: ICoreWebView2ObjectCollection_Impl,
24422            const OFFSET: isize,
24423        >(
24424            this: *mut core::ffi::c_void,
24425            index: u32,
24426        ) -> windows_core::HRESULT {
24427            unsafe {
24428                let this: &Identity =
24429                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
24430                ICoreWebView2ObjectCollection_Impl::RemoveValueAtIndex(
24431                    this,
24432                    core::mem::transmute_copy(&index),
24433                )
24434                .into()
24435            }
24436        }
24437        unsafe extern "system" fn InsertValueAtIndex<
24438            Identity: ICoreWebView2ObjectCollection_Impl,
24439            const OFFSET: isize,
24440        >(
24441            this: *mut core::ffi::c_void,
24442            index: u32,
24443            value: *mut core::ffi::c_void,
24444        ) -> windows_core::HRESULT {
24445            unsafe {
24446                let this: &Identity =
24447                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
24448                ICoreWebView2ObjectCollection_Impl::InsertValueAtIndex(
24449                    this,
24450                    core::mem::transmute_copy(&index),
24451                    core::mem::transmute_copy(&value),
24452                )
24453                .into()
24454            }
24455        }
24456        Self {
24457            base__: ICoreWebView2ObjectCollectionView_Vtbl::new::<Identity, OFFSET>(),
24458            RemoveValueAtIndex: RemoveValueAtIndex::<Identity, OFFSET>,
24459            InsertValueAtIndex: InsertValueAtIndex::<Identity, OFFSET>,
24460        }
24461    }
24462    pub fn matches(iid: &windows_core::GUID) -> bool {
24463        iid == &<ICoreWebView2ObjectCollection as windows_core::Interface>::IID
24464            || iid == &<ICoreWebView2ObjectCollectionView as windows_core::Interface>::IID
24465    }
24466}
24467impl windows_core::RuntimeName for ICoreWebView2ObjectCollection {}
24468windows_core::imp::define_interface!(
24469    ICoreWebView2ObjectCollectionView,
24470    ICoreWebView2ObjectCollectionView_Vtbl,
24471    0x0f36fd87_4f69_4415_98da_888f89fb9a33
24472);
24473windows_core::imp::interface_hierarchy!(ICoreWebView2ObjectCollectionView, windows_core::IUnknown);
24474impl ICoreWebView2ObjectCollectionView {
24475    pub unsafe fn Count(&self, value: *mut u32) -> windows_core::Result<()> {
24476        unsafe {
24477            (windows_core::Interface::vtable(self).Count)(
24478                windows_core::Interface::as_raw(self),
24479                value as _,
24480            )
24481            .ok()
24482        }
24483    }
24484    pub unsafe fn GetValueAtIndex(
24485        &self,
24486        index: u32,
24487    ) -> windows_core::Result<windows_core::IUnknown> {
24488        unsafe {
24489            let mut result__ = core::mem::zeroed();
24490            (windows_core::Interface::vtable(self).GetValueAtIndex)(
24491                windows_core::Interface::as_raw(self),
24492                index,
24493                &mut result__,
24494            )
24495            .and_then(|| windows_core::Type::from_abi(result__))
24496        }
24497    }
24498}
24499#[repr(C)]
24500#[doc(hidden)]
24501pub struct ICoreWebView2ObjectCollectionView_Vtbl {
24502    pub base__: windows_core::IUnknown_Vtbl,
24503    pub Count: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
24504    pub GetValueAtIndex: unsafe extern "system" fn(
24505        *mut core::ffi::c_void,
24506        u32,
24507        *mut *mut core::ffi::c_void,
24508    ) -> windows_core::HRESULT,
24509}
24510pub trait ICoreWebView2ObjectCollectionView_Impl: windows_core::IUnknownImpl {
24511    fn Count(&self, value: *mut u32) -> windows_core::Result<()>;
24512    fn GetValueAtIndex(&self, index: u32) -> windows_core::Result<windows_core::IUnknown>;
24513}
24514impl ICoreWebView2ObjectCollectionView_Vtbl {
24515    pub const fn new<Identity: ICoreWebView2ObjectCollectionView_Impl, const OFFSET: isize>() -> Self
24516    {
24517        unsafe extern "system" fn Count<
24518            Identity: ICoreWebView2ObjectCollectionView_Impl,
24519            const OFFSET: isize,
24520        >(
24521            this: *mut core::ffi::c_void,
24522            value: *mut u32,
24523        ) -> windows_core::HRESULT {
24524            unsafe {
24525                let this: &Identity =
24526                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
24527                ICoreWebView2ObjectCollectionView_Impl::Count(
24528                    this,
24529                    core::mem::transmute_copy(&value),
24530                )
24531                .into()
24532            }
24533        }
24534        unsafe extern "system" fn GetValueAtIndex<
24535            Identity: ICoreWebView2ObjectCollectionView_Impl,
24536            const OFFSET: isize,
24537        >(
24538            this: *mut core::ffi::c_void,
24539            index: u32,
24540            value: *mut *mut core::ffi::c_void,
24541        ) -> windows_core::HRESULT {
24542            unsafe {
24543                let this: &Identity =
24544                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
24545                match ICoreWebView2ObjectCollectionView_Impl::GetValueAtIndex(
24546                    this,
24547                    core::mem::transmute_copy(&index),
24548                ) {
24549                    Ok(ok__) => {
24550                        value.write(core::mem::transmute(ok__));
24551                        windows_core::HRESULT(0)
24552                    }
24553                    Err(err) => err.into(),
24554                }
24555            }
24556        }
24557        Self {
24558            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
24559            Count: Count::<Identity, OFFSET>,
24560            GetValueAtIndex: GetValueAtIndex::<Identity, OFFSET>,
24561        }
24562    }
24563    pub fn matches(iid: &windows_core::GUID) -> bool {
24564        iid == &<ICoreWebView2ObjectCollectionView as windows_core::Interface>::IID
24565    }
24566}
24567impl windows_core::RuntimeName for ICoreWebView2ObjectCollectionView {}
24568windows_core::imp::define_interface!(
24569    ICoreWebView2PermissionRequestedEventArgs,
24570    ICoreWebView2PermissionRequestedEventArgs_Vtbl,
24571    0x973ae2ef_ff18_4894_8fb2_3c758f046810
24572);
24573windows_core::imp::interface_hierarchy!(
24574    ICoreWebView2PermissionRequestedEventArgs,
24575    windows_core::IUnknown
24576);
24577impl ICoreWebView2PermissionRequestedEventArgs {
24578    pub unsafe fn Uri(&self, uri: *mut windows_core::PWSTR) -> windows_core::Result<()> {
24579        unsafe {
24580            (windows_core::Interface::vtable(self).Uri)(
24581                windows_core::Interface::as_raw(self),
24582                uri as _,
24583            )
24584            .ok()
24585        }
24586    }
24587    pub unsafe fn PermissionKind(
24588        &self,
24589        permissionkind: *mut COREWEBVIEW2_PERMISSION_KIND,
24590    ) -> windows_core::Result<()> {
24591        unsafe {
24592            (windows_core::Interface::vtable(self).PermissionKind)(
24593                windows_core::Interface::as_raw(self),
24594                permissionkind as _,
24595            )
24596            .ok()
24597        }
24598    }
24599    pub unsafe fn IsUserInitiated(
24600        &self,
24601        isuserinitiated: *mut windows_core::BOOL,
24602    ) -> windows_core::Result<()> {
24603        unsafe {
24604            (windows_core::Interface::vtable(self).IsUserInitiated)(
24605                windows_core::Interface::as_raw(self),
24606                isuserinitiated as _,
24607            )
24608            .ok()
24609        }
24610    }
24611    pub unsafe fn State(
24612        &self,
24613        state: *mut COREWEBVIEW2_PERMISSION_STATE,
24614    ) -> windows_core::Result<()> {
24615        unsafe {
24616            (windows_core::Interface::vtable(self).State)(
24617                windows_core::Interface::as_raw(self),
24618                state as _,
24619            )
24620            .ok()
24621        }
24622    }
24623    pub unsafe fn SetState(
24624        &self,
24625        state: COREWEBVIEW2_PERMISSION_STATE,
24626    ) -> windows_core::Result<()> {
24627        unsafe {
24628            (windows_core::Interface::vtable(self).SetState)(
24629                windows_core::Interface::as_raw(self),
24630                state,
24631            )
24632            .ok()
24633        }
24634    }
24635    pub unsafe fn GetDeferral(&self) -> windows_core::Result<ICoreWebView2Deferral> {
24636        unsafe {
24637            let mut result__ = core::mem::zeroed();
24638            (windows_core::Interface::vtable(self).GetDeferral)(
24639                windows_core::Interface::as_raw(self),
24640                &mut result__,
24641            )
24642            .and_then(|| windows_core::Type::from_abi(result__))
24643        }
24644    }
24645}
24646#[repr(C)]
24647#[doc(hidden)]
24648pub struct ICoreWebView2PermissionRequestedEventArgs_Vtbl {
24649    pub base__: windows_core::IUnknown_Vtbl,
24650    pub Uri: unsafe extern "system" fn(
24651        *mut core::ffi::c_void,
24652        *mut windows_core::PWSTR,
24653    ) -> windows_core::HRESULT,
24654    pub PermissionKind: unsafe extern "system" fn(
24655        *mut core::ffi::c_void,
24656        *mut COREWEBVIEW2_PERMISSION_KIND,
24657    ) -> windows_core::HRESULT,
24658    pub IsUserInitiated: unsafe extern "system" fn(
24659        *mut core::ffi::c_void,
24660        *mut windows_core::BOOL,
24661    ) -> windows_core::HRESULT,
24662    pub State: unsafe extern "system" fn(
24663        *mut core::ffi::c_void,
24664        *mut COREWEBVIEW2_PERMISSION_STATE,
24665    ) -> windows_core::HRESULT,
24666    pub SetState: unsafe extern "system" fn(
24667        *mut core::ffi::c_void,
24668        COREWEBVIEW2_PERMISSION_STATE,
24669    ) -> windows_core::HRESULT,
24670    pub GetDeferral: unsafe extern "system" fn(
24671        *mut core::ffi::c_void,
24672        *mut *mut core::ffi::c_void,
24673    ) -> windows_core::HRESULT,
24674}
24675pub trait ICoreWebView2PermissionRequestedEventArgs_Impl: windows_core::IUnknownImpl {
24676    fn Uri(&self, uri: *mut windows_core::PWSTR) -> windows_core::Result<()>;
24677    fn PermissionKind(
24678        &self,
24679        permissionkind: *mut COREWEBVIEW2_PERMISSION_KIND,
24680    ) -> windows_core::Result<()>;
24681    fn IsUserInitiated(&self, isuserinitiated: *mut windows_core::BOOL)
24682        -> windows_core::Result<()>;
24683    fn State(&self, state: *mut COREWEBVIEW2_PERMISSION_STATE) -> windows_core::Result<()>;
24684    fn SetState(&self, state: COREWEBVIEW2_PERMISSION_STATE) -> windows_core::Result<()>;
24685    fn GetDeferral(&self) -> windows_core::Result<ICoreWebView2Deferral>;
24686}
24687impl ICoreWebView2PermissionRequestedEventArgs_Vtbl {
24688    pub const fn new<
24689        Identity: ICoreWebView2PermissionRequestedEventArgs_Impl,
24690        const OFFSET: isize,
24691    >() -> Self {
24692        unsafe extern "system" fn Uri<
24693            Identity: ICoreWebView2PermissionRequestedEventArgs_Impl,
24694            const OFFSET: isize,
24695        >(
24696            this: *mut core::ffi::c_void,
24697            uri: *mut windows_core::PWSTR,
24698        ) -> windows_core::HRESULT {
24699            unsafe {
24700                let this: &Identity =
24701                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
24702                ICoreWebView2PermissionRequestedEventArgs_Impl::Uri(
24703                    this,
24704                    core::mem::transmute_copy(&uri),
24705                )
24706                .into()
24707            }
24708        }
24709        unsafe extern "system" fn PermissionKind<
24710            Identity: ICoreWebView2PermissionRequestedEventArgs_Impl,
24711            const OFFSET: isize,
24712        >(
24713            this: *mut core::ffi::c_void,
24714            permissionkind: *mut COREWEBVIEW2_PERMISSION_KIND,
24715        ) -> windows_core::HRESULT {
24716            unsafe {
24717                let this: &Identity =
24718                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
24719                ICoreWebView2PermissionRequestedEventArgs_Impl::PermissionKind(
24720                    this,
24721                    core::mem::transmute_copy(&permissionkind),
24722                )
24723                .into()
24724            }
24725        }
24726        unsafe extern "system" fn IsUserInitiated<
24727            Identity: ICoreWebView2PermissionRequestedEventArgs_Impl,
24728            const OFFSET: isize,
24729        >(
24730            this: *mut core::ffi::c_void,
24731            isuserinitiated: *mut windows_core::BOOL,
24732        ) -> windows_core::HRESULT {
24733            unsafe {
24734                let this: &Identity =
24735                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
24736                ICoreWebView2PermissionRequestedEventArgs_Impl::IsUserInitiated(
24737                    this,
24738                    core::mem::transmute_copy(&isuserinitiated),
24739                )
24740                .into()
24741            }
24742        }
24743        unsafe extern "system" fn State<
24744            Identity: ICoreWebView2PermissionRequestedEventArgs_Impl,
24745            const OFFSET: isize,
24746        >(
24747            this: *mut core::ffi::c_void,
24748            state: *mut COREWEBVIEW2_PERMISSION_STATE,
24749        ) -> windows_core::HRESULT {
24750            unsafe {
24751                let this: &Identity =
24752                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
24753                ICoreWebView2PermissionRequestedEventArgs_Impl::State(
24754                    this,
24755                    core::mem::transmute_copy(&state),
24756                )
24757                .into()
24758            }
24759        }
24760        unsafe extern "system" fn SetState<
24761            Identity: ICoreWebView2PermissionRequestedEventArgs_Impl,
24762            const OFFSET: isize,
24763        >(
24764            this: *mut core::ffi::c_void,
24765            state: COREWEBVIEW2_PERMISSION_STATE,
24766        ) -> windows_core::HRESULT {
24767            unsafe {
24768                let this: &Identity =
24769                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
24770                ICoreWebView2PermissionRequestedEventArgs_Impl::SetState(
24771                    this,
24772                    core::mem::transmute_copy(&state),
24773                )
24774                .into()
24775            }
24776        }
24777        unsafe extern "system" fn GetDeferral<
24778            Identity: ICoreWebView2PermissionRequestedEventArgs_Impl,
24779            const OFFSET: isize,
24780        >(
24781            this: *mut core::ffi::c_void,
24782            deferral: *mut *mut core::ffi::c_void,
24783        ) -> windows_core::HRESULT {
24784            unsafe {
24785                let this: &Identity =
24786                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
24787                match ICoreWebView2PermissionRequestedEventArgs_Impl::GetDeferral(this) {
24788                    Ok(ok__) => {
24789                        deferral.write(core::mem::transmute(ok__));
24790                        windows_core::HRESULT(0)
24791                    }
24792                    Err(err) => err.into(),
24793                }
24794            }
24795        }
24796        Self {
24797            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
24798            Uri: Uri::<Identity, OFFSET>,
24799            PermissionKind: PermissionKind::<Identity, OFFSET>,
24800            IsUserInitiated: IsUserInitiated::<Identity, OFFSET>,
24801            State: State::<Identity, OFFSET>,
24802            SetState: SetState::<Identity, OFFSET>,
24803            GetDeferral: GetDeferral::<Identity, OFFSET>,
24804        }
24805    }
24806    pub fn matches(iid: &windows_core::GUID) -> bool {
24807        iid == &<ICoreWebView2PermissionRequestedEventArgs as windows_core::Interface>::IID
24808    }
24809}
24810impl windows_core::RuntimeName for ICoreWebView2PermissionRequestedEventArgs {}
24811windows_core::imp::define_interface!(
24812    ICoreWebView2PermissionRequestedEventArgs2,
24813    ICoreWebView2PermissionRequestedEventArgs2_Vtbl,
24814    0x74d7127f_9de6_4200_8734_42d6fb4ff741
24815);
24816impl core::ops::Deref for ICoreWebView2PermissionRequestedEventArgs2 {
24817    type Target = ICoreWebView2PermissionRequestedEventArgs;
24818    fn deref(&self) -> &Self::Target {
24819        unsafe { core::mem::transmute(self) }
24820    }
24821}
24822windows_core::imp::interface_hierarchy!(
24823    ICoreWebView2PermissionRequestedEventArgs2,
24824    windows_core::IUnknown,
24825    ICoreWebView2PermissionRequestedEventArgs
24826);
24827impl ICoreWebView2PermissionRequestedEventArgs2 {
24828    pub unsafe fn Handled(&self, value: *mut windows_core::BOOL) -> windows_core::Result<()> {
24829        unsafe {
24830            (windows_core::Interface::vtable(self).Handled)(
24831                windows_core::Interface::as_raw(self),
24832                value as _,
24833            )
24834            .ok()
24835        }
24836    }
24837    pub unsafe fn SetHandled(&self, value: bool) -> windows_core::Result<()> {
24838        unsafe {
24839            (windows_core::Interface::vtable(self).SetHandled)(
24840                windows_core::Interface::as_raw(self),
24841                value.into(),
24842            )
24843            .ok()
24844        }
24845    }
24846}
24847#[repr(C)]
24848#[doc(hidden)]
24849pub struct ICoreWebView2PermissionRequestedEventArgs2_Vtbl {
24850    pub base__: ICoreWebView2PermissionRequestedEventArgs_Vtbl,
24851    pub Handled: unsafe extern "system" fn(
24852        *mut core::ffi::c_void,
24853        *mut windows_core::BOOL,
24854    ) -> windows_core::HRESULT,
24855    pub SetHandled: unsafe extern "system" fn(
24856        *mut core::ffi::c_void,
24857        windows_core::BOOL,
24858    ) -> windows_core::HRESULT,
24859}
24860pub trait ICoreWebView2PermissionRequestedEventArgs2_Impl:
24861    ICoreWebView2PermissionRequestedEventArgs_Impl
24862{
24863    fn Handled(&self, value: *mut windows_core::BOOL) -> windows_core::Result<()>;
24864    fn SetHandled(&self, value: windows_core::BOOL) -> windows_core::Result<()>;
24865}
24866impl ICoreWebView2PermissionRequestedEventArgs2_Vtbl {
24867    pub const fn new<
24868        Identity: ICoreWebView2PermissionRequestedEventArgs2_Impl,
24869        const OFFSET: isize,
24870    >() -> Self {
24871        unsafe extern "system" fn Handled<
24872            Identity: ICoreWebView2PermissionRequestedEventArgs2_Impl,
24873            const OFFSET: isize,
24874        >(
24875            this: *mut core::ffi::c_void,
24876            value: *mut windows_core::BOOL,
24877        ) -> windows_core::HRESULT {
24878            unsafe {
24879                let this: &Identity =
24880                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
24881                ICoreWebView2PermissionRequestedEventArgs2_Impl::Handled(
24882                    this,
24883                    core::mem::transmute_copy(&value),
24884                )
24885                .into()
24886            }
24887        }
24888        unsafe extern "system" fn SetHandled<
24889            Identity: ICoreWebView2PermissionRequestedEventArgs2_Impl,
24890            const OFFSET: isize,
24891        >(
24892            this: *mut core::ffi::c_void,
24893            value: windows_core::BOOL,
24894        ) -> windows_core::HRESULT {
24895            unsafe {
24896                let this: &Identity =
24897                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
24898                ICoreWebView2PermissionRequestedEventArgs2_Impl::SetHandled(
24899                    this,
24900                    core::mem::transmute_copy(&value),
24901                )
24902                .into()
24903            }
24904        }
24905        Self {
24906            base__: ICoreWebView2PermissionRequestedEventArgs_Vtbl::new::<Identity, OFFSET>(),
24907            Handled: Handled::<Identity, OFFSET>,
24908            SetHandled: SetHandled::<Identity, OFFSET>,
24909        }
24910    }
24911    pub fn matches(iid: &windows_core::GUID) -> bool {
24912        iid == &<ICoreWebView2PermissionRequestedEventArgs2 as windows_core::Interface>::IID
24913            || iid == &<ICoreWebView2PermissionRequestedEventArgs as windows_core::Interface>::IID
24914    }
24915}
24916impl windows_core::RuntimeName for ICoreWebView2PermissionRequestedEventArgs2 {}
24917windows_core::imp::define_interface!(
24918    ICoreWebView2PermissionRequestedEventArgs3,
24919    ICoreWebView2PermissionRequestedEventArgs3_Vtbl,
24920    0xe61670bc_3dce_4177_86d2_c629ae3cb6ac
24921);
24922impl core::ops::Deref for ICoreWebView2PermissionRequestedEventArgs3 {
24923    type Target = ICoreWebView2PermissionRequestedEventArgs2;
24924    fn deref(&self) -> &Self::Target {
24925        unsafe { core::mem::transmute(self) }
24926    }
24927}
24928windows_core::imp::interface_hierarchy!(
24929    ICoreWebView2PermissionRequestedEventArgs3,
24930    windows_core::IUnknown,
24931    ICoreWebView2PermissionRequestedEventArgs,
24932    ICoreWebView2PermissionRequestedEventArgs2
24933);
24934impl ICoreWebView2PermissionRequestedEventArgs3 {
24935    pub unsafe fn SavesInProfile(
24936        &self,
24937        value: *mut windows_core::BOOL,
24938    ) -> windows_core::Result<()> {
24939        unsafe {
24940            (windows_core::Interface::vtable(self).SavesInProfile)(
24941                windows_core::Interface::as_raw(self),
24942                value as _,
24943            )
24944            .ok()
24945        }
24946    }
24947    pub unsafe fn SetSavesInProfile(&self, value: bool) -> windows_core::Result<()> {
24948        unsafe {
24949            (windows_core::Interface::vtable(self).SetSavesInProfile)(
24950                windows_core::Interface::as_raw(self),
24951                value.into(),
24952            )
24953            .ok()
24954        }
24955    }
24956}
24957#[repr(C)]
24958#[doc(hidden)]
24959pub struct ICoreWebView2PermissionRequestedEventArgs3_Vtbl {
24960    pub base__: ICoreWebView2PermissionRequestedEventArgs2_Vtbl,
24961    pub SavesInProfile: unsafe extern "system" fn(
24962        *mut core::ffi::c_void,
24963        *mut windows_core::BOOL,
24964    ) -> windows_core::HRESULT,
24965    pub SetSavesInProfile: unsafe extern "system" fn(
24966        *mut core::ffi::c_void,
24967        windows_core::BOOL,
24968    ) -> windows_core::HRESULT,
24969}
24970pub trait ICoreWebView2PermissionRequestedEventArgs3_Impl:
24971    ICoreWebView2PermissionRequestedEventArgs2_Impl
24972{
24973    fn SavesInProfile(&self, value: *mut windows_core::BOOL) -> windows_core::Result<()>;
24974    fn SetSavesInProfile(&self, value: windows_core::BOOL) -> windows_core::Result<()>;
24975}
24976impl ICoreWebView2PermissionRequestedEventArgs3_Vtbl {
24977    pub const fn new<
24978        Identity: ICoreWebView2PermissionRequestedEventArgs3_Impl,
24979        const OFFSET: isize,
24980    >() -> Self {
24981        unsafe extern "system" fn SavesInProfile<
24982            Identity: ICoreWebView2PermissionRequestedEventArgs3_Impl,
24983            const OFFSET: isize,
24984        >(
24985            this: *mut core::ffi::c_void,
24986            value: *mut windows_core::BOOL,
24987        ) -> windows_core::HRESULT {
24988            unsafe {
24989                let this: &Identity =
24990                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
24991                ICoreWebView2PermissionRequestedEventArgs3_Impl::SavesInProfile(
24992                    this,
24993                    core::mem::transmute_copy(&value),
24994                )
24995                .into()
24996            }
24997        }
24998        unsafe extern "system" fn SetSavesInProfile<
24999            Identity: ICoreWebView2PermissionRequestedEventArgs3_Impl,
25000            const OFFSET: isize,
25001        >(
25002            this: *mut core::ffi::c_void,
25003            value: windows_core::BOOL,
25004        ) -> windows_core::HRESULT {
25005            unsafe {
25006                let this: &Identity =
25007                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
25008                ICoreWebView2PermissionRequestedEventArgs3_Impl::SetSavesInProfile(
25009                    this,
25010                    core::mem::transmute_copy(&value),
25011                )
25012                .into()
25013            }
25014        }
25015        Self {
25016            base__: ICoreWebView2PermissionRequestedEventArgs2_Vtbl::new::<Identity, OFFSET>(),
25017            SavesInProfile: SavesInProfile::<Identity, OFFSET>,
25018            SetSavesInProfile: SetSavesInProfile::<Identity, OFFSET>,
25019        }
25020    }
25021    pub fn matches(iid: &windows_core::GUID) -> bool {
25022        iid == &<ICoreWebView2PermissionRequestedEventArgs3 as windows_core::Interface>::IID
25023            || iid == &<ICoreWebView2PermissionRequestedEventArgs as windows_core::Interface>::IID
25024            || iid == &<ICoreWebView2PermissionRequestedEventArgs2 as windows_core::Interface>::IID
25025    }
25026}
25027impl windows_core::RuntimeName for ICoreWebView2PermissionRequestedEventArgs3 {}
25028windows_core::imp::define_interface!(
25029    ICoreWebView2PermissionRequestedEventHandler,
25030    ICoreWebView2PermissionRequestedEventHandler_Vtbl,
25031    0x15e1c6a3_c72a_4df3_91d7_d097fbec6bfd
25032);
25033windows_core::imp::interface_hierarchy!(
25034    ICoreWebView2PermissionRequestedEventHandler,
25035    windows_core::IUnknown
25036);
25037impl ICoreWebView2PermissionRequestedEventHandler {
25038    pub unsafe fn Invoke<P0, P1>(&self, sender: P0, args: P1) -> windows_core::Result<()>
25039    where
25040        P0: windows_core::Param<ICoreWebView2>,
25041        P1: windows_core::Param<ICoreWebView2PermissionRequestedEventArgs>,
25042    {
25043        unsafe {
25044            (windows_core::Interface::vtable(self).Invoke)(
25045                windows_core::Interface::as_raw(self),
25046                sender.param().abi(),
25047                args.param().abi(),
25048            )
25049            .ok()
25050        }
25051    }
25052}
25053#[repr(C)]
25054#[doc(hidden)]
25055pub struct ICoreWebView2PermissionRequestedEventHandler_Vtbl {
25056    pub base__: windows_core::IUnknown_Vtbl,
25057    pub Invoke: unsafe extern "system" fn(
25058        *mut core::ffi::c_void,
25059        *mut core::ffi::c_void,
25060        *mut core::ffi::c_void,
25061    ) -> windows_core::HRESULT,
25062}
25063pub trait ICoreWebView2PermissionRequestedEventHandler_Impl: windows_core::IUnknownImpl {
25064    fn Invoke(
25065        &self,
25066        sender: windows_core::Ref<'_, ICoreWebView2>,
25067        args: windows_core::Ref<'_, ICoreWebView2PermissionRequestedEventArgs>,
25068    ) -> windows_core::Result<()>;
25069}
25070impl ICoreWebView2PermissionRequestedEventHandler_Vtbl {
25071    pub const fn new<
25072        Identity: ICoreWebView2PermissionRequestedEventHandler_Impl,
25073        const OFFSET: isize,
25074    >() -> Self {
25075        unsafe extern "system" fn Invoke<
25076            Identity: ICoreWebView2PermissionRequestedEventHandler_Impl,
25077            const OFFSET: isize,
25078        >(
25079            this: *mut core::ffi::c_void,
25080            sender: *mut core::ffi::c_void,
25081            args: *mut core::ffi::c_void,
25082        ) -> windows_core::HRESULT {
25083            unsafe {
25084                let this: &Identity =
25085                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
25086                ICoreWebView2PermissionRequestedEventHandler_Impl::Invoke(
25087                    this,
25088                    core::mem::transmute_copy(&sender),
25089                    core::mem::transmute_copy(&args),
25090                )
25091                .into()
25092            }
25093        }
25094        Self {
25095            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
25096            Invoke: Invoke::<Identity, OFFSET>,
25097        }
25098    }
25099    pub fn matches(iid: &windows_core::GUID) -> bool {
25100        iid == &<ICoreWebView2PermissionRequestedEventHandler as windows_core::Interface>::IID
25101    }
25102}
25103impl windows_core::RuntimeName for ICoreWebView2PermissionRequestedEventHandler {}
25104windows_core::imp::define_interface!(
25105    ICoreWebView2PermissionSetting,
25106    ICoreWebView2PermissionSetting_Vtbl,
25107    0x792b6eca_5576_421c_9119_74ebb3a4ffb3
25108);
25109windows_core::imp::interface_hierarchy!(ICoreWebView2PermissionSetting, windows_core::IUnknown);
25110impl ICoreWebView2PermissionSetting {
25111    pub unsafe fn PermissionKind(
25112        &self,
25113        value: *mut COREWEBVIEW2_PERMISSION_KIND,
25114    ) -> windows_core::Result<()> {
25115        unsafe {
25116            (windows_core::Interface::vtable(self).PermissionKind)(
25117                windows_core::Interface::as_raw(self),
25118                value as _,
25119            )
25120            .ok()
25121        }
25122    }
25123    pub unsafe fn PermissionOrigin(
25124        &self,
25125        value: *mut windows_core::PWSTR,
25126    ) -> windows_core::Result<()> {
25127        unsafe {
25128            (windows_core::Interface::vtable(self).PermissionOrigin)(
25129                windows_core::Interface::as_raw(self),
25130                value as _,
25131            )
25132            .ok()
25133        }
25134    }
25135    pub unsafe fn PermissionState(
25136        &self,
25137        value: *mut COREWEBVIEW2_PERMISSION_STATE,
25138    ) -> windows_core::Result<()> {
25139        unsafe {
25140            (windows_core::Interface::vtable(self).PermissionState)(
25141                windows_core::Interface::as_raw(self),
25142                value as _,
25143            )
25144            .ok()
25145        }
25146    }
25147}
25148#[repr(C)]
25149#[doc(hidden)]
25150pub struct ICoreWebView2PermissionSetting_Vtbl {
25151    pub base__: windows_core::IUnknown_Vtbl,
25152    pub PermissionKind: unsafe extern "system" fn(
25153        *mut core::ffi::c_void,
25154        *mut COREWEBVIEW2_PERMISSION_KIND,
25155    ) -> windows_core::HRESULT,
25156    pub PermissionOrigin: unsafe extern "system" fn(
25157        *mut core::ffi::c_void,
25158        *mut windows_core::PWSTR,
25159    ) -> windows_core::HRESULT,
25160    pub PermissionState: unsafe extern "system" fn(
25161        *mut core::ffi::c_void,
25162        *mut COREWEBVIEW2_PERMISSION_STATE,
25163    ) -> windows_core::HRESULT,
25164}
25165pub trait ICoreWebView2PermissionSetting_Impl: windows_core::IUnknownImpl {
25166    fn PermissionKind(&self, value: *mut COREWEBVIEW2_PERMISSION_KIND) -> windows_core::Result<()>;
25167    fn PermissionOrigin(&self, value: *mut windows_core::PWSTR) -> windows_core::Result<()>;
25168    fn PermissionState(
25169        &self,
25170        value: *mut COREWEBVIEW2_PERMISSION_STATE,
25171    ) -> windows_core::Result<()>;
25172}
25173impl ICoreWebView2PermissionSetting_Vtbl {
25174    pub const fn new<Identity: ICoreWebView2PermissionSetting_Impl, const OFFSET: isize>() -> Self {
25175        unsafe extern "system" fn PermissionKind<
25176            Identity: ICoreWebView2PermissionSetting_Impl,
25177            const OFFSET: isize,
25178        >(
25179            this: *mut core::ffi::c_void,
25180            value: *mut COREWEBVIEW2_PERMISSION_KIND,
25181        ) -> windows_core::HRESULT {
25182            unsafe {
25183                let this: &Identity =
25184                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
25185                ICoreWebView2PermissionSetting_Impl::PermissionKind(
25186                    this,
25187                    core::mem::transmute_copy(&value),
25188                )
25189                .into()
25190            }
25191        }
25192        unsafe extern "system" fn PermissionOrigin<
25193            Identity: ICoreWebView2PermissionSetting_Impl,
25194            const OFFSET: isize,
25195        >(
25196            this: *mut core::ffi::c_void,
25197            value: *mut windows_core::PWSTR,
25198        ) -> windows_core::HRESULT {
25199            unsafe {
25200                let this: &Identity =
25201                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
25202                ICoreWebView2PermissionSetting_Impl::PermissionOrigin(
25203                    this,
25204                    core::mem::transmute_copy(&value),
25205                )
25206                .into()
25207            }
25208        }
25209        unsafe extern "system" fn PermissionState<
25210            Identity: ICoreWebView2PermissionSetting_Impl,
25211            const OFFSET: isize,
25212        >(
25213            this: *mut core::ffi::c_void,
25214            value: *mut COREWEBVIEW2_PERMISSION_STATE,
25215        ) -> windows_core::HRESULT {
25216            unsafe {
25217                let this: &Identity =
25218                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
25219                ICoreWebView2PermissionSetting_Impl::PermissionState(
25220                    this,
25221                    core::mem::transmute_copy(&value),
25222                )
25223                .into()
25224            }
25225        }
25226        Self {
25227            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
25228            PermissionKind: PermissionKind::<Identity, OFFSET>,
25229            PermissionOrigin: PermissionOrigin::<Identity, OFFSET>,
25230            PermissionState: PermissionState::<Identity, OFFSET>,
25231        }
25232    }
25233    pub fn matches(iid: &windows_core::GUID) -> bool {
25234        iid == &<ICoreWebView2PermissionSetting as windows_core::Interface>::IID
25235    }
25236}
25237impl windows_core::RuntimeName for ICoreWebView2PermissionSetting {}
25238windows_core::imp::define_interface!(
25239    ICoreWebView2PermissionSettingCollectionView,
25240    ICoreWebView2PermissionSettingCollectionView_Vtbl,
25241    0xf5596f62_3de5_47b1_91e8_a4104b596b96
25242);
25243windows_core::imp::interface_hierarchy!(
25244    ICoreWebView2PermissionSettingCollectionView,
25245    windows_core::IUnknown
25246);
25247impl ICoreWebView2PermissionSettingCollectionView {
25248    pub unsafe fn GetValueAtIndex(
25249        &self,
25250        index: u32,
25251    ) -> windows_core::Result<ICoreWebView2PermissionSetting> {
25252        unsafe {
25253            let mut result__ = core::mem::zeroed();
25254            (windows_core::Interface::vtable(self).GetValueAtIndex)(
25255                windows_core::Interface::as_raw(self),
25256                index,
25257                &mut result__,
25258            )
25259            .and_then(|| windows_core::Type::from_abi(result__))
25260        }
25261    }
25262    pub unsafe fn Count(&self, value: *mut u32) -> windows_core::Result<()> {
25263        unsafe {
25264            (windows_core::Interface::vtable(self).Count)(
25265                windows_core::Interface::as_raw(self),
25266                value as _,
25267            )
25268            .ok()
25269        }
25270    }
25271}
25272#[repr(C)]
25273#[doc(hidden)]
25274pub struct ICoreWebView2PermissionSettingCollectionView_Vtbl {
25275    pub base__: windows_core::IUnknown_Vtbl,
25276    pub GetValueAtIndex: unsafe extern "system" fn(
25277        *mut core::ffi::c_void,
25278        u32,
25279        *mut *mut core::ffi::c_void,
25280    ) -> windows_core::HRESULT,
25281    pub Count: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
25282}
25283pub trait ICoreWebView2PermissionSettingCollectionView_Impl: windows_core::IUnknownImpl {
25284    fn GetValueAtIndex(&self, index: u32) -> windows_core::Result<ICoreWebView2PermissionSetting>;
25285    fn Count(&self, value: *mut u32) -> windows_core::Result<()>;
25286}
25287impl ICoreWebView2PermissionSettingCollectionView_Vtbl {
25288    pub const fn new<
25289        Identity: ICoreWebView2PermissionSettingCollectionView_Impl,
25290        const OFFSET: isize,
25291    >() -> Self {
25292        unsafe extern "system" fn GetValueAtIndex<
25293            Identity: ICoreWebView2PermissionSettingCollectionView_Impl,
25294            const OFFSET: isize,
25295        >(
25296            this: *mut core::ffi::c_void,
25297            index: u32,
25298            permissionsetting: *mut *mut core::ffi::c_void,
25299        ) -> windows_core::HRESULT {
25300            unsafe {
25301                let this: &Identity =
25302                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
25303                match ICoreWebView2PermissionSettingCollectionView_Impl::GetValueAtIndex(
25304                    this,
25305                    core::mem::transmute_copy(&index),
25306                ) {
25307                    Ok(ok__) => {
25308                        permissionsetting.write(core::mem::transmute(ok__));
25309                        windows_core::HRESULT(0)
25310                    }
25311                    Err(err) => err.into(),
25312                }
25313            }
25314        }
25315        unsafe extern "system" fn Count<
25316            Identity: ICoreWebView2PermissionSettingCollectionView_Impl,
25317            const OFFSET: isize,
25318        >(
25319            this: *mut core::ffi::c_void,
25320            value: *mut u32,
25321        ) -> windows_core::HRESULT {
25322            unsafe {
25323                let this: &Identity =
25324                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
25325                ICoreWebView2PermissionSettingCollectionView_Impl::Count(
25326                    this,
25327                    core::mem::transmute_copy(&value),
25328                )
25329                .into()
25330            }
25331        }
25332        Self {
25333            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
25334            GetValueAtIndex: GetValueAtIndex::<Identity, OFFSET>,
25335            Count: Count::<Identity, OFFSET>,
25336        }
25337    }
25338    pub fn matches(iid: &windows_core::GUID) -> bool {
25339        iid == &<ICoreWebView2PermissionSettingCollectionView as windows_core::Interface>::IID
25340    }
25341}
25342impl windows_core::RuntimeName for ICoreWebView2PermissionSettingCollectionView {}
25343windows_core::imp::define_interface!(
25344    ICoreWebView2PointerInfo,
25345    ICoreWebView2PointerInfo_Vtbl,
25346    0xe6995887_d10d_4f5d_9359_4ce46e4f96b9
25347);
25348windows_core::imp::interface_hierarchy!(ICoreWebView2PointerInfo, windows_core::IUnknown);
25349impl ICoreWebView2PointerInfo {
25350    pub unsafe fn PointerKind(&self, pointerkind: *mut u32) -> windows_core::Result<()> {
25351        unsafe {
25352            (windows_core::Interface::vtable(self).PointerKind)(
25353                windows_core::Interface::as_raw(self),
25354                pointerkind as _,
25355            )
25356            .ok()
25357        }
25358    }
25359    pub unsafe fn SetPointerKind(&self, pointerkind: u32) -> windows_core::Result<()> {
25360        unsafe {
25361            (windows_core::Interface::vtable(self).SetPointerKind)(
25362                windows_core::Interface::as_raw(self),
25363                pointerkind,
25364            )
25365            .ok()
25366        }
25367    }
25368    pub unsafe fn PointerId(&self, pointerid: *mut u32) -> windows_core::Result<()> {
25369        unsafe {
25370            (windows_core::Interface::vtable(self).PointerId)(
25371                windows_core::Interface::as_raw(self),
25372                pointerid as _,
25373            )
25374            .ok()
25375        }
25376    }
25377    pub unsafe fn SetPointerId(&self, pointerid: u32) -> windows_core::Result<()> {
25378        unsafe {
25379            (windows_core::Interface::vtable(self).SetPointerId)(
25380                windows_core::Interface::as_raw(self),
25381                pointerid,
25382            )
25383            .ok()
25384        }
25385    }
25386    pub unsafe fn FrameId(&self, frameid: *mut u32) -> windows_core::Result<()> {
25387        unsafe {
25388            (windows_core::Interface::vtable(self).FrameId)(
25389                windows_core::Interface::as_raw(self),
25390                frameid as _,
25391            )
25392            .ok()
25393        }
25394    }
25395    pub unsafe fn SetFrameId(&self, frameid: u32) -> windows_core::Result<()> {
25396        unsafe {
25397            (windows_core::Interface::vtable(self).SetFrameId)(
25398                windows_core::Interface::as_raw(self),
25399                frameid,
25400            )
25401            .ok()
25402        }
25403    }
25404    pub unsafe fn PointerFlags(&self, pointerflags: *mut u32) -> windows_core::Result<()> {
25405        unsafe {
25406            (windows_core::Interface::vtable(self).PointerFlags)(
25407                windows_core::Interface::as_raw(self),
25408                pointerflags as _,
25409            )
25410            .ok()
25411        }
25412    }
25413    pub unsafe fn SetPointerFlags(&self, pointerflags: u32) -> windows_core::Result<()> {
25414        unsafe {
25415            (windows_core::Interface::vtable(self).SetPointerFlags)(
25416                windows_core::Interface::as_raw(self),
25417                pointerflags,
25418            )
25419            .ok()
25420        }
25421    }
25422    pub unsafe fn PointerDeviceRect(
25423        &self,
25424        pointerdevicerect: *mut windows::Win32::Foundation::RECT,
25425    ) -> windows_core::Result<()> {
25426        unsafe {
25427            (windows_core::Interface::vtable(self).PointerDeviceRect)(
25428                windows_core::Interface::as_raw(self),
25429                pointerdevicerect as _,
25430            )
25431            .ok()
25432        }
25433    }
25434    pub unsafe fn SetPointerDeviceRect(
25435        &self,
25436        pointerdevicerect: windows::Win32::Foundation::RECT,
25437    ) -> windows_core::Result<()> {
25438        unsafe {
25439            (windows_core::Interface::vtable(self).SetPointerDeviceRect)(
25440                windows_core::Interface::as_raw(self),
25441                core::mem::transmute(pointerdevicerect),
25442            )
25443            .ok()
25444        }
25445    }
25446    pub unsafe fn DisplayRect(
25447        &self,
25448        displayrect: *mut windows::Win32::Foundation::RECT,
25449    ) -> windows_core::Result<()> {
25450        unsafe {
25451            (windows_core::Interface::vtable(self).DisplayRect)(
25452                windows_core::Interface::as_raw(self),
25453                displayrect as _,
25454            )
25455            .ok()
25456        }
25457    }
25458    pub unsafe fn SetDisplayRect(
25459        &self,
25460        displayrect: windows::Win32::Foundation::RECT,
25461    ) -> windows_core::Result<()> {
25462        unsafe {
25463            (windows_core::Interface::vtable(self).SetDisplayRect)(
25464                windows_core::Interface::as_raw(self),
25465                core::mem::transmute(displayrect),
25466            )
25467            .ok()
25468        }
25469    }
25470    pub unsafe fn PixelLocation(
25471        &self,
25472        pixellocation: *mut windows::Win32::Foundation::POINT,
25473    ) -> windows_core::Result<()> {
25474        unsafe {
25475            (windows_core::Interface::vtable(self).PixelLocation)(
25476                windows_core::Interface::as_raw(self),
25477                pixellocation as _,
25478            )
25479            .ok()
25480        }
25481    }
25482    pub unsafe fn SetPixelLocation(
25483        &self,
25484        pixellocation: windows::Win32::Foundation::POINT,
25485    ) -> windows_core::Result<()> {
25486        unsafe {
25487            (windows_core::Interface::vtable(self).SetPixelLocation)(
25488                windows_core::Interface::as_raw(self),
25489                core::mem::transmute(pixellocation),
25490            )
25491            .ok()
25492        }
25493    }
25494    pub unsafe fn HimetricLocation(
25495        &self,
25496        himetriclocation: *mut windows::Win32::Foundation::POINT,
25497    ) -> windows_core::Result<()> {
25498        unsafe {
25499            (windows_core::Interface::vtable(self).HimetricLocation)(
25500                windows_core::Interface::as_raw(self),
25501                himetriclocation as _,
25502            )
25503            .ok()
25504        }
25505    }
25506    pub unsafe fn SetHimetricLocation(
25507        &self,
25508        himetriclocation: windows::Win32::Foundation::POINT,
25509    ) -> windows_core::Result<()> {
25510        unsafe {
25511            (windows_core::Interface::vtable(self).SetHimetricLocation)(
25512                windows_core::Interface::as_raw(self),
25513                core::mem::transmute(himetriclocation),
25514            )
25515            .ok()
25516        }
25517    }
25518    pub unsafe fn PixelLocationRaw(
25519        &self,
25520        pixellocationraw: *mut windows::Win32::Foundation::POINT,
25521    ) -> windows_core::Result<()> {
25522        unsafe {
25523            (windows_core::Interface::vtable(self).PixelLocationRaw)(
25524                windows_core::Interface::as_raw(self),
25525                pixellocationraw as _,
25526            )
25527            .ok()
25528        }
25529    }
25530    pub unsafe fn SetPixelLocationRaw(
25531        &self,
25532        pixellocationraw: windows::Win32::Foundation::POINT,
25533    ) -> windows_core::Result<()> {
25534        unsafe {
25535            (windows_core::Interface::vtable(self).SetPixelLocationRaw)(
25536                windows_core::Interface::as_raw(self),
25537                core::mem::transmute(pixellocationraw),
25538            )
25539            .ok()
25540        }
25541    }
25542    pub unsafe fn HimetricLocationRaw(
25543        &self,
25544        himetriclocationraw: *mut windows::Win32::Foundation::POINT,
25545    ) -> windows_core::Result<()> {
25546        unsafe {
25547            (windows_core::Interface::vtable(self).HimetricLocationRaw)(
25548                windows_core::Interface::as_raw(self),
25549                himetriclocationraw as _,
25550            )
25551            .ok()
25552        }
25553    }
25554    pub unsafe fn SetHimetricLocationRaw(
25555        &self,
25556        himetriclocationraw: windows::Win32::Foundation::POINT,
25557    ) -> windows_core::Result<()> {
25558        unsafe {
25559            (windows_core::Interface::vtable(self).SetHimetricLocationRaw)(
25560                windows_core::Interface::as_raw(self),
25561                core::mem::transmute(himetriclocationraw),
25562            )
25563            .ok()
25564        }
25565    }
25566    pub unsafe fn Time(&self, time: *mut u32) -> windows_core::Result<()> {
25567        unsafe {
25568            (windows_core::Interface::vtable(self).Time)(
25569                windows_core::Interface::as_raw(self),
25570                time as _,
25571            )
25572            .ok()
25573        }
25574    }
25575    pub unsafe fn SetTime(&self, time: u32) -> windows_core::Result<()> {
25576        unsafe {
25577            (windows_core::Interface::vtable(self).SetTime)(
25578                windows_core::Interface::as_raw(self),
25579                time,
25580            )
25581            .ok()
25582        }
25583    }
25584    pub unsafe fn HistoryCount(&self, historycount: *mut u32) -> windows_core::Result<()> {
25585        unsafe {
25586            (windows_core::Interface::vtable(self).HistoryCount)(
25587                windows_core::Interface::as_raw(self),
25588                historycount as _,
25589            )
25590            .ok()
25591        }
25592    }
25593    pub unsafe fn SetHistoryCount(&self, historycount: u32) -> windows_core::Result<()> {
25594        unsafe {
25595            (windows_core::Interface::vtable(self).SetHistoryCount)(
25596                windows_core::Interface::as_raw(self),
25597                historycount,
25598            )
25599            .ok()
25600        }
25601    }
25602    pub unsafe fn InputData(&self, inputdata: *mut i32) -> windows_core::Result<()> {
25603        unsafe {
25604            (windows_core::Interface::vtable(self).InputData)(
25605                windows_core::Interface::as_raw(self),
25606                inputdata as _,
25607            )
25608            .ok()
25609        }
25610    }
25611    pub unsafe fn SetInputData(&self, inputdata: i32) -> windows_core::Result<()> {
25612        unsafe {
25613            (windows_core::Interface::vtable(self).SetInputData)(
25614                windows_core::Interface::as_raw(self),
25615                inputdata,
25616            )
25617            .ok()
25618        }
25619    }
25620    pub unsafe fn KeyStates(&self, keystates: *mut u32) -> windows_core::Result<()> {
25621        unsafe {
25622            (windows_core::Interface::vtable(self).KeyStates)(
25623                windows_core::Interface::as_raw(self),
25624                keystates as _,
25625            )
25626            .ok()
25627        }
25628    }
25629    pub unsafe fn SetKeyStates(&self, keystates: u32) -> windows_core::Result<()> {
25630        unsafe {
25631            (windows_core::Interface::vtable(self).SetKeyStates)(
25632                windows_core::Interface::as_raw(self),
25633                keystates,
25634            )
25635            .ok()
25636        }
25637    }
25638    pub unsafe fn PerformanceCount(&self, performancecount: *mut u64) -> windows_core::Result<()> {
25639        unsafe {
25640            (windows_core::Interface::vtable(self).PerformanceCount)(
25641                windows_core::Interface::as_raw(self),
25642                performancecount as _,
25643            )
25644            .ok()
25645        }
25646    }
25647    pub unsafe fn SetPerformanceCount(&self, performancecount: u64) -> windows_core::Result<()> {
25648        unsafe {
25649            (windows_core::Interface::vtable(self).SetPerformanceCount)(
25650                windows_core::Interface::as_raw(self),
25651                performancecount,
25652            )
25653            .ok()
25654        }
25655    }
25656    pub unsafe fn ButtonChangeKind(&self, buttonchangekind: *mut i32) -> windows_core::Result<()> {
25657        unsafe {
25658            (windows_core::Interface::vtable(self).ButtonChangeKind)(
25659                windows_core::Interface::as_raw(self),
25660                buttonchangekind as _,
25661            )
25662            .ok()
25663        }
25664    }
25665    pub unsafe fn SetButtonChangeKind(&self, buttonchangekind: i32) -> windows_core::Result<()> {
25666        unsafe {
25667            (windows_core::Interface::vtable(self).SetButtonChangeKind)(
25668                windows_core::Interface::as_raw(self),
25669                buttonchangekind,
25670            )
25671            .ok()
25672        }
25673    }
25674    pub unsafe fn PenFlags(&self, penflags: *mut u32) -> windows_core::Result<()> {
25675        unsafe {
25676            (windows_core::Interface::vtable(self).PenFlags)(
25677                windows_core::Interface::as_raw(self),
25678                penflags as _,
25679            )
25680            .ok()
25681        }
25682    }
25683    pub unsafe fn SetPenFlags(&self, penflags: u32) -> windows_core::Result<()> {
25684        unsafe {
25685            (windows_core::Interface::vtable(self).SetPenFlags)(
25686                windows_core::Interface::as_raw(self),
25687                penflags,
25688            )
25689            .ok()
25690        }
25691    }
25692    pub unsafe fn PenMask(&self, penmask: *mut u32) -> windows_core::Result<()> {
25693        unsafe {
25694            (windows_core::Interface::vtable(self).PenMask)(
25695                windows_core::Interface::as_raw(self),
25696                penmask as _,
25697            )
25698            .ok()
25699        }
25700    }
25701    pub unsafe fn SetPenMask(&self, penmask: u32) -> windows_core::Result<()> {
25702        unsafe {
25703            (windows_core::Interface::vtable(self).SetPenMask)(
25704                windows_core::Interface::as_raw(self),
25705                penmask,
25706            )
25707            .ok()
25708        }
25709    }
25710    pub unsafe fn PenPressure(&self, penpressure: *mut u32) -> windows_core::Result<()> {
25711        unsafe {
25712            (windows_core::Interface::vtable(self).PenPressure)(
25713                windows_core::Interface::as_raw(self),
25714                penpressure as _,
25715            )
25716            .ok()
25717        }
25718    }
25719    pub unsafe fn SetPenPressure(&self, penpressure: u32) -> windows_core::Result<()> {
25720        unsafe {
25721            (windows_core::Interface::vtable(self).SetPenPressure)(
25722                windows_core::Interface::as_raw(self),
25723                penpressure,
25724            )
25725            .ok()
25726        }
25727    }
25728    pub unsafe fn PenRotation(&self, penrotation: *mut u32) -> windows_core::Result<()> {
25729        unsafe {
25730            (windows_core::Interface::vtable(self).PenRotation)(
25731                windows_core::Interface::as_raw(self),
25732                penrotation as _,
25733            )
25734            .ok()
25735        }
25736    }
25737    pub unsafe fn SetPenRotation(&self, penrotation: u32) -> windows_core::Result<()> {
25738        unsafe {
25739            (windows_core::Interface::vtable(self).SetPenRotation)(
25740                windows_core::Interface::as_raw(self),
25741                penrotation,
25742            )
25743            .ok()
25744        }
25745    }
25746    pub unsafe fn PenTiltX(&self, pentiltx: *mut i32) -> windows_core::Result<()> {
25747        unsafe {
25748            (windows_core::Interface::vtable(self).PenTiltX)(
25749                windows_core::Interface::as_raw(self),
25750                pentiltx as _,
25751            )
25752            .ok()
25753        }
25754    }
25755    pub unsafe fn SetPenTiltX(&self, pentiltx: i32) -> windows_core::Result<()> {
25756        unsafe {
25757            (windows_core::Interface::vtable(self).SetPenTiltX)(
25758                windows_core::Interface::as_raw(self),
25759                pentiltx,
25760            )
25761            .ok()
25762        }
25763    }
25764    pub unsafe fn PenTiltY(&self, pentilty: *mut i32) -> windows_core::Result<()> {
25765        unsafe {
25766            (windows_core::Interface::vtable(self).PenTiltY)(
25767                windows_core::Interface::as_raw(self),
25768                pentilty as _,
25769            )
25770            .ok()
25771        }
25772    }
25773    pub unsafe fn SetPenTiltY(&self, pentilty: i32) -> windows_core::Result<()> {
25774        unsafe {
25775            (windows_core::Interface::vtable(self).SetPenTiltY)(
25776                windows_core::Interface::as_raw(self),
25777                pentilty,
25778            )
25779            .ok()
25780        }
25781    }
25782    pub unsafe fn TouchFlags(&self, touchflags: *mut u32) -> windows_core::Result<()> {
25783        unsafe {
25784            (windows_core::Interface::vtable(self).TouchFlags)(
25785                windows_core::Interface::as_raw(self),
25786                touchflags as _,
25787            )
25788            .ok()
25789        }
25790    }
25791    pub unsafe fn SetTouchFlags(&self, touchflags: u32) -> windows_core::Result<()> {
25792        unsafe {
25793            (windows_core::Interface::vtable(self).SetTouchFlags)(
25794                windows_core::Interface::as_raw(self),
25795                touchflags,
25796            )
25797            .ok()
25798        }
25799    }
25800    pub unsafe fn TouchMask(&self, touchmask: *mut u32) -> windows_core::Result<()> {
25801        unsafe {
25802            (windows_core::Interface::vtable(self).TouchMask)(
25803                windows_core::Interface::as_raw(self),
25804                touchmask as _,
25805            )
25806            .ok()
25807        }
25808    }
25809    pub unsafe fn SetTouchMask(&self, touchmask: u32) -> windows_core::Result<()> {
25810        unsafe {
25811            (windows_core::Interface::vtable(self).SetTouchMask)(
25812                windows_core::Interface::as_raw(self),
25813                touchmask,
25814            )
25815            .ok()
25816        }
25817    }
25818    pub unsafe fn TouchContact(
25819        &self,
25820        touchcontact: *mut windows::Win32::Foundation::RECT,
25821    ) -> windows_core::Result<()> {
25822        unsafe {
25823            (windows_core::Interface::vtable(self).TouchContact)(
25824                windows_core::Interface::as_raw(self),
25825                touchcontact as _,
25826            )
25827            .ok()
25828        }
25829    }
25830    pub unsafe fn SetTouchContact(
25831        &self,
25832        touchcontact: windows::Win32::Foundation::RECT,
25833    ) -> windows_core::Result<()> {
25834        unsafe {
25835            (windows_core::Interface::vtable(self).SetTouchContact)(
25836                windows_core::Interface::as_raw(self),
25837                core::mem::transmute(touchcontact),
25838            )
25839            .ok()
25840        }
25841    }
25842    pub unsafe fn TouchContactRaw(
25843        &self,
25844        touchcontactraw: *mut windows::Win32::Foundation::RECT,
25845    ) -> windows_core::Result<()> {
25846        unsafe {
25847            (windows_core::Interface::vtable(self).TouchContactRaw)(
25848                windows_core::Interface::as_raw(self),
25849                touchcontactraw as _,
25850            )
25851            .ok()
25852        }
25853    }
25854    pub unsafe fn SetTouchContactRaw(
25855        &self,
25856        touchcontactraw: windows::Win32::Foundation::RECT,
25857    ) -> windows_core::Result<()> {
25858        unsafe {
25859            (windows_core::Interface::vtable(self).SetTouchContactRaw)(
25860                windows_core::Interface::as_raw(self),
25861                core::mem::transmute(touchcontactraw),
25862            )
25863            .ok()
25864        }
25865    }
25866    pub unsafe fn TouchOrientation(&self, touchorientation: *mut u32) -> windows_core::Result<()> {
25867        unsafe {
25868            (windows_core::Interface::vtable(self).TouchOrientation)(
25869                windows_core::Interface::as_raw(self),
25870                touchorientation as _,
25871            )
25872            .ok()
25873        }
25874    }
25875    pub unsafe fn SetTouchOrientation(&self, touchorientation: u32) -> windows_core::Result<()> {
25876        unsafe {
25877            (windows_core::Interface::vtable(self).SetTouchOrientation)(
25878                windows_core::Interface::as_raw(self),
25879                touchorientation,
25880            )
25881            .ok()
25882        }
25883    }
25884    pub unsafe fn TouchPressure(&self, touchpressure: *mut u32) -> windows_core::Result<()> {
25885        unsafe {
25886            (windows_core::Interface::vtable(self).TouchPressure)(
25887                windows_core::Interface::as_raw(self),
25888                touchpressure as _,
25889            )
25890            .ok()
25891        }
25892    }
25893    pub unsafe fn SetTouchPressure(&self, touchpressure: u32) -> windows_core::Result<()> {
25894        unsafe {
25895            (windows_core::Interface::vtable(self).SetTouchPressure)(
25896                windows_core::Interface::as_raw(self),
25897                touchpressure,
25898            )
25899            .ok()
25900        }
25901    }
25902}
25903#[repr(C)]
25904#[doc(hidden)]
25905pub struct ICoreWebView2PointerInfo_Vtbl {
25906    pub base__: windows_core::IUnknown_Vtbl,
25907    pub PointerKind:
25908        unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
25909    pub SetPointerKind:
25910        unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
25911    pub PointerId:
25912        unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
25913    pub SetPointerId:
25914        unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
25915    pub FrameId:
25916        unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
25917    pub SetFrameId: unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
25918    pub PointerFlags:
25919        unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
25920    pub SetPointerFlags:
25921        unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
25922    pub PointerDeviceRect: unsafe extern "system" fn(
25923        *mut core::ffi::c_void,
25924        *mut windows::Win32::Foundation::RECT,
25925    ) -> windows_core::HRESULT,
25926    pub SetPointerDeviceRect: unsafe extern "system" fn(
25927        *mut core::ffi::c_void,
25928        windows::Win32::Foundation::RECT,
25929    ) -> windows_core::HRESULT,
25930    pub DisplayRect: unsafe extern "system" fn(
25931        *mut core::ffi::c_void,
25932        *mut windows::Win32::Foundation::RECT,
25933    ) -> windows_core::HRESULT,
25934    pub SetDisplayRect: unsafe extern "system" fn(
25935        *mut core::ffi::c_void,
25936        windows::Win32::Foundation::RECT,
25937    ) -> windows_core::HRESULT,
25938    pub PixelLocation: unsafe extern "system" fn(
25939        *mut core::ffi::c_void,
25940        *mut windows::Win32::Foundation::POINT,
25941    ) -> windows_core::HRESULT,
25942    pub SetPixelLocation: unsafe extern "system" fn(
25943        *mut core::ffi::c_void,
25944        windows::Win32::Foundation::POINT,
25945    ) -> windows_core::HRESULT,
25946    pub HimetricLocation: unsafe extern "system" fn(
25947        *mut core::ffi::c_void,
25948        *mut windows::Win32::Foundation::POINT,
25949    ) -> windows_core::HRESULT,
25950    pub SetHimetricLocation: unsafe extern "system" fn(
25951        *mut core::ffi::c_void,
25952        windows::Win32::Foundation::POINT,
25953    ) -> windows_core::HRESULT,
25954    pub PixelLocationRaw: unsafe extern "system" fn(
25955        *mut core::ffi::c_void,
25956        *mut windows::Win32::Foundation::POINT,
25957    ) -> windows_core::HRESULT,
25958    pub SetPixelLocationRaw: unsafe extern "system" fn(
25959        *mut core::ffi::c_void,
25960        windows::Win32::Foundation::POINT,
25961    ) -> windows_core::HRESULT,
25962    pub HimetricLocationRaw: unsafe extern "system" fn(
25963        *mut core::ffi::c_void,
25964        *mut windows::Win32::Foundation::POINT,
25965    ) -> windows_core::HRESULT,
25966    pub SetHimetricLocationRaw: unsafe extern "system" fn(
25967        *mut core::ffi::c_void,
25968        windows::Win32::Foundation::POINT,
25969    ) -> windows_core::HRESULT,
25970    pub Time: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
25971    pub SetTime: unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
25972    pub HistoryCount:
25973        unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
25974    pub SetHistoryCount:
25975        unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
25976    pub InputData:
25977        unsafe extern "system" fn(*mut core::ffi::c_void, *mut i32) -> windows_core::HRESULT,
25978    pub SetInputData:
25979        unsafe extern "system" fn(*mut core::ffi::c_void, i32) -> windows_core::HRESULT,
25980    pub KeyStates:
25981        unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
25982    pub SetKeyStates:
25983        unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
25984    pub PerformanceCount:
25985        unsafe extern "system" fn(*mut core::ffi::c_void, *mut u64) -> windows_core::HRESULT,
25986    pub SetPerformanceCount:
25987        unsafe extern "system" fn(*mut core::ffi::c_void, u64) -> windows_core::HRESULT,
25988    pub ButtonChangeKind:
25989        unsafe extern "system" fn(*mut core::ffi::c_void, *mut i32) -> windows_core::HRESULT,
25990    pub SetButtonChangeKind:
25991        unsafe extern "system" fn(*mut core::ffi::c_void, i32) -> windows_core::HRESULT,
25992    pub PenFlags:
25993        unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
25994    pub SetPenFlags:
25995        unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
25996    pub PenMask:
25997        unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
25998    pub SetPenMask: unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
25999    pub PenPressure:
26000        unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
26001    pub SetPenPressure:
26002        unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
26003    pub PenRotation:
26004        unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
26005    pub SetPenRotation:
26006        unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
26007    pub PenTiltX:
26008        unsafe extern "system" fn(*mut core::ffi::c_void, *mut i32) -> windows_core::HRESULT,
26009    pub SetPenTiltX:
26010        unsafe extern "system" fn(*mut core::ffi::c_void, i32) -> windows_core::HRESULT,
26011    pub PenTiltY:
26012        unsafe extern "system" fn(*mut core::ffi::c_void, *mut i32) -> windows_core::HRESULT,
26013    pub SetPenTiltY:
26014        unsafe extern "system" fn(*mut core::ffi::c_void, i32) -> windows_core::HRESULT,
26015    pub TouchFlags:
26016        unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
26017    pub SetTouchFlags:
26018        unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
26019    pub TouchMask:
26020        unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
26021    pub SetTouchMask:
26022        unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
26023    pub TouchContact: unsafe extern "system" fn(
26024        *mut core::ffi::c_void,
26025        *mut windows::Win32::Foundation::RECT,
26026    ) -> windows_core::HRESULT,
26027    pub SetTouchContact: unsafe extern "system" fn(
26028        *mut core::ffi::c_void,
26029        windows::Win32::Foundation::RECT,
26030    ) -> windows_core::HRESULT,
26031    pub TouchContactRaw: unsafe extern "system" fn(
26032        *mut core::ffi::c_void,
26033        *mut windows::Win32::Foundation::RECT,
26034    ) -> windows_core::HRESULT,
26035    pub SetTouchContactRaw: unsafe extern "system" fn(
26036        *mut core::ffi::c_void,
26037        windows::Win32::Foundation::RECT,
26038    ) -> windows_core::HRESULT,
26039    pub TouchOrientation:
26040        unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
26041    pub SetTouchOrientation:
26042        unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
26043    pub TouchPressure:
26044        unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
26045    pub SetTouchPressure:
26046        unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
26047}
26048pub trait ICoreWebView2PointerInfo_Impl: windows_core::IUnknownImpl {
26049    fn PointerKind(&self, pointerkind: *mut u32) -> windows_core::Result<()>;
26050    fn SetPointerKind(&self, pointerkind: u32) -> windows_core::Result<()>;
26051    fn PointerId(&self, pointerid: *mut u32) -> windows_core::Result<()>;
26052    fn SetPointerId(&self, pointerid: u32) -> windows_core::Result<()>;
26053    fn FrameId(&self, frameid: *mut u32) -> windows_core::Result<()>;
26054    fn SetFrameId(&self, frameid: u32) -> windows_core::Result<()>;
26055    fn PointerFlags(&self, pointerflags: *mut u32) -> windows_core::Result<()>;
26056    fn SetPointerFlags(&self, pointerflags: u32) -> windows_core::Result<()>;
26057    fn PointerDeviceRect(
26058        &self,
26059        pointerdevicerect: *mut windows::Win32::Foundation::RECT,
26060    ) -> windows_core::Result<()>;
26061    fn SetPointerDeviceRect(
26062        &self,
26063        pointerdevicerect: &windows::Win32::Foundation::RECT,
26064    ) -> windows_core::Result<()>;
26065    fn DisplayRect(
26066        &self,
26067        displayrect: *mut windows::Win32::Foundation::RECT,
26068    ) -> windows_core::Result<()>;
26069    fn SetDisplayRect(
26070        &self,
26071        displayrect: &windows::Win32::Foundation::RECT,
26072    ) -> windows_core::Result<()>;
26073    fn PixelLocation(
26074        &self,
26075        pixellocation: *mut windows::Win32::Foundation::POINT,
26076    ) -> windows_core::Result<()>;
26077    fn SetPixelLocation(
26078        &self,
26079        pixellocation: &windows::Win32::Foundation::POINT,
26080    ) -> windows_core::Result<()>;
26081    fn HimetricLocation(
26082        &self,
26083        himetriclocation: *mut windows::Win32::Foundation::POINT,
26084    ) -> windows_core::Result<()>;
26085    fn SetHimetricLocation(
26086        &self,
26087        himetriclocation: &windows::Win32::Foundation::POINT,
26088    ) -> windows_core::Result<()>;
26089    fn PixelLocationRaw(
26090        &self,
26091        pixellocationraw: *mut windows::Win32::Foundation::POINT,
26092    ) -> windows_core::Result<()>;
26093    fn SetPixelLocationRaw(
26094        &self,
26095        pixellocationraw: &windows::Win32::Foundation::POINT,
26096    ) -> windows_core::Result<()>;
26097    fn HimetricLocationRaw(
26098        &self,
26099        himetriclocationraw: *mut windows::Win32::Foundation::POINT,
26100    ) -> windows_core::Result<()>;
26101    fn SetHimetricLocationRaw(
26102        &self,
26103        himetriclocationraw: &windows::Win32::Foundation::POINT,
26104    ) -> windows_core::Result<()>;
26105    fn Time(&self, time: *mut u32) -> windows_core::Result<()>;
26106    fn SetTime(&self, time: u32) -> windows_core::Result<()>;
26107    fn HistoryCount(&self, historycount: *mut u32) -> windows_core::Result<()>;
26108    fn SetHistoryCount(&self, historycount: u32) -> windows_core::Result<()>;
26109    fn InputData(&self, inputdata: *mut i32) -> windows_core::Result<()>;
26110    fn SetInputData(&self, inputdata: i32) -> windows_core::Result<()>;
26111    fn KeyStates(&self, keystates: *mut u32) -> windows_core::Result<()>;
26112    fn SetKeyStates(&self, keystates: u32) -> windows_core::Result<()>;
26113    fn PerformanceCount(&self, performancecount: *mut u64) -> windows_core::Result<()>;
26114    fn SetPerformanceCount(&self, performancecount: u64) -> windows_core::Result<()>;
26115    fn ButtonChangeKind(&self, buttonchangekind: *mut i32) -> windows_core::Result<()>;
26116    fn SetButtonChangeKind(&self, buttonchangekind: i32) -> windows_core::Result<()>;
26117    fn PenFlags(&self, penflags: *mut u32) -> windows_core::Result<()>;
26118    fn SetPenFlags(&self, penflags: u32) -> windows_core::Result<()>;
26119    fn PenMask(&self, penmask: *mut u32) -> windows_core::Result<()>;
26120    fn SetPenMask(&self, penmask: u32) -> windows_core::Result<()>;
26121    fn PenPressure(&self, penpressure: *mut u32) -> windows_core::Result<()>;
26122    fn SetPenPressure(&self, penpressure: u32) -> windows_core::Result<()>;
26123    fn PenRotation(&self, penrotation: *mut u32) -> windows_core::Result<()>;
26124    fn SetPenRotation(&self, penrotation: u32) -> windows_core::Result<()>;
26125    fn PenTiltX(&self, pentiltx: *mut i32) -> windows_core::Result<()>;
26126    fn SetPenTiltX(&self, pentiltx: i32) -> windows_core::Result<()>;
26127    fn PenTiltY(&self, pentilty: *mut i32) -> windows_core::Result<()>;
26128    fn SetPenTiltY(&self, pentilty: i32) -> windows_core::Result<()>;
26129    fn TouchFlags(&self, touchflags: *mut u32) -> windows_core::Result<()>;
26130    fn SetTouchFlags(&self, touchflags: u32) -> windows_core::Result<()>;
26131    fn TouchMask(&self, touchmask: *mut u32) -> windows_core::Result<()>;
26132    fn SetTouchMask(&self, touchmask: u32) -> windows_core::Result<()>;
26133    fn TouchContact(
26134        &self,
26135        touchcontact: *mut windows::Win32::Foundation::RECT,
26136    ) -> windows_core::Result<()>;
26137    fn SetTouchContact(
26138        &self,
26139        touchcontact: &windows::Win32::Foundation::RECT,
26140    ) -> windows_core::Result<()>;
26141    fn TouchContactRaw(
26142        &self,
26143        touchcontactraw: *mut windows::Win32::Foundation::RECT,
26144    ) -> windows_core::Result<()>;
26145    fn SetTouchContactRaw(
26146        &self,
26147        touchcontactraw: &windows::Win32::Foundation::RECT,
26148    ) -> windows_core::Result<()>;
26149    fn TouchOrientation(&self, touchorientation: *mut u32) -> windows_core::Result<()>;
26150    fn SetTouchOrientation(&self, touchorientation: u32) -> windows_core::Result<()>;
26151    fn TouchPressure(&self, touchpressure: *mut u32) -> windows_core::Result<()>;
26152    fn SetTouchPressure(&self, touchpressure: u32) -> windows_core::Result<()>;
26153}
26154impl ICoreWebView2PointerInfo_Vtbl {
26155    pub const fn new<Identity: ICoreWebView2PointerInfo_Impl, const OFFSET: isize>() -> Self {
26156        unsafe extern "system" fn PointerKind<
26157            Identity: ICoreWebView2PointerInfo_Impl,
26158            const OFFSET: isize,
26159        >(
26160            this: *mut core::ffi::c_void,
26161            pointerkind: *mut u32,
26162        ) -> windows_core::HRESULT {
26163            unsafe {
26164                let this: &Identity =
26165                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
26166                ICoreWebView2PointerInfo_Impl::PointerKind(
26167                    this,
26168                    core::mem::transmute_copy(&pointerkind),
26169                )
26170                .into()
26171            }
26172        }
26173        unsafe extern "system" fn SetPointerKind<
26174            Identity: ICoreWebView2PointerInfo_Impl,
26175            const OFFSET: isize,
26176        >(
26177            this: *mut core::ffi::c_void,
26178            pointerkind: u32,
26179        ) -> windows_core::HRESULT {
26180            unsafe {
26181                let this: &Identity =
26182                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
26183                ICoreWebView2PointerInfo_Impl::SetPointerKind(
26184                    this,
26185                    core::mem::transmute_copy(&pointerkind),
26186                )
26187                .into()
26188            }
26189        }
26190        unsafe extern "system" fn PointerId<
26191            Identity: ICoreWebView2PointerInfo_Impl,
26192            const OFFSET: isize,
26193        >(
26194            this: *mut core::ffi::c_void,
26195            pointerid: *mut u32,
26196        ) -> windows_core::HRESULT {
26197            unsafe {
26198                let this: &Identity =
26199                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
26200                ICoreWebView2PointerInfo_Impl::PointerId(
26201                    this,
26202                    core::mem::transmute_copy(&pointerid),
26203                )
26204                .into()
26205            }
26206        }
26207        unsafe extern "system" fn SetPointerId<
26208            Identity: ICoreWebView2PointerInfo_Impl,
26209            const OFFSET: isize,
26210        >(
26211            this: *mut core::ffi::c_void,
26212            pointerid: u32,
26213        ) -> windows_core::HRESULT {
26214            unsafe {
26215                let this: &Identity =
26216                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
26217                ICoreWebView2PointerInfo_Impl::SetPointerId(
26218                    this,
26219                    core::mem::transmute_copy(&pointerid),
26220                )
26221                .into()
26222            }
26223        }
26224        unsafe extern "system" fn FrameId<
26225            Identity: ICoreWebView2PointerInfo_Impl,
26226            const OFFSET: isize,
26227        >(
26228            this: *mut core::ffi::c_void,
26229            frameid: *mut u32,
26230        ) -> windows_core::HRESULT {
26231            unsafe {
26232                let this: &Identity =
26233                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
26234                ICoreWebView2PointerInfo_Impl::FrameId(this, core::mem::transmute_copy(&frameid))
26235                    .into()
26236            }
26237        }
26238        unsafe extern "system" fn SetFrameId<
26239            Identity: ICoreWebView2PointerInfo_Impl,
26240            const OFFSET: isize,
26241        >(
26242            this: *mut core::ffi::c_void,
26243            frameid: u32,
26244        ) -> windows_core::HRESULT {
26245            unsafe {
26246                let this: &Identity =
26247                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
26248                ICoreWebView2PointerInfo_Impl::SetFrameId(this, core::mem::transmute_copy(&frameid))
26249                    .into()
26250            }
26251        }
26252        unsafe extern "system" fn PointerFlags<
26253            Identity: ICoreWebView2PointerInfo_Impl,
26254            const OFFSET: isize,
26255        >(
26256            this: *mut core::ffi::c_void,
26257            pointerflags: *mut u32,
26258        ) -> windows_core::HRESULT {
26259            unsafe {
26260                let this: &Identity =
26261                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
26262                ICoreWebView2PointerInfo_Impl::PointerFlags(
26263                    this,
26264                    core::mem::transmute_copy(&pointerflags),
26265                )
26266                .into()
26267            }
26268        }
26269        unsafe extern "system" fn SetPointerFlags<
26270            Identity: ICoreWebView2PointerInfo_Impl,
26271            const OFFSET: isize,
26272        >(
26273            this: *mut core::ffi::c_void,
26274            pointerflags: u32,
26275        ) -> windows_core::HRESULT {
26276            unsafe {
26277                let this: &Identity =
26278                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
26279                ICoreWebView2PointerInfo_Impl::SetPointerFlags(
26280                    this,
26281                    core::mem::transmute_copy(&pointerflags),
26282                )
26283                .into()
26284            }
26285        }
26286        unsafe extern "system" fn PointerDeviceRect<
26287            Identity: ICoreWebView2PointerInfo_Impl,
26288            const OFFSET: isize,
26289        >(
26290            this: *mut core::ffi::c_void,
26291            pointerdevicerect: *mut windows::Win32::Foundation::RECT,
26292        ) -> windows_core::HRESULT {
26293            unsafe {
26294                let this: &Identity =
26295                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
26296                ICoreWebView2PointerInfo_Impl::PointerDeviceRect(
26297                    this,
26298                    core::mem::transmute_copy(&pointerdevicerect),
26299                )
26300                .into()
26301            }
26302        }
26303        unsafe extern "system" fn SetPointerDeviceRect<
26304            Identity: ICoreWebView2PointerInfo_Impl,
26305            const OFFSET: isize,
26306        >(
26307            this: *mut core::ffi::c_void,
26308            pointerdevicerect: windows::Win32::Foundation::RECT,
26309        ) -> windows_core::HRESULT {
26310            unsafe {
26311                let this: &Identity =
26312                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
26313                ICoreWebView2PointerInfo_Impl::SetPointerDeviceRect(
26314                    this,
26315                    core::mem::transmute(&pointerdevicerect),
26316                )
26317                .into()
26318            }
26319        }
26320        unsafe extern "system" fn DisplayRect<
26321            Identity: ICoreWebView2PointerInfo_Impl,
26322            const OFFSET: isize,
26323        >(
26324            this: *mut core::ffi::c_void,
26325            displayrect: *mut windows::Win32::Foundation::RECT,
26326        ) -> windows_core::HRESULT {
26327            unsafe {
26328                let this: &Identity =
26329                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
26330                ICoreWebView2PointerInfo_Impl::DisplayRect(
26331                    this,
26332                    core::mem::transmute_copy(&displayrect),
26333                )
26334                .into()
26335            }
26336        }
26337        unsafe extern "system" fn SetDisplayRect<
26338            Identity: ICoreWebView2PointerInfo_Impl,
26339            const OFFSET: isize,
26340        >(
26341            this: *mut core::ffi::c_void,
26342            displayrect: windows::Win32::Foundation::RECT,
26343        ) -> windows_core::HRESULT {
26344            unsafe {
26345                let this: &Identity =
26346                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
26347                ICoreWebView2PointerInfo_Impl::SetDisplayRect(
26348                    this,
26349                    core::mem::transmute(&displayrect),
26350                )
26351                .into()
26352            }
26353        }
26354        unsafe extern "system" fn PixelLocation<
26355            Identity: ICoreWebView2PointerInfo_Impl,
26356            const OFFSET: isize,
26357        >(
26358            this: *mut core::ffi::c_void,
26359            pixellocation: *mut windows::Win32::Foundation::POINT,
26360        ) -> windows_core::HRESULT {
26361            unsafe {
26362                let this: &Identity =
26363                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
26364                ICoreWebView2PointerInfo_Impl::PixelLocation(
26365                    this,
26366                    core::mem::transmute_copy(&pixellocation),
26367                )
26368                .into()
26369            }
26370        }
26371        unsafe extern "system" fn SetPixelLocation<
26372            Identity: ICoreWebView2PointerInfo_Impl,
26373            const OFFSET: isize,
26374        >(
26375            this: *mut core::ffi::c_void,
26376            pixellocation: windows::Win32::Foundation::POINT,
26377        ) -> windows_core::HRESULT {
26378            unsafe {
26379                let this: &Identity =
26380                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
26381                ICoreWebView2PointerInfo_Impl::SetPixelLocation(
26382                    this,
26383                    core::mem::transmute(&pixellocation),
26384                )
26385                .into()
26386            }
26387        }
26388        unsafe extern "system" fn HimetricLocation<
26389            Identity: ICoreWebView2PointerInfo_Impl,
26390            const OFFSET: isize,
26391        >(
26392            this: *mut core::ffi::c_void,
26393            himetriclocation: *mut windows::Win32::Foundation::POINT,
26394        ) -> windows_core::HRESULT {
26395            unsafe {
26396                let this: &Identity =
26397                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
26398                ICoreWebView2PointerInfo_Impl::HimetricLocation(
26399                    this,
26400                    core::mem::transmute_copy(&himetriclocation),
26401                )
26402                .into()
26403            }
26404        }
26405        unsafe extern "system" fn SetHimetricLocation<
26406            Identity: ICoreWebView2PointerInfo_Impl,
26407            const OFFSET: isize,
26408        >(
26409            this: *mut core::ffi::c_void,
26410            himetriclocation: windows::Win32::Foundation::POINT,
26411        ) -> windows_core::HRESULT {
26412            unsafe {
26413                let this: &Identity =
26414                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
26415                ICoreWebView2PointerInfo_Impl::SetHimetricLocation(
26416                    this,
26417                    core::mem::transmute(&himetriclocation),
26418                )
26419                .into()
26420            }
26421        }
26422        unsafe extern "system" fn PixelLocationRaw<
26423            Identity: ICoreWebView2PointerInfo_Impl,
26424            const OFFSET: isize,
26425        >(
26426            this: *mut core::ffi::c_void,
26427            pixellocationraw: *mut windows::Win32::Foundation::POINT,
26428        ) -> windows_core::HRESULT {
26429            unsafe {
26430                let this: &Identity =
26431                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
26432                ICoreWebView2PointerInfo_Impl::PixelLocationRaw(
26433                    this,
26434                    core::mem::transmute_copy(&pixellocationraw),
26435                )
26436                .into()
26437            }
26438        }
26439        unsafe extern "system" fn SetPixelLocationRaw<
26440            Identity: ICoreWebView2PointerInfo_Impl,
26441            const OFFSET: isize,
26442        >(
26443            this: *mut core::ffi::c_void,
26444            pixellocationraw: windows::Win32::Foundation::POINT,
26445        ) -> windows_core::HRESULT {
26446            unsafe {
26447                let this: &Identity =
26448                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
26449                ICoreWebView2PointerInfo_Impl::SetPixelLocationRaw(
26450                    this,
26451                    core::mem::transmute(&pixellocationraw),
26452                )
26453                .into()
26454            }
26455        }
26456        unsafe extern "system" fn HimetricLocationRaw<
26457            Identity: ICoreWebView2PointerInfo_Impl,
26458            const OFFSET: isize,
26459        >(
26460            this: *mut core::ffi::c_void,
26461            himetriclocationraw: *mut windows::Win32::Foundation::POINT,
26462        ) -> windows_core::HRESULT {
26463            unsafe {
26464                let this: &Identity =
26465                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
26466                ICoreWebView2PointerInfo_Impl::HimetricLocationRaw(
26467                    this,
26468                    core::mem::transmute_copy(&himetriclocationraw),
26469                )
26470                .into()
26471            }
26472        }
26473        unsafe extern "system" fn SetHimetricLocationRaw<
26474            Identity: ICoreWebView2PointerInfo_Impl,
26475            const OFFSET: isize,
26476        >(
26477            this: *mut core::ffi::c_void,
26478            himetriclocationraw: windows::Win32::Foundation::POINT,
26479        ) -> windows_core::HRESULT {
26480            unsafe {
26481                let this: &Identity =
26482                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
26483                ICoreWebView2PointerInfo_Impl::SetHimetricLocationRaw(
26484                    this,
26485                    core::mem::transmute(&himetriclocationraw),
26486                )
26487                .into()
26488            }
26489        }
26490        unsafe extern "system" fn Time<
26491            Identity: ICoreWebView2PointerInfo_Impl,
26492            const OFFSET: isize,
26493        >(
26494            this: *mut core::ffi::c_void,
26495            time: *mut u32,
26496        ) -> windows_core::HRESULT {
26497            unsafe {
26498                let this: &Identity =
26499                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
26500                ICoreWebView2PointerInfo_Impl::Time(this, core::mem::transmute_copy(&time)).into()
26501            }
26502        }
26503        unsafe extern "system" fn SetTime<
26504            Identity: ICoreWebView2PointerInfo_Impl,
26505            const OFFSET: isize,
26506        >(
26507            this: *mut core::ffi::c_void,
26508            time: u32,
26509        ) -> windows_core::HRESULT {
26510            unsafe {
26511                let this: &Identity =
26512                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
26513                ICoreWebView2PointerInfo_Impl::SetTime(this, core::mem::transmute_copy(&time))
26514                    .into()
26515            }
26516        }
26517        unsafe extern "system" fn HistoryCount<
26518            Identity: ICoreWebView2PointerInfo_Impl,
26519            const OFFSET: isize,
26520        >(
26521            this: *mut core::ffi::c_void,
26522            historycount: *mut u32,
26523        ) -> windows_core::HRESULT {
26524            unsafe {
26525                let this: &Identity =
26526                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
26527                ICoreWebView2PointerInfo_Impl::HistoryCount(
26528                    this,
26529                    core::mem::transmute_copy(&historycount),
26530                )
26531                .into()
26532            }
26533        }
26534        unsafe extern "system" fn SetHistoryCount<
26535            Identity: ICoreWebView2PointerInfo_Impl,
26536            const OFFSET: isize,
26537        >(
26538            this: *mut core::ffi::c_void,
26539            historycount: u32,
26540        ) -> windows_core::HRESULT {
26541            unsafe {
26542                let this: &Identity =
26543                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
26544                ICoreWebView2PointerInfo_Impl::SetHistoryCount(
26545                    this,
26546                    core::mem::transmute_copy(&historycount),
26547                )
26548                .into()
26549            }
26550        }
26551        unsafe extern "system" fn InputData<
26552            Identity: ICoreWebView2PointerInfo_Impl,
26553            const OFFSET: isize,
26554        >(
26555            this: *mut core::ffi::c_void,
26556            inputdata: *mut i32,
26557        ) -> windows_core::HRESULT {
26558            unsafe {
26559                let this: &Identity =
26560                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
26561                ICoreWebView2PointerInfo_Impl::InputData(
26562                    this,
26563                    core::mem::transmute_copy(&inputdata),
26564                )
26565                .into()
26566            }
26567        }
26568        unsafe extern "system" fn SetInputData<
26569            Identity: ICoreWebView2PointerInfo_Impl,
26570            const OFFSET: isize,
26571        >(
26572            this: *mut core::ffi::c_void,
26573            inputdata: i32,
26574        ) -> windows_core::HRESULT {
26575            unsafe {
26576                let this: &Identity =
26577                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
26578                ICoreWebView2PointerInfo_Impl::SetInputData(
26579                    this,
26580                    core::mem::transmute_copy(&inputdata),
26581                )
26582                .into()
26583            }
26584        }
26585        unsafe extern "system" fn KeyStates<
26586            Identity: ICoreWebView2PointerInfo_Impl,
26587            const OFFSET: isize,
26588        >(
26589            this: *mut core::ffi::c_void,
26590            keystates: *mut u32,
26591        ) -> windows_core::HRESULT {
26592            unsafe {
26593                let this: &Identity =
26594                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
26595                ICoreWebView2PointerInfo_Impl::KeyStates(
26596                    this,
26597                    core::mem::transmute_copy(&keystates),
26598                )
26599                .into()
26600            }
26601        }
26602        unsafe extern "system" fn SetKeyStates<
26603            Identity: ICoreWebView2PointerInfo_Impl,
26604            const OFFSET: isize,
26605        >(
26606            this: *mut core::ffi::c_void,
26607            keystates: u32,
26608        ) -> windows_core::HRESULT {
26609            unsafe {
26610                let this: &Identity =
26611                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
26612                ICoreWebView2PointerInfo_Impl::SetKeyStates(
26613                    this,
26614                    core::mem::transmute_copy(&keystates),
26615                )
26616                .into()
26617            }
26618        }
26619        unsafe extern "system" fn PerformanceCount<
26620            Identity: ICoreWebView2PointerInfo_Impl,
26621            const OFFSET: isize,
26622        >(
26623            this: *mut core::ffi::c_void,
26624            performancecount: *mut u64,
26625        ) -> windows_core::HRESULT {
26626            unsafe {
26627                let this: &Identity =
26628                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
26629                ICoreWebView2PointerInfo_Impl::PerformanceCount(
26630                    this,
26631                    core::mem::transmute_copy(&performancecount),
26632                )
26633                .into()
26634            }
26635        }
26636        unsafe extern "system" fn SetPerformanceCount<
26637            Identity: ICoreWebView2PointerInfo_Impl,
26638            const OFFSET: isize,
26639        >(
26640            this: *mut core::ffi::c_void,
26641            performancecount: u64,
26642        ) -> windows_core::HRESULT {
26643            unsafe {
26644                let this: &Identity =
26645                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
26646                ICoreWebView2PointerInfo_Impl::SetPerformanceCount(
26647                    this,
26648                    core::mem::transmute_copy(&performancecount),
26649                )
26650                .into()
26651            }
26652        }
26653        unsafe extern "system" fn ButtonChangeKind<
26654            Identity: ICoreWebView2PointerInfo_Impl,
26655            const OFFSET: isize,
26656        >(
26657            this: *mut core::ffi::c_void,
26658            buttonchangekind: *mut i32,
26659        ) -> windows_core::HRESULT {
26660            unsafe {
26661                let this: &Identity =
26662                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
26663                ICoreWebView2PointerInfo_Impl::ButtonChangeKind(
26664                    this,
26665                    core::mem::transmute_copy(&buttonchangekind),
26666                )
26667                .into()
26668            }
26669        }
26670        unsafe extern "system" fn SetButtonChangeKind<
26671            Identity: ICoreWebView2PointerInfo_Impl,
26672            const OFFSET: isize,
26673        >(
26674            this: *mut core::ffi::c_void,
26675            buttonchangekind: i32,
26676        ) -> windows_core::HRESULT {
26677            unsafe {
26678                let this: &Identity =
26679                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
26680                ICoreWebView2PointerInfo_Impl::SetButtonChangeKind(
26681                    this,
26682                    core::mem::transmute_copy(&buttonchangekind),
26683                )
26684                .into()
26685            }
26686        }
26687        unsafe extern "system" fn PenFlags<
26688            Identity: ICoreWebView2PointerInfo_Impl,
26689            const OFFSET: isize,
26690        >(
26691            this: *mut core::ffi::c_void,
26692            penflags: *mut u32,
26693        ) -> windows_core::HRESULT {
26694            unsafe {
26695                let this: &Identity =
26696                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
26697                ICoreWebView2PointerInfo_Impl::PenFlags(this, core::mem::transmute_copy(&penflags))
26698                    .into()
26699            }
26700        }
26701        unsafe extern "system" fn SetPenFlags<
26702            Identity: ICoreWebView2PointerInfo_Impl,
26703            const OFFSET: isize,
26704        >(
26705            this: *mut core::ffi::c_void,
26706            penflags: u32,
26707        ) -> windows_core::HRESULT {
26708            unsafe {
26709                let this: &Identity =
26710                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
26711                ICoreWebView2PointerInfo_Impl::SetPenFlags(
26712                    this,
26713                    core::mem::transmute_copy(&penflags),
26714                )
26715                .into()
26716            }
26717        }
26718        unsafe extern "system" fn PenMask<
26719            Identity: ICoreWebView2PointerInfo_Impl,
26720            const OFFSET: isize,
26721        >(
26722            this: *mut core::ffi::c_void,
26723            penmask: *mut u32,
26724        ) -> windows_core::HRESULT {
26725            unsafe {
26726                let this: &Identity =
26727                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
26728                ICoreWebView2PointerInfo_Impl::PenMask(this, core::mem::transmute_copy(&penmask))
26729                    .into()
26730            }
26731        }
26732        unsafe extern "system" fn SetPenMask<
26733            Identity: ICoreWebView2PointerInfo_Impl,
26734            const OFFSET: isize,
26735        >(
26736            this: *mut core::ffi::c_void,
26737            penmask: u32,
26738        ) -> windows_core::HRESULT {
26739            unsafe {
26740                let this: &Identity =
26741                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
26742                ICoreWebView2PointerInfo_Impl::SetPenMask(this, core::mem::transmute_copy(&penmask))
26743                    .into()
26744            }
26745        }
26746        unsafe extern "system" fn PenPressure<
26747            Identity: ICoreWebView2PointerInfo_Impl,
26748            const OFFSET: isize,
26749        >(
26750            this: *mut core::ffi::c_void,
26751            penpressure: *mut u32,
26752        ) -> windows_core::HRESULT {
26753            unsafe {
26754                let this: &Identity =
26755                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
26756                ICoreWebView2PointerInfo_Impl::PenPressure(
26757                    this,
26758                    core::mem::transmute_copy(&penpressure),
26759                )
26760                .into()
26761            }
26762        }
26763        unsafe extern "system" fn SetPenPressure<
26764            Identity: ICoreWebView2PointerInfo_Impl,
26765            const OFFSET: isize,
26766        >(
26767            this: *mut core::ffi::c_void,
26768            penpressure: u32,
26769        ) -> windows_core::HRESULT {
26770            unsafe {
26771                let this: &Identity =
26772                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
26773                ICoreWebView2PointerInfo_Impl::SetPenPressure(
26774                    this,
26775                    core::mem::transmute_copy(&penpressure),
26776                )
26777                .into()
26778            }
26779        }
26780        unsafe extern "system" fn PenRotation<
26781            Identity: ICoreWebView2PointerInfo_Impl,
26782            const OFFSET: isize,
26783        >(
26784            this: *mut core::ffi::c_void,
26785            penrotation: *mut u32,
26786        ) -> windows_core::HRESULT {
26787            unsafe {
26788                let this: &Identity =
26789                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
26790                ICoreWebView2PointerInfo_Impl::PenRotation(
26791                    this,
26792                    core::mem::transmute_copy(&penrotation),
26793                )
26794                .into()
26795            }
26796        }
26797        unsafe extern "system" fn SetPenRotation<
26798            Identity: ICoreWebView2PointerInfo_Impl,
26799            const OFFSET: isize,
26800        >(
26801            this: *mut core::ffi::c_void,
26802            penrotation: u32,
26803        ) -> windows_core::HRESULT {
26804            unsafe {
26805                let this: &Identity =
26806                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
26807                ICoreWebView2PointerInfo_Impl::SetPenRotation(
26808                    this,
26809                    core::mem::transmute_copy(&penrotation),
26810                )
26811                .into()
26812            }
26813        }
26814        unsafe extern "system" fn PenTiltX<
26815            Identity: ICoreWebView2PointerInfo_Impl,
26816            const OFFSET: isize,
26817        >(
26818            this: *mut core::ffi::c_void,
26819            pentiltx: *mut i32,
26820        ) -> windows_core::HRESULT {
26821            unsafe {
26822                let this: &Identity =
26823                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
26824                ICoreWebView2PointerInfo_Impl::PenTiltX(this, core::mem::transmute_copy(&pentiltx))
26825                    .into()
26826            }
26827        }
26828        unsafe extern "system" fn SetPenTiltX<
26829            Identity: ICoreWebView2PointerInfo_Impl,
26830            const OFFSET: isize,
26831        >(
26832            this: *mut core::ffi::c_void,
26833            pentiltx: i32,
26834        ) -> windows_core::HRESULT {
26835            unsafe {
26836                let this: &Identity =
26837                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
26838                ICoreWebView2PointerInfo_Impl::SetPenTiltX(
26839                    this,
26840                    core::mem::transmute_copy(&pentiltx),
26841                )
26842                .into()
26843            }
26844        }
26845        unsafe extern "system" fn PenTiltY<
26846            Identity: ICoreWebView2PointerInfo_Impl,
26847            const OFFSET: isize,
26848        >(
26849            this: *mut core::ffi::c_void,
26850            pentilty: *mut i32,
26851        ) -> windows_core::HRESULT {
26852            unsafe {
26853                let this: &Identity =
26854                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
26855                ICoreWebView2PointerInfo_Impl::PenTiltY(this, core::mem::transmute_copy(&pentilty))
26856                    .into()
26857            }
26858        }
26859        unsafe extern "system" fn SetPenTiltY<
26860            Identity: ICoreWebView2PointerInfo_Impl,
26861            const OFFSET: isize,
26862        >(
26863            this: *mut core::ffi::c_void,
26864            pentilty: i32,
26865        ) -> windows_core::HRESULT {
26866            unsafe {
26867                let this: &Identity =
26868                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
26869                ICoreWebView2PointerInfo_Impl::SetPenTiltY(
26870                    this,
26871                    core::mem::transmute_copy(&pentilty),
26872                )
26873                .into()
26874            }
26875        }
26876        unsafe extern "system" fn TouchFlags<
26877            Identity: ICoreWebView2PointerInfo_Impl,
26878            const OFFSET: isize,
26879        >(
26880            this: *mut core::ffi::c_void,
26881            touchflags: *mut u32,
26882        ) -> windows_core::HRESULT {
26883            unsafe {
26884                let this: &Identity =
26885                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
26886                ICoreWebView2PointerInfo_Impl::TouchFlags(
26887                    this,
26888                    core::mem::transmute_copy(&touchflags),
26889                )
26890                .into()
26891            }
26892        }
26893        unsafe extern "system" fn SetTouchFlags<
26894            Identity: ICoreWebView2PointerInfo_Impl,
26895            const OFFSET: isize,
26896        >(
26897            this: *mut core::ffi::c_void,
26898            touchflags: u32,
26899        ) -> windows_core::HRESULT {
26900            unsafe {
26901                let this: &Identity =
26902                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
26903                ICoreWebView2PointerInfo_Impl::SetTouchFlags(
26904                    this,
26905                    core::mem::transmute_copy(&touchflags),
26906                )
26907                .into()
26908            }
26909        }
26910        unsafe extern "system" fn TouchMask<
26911            Identity: ICoreWebView2PointerInfo_Impl,
26912            const OFFSET: isize,
26913        >(
26914            this: *mut core::ffi::c_void,
26915            touchmask: *mut u32,
26916        ) -> windows_core::HRESULT {
26917            unsafe {
26918                let this: &Identity =
26919                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
26920                ICoreWebView2PointerInfo_Impl::TouchMask(
26921                    this,
26922                    core::mem::transmute_copy(&touchmask),
26923                )
26924                .into()
26925            }
26926        }
26927        unsafe extern "system" fn SetTouchMask<
26928            Identity: ICoreWebView2PointerInfo_Impl,
26929            const OFFSET: isize,
26930        >(
26931            this: *mut core::ffi::c_void,
26932            touchmask: u32,
26933        ) -> windows_core::HRESULT {
26934            unsafe {
26935                let this: &Identity =
26936                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
26937                ICoreWebView2PointerInfo_Impl::SetTouchMask(
26938                    this,
26939                    core::mem::transmute_copy(&touchmask),
26940                )
26941                .into()
26942            }
26943        }
26944        unsafe extern "system" fn TouchContact<
26945            Identity: ICoreWebView2PointerInfo_Impl,
26946            const OFFSET: isize,
26947        >(
26948            this: *mut core::ffi::c_void,
26949            touchcontact: *mut windows::Win32::Foundation::RECT,
26950        ) -> windows_core::HRESULT {
26951            unsafe {
26952                let this: &Identity =
26953                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
26954                ICoreWebView2PointerInfo_Impl::TouchContact(
26955                    this,
26956                    core::mem::transmute_copy(&touchcontact),
26957                )
26958                .into()
26959            }
26960        }
26961        unsafe extern "system" fn SetTouchContact<
26962            Identity: ICoreWebView2PointerInfo_Impl,
26963            const OFFSET: isize,
26964        >(
26965            this: *mut core::ffi::c_void,
26966            touchcontact: windows::Win32::Foundation::RECT,
26967        ) -> windows_core::HRESULT {
26968            unsafe {
26969                let this: &Identity =
26970                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
26971                ICoreWebView2PointerInfo_Impl::SetTouchContact(
26972                    this,
26973                    core::mem::transmute(&touchcontact),
26974                )
26975                .into()
26976            }
26977        }
26978        unsafe extern "system" fn TouchContactRaw<
26979            Identity: ICoreWebView2PointerInfo_Impl,
26980            const OFFSET: isize,
26981        >(
26982            this: *mut core::ffi::c_void,
26983            touchcontactraw: *mut windows::Win32::Foundation::RECT,
26984        ) -> windows_core::HRESULT {
26985            unsafe {
26986                let this: &Identity =
26987                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
26988                ICoreWebView2PointerInfo_Impl::TouchContactRaw(
26989                    this,
26990                    core::mem::transmute_copy(&touchcontactraw),
26991                )
26992                .into()
26993            }
26994        }
26995        unsafe extern "system" fn SetTouchContactRaw<
26996            Identity: ICoreWebView2PointerInfo_Impl,
26997            const OFFSET: isize,
26998        >(
26999            this: *mut core::ffi::c_void,
27000            touchcontactraw: windows::Win32::Foundation::RECT,
27001        ) -> windows_core::HRESULT {
27002            unsafe {
27003                let this: &Identity =
27004                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
27005                ICoreWebView2PointerInfo_Impl::SetTouchContactRaw(
27006                    this,
27007                    core::mem::transmute(&touchcontactraw),
27008                )
27009                .into()
27010            }
27011        }
27012        unsafe extern "system" fn TouchOrientation<
27013            Identity: ICoreWebView2PointerInfo_Impl,
27014            const OFFSET: isize,
27015        >(
27016            this: *mut core::ffi::c_void,
27017            touchorientation: *mut u32,
27018        ) -> windows_core::HRESULT {
27019            unsafe {
27020                let this: &Identity =
27021                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
27022                ICoreWebView2PointerInfo_Impl::TouchOrientation(
27023                    this,
27024                    core::mem::transmute_copy(&touchorientation),
27025                )
27026                .into()
27027            }
27028        }
27029        unsafe extern "system" fn SetTouchOrientation<
27030            Identity: ICoreWebView2PointerInfo_Impl,
27031            const OFFSET: isize,
27032        >(
27033            this: *mut core::ffi::c_void,
27034            touchorientation: u32,
27035        ) -> windows_core::HRESULT {
27036            unsafe {
27037                let this: &Identity =
27038                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
27039                ICoreWebView2PointerInfo_Impl::SetTouchOrientation(
27040                    this,
27041                    core::mem::transmute_copy(&touchorientation),
27042                )
27043                .into()
27044            }
27045        }
27046        unsafe extern "system" fn TouchPressure<
27047            Identity: ICoreWebView2PointerInfo_Impl,
27048            const OFFSET: isize,
27049        >(
27050            this: *mut core::ffi::c_void,
27051            touchpressure: *mut u32,
27052        ) -> windows_core::HRESULT {
27053            unsafe {
27054                let this: &Identity =
27055                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
27056                ICoreWebView2PointerInfo_Impl::TouchPressure(
27057                    this,
27058                    core::mem::transmute_copy(&touchpressure),
27059                )
27060                .into()
27061            }
27062        }
27063        unsafe extern "system" fn SetTouchPressure<
27064            Identity: ICoreWebView2PointerInfo_Impl,
27065            const OFFSET: isize,
27066        >(
27067            this: *mut core::ffi::c_void,
27068            touchpressure: u32,
27069        ) -> windows_core::HRESULT {
27070            unsafe {
27071                let this: &Identity =
27072                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
27073                ICoreWebView2PointerInfo_Impl::SetTouchPressure(
27074                    this,
27075                    core::mem::transmute_copy(&touchpressure),
27076                )
27077                .into()
27078            }
27079        }
27080        Self {
27081            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
27082            PointerKind: PointerKind::<Identity, OFFSET>,
27083            SetPointerKind: SetPointerKind::<Identity, OFFSET>,
27084            PointerId: PointerId::<Identity, OFFSET>,
27085            SetPointerId: SetPointerId::<Identity, OFFSET>,
27086            FrameId: FrameId::<Identity, OFFSET>,
27087            SetFrameId: SetFrameId::<Identity, OFFSET>,
27088            PointerFlags: PointerFlags::<Identity, OFFSET>,
27089            SetPointerFlags: SetPointerFlags::<Identity, OFFSET>,
27090            PointerDeviceRect: PointerDeviceRect::<Identity, OFFSET>,
27091            SetPointerDeviceRect: SetPointerDeviceRect::<Identity, OFFSET>,
27092            DisplayRect: DisplayRect::<Identity, OFFSET>,
27093            SetDisplayRect: SetDisplayRect::<Identity, OFFSET>,
27094            PixelLocation: PixelLocation::<Identity, OFFSET>,
27095            SetPixelLocation: SetPixelLocation::<Identity, OFFSET>,
27096            HimetricLocation: HimetricLocation::<Identity, OFFSET>,
27097            SetHimetricLocation: SetHimetricLocation::<Identity, OFFSET>,
27098            PixelLocationRaw: PixelLocationRaw::<Identity, OFFSET>,
27099            SetPixelLocationRaw: SetPixelLocationRaw::<Identity, OFFSET>,
27100            HimetricLocationRaw: HimetricLocationRaw::<Identity, OFFSET>,
27101            SetHimetricLocationRaw: SetHimetricLocationRaw::<Identity, OFFSET>,
27102            Time: Time::<Identity, OFFSET>,
27103            SetTime: SetTime::<Identity, OFFSET>,
27104            HistoryCount: HistoryCount::<Identity, OFFSET>,
27105            SetHistoryCount: SetHistoryCount::<Identity, OFFSET>,
27106            InputData: InputData::<Identity, OFFSET>,
27107            SetInputData: SetInputData::<Identity, OFFSET>,
27108            KeyStates: KeyStates::<Identity, OFFSET>,
27109            SetKeyStates: SetKeyStates::<Identity, OFFSET>,
27110            PerformanceCount: PerformanceCount::<Identity, OFFSET>,
27111            SetPerformanceCount: SetPerformanceCount::<Identity, OFFSET>,
27112            ButtonChangeKind: ButtonChangeKind::<Identity, OFFSET>,
27113            SetButtonChangeKind: SetButtonChangeKind::<Identity, OFFSET>,
27114            PenFlags: PenFlags::<Identity, OFFSET>,
27115            SetPenFlags: SetPenFlags::<Identity, OFFSET>,
27116            PenMask: PenMask::<Identity, OFFSET>,
27117            SetPenMask: SetPenMask::<Identity, OFFSET>,
27118            PenPressure: PenPressure::<Identity, OFFSET>,
27119            SetPenPressure: SetPenPressure::<Identity, OFFSET>,
27120            PenRotation: PenRotation::<Identity, OFFSET>,
27121            SetPenRotation: SetPenRotation::<Identity, OFFSET>,
27122            PenTiltX: PenTiltX::<Identity, OFFSET>,
27123            SetPenTiltX: SetPenTiltX::<Identity, OFFSET>,
27124            PenTiltY: PenTiltY::<Identity, OFFSET>,
27125            SetPenTiltY: SetPenTiltY::<Identity, OFFSET>,
27126            TouchFlags: TouchFlags::<Identity, OFFSET>,
27127            SetTouchFlags: SetTouchFlags::<Identity, OFFSET>,
27128            TouchMask: TouchMask::<Identity, OFFSET>,
27129            SetTouchMask: SetTouchMask::<Identity, OFFSET>,
27130            TouchContact: TouchContact::<Identity, OFFSET>,
27131            SetTouchContact: SetTouchContact::<Identity, OFFSET>,
27132            TouchContactRaw: TouchContactRaw::<Identity, OFFSET>,
27133            SetTouchContactRaw: SetTouchContactRaw::<Identity, OFFSET>,
27134            TouchOrientation: TouchOrientation::<Identity, OFFSET>,
27135            SetTouchOrientation: SetTouchOrientation::<Identity, OFFSET>,
27136            TouchPressure: TouchPressure::<Identity, OFFSET>,
27137            SetTouchPressure: SetTouchPressure::<Identity, OFFSET>,
27138        }
27139    }
27140    pub fn matches(iid: &windows_core::GUID) -> bool {
27141        iid == &<ICoreWebView2PointerInfo as windows_core::Interface>::IID
27142    }
27143}
27144impl windows_core::RuntimeName for ICoreWebView2PointerInfo {}
27145windows_core::imp::define_interface!(
27146    ICoreWebView2PrintCompletedHandler,
27147    ICoreWebView2PrintCompletedHandler_Vtbl,
27148    0x8fd80075_ed08_42db_8570_f5d14977461e
27149);
27150windows_core::imp::interface_hierarchy!(ICoreWebView2PrintCompletedHandler, windows_core::IUnknown);
27151impl ICoreWebView2PrintCompletedHandler {
27152    pub unsafe fn Invoke(
27153        &self,
27154        errorcode: windows_core::HRESULT,
27155        result: COREWEBVIEW2_PRINT_STATUS,
27156    ) -> windows_core::Result<()> {
27157        unsafe {
27158            (windows_core::Interface::vtable(self).Invoke)(
27159                windows_core::Interface::as_raw(self),
27160                errorcode,
27161                result,
27162            )
27163            .ok()
27164        }
27165    }
27166}
27167#[repr(C)]
27168#[doc(hidden)]
27169pub struct ICoreWebView2PrintCompletedHandler_Vtbl {
27170    pub base__: windows_core::IUnknown_Vtbl,
27171    pub Invoke: unsafe extern "system" fn(
27172        *mut core::ffi::c_void,
27173        windows_core::HRESULT,
27174        COREWEBVIEW2_PRINT_STATUS,
27175    ) -> windows_core::HRESULT,
27176}
27177pub trait ICoreWebView2PrintCompletedHandler_Impl: windows_core::IUnknownImpl {
27178    fn Invoke(
27179        &self,
27180        errorcode: windows_core::HRESULT,
27181        result: COREWEBVIEW2_PRINT_STATUS,
27182    ) -> windows_core::Result<()>;
27183}
27184impl ICoreWebView2PrintCompletedHandler_Vtbl {
27185    pub const fn new<Identity: ICoreWebView2PrintCompletedHandler_Impl, const OFFSET: isize>(
27186    ) -> Self {
27187        unsafe extern "system" fn Invoke<
27188            Identity: ICoreWebView2PrintCompletedHandler_Impl,
27189            const OFFSET: isize,
27190        >(
27191            this: *mut core::ffi::c_void,
27192            errorcode: windows_core::HRESULT,
27193            result: COREWEBVIEW2_PRINT_STATUS,
27194        ) -> windows_core::HRESULT {
27195            unsafe {
27196                let this: &Identity =
27197                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
27198                ICoreWebView2PrintCompletedHandler_Impl::Invoke(
27199                    this,
27200                    core::mem::transmute_copy(&errorcode),
27201                    core::mem::transmute_copy(&result),
27202                )
27203                .into()
27204            }
27205        }
27206        Self {
27207            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
27208            Invoke: Invoke::<Identity, OFFSET>,
27209        }
27210    }
27211    pub fn matches(iid: &windows_core::GUID) -> bool {
27212        iid == &<ICoreWebView2PrintCompletedHandler as windows_core::Interface>::IID
27213    }
27214}
27215impl windows_core::RuntimeName for ICoreWebView2PrintCompletedHandler {}
27216windows_core::imp::define_interface!(
27217    ICoreWebView2PrintSettings,
27218    ICoreWebView2PrintSettings_Vtbl,
27219    0x377f3721_c74e_48ca_8db1_df68e51d60e2
27220);
27221windows_core::imp::interface_hierarchy!(ICoreWebView2PrintSettings, windows_core::IUnknown);
27222impl ICoreWebView2PrintSettings {
27223    pub unsafe fn Orientation(
27224        &self,
27225        orientation: *mut COREWEBVIEW2_PRINT_ORIENTATION,
27226    ) -> windows_core::Result<()> {
27227        unsafe {
27228            (windows_core::Interface::vtable(self).Orientation)(
27229                windows_core::Interface::as_raw(self),
27230                orientation as _,
27231            )
27232            .ok()
27233        }
27234    }
27235    pub unsafe fn SetOrientation(
27236        &self,
27237        orientation: COREWEBVIEW2_PRINT_ORIENTATION,
27238    ) -> windows_core::Result<()> {
27239        unsafe {
27240            (windows_core::Interface::vtable(self).SetOrientation)(
27241                windows_core::Interface::as_raw(self),
27242                orientation,
27243            )
27244            .ok()
27245        }
27246    }
27247    pub unsafe fn ScaleFactor(&self, scalefactor: *mut f64) -> windows_core::Result<()> {
27248        unsafe {
27249            (windows_core::Interface::vtable(self).ScaleFactor)(
27250                windows_core::Interface::as_raw(self),
27251                scalefactor as _,
27252            )
27253            .ok()
27254        }
27255    }
27256    pub unsafe fn SetScaleFactor(&self, scalefactor: f64) -> windows_core::Result<()> {
27257        unsafe {
27258            (windows_core::Interface::vtable(self).SetScaleFactor)(
27259                windows_core::Interface::as_raw(self),
27260                scalefactor,
27261            )
27262            .ok()
27263        }
27264    }
27265    pub unsafe fn PageWidth(&self, pagewidth: *mut f64) -> windows_core::Result<()> {
27266        unsafe {
27267            (windows_core::Interface::vtable(self).PageWidth)(
27268                windows_core::Interface::as_raw(self),
27269                pagewidth as _,
27270            )
27271            .ok()
27272        }
27273    }
27274    pub unsafe fn SetPageWidth(&self, pagewidth: f64) -> windows_core::Result<()> {
27275        unsafe {
27276            (windows_core::Interface::vtable(self).SetPageWidth)(
27277                windows_core::Interface::as_raw(self),
27278                pagewidth,
27279            )
27280            .ok()
27281        }
27282    }
27283    pub unsafe fn PageHeight(&self, pageheight: *mut f64) -> windows_core::Result<()> {
27284        unsafe {
27285            (windows_core::Interface::vtable(self).PageHeight)(
27286                windows_core::Interface::as_raw(self),
27287                pageheight as _,
27288            )
27289            .ok()
27290        }
27291    }
27292    pub unsafe fn SetPageHeight(&self, pageheight: f64) -> windows_core::Result<()> {
27293        unsafe {
27294            (windows_core::Interface::vtable(self).SetPageHeight)(
27295                windows_core::Interface::as_raw(self),
27296                pageheight,
27297            )
27298            .ok()
27299        }
27300    }
27301    pub unsafe fn MarginTop(&self, margintop: *mut f64) -> windows_core::Result<()> {
27302        unsafe {
27303            (windows_core::Interface::vtable(self).MarginTop)(
27304                windows_core::Interface::as_raw(self),
27305                margintop as _,
27306            )
27307            .ok()
27308        }
27309    }
27310    pub unsafe fn SetMarginTop(&self, margintop: f64) -> windows_core::Result<()> {
27311        unsafe {
27312            (windows_core::Interface::vtable(self).SetMarginTop)(
27313                windows_core::Interface::as_raw(self),
27314                margintop,
27315            )
27316            .ok()
27317        }
27318    }
27319    pub unsafe fn MarginBottom(&self, marginbottom: *mut f64) -> windows_core::Result<()> {
27320        unsafe {
27321            (windows_core::Interface::vtable(self).MarginBottom)(
27322                windows_core::Interface::as_raw(self),
27323                marginbottom as _,
27324            )
27325            .ok()
27326        }
27327    }
27328    pub unsafe fn SetMarginBottom(&self, marginbottom: f64) -> windows_core::Result<()> {
27329        unsafe {
27330            (windows_core::Interface::vtable(self).SetMarginBottom)(
27331                windows_core::Interface::as_raw(self),
27332                marginbottom,
27333            )
27334            .ok()
27335        }
27336    }
27337    pub unsafe fn MarginLeft(&self, marginleft: *mut f64) -> windows_core::Result<()> {
27338        unsafe {
27339            (windows_core::Interface::vtable(self).MarginLeft)(
27340                windows_core::Interface::as_raw(self),
27341                marginleft as _,
27342            )
27343            .ok()
27344        }
27345    }
27346    pub unsafe fn SetMarginLeft(&self, marginleft: f64) -> windows_core::Result<()> {
27347        unsafe {
27348            (windows_core::Interface::vtable(self).SetMarginLeft)(
27349                windows_core::Interface::as_raw(self),
27350                marginleft,
27351            )
27352            .ok()
27353        }
27354    }
27355    pub unsafe fn MarginRight(&self, marginright: *mut f64) -> windows_core::Result<()> {
27356        unsafe {
27357            (windows_core::Interface::vtable(self).MarginRight)(
27358                windows_core::Interface::as_raw(self),
27359                marginright as _,
27360            )
27361            .ok()
27362        }
27363    }
27364    pub unsafe fn SetMarginRight(&self, marginright: f64) -> windows_core::Result<()> {
27365        unsafe {
27366            (windows_core::Interface::vtable(self).SetMarginRight)(
27367                windows_core::Interface::as_raw(self),
27368                marginright,
27369            )
27370            .ok()
27371        }
27372    }
27373    pub unsafe fn ShouldPrintBackgrounds(
27374        &self,
27375        shouldprintbackgrounds: *mut windows_core::BOOL,
27376    ) -> windows_core::Result<()> {
27377        unsafe {
27378            (windows_core::Interface::vtable(self).ShouldPrintBackgrounds)(
27379                windows_core::Interface::as_raw(self),
27380                shouldprintbackgrounds as _,
27381            )
27382            .ok()
27383        }
27384    }
27385    pub unsafe fn SetShouldPrintBackgrounds(
27386        &self,
27387        shouldprintbackgrounds: bool,
27388    ) -> windows_core::Result<()> {
27389        unsafe {
27390            (windows_core::Interface::vtable(self).SetShouldPrintBackgrounds)(
27391                windows_core::Interface::as_raw(self),
27392                shouldprintbackgrounds.into(),
27393            )
27394            .ok()
27395        }
27396    }
27397    pub unsafe fn ShouldPrintSelectionOnly(
27398        &self,
27399        shouldprintselectiononly: *mut windows_core::BOOL,
27400    ) -> windows_core::Result<()> {
27401        unsafe {
27402            (windows_core::Interface::vtable(self).ShouldPrintSelectionOnly)(
27403                windows_core::Interface::as_raw(self),
27404                shouldprintselectiononly as _,
27405            )
27406            .ok()
27407        }
27408    }
27409    pub unsafe fn SetShouldPrintSelectionOnly(
27410        &self,
27411        shouldprintselectiononly: bool,
27412    ) -> windows_core::Result<()> {
27413        unsafe {
27414            (windows_core::Interface::vtable(self).SetShouldPrintSelectionOnly)(
27415                windows_core::Interface::as_raw(self),
27416                shouldprintselectiononly.into(),
27417            )
27418            .ok()
27419        }
27420    }
27421    pub unsafe fn ShouldPrintHeaderAndFooter(
27422        &self,
27423        shouldprintheaderandfooter: *mut windows_core::BOOL,
27424    ) -> windows_core::Result<()> {
27425        unsafe {
27426            (windows_core::Interface::vtable(self).ShouldPrintHeaderAndFooter)(
27427                windows_core::Interface::as_raw(self),
27428                shouldprintheaderandfooter as _,
27429            )
27430            .ok()
27431        }
27432    }
27433    pub unsafe fn SetShouldPrintHeaderAndFooter(
27434        &self,
27435        shouldprintheaderandfooter: bool,
27436    ) -> windows_core::Result<()> {
27437        unsafe {
27438            (windows_core::Interface::vtable(self).SetShouldPrintHeaderAndFooter)(
27439                windows_core::Interface::as_raw(self),
27440                shouldprintheaderandfooter.into(),
27441            )
27442            .ok()
27443        }
27444    }
27445    pub unsafe fn HeaderTitle(
27446        &self,
27447        headertitle: *mut windows_core::PWSTR,
27448    ) -> windows_core::Result<()> {
27449        unsafe {
27450            (windows_core::Interface::vtable(self).HeaderTitle)(
27451                windows_core::Interface::as_raw(self),
27452                headertitle as _,
27453            )
27454            .ok()
27455        }
27456    }
27457    pub unsafe fn SetHeaderTitle<P0>(&self, headertitle: P0) -> windows_core::Result<()>
27458    where
27459        P0: windows_core::Param<windows_core::PCWSTR>,
27460    {
27461        unsafe {
27462            (windows_core::Interface::vtable(self).SetHeaderTitle)(
27463                windows_core::Interface::as_raw(self),
27464                headertitle.param().abi(),
27465            )
27466            .ok()
27467        }
27468    }
27469    pub unsafe fn FooterUri(
27470        &self,
27471        footeruri: *mut windows_core::PWSTR,
27472    ) -> windows_core::Result<()> {
27473        unsafe {
27474            (windows_core::Interface::vtable(self).FooterUri)(
27475                windows_core::Interface::as_raw(self),
27476                footeruri as _,
27477            )
27478            .ok()
27479        }
27480    }
27481    pub unsafe fn SetFooterUri<P0>(&self, footeruri: P0) -> windows_core::Result<()>
27482    where
27483        P0: windows_core::Param<windows_core::PCWSTR>,
27484    {
27485        unsafe {
27486            (windows_core::Interface::vtable(self).SetFooterUri)(
27487                windows_core::Interface::as_raw(self),
27488                footeruri.param().abi(),
27489            )
27490            .ok()
27491        }
27492    }
27493}
27494#[repr(C)]
27495#[doc(hidden)]
27496pub struct ICoreWebView2PrintSettings_Vtbl {
27497    pub base__: windows_core::IUnknown_Vtbl,
27498    pub Orientation: unsafe extern "system" fn(
27499        *mut core::ffi::c_void,
27500        *mut COREWEBVIEW2_PRINT_ORIENTATION,
27501    ) -> windows_core::HRESULT,
27502    pub SetOrientation: unsafe extern "system" fn(
27503        *mut core::ffi::c_void,
27504        COREWEBVIEW2_PRINT_ORIENTATION,
27505    ) -> windows_core::HRESULT,
27506    pub ScaleFactor:
27507        unsafe extern "system" fn(*mut core::ffi::c_void, *mut f64) -> windows_core::HRESULT,
27508    pub SetScaleFactor:
27509        unsafe extern "system" fn(*mut core::ffi::c_void, f64) -> windows_core::HRESULT,
27510    pub PageWidth:
27511        unsafe extern "system" fn(*mut core::ffi::c_void, *mut f64) -> windows_core::HRESULT,
27512    pub SetPageWidth:
27513        unsafe extern "system" fn(*mut core::ffi::c_void, f64) -> windows_core::HRESULT,
27514    pub PageHeight:
27515        unsafe extern "system" fn(*mut core::ffi::c_void, *mut f64) -> windows_core::HRESULT,
27516    pub SetPageHeight:
27517        unsafe extern "system" fn(*mut core::ffi::c_void, f64) -> windows_core::HRESULT,
27518    pub MarginTop:
27519        unsafe extern "system" fn(*mut core::ffi::c_void, *mut f64) -> windows_core::HRESULT,
27520    pub SetMarginTop:
27521        unsafe extern "system" fn(*mut core::ffi::c_void, f64) -> windows_core::HRESULT,
27522    pub MarginBottom:
27523        unsafe extern "system" fn(*mut core::ffi::c_void, *mut f64) -> windows_core::HRESULT,
27524    pub SetMarginBottom:
27525        unsafe extern "system" fn(*mut core::ffi::c_void, f64) -> windows_core::HRESULT,
27526    pub MarginLeft:
27527        unsafe extern "system" fn(*mut core::ffi::c_void, *mut f64) -> windows_core::HRESULT,
27528    pub SetMarginLeft:
27529        unsafe extern "system" fn(*mut core::ffi::c_void, f64) -> windows_core::HRESULT,
27530    pub MarginRight:
27531        unsafe extern "system" fn(*mut core::ffi::c_void, *mut f64) -> windows_core::HRESULT,
27532    pub SetMarginRight:
27533        unsafe extern "system" fn(*mut core::ffi::c_void, f64) -> windows_core::HRESULT,
27534    pub ShouldPrintBackgrounds: unsafe extern "system" fn(
27535        *mut core::ffi::c_void,
27536        *mut windows_core::BOOL,
27537    ) -> windows_core::HRESULT,
27538    pub SetShouldPrintBackgrounds: unsafe extern "system" fn(
27539        *mut core::ffi::c_void,
27540        windows_core::BOOL,
27541    ) -> windows_core::HRESULT,
27542    pub ShouldPrintSelectionOnly: unsafe extern "system" fn(
27543        *mut core::ffi::c_void,
27544        *mut windows_core::BOOL,
27545    ) -> windows_core::HRESULT,
27546    pub SetShouldPrintSelectionOnly: unsafe extern "system" fn(
27547        *mut core::ffi::c_void,
27548        windows_core::BOOL,
27549    ) -> windows_core::HRESULT,
27550    pub ShouldPrintHeaderAndFooter: unsafe extern "system" fn(
27551        *mut core::ffi::c_void,
27552        *mut windows_core::BOOL,
27553    ) -> windows_core::HRESULT,
27554    pub SetShouldPrintHeaderAndFooter: unsafe extern "system" fn(
27555        *mut core::ffi::c_void,
27556        windows_core::BOOL,
27557    ) -> windows_core::HRESULT,
27558    pub HeaderTitle: unsafe extern "system" fn(
27559        *mut core::ffi::c_void,
27560        *mut windows_core::PWSTR,
27561    ) -> windows_core::HRESULT,
27562    pub SetHeaderTitle: unsafe extern "system" fn(
27563        *mut core::ffi::c_void,
27564        windows_core::PCWSTR,
27565    ) -> windows_core::HRESULT,
27566    pub FooterUri: unsafe extern "system" fn(
27567        *mut core::ffi::c_void,
27568        *mut windows_core::PWSTR,
27569    ) -> windows_core::HRESULT,
27570    pub SetFooterUri: unsafe extern "system" fn(
27571        *mut core::ffi::c_void,
27572        windows_core::PCWSTR,
27573    ) -> windows_core::HRESULT,
27574}
27575pub trait ICoreWebView2PrintSettings_Impl: windows_core::IUnknownImpl {
27576    fn Orientation(
27577        &self,
27578        orientation: *mut COREWEBVIEW2_PRINT_ORIENTATION,
27579    ) -> windows_core::Result<()>;
27580    fn SetOrientation(
27581        &self,
27582        orientation: COREWEBVIEW2_PRINT_ORIENTATION,
27583    ) -> windows_core::Result<()>;
27584    fn ScaleFactor(&self, scalefactor: *mut f64) -> windows_core::Result<()>;
27585    fn SetScaleFactor(&self, scalefactor: f64) -> windows_core::Result<()>;
27586    fn PageWidth(&self, pagewidth: *mut f64) -> windows_core::Result<()>;
27587    fn SetPageWidth(&self, pagewidth: f64) -> windows_core::Result<()>;
27588    fn PageHeight(&self, pageheight: *mut f64) -> windows_core::Result<()>;
27589    fn SetPageHeight(&self, pageheight: f64) -> windows_core::Result<()>;
27590    fn MarginTop(&self, margintop: *mut f64) -> windows_core::Result<()>;
27591    fn SetMarginTop(&self, margintop: f64) -> windows_core::Result<()>;
27592    fn MarginBottom(&self, marginbottom: *mut f64) -> windows_core::Result<()>;
27593    fn SetMarginBottom(&self, marginbottom: f64) -> windows_core::Result<()>;
27594    fn MarginLeft(&self, marginleft: *mut f64) -> windows_core::Result<()>;
27595    fn SetMarginLeft(&self, marginleft: f64) -> windows_core::Result<()>;
27596    fn MarginRight(&self, marginright: *mut f64) -> windows_core::Result<()>;
27597    fn SetMarginRight(&self, marginright: f64) -> windows_core::Result<()>;
27598    fn ShouldPrintBackgrounds(
27599        &self,
27600        shouldprintbackgrounds: *mut windows_core::BOOL,
27601    ) -> windows_core::Result<()>;
27602    fn SetShouldPrintBackgrounds(
27603        &self,
27604        shouldprintbackgrounds: windows_core::BOOL,
27605    ) -> windows_core::Result<()>;
27606    fn ShouldPrintSelectionOnly(
27607        &self,
27608        shouldprintselectiononly: *mut windows_core::BOOL,
27609    ) -> windows_core::Result<()>;
27610    fn SetShouldPrintSelectionOnly(
27611        &self,
27612        shouldprintselectiononly: windows_core::BOOL,
27613    ) -> windows_core::Result<()>;
27614    fn ShouldPrintHeaderAndFooter(
27615        &self,
27616        shouldprintheaderandfooter: *mut windows_core::BOOL,
27617    ) -> windows_core::Result<()>;
27618    fn SetShouldPrintHeaderAndFooter(
27619        &self,
27620        shouldprintheaderandfooter: windows_core::BOOL,
27621    ) -> windows_core::Result<()>;
27622    fn HeaderTitle(&self, headertitle: *mut windows_core::PWSTR) -> windows_core::Result<()>;
27623    fn SetHeaderTitle(&self, headertitle: &windows_core::PCWSTR) -> windows_core::Result<()>;
27624    fn FooterUri(&self, footeruri: *mut windows_core::PWSTR) -> windows_core::Result<()>;
27625    fn SetFooterUri(&self, footeruri: &windows_core::PCWSTR) -> windows_core::Result<()>;
27626}
27627impl ICoreWebView2PrintSettings_Vtbl {
27628    pub const fn new<Identity: ICoreWebView2PrintSettings_Impl, const OFFSET: isize>() -> Self {
27629        unsafe extern "system" fn Orientation<
27630            Identity: ICoreWebView2PrintSettings_Impl,
27631            const OFFSET: isize,
27632        >(
27633            this: *mut core::ffi::c_void,
27634            orientation: *mut COREWEBVIEW2_PRINT_ORIENTATION,
27635        ) -> windows_core::HRESULT {
27636            unsafe {
27637                let this: &Identity =
27638                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
27639                ICoreWebView2PrintSettings_Impl::Orientation(
27640                    this,
27641                    core::mem::transmute_copy(&orientation),
27642                )
27643                .into()
27644            }
27645        }
27646        unsafe extern "system" fn SetOrientation<
27647            Identity: ICoreWebView2PrintSettings_Impl,
27648            const OFFSET: isize,
27649        >(
27650            this: *mut core::ffi::c_void,
27651            orientation: COREWEBVIEW2_PRINT_ORIENTATION,
27652        ) -> windows_core::HRESULT {
27653            unsafe {
27654                let this: &Identity =
27655                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
27656                ICoreWebView2PrintSettings_Impl::SetOrientation(
27657                    this,
27658                    core::mem::transmute_copy(&orientation),
27659                )
27660                .into()
27661            }
27662        }
27663        unsafe extern "system" fn ScaleFactor<
27664            Identity: ICoreWebView2PrintSettings_Impl,
27665            const OFFSET: isize,
27666        >(
27667            this: *mut core::ffi::c_void,
27668            scalefactor: *mut f64,
27669        ) -> windows_core::HRESULT {
27670            unsafe {
27671                let this: &Identity =
27672                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
27673                ICoreWebView2PrintSettings_Impl::ScaleFactor(
27674                    this,
27675                    core::mem::transmute_copy(&scalefactor),
27676                )
27677                .into()
27678            }
27679        }
27680        unsafe extern "system" fn SetScaleFactor<
27681            Identity: ICoreWebView2PrintSettings_Impl,
27682            const OFFSET: isize,
27683        >(
27684            this: *mut core::ffi::c_void,
27685            scalefactor: f64,
27686        ) -> windows_core::HRESULT {
27687            unsafe {
27688                let this: &Identity =
27689                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
27690                ICoreWebView2PrintSettings_Impl::SetScaleFactor(
27691                    this,
27692                    core::mem::transmute_copy(&scalefactor),
27693                )
27694                .into()
27695            }
27696        }
27697        unsafe extern "system" fn PageWidth<
27698            Identity: ICoreWebView2PrintSettings_Impl,
27699            const OFFSET: isize,
27700        >(
27701            this: *mut core::ffi::c_void,
27702            pagewidth: *mut f64,
27703        ) -> windows_core::HRESULT {
27704            unsafe {
27705                let this: &Identity =
27706                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
27707                ICoreWebView2PrintSettings_Impl::PageWidth(
27708                    this,
27709                    core::mem::transmute_copy(&pagewidth),
27710                )
27711                .into()
27712            }
27713        }
27714        unsafe extern "system" fn SetPageWidth<
27715            Identity: ICoreWebView2PrintSettings_Impl,
27716            const OFFSET: isize,
27717        >(
27718            this: *mut core::ffi::c_void,
27719            pagewidth: f64,
27720        ) -> windows_core::HRESULT {
27721            unsafe {
27722                let this: &Identity =
27723                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
27724                ICoreWebView2PrintSettings_Impl::SetPageWidth(
27725                    this,
27726                    core::mem::transmute_copy(&pagewidth),
27727                )
27728                .into()
27729            }
27730        }
27731        unsafe extern "system" fn PageHeight<
27732            Identity: ICoreWebView2PrintSettings_Impl,
27733            const OFFSET: isize,
27734        >(
27735            this: *mut core::ffi::c_void,
27736            pageheight: *mut f64,
27737        ) -> windows_core::HRESULT {
27738            unsafe {
27739                let this: &Identity =
27740                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
27741                ICoreWebView2PrintSettings_Impl::PageHeight(
27742                    this,
27743                    core::mem::transmute_copy(&pageheight),
27744                )
27745                .into()
27746            }
27747        }
27748        unsafe extern "system" fn SetPageHeight<
27749            Identity: ICoreWebView2PrintSettings_Impl,
27750            const OFFSET: isize,
27751        >(
27752            this: *mut core::ffi::c_void,
27753            pageheight: f64,
27754        ) -> windows_core::HRESULT {
27755            unsafe {
27756                let this: &Identity =
27757                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
27758                ICoreWebView2PrintSettings_Impl::SetPageHeight(
27759                    this,
27760                    core::mem::transmute_copy(&pageheight),
27761                )
27762                .into()
27763            }
27764        }
27765        unsafe extern "system" fn MarginTop<
27766            Identity: ICoreWebView2PrintSettings_Impl,
27767            const OFFSET: isize,
27768        >(
27769            this: *mut core::ffi::c_void,
27770            margintop: *mut f64,
27771        ) -> windows_core::HRESULT {
27772            unsafe {
27773                let this: &Identity =
27774                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
27775                ICoreWebView2PrintSettings_Impl::MarginTop(
27776                    this,
27777                    core::mem::transmute_copy(&margintop),
27778                )
27779                .into()
27780            }
27781        }
27782        unsafe extern "system" fn SetMarginTop<
27783            Identity: ICoreWebView2PrintSettings_Impl,
27784            const OFFSET: isize,
27785        >(
27786            this: *mut core::ffi::c_void,
27787            margintop: f64,
27788        ) -> windows_core::HRESULT {
27789            unsafe {
27790                let this: &Identity =
27791                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
27792                ICoreWebView2PrintSettings_Impl::SetMarginTop(
27793                    this,
27794                    core::mem::transmute_copy(&margintop),
27795                )
27796                .into()
27797            }
27798        }
27799        unsafe extern "system" fn MarginBottom<
27800            Identity: ICoreWebView2PrintSettings_Impl,
27801            const OFFSET: isize,
27802        >(
27803            this: *mut core::ffi::c_void,
27804            marginbottom: *mut f64,
27805        ) -> windows_core::HRESULT {
27806            unsafe {
27807                let this: &Identity =
27808                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
27809                ICoreWebView2PrintSettings_Impl::MarginBottom(
27810                    this,
27811                    core::mem::transmute_copy(&marginbottom),
27812                )
27813                .into()
27814            }
27815        }
27816        unsafe extern "system" fn SetMarginBottom<
27817            Identity: ICoreWebView2PrintSettings_Impl,
27818            const OFFSET: isize,
27819        >(
27820            this: *mut core::ffi::c_void,
27821            marginbottom: f64,
27822        ) -> windows_core::HRESULT {
27823            unsafe {
27824                let this: &Identity =
27825                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
27826                ICoreWebView2PrintSettings_Impl::SetMarginBottom(
27827                    this,
27828                    core::mem::transmute_copy(&marginbottom),
27829                )
27830                .into()
27831            }
27832        }
27833        unsafe extern "system" fn MarginLeft<
27834            Identity: ICoreWebView2PrintSettings_Impl,
27835            const OFFSET: isize,
27836        >(
27837            this: *mut core::ffi::c_void,
27838            marginleft: *mut f64,
27839        ) -> windows_core::HRESULT {
27840            unsafe {
27841                let this: &Identity =
27842                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
27843                ICoreWebView2PrintSettings_Impl::MarginLeft(
27844                    this,
27845                    core::mem::transmute_copy(&marginleft),
27846                )
27847                .into()
27848            }
27849        }
27850        unsafe extern "system" fn SetMarginLeft<
27851            Identity: ICoreWebView2PrintSettings_Impl,
27852            const OFFSET: isize,
27853        >(
27854            this: *mut core::ffi::c_void,
27855            marginleft: f64,
27856        ) -> windows_core::HRESULT {
27857            unsafe {
27858                let this: &Identity =
27859                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
27860                ICoreWebView2PrintSettings_Impl::SetMarginLeft(
27861                    this,
27862                    core::mem::transmute_copy(&marginleft),
27863                )
27864                .into()
27865            }
27866        }
27867        unsafe extern "system" fn MarginRight<
27868            Identity: ICoreWebView2PrintSettings_Impl,
27869            const OFFSET: isize,
27870        >(
27871            this: *mut core::ffi::c_void,
27872            marginright: *mut f64,
27873        ) -> windows_core::HRESULT {
27874            unsafe {
27875                let this: &Identity =
27876                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
27877                ICoreWebView2PrintSettings_Impl::MarginRight(
27878                    this,
27879                    core::mem::transmute_copy(&marginright),
27880                )
27881                .into()
27882            }
27883        }
27884        unsafe extern "system" fn SetMarginRight<
27885            Identity: ICoreWebView2PrintSettings_Impl,
27886            const OFFSET: isize,
27887        >(
27888            this: *mut core::ffi::c_void,
27889            marginright: f64,
27890        ) -> windows_core::HRESULT {
27891            unsafe {
27892                let this: &Identity =
27893                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
27894                ICoreWebView2PrintSettings_Impl::SetMarginRight(
27895                    this,
27896                    core::mem::transmute_copy(&marginright),
27897                )
27898                .into()
27899            }
27900        }
27901        unsafe extern "system" fn ShouldPrintBackgrounds<
27902            Identity: ICoreWebView2PrintSettings_Impl,
27903            const OFFSET: isize,
27904        >(
27905            this: *mut core::ffi::c_void,
27906            shouldprintbackgrounds: *mut windows_core::BOOL,
27907        ) -> windows_core::HRESULT {
27908            unsafe {
27909                let this: &Identity =
27910                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
27911                ICoreWebView2PrintSettings_Impl::ShouldPrintBackgrounds(
27912                    this,
27913                    core::mem::transmute_copy(&shouldprintbackgrounds),
27914                )
27915                .into()
27916            }
27917        }
27918        unsafe extern "system" fn SetShouldPrintBackgrounds<
27919            Identity: ICoreWebView2PrintSettings_Impl,
27920            const OFFSET: isize,
27921        >(
27922            this: *mut core::ffi::c_void,
27923            shouldprintbackgrounds: windows_core::BOOL,
27924        ) -> windows_core::HRESULT {
27925            unsafe {
27926                let this: &Identity =
27927                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
27928                ICoreWebView2PrintSettings_Impl::SetShouldPrintBackgrounds(
27929                    this,
27930                    core::mem::transmute_copy(&shouldprintbackgrounds),
27931                )
27932                .into()
27933            }
27934        }
27935        unsafe extern "system" fn ShouldPrintSelectionOnly<
27936            Identity: ICoreWebView2PrintSettings_Impl,
27937            const OFFSET: isize,
27938        >(
27939            this: *mut core::ffi::c_void,
27940            shouldprintselectiononly: *mut windows_core::BOOL,
27941        ) -> windows_core::HRESULT {
27942            unsafe {
27943                let this: &Identity =
27944                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
27945                ICoreWebView2PrintSettings_Impl::ShouldPrintSelectionOnly(
27946                    this,
27947                    core::mem::transmute_copy(&shouldprintselectiononly),
27948                )
27949                .into()
27950            }
27951        }
27952        unsafe extern "system" fn SetShouldPrintSelectionOnly<
27953            Identity: ICoreWebView2PrintSettings_Impl,
27954            const OFFSET: isize,
27955        >(
27956            this: *mut core::ffi::c_void,
27957            shouldprintselectiononly: windows_core::BOOL,
27958        ) -> windows_core::HRESULT {
27959            unsafe {
27960                let this: &Identity =
27961                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
27962                ICoreWebView2PrintSettings_Impl::SetShouldPrintSelectionOnly(
27963                    this,
27964                    core::mem::transmute_copy(&shouldprintselectiononly),
27965                )
27966                .into()
27967            }
27968        }
27969        unsafe extern "system" fn ShouldPrintHeaderAndFooter<
27970            Identity: ICoreWebView2PrintSettings_Impl,
27971            const OFFSET: isize,
27972        >(
27973            this: *mut core::ffi::c_void,
27974            shouldprintheaderandfooter: *mut windows_core::BOOL,
27975        ) -> windows_core::HRESULT {
27976            unsafe {
27977                let this: &Identity =
27978                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
27979                ICoreWebView2PrintSettings_Impl::ShouldPrintHeaderAndFooter(
27980                    this,
27981                    core::mem::transmute_copy(&shouldprintheaderandfooter),
27982                )
27983                .into()
27984            }
27985        }
27986        unsafe extern "system" fn SetShouldPrintHeaderAndFooter<
27987            Identity: ICoreWebView2PrintSettings_Impl,
27988            const OFFSET: isize,
27989        >(
27990            this: *mut core::ffi::c_void,
27991            shouldprintheaderandfooter: windows_core::BOOL,
27992        ) -> windows_core::HRESULT {
27993            unsafe {
27994                let this: &Identity =
27995                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
27996                ICoreWebView2PrintSettings_Impl::SetShouldPrintHeaderAndFooter(
27997                    this,
27998                    core::mem::transmute_copy(&shouldprintheaderandfooter),
27999                )
28000                .into()
28001            }
28002        }
28003        unsafe extern "system" fn HeaderTitle<
28004            Identity: ICoreWebView2PrintSettings_Impl,
28005            const OFFSET: isize,
28006        >(
28007            this: *mut core::ffi::c_void,
28008            headertitle: *mut windows_core::PWSTR,
28009        ) -> windows_core::HRESULT {
28010            unsafe {
28011                let this: &Identity =
28012                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
28013                ICoreWebView2PrintSettings_Impl::HeaderTitle(
28014                    this,
28015                    core::mem::transmute_copy(&headertitle),
28016                )
28017                .into()
28018            }
28019        }
28020        unsafe extern "system" fn SetHeaderTitle<
28021            Identity: ICoreWebView2PrintSettings_Impl,
28022            const OFFSET: isize,
28023        >(
28024            this: *mut core::ffi::c_void,
28025            headertitle: windows_core::PCWSTR,
28026        ) -> windows_core::HRESULT {
28027            unsafe {
28028                let this: &Identity =
28029                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
28030                ICoreWebView2PrintSettings_Impl::SetHeaderTitle(
28031                    this,
28032                    core::mem::transmute(&headertitle),
28033                )
28034                .into()
28035            }
28036        }
28037        unsafe extern "system" fn FooterUri<
28038            Identity: ICoreWebView2PrintSettings_Impl,
28039            const OFFSET: isize,
28040        >(
28041            this: *mut core::ffi::c_void,
28042            footeruri: *mut windows_core::PWSTR,
28043        ) -> windows_core::HRESULT {
28044            unsafe {
28045                let this: &Identity =
28046                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
28047                ICoreWebView2PrintSettings_Impl::FooterUri(
28048                    this,
28049                    core::mem::transmute_copy(&footeruri),
28050                )
28051                .into()
28052            }
28053        }
28054        unsafe extern "system" fn SetFooterUri<
28055            Identity: ICoreWebView2PrintSettings_Impl,
28056            const OFFSET: isize,
28057        >(
28058            this: *mut core::ffi::c_void,
28059            footeruri: windows_core::PCWSTR,
28060        ) -> windows_core::HRESULT {
28061            unsafe {
28062                let this: &Identity =
28063                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
28064                ICoreWebView2PrintSettings_Impl::SetFooterUri(
28065                    this,
28066                    core::mem::transmute(&footeruri),
28067                )
28068                .into()
28069            }
28070        }
28071        Self {
28072            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
28073            Orientation: Orientation::<Identity, OFFSET>,
28074            SetOrientation: SetOrientation::<Identity, OFFSET>,
28075            ScaleFactor: ScaleFactor::<Identity, OFFSET>,
28076            SetScaleFactor: SetScaleFactor::<Identity, OFFSET>,
28077            PageWidth: PageWidth::<Identity, OFFSET>,
28078            SetPageWidth: SetPageWidth::<Identity, OFFSET>,
28079            PageHeight: PageHeight::<Identity, OFFSET>,
28080            SetPageHeight: SetPageHeight::<Identity, OFFSET>,
28081            MarginTop: MarginTop::<Identity, OFFSET>,
28082            SetMarginTop: SetMarginTop::<Identity, OFFSET>,
28083            MarginBottom: MarginBottom::<Identity, OFFSET>,
28084            SetMarginBottom: SetMarginBottom::<Identity, OFFSET>,
28085            MarginLeft: MarginLeft::<Identity, OFFSET>,
28086            SetMarginLeft: SetMarginLeft::<Identity, OFFSET>,
28087            MarginRight: MarginRight::<Identity, OFFSET>,
28088            SetMarginRight: SetMarginRight::<Identity, OFFSET>,
28089            ShouldPrintBackgrounds: ShouldPrintBackgrounds::<Identity, OFFSET>,
28090            SetShouldPrintBackgrounds: SetShouldPrintBackgrounds::<Identity, OFFSET>,
28091            ShouldPrintSelectionOnly: ShouldPrintSelectionOnly::<Identity, OFFSET>,
28092            SetShouldPrintSelectionOnly: SetShouldPrintSelectionOnly::<Identity, OFFSET>,
28093            ShouldPrintHeaderAndFooter: ShouldPrintHeaderAndFooter::<Identity, OFFSET>,
28094            SetShouldPrintHeaderAndFooter: SetShouldPrintHeaderAndFooter::<Identity, OFFSET>,
28095            HeaderTitle: HeaderTitle::<Identity, OFFSET>,
28096            SetHeaderTitle: SetHeaderTitle::<Identity, OFFSET>,
28097            FooterUri: FooterUri::<Identity, OFFSET>,
28098            SetFooterUri: SetFooterUri::<Identity, OFFSET>,
28099        }
28100    }
28101    pub fn matches(iid: &windows_core::GUID) -> bool {
28102        iid == &<ICoreWebView2PrintSettings as windows_core::Interface>::IID
28103    }
28104}
28105impl windows_core::RuntimeName for ICoreWebView2PrintSettings {}
28106windows_core::imp::define_interface!(
28107    ICoreWebView2PrintSettings2,
28108    ICoreWebView2PrintSettings2_Vtbl,
28109    0xca7f0e1f_3484_41d1_8c1a_65cd44a63f8d
28110);
28111impl core::ops::Deref for ICoreWebView2PrintSettings2 {
28112    type Target = ICoreWebView2PrintSettings;
28113    fn deref(&self) -> &Self::Target {
28114        unsafe { core::mem::transmute(self) }
28115    }
28116}
28117windows_core::imp::interface_hierarchy!(
28118    ICoreWebView2PrintSettings2,
28119    windows_core::IUnknown,
28120    ICoreWebView2PrintSettings
28121);
28122impl ICoreWebView2PrintSettings2 {
28123    pub unsafe fn PageRanges(&self, value: *mut windows_core::PWSTR) -> windows_core::Result<()> {
28124        unsafe {
28125            (windows_core::Interface::vtable(self).PageRanges)(
28126                windows_core::Interface::as_raw(self),
28127                value as _,
28128            )
28129            .ok()
28130        }
28131    }
28132    pub unsafe fn SetPageRanges<P0>(&self, value: P0) -> windows_core::Result<()>
28133    where
28134        P0: windows_core::Param<windows_core::PCWSTR>,
28135    {
28136        unsafe {
28137            (windows_core::Interface::vtable(self).SetPageRanges)(
28138                windows_core::Interface::as_raw(self),
28139                value.param().abi(),
28140            )
28141            .ok()
28142        }
28143    }
28144    pub unsafe fn PagesPerSide(&self, value: *mut i32) -> windows_core::Result<()> {
28145        unsafe {
28146            (windows_core::Interface::vtable(self).PagesPerSide)(
28147                windows_core::Interface::as_raw(self),
28148                value as _,
28149            )
28150            .ok()
28151        }
28152    }
28153    pub unsafe fn SetPagesPerSide(&self, value: i32) -> windows_core::Result<()> {
28154        unsafe {
28155            (windows_core::Interface::vtable(self).SetPagesPerSide)(
28156                windows_core::Interface::as_raw(self),
28157                value,
28158            )
28159            .ok()
28160        }
28161    }
28162    pub unsafe fn Copies(&self, value: *mut i32) -> windows_core::Result<()> {
28163        unsafe {
28164            (windows_core::Interface::vtable(self).Copies)(
28165                windows_core::Interface::as_raw(self),
28166                value as _,
28167            )
28168            .ok()
28169        }
28170    }
28171    pub unsafe fn SetCopies(&self, value: i32) -> windows_core::Result<()> {
28172        unsafe {
28173            (windows_core::Interface::vtable(self).SetCopies)(
28174                windows_core::Interface::as_raw(self),
28175                value,
28176            )
28177            .ok()
28178        }
28179    }
28180    pub unsafe fn Collation(
28181        &self,
28182        value: *mut COREWEBVIEW2_PRINT_COLLATION,
28183    ) -> windows_core::Result<()> {
28184        unsafe {
28185            (windows_core::Interface::vtable(self).Collation)(
28186                windows_core::Interface::as_raw(self),
28187                value as _,
28188            )
28189            .ok()
28190        }
28191    }
28192    pub unsafe fn SetCollation(
28193        &self,
28194        value: COREWEBVIEW2_PRINT_COLLATION,
28195    ) -> windows_core::Result<()> {
28196        unsafe {
28197            (windows_core::Interface::vtable(self).SetCollation)(
28198                windows_core::Interface::as_raw(self),
28199                value,
28200            )
28201            .ok()
28202        }
28203    }
28204    pub unsafe fn ColorMode(
28205        &self,
28206        value: *mut COREWEBVIEW2_PRINT_COLOR_MODE,
28207    ) -> windows_core::Result<()> {
28208        unsafe {
28209            (windows_core::Interface::vtable(self).ColorMode)(
28210                windows_core::Interface::as_raw(self),
28211                value as _,
28212            )
28213            .ok()
28214        }
28215    }
28216    pub unsafe fn SetColorMode(
28217        &self,
28218        value: COREWEBVIEW2_PRINT_COLOR_MODE,
28219    ) -> windows_core::Result<()> {
28220        unsafe {
28221            (windows_core::Interface::vtable(self).SetColorMode)(
28222                windows_core::Interface::as_raw(self),
28223                value,
28224            )
28225            .ok()
28226        }
28227    }
28228    pub unsafe fn Duplex(&self, value: *mut COREWEBVIEW2_PRINT_DUPLEX) -> windows_core::Result<()> {
28229        unsafe {
28230            (windows_core::Interface::vtable(self).Duplex)(
28231                windows_core::Interface::as_raw(self),
28232                value as _,
28233            )
28234            .ok()
28235        }
28236    }
28237    pub unsafe fn SetDuplex(&self, value: COREWEBVIEW2_PRINT_DUPLEX) -> windows_core::Result<()> {
28238        unsafe {
28239            (windows_core::Interface::vtable(self).SetDuplex)(
28240                windows_core::Interface::as_raw(self),
28241                value,
28242            )
28243            .ok()
28244        }
28245    }
28246    pub unsafe fn MediaSize(
28247        &self,
28248        value: *mut COREWEBVIEW2_PRINT_MEDIA_SIZE,
28249    ) -> windows_core::Result<()> {
28250        unsafe {
28251            (windows_core::Interface::vtable(self).MediaSize)(
28252                windows_core::Interface::as_raw(self),
28253                value as _,
28254            )
28255            .ok()
28256        }
28257    }
28258    pub unsafe fn SetMediaSize(
28259        &self,
28260        value: COREWEBVIEW2_PRINT_MEDIA_SIZE,
28261    ) -> windows_core::Result<()> {
28262        unsafe {
28263            (windows_core::Interface::vtable(self).SetMediaSize)(
28264                windows_core::Interface::as_raw(self),
28265                value,
28266            )
28267            .ok()
28268        }
28269    }
28270    pub unsafe fn PrinterName(&self, value: *mut windows_core::PWSTR) -> windows_core::Result<()> {
28271        unsafe {
28272            (windows_core::Interface::vtable(self).PrinterName)(
28273                windows_core::Interface::as_raw(self),
28274                value as _,
28275            )
28276            .ok()
28277        }
28278    }
28279    pub unsafe fn SetPrinterName<P0>(&self, value: P0) -> windows_core::Result<()>
28280    where
28281        P0: windows_core::Param<windows_core::PCWSTR>,
28282    {
28283        unsafe {
28284            (windows_core::Interface::vtable(self).SetPrinterName)(
28285                windows_core::Interface::as_raw(self),
28286                value.param().abi(),
28287            )
28288            .ok()
28289        }
28290    }
28291}
28292#[repr(C)]
28293#[doc(hidden)]
28294pub struct ICoreWebView2PrintSettings2_Vtbl {
28295    pub base__: ICoreWebView2PrintSettings_Vtbl,
28296    pub PageRanges: unsafe extern "system" fn(
28297        *mut core::ffi::c_void,
28298        *mut windows_core::PWSTR,
28299    ) -> windows_core::HRESULT,
28300    pub SetPageRanges: unsafe extern "system" fn(
28301        *mut core::ffi::c_void,
28302        windows_core::PCWSTR,
28303    ) -> windows_core::HRESULT,
28304    pub PagesPerSide:
28305        unsafe extern "system" fn(*mut core::ffi::c_void, *mut i32) -> windows_core::HRESULT,
28306    pub SetPagesPerSide:
28307        unsafe extern "system" fn(*mut core::ffi::c_void, i32) -> windows_core::HRESULT,
28308    pub Copies:
28309        unsafe extern "system" fn(*mut core::ffi::c_void, *mut i32) -> windows_core::HRESULT,
28310    pub SetCopies: unsafe extern "system" fn(*mut core::ffi::c_void, i32) -> windows_core::HRESULT,
28311    pub Collation: unsafe extern "system" fn(
28312        *mut core::ffi::c_void,
28313        *mut COREWEBVIEW2_PRINT_COLLATION,
28314    ) -> windows_core::HRESULT,
28315    pub SetCollation: unsafe extern "system" fn(
28316        *mut core::ffi::c_void,
28317        COREWEBVIEW2_PRINT_COLLATION,
28318    ) -> windows_core::HRESULT,
28319    pub ColorMode: unsafe extern "system" fn(
28320        *mut core::ffi::c_void,
28321        *mut COREWEBVIEW2_PRINT_COLOR_MODE,
28322    ) -> windows_core::HRESULT,
28323    pub SetColorMode: unsafe extern "system" fn(
28324        *mut core::ffi::c_void,
28325        COREWEBVIEW2_PRINT_COLOR_MODE,
28326    ) -> windows_core::HRESULT,
28327    pub Duplex: unsafe extern "system" fn(
28328        *mut core::ffi::c_void,
28329        *mut COREWEBVIEW2_PRINT_DUPLEX,
28330    ) -> windows_core::HRESULT,
28331    pub SetDuplex: unsafe extern "system" fn(
28332        *mut core::ffi::c_void,
28333        COREWEBVIEW2_PRINT_DUPLEX,
28334    ) -> windows_core::HRESULT,
28335    pub MediaSize: unsafe extern "system" fn(
28336        *mut core::ffi::c_void,
28337        *mut COREWEBVIEW2_PRINT_MEDIA_SIZE,
28338    ) -> windows_core::HRESULT,
28339    pub SetMediaSize: unsafe extern "system" fn(
28340        *mut core::ffi::c_void,
28341        COREWEBVIEW2_PRINT_MEDIA_SIZE,
28342    ) -> windows_core::HRESULT,
28343    pub PrinterName: unsafe extern "system" fn(
28344        *mut core::ffi::c_void,
28345        *mut windows_core::PWSTR,
28346    ) -> windows_core::HRESULT,
28347    pub SetPrinterName: unsafe extern "system" fn(
28348        *mut core::ffi::c_void,
28349        windows_core::PCWSTR,
28350    ) -> windows_core::HRESULT,
28351}
28352pub trait ICoreWebView2PrintSettings2_Impl: ICoreWebView2PrintSettings_Impl {
28353    fn PageRanges(&self, value: *mut windows_core::PWSTR) -> windows_core::Result<()>;
28354    fn SetPageRanges(&self, value: &windows_core::PCWSTR) -> windows_core::Result<()>;
28355    fn PagesPerSide(&self, value: *mut i32) -> windows_core::Result<()>;
28356    fn SetPagesPerSide(&self, value: i32) -> windows_core::Result<()>;
28357    fn Copies(&self, value: *mut i32) -> windows_core::Result<()>;
28358    fn SetCopies(&self, value: i32) -> windows_core::Result<()>;
28359    fn Collation(&self, value: *mut COREWEBVIEW2_PRINT_COLLATION) -> windows_core::Result<()>;
28360    fn SetCollation(&self, value: COREWEBVIEW2_PRINT_COLLATION) -> windows_core::Result<()>;
28361    fn ColorMode(&self, value: *mut COREWEBVIEW2_PRINT_COLOR_MODE) -> windows_core::Result<()>;
28362    fn SetColorMode(&self, value: COREWEBVIEW2_PRINT_COLOR_MODE) -> windows_core::Result<()>;
28363    fn Duplex(&self, value: *mut COREWEBVIEW2_PRINT_DUPLEX) -> windows_core::Result<()>;
28364    fn SetDuplex(&self, value: COREWEBVIEW2_PRINT_DUPLEX) -> windows_core::Result<()>;
28365    fn MediaSize(&self, value: *mut COREWEBVIEW2_PRINT_MEDIA_SIZE) -> windows_core::Result<()>;
28366    fn SetMediaSize(&self, value: COREWEBVIEW2_PRINT_MEDIA_SIZE) -> windows_core::Result<()>;
28367    fn PrinterName(&self, value: *mut windows_core::PWSTR) -> windows_core::Result<()>;
28368    fn SetPrinterName(&self, value: &windows_core::PCWSTR) -> windows_core::Result<()>;
28369}
28370impl ICoreWebView2PrintSettings2_Vtbl {
28371    pub const fn new<Identity: ICoreWebView2PrintSettings2_Impl, const OFFSET: isize>() -> Self {
28372        unsafe extern "system" fn PageRanges<
28373            Identity: ICoreWebView2PrintSettings2_Impl,
28374            const OFFSET: isize,
28375        >(
28376            this: *mut core::ffi::c_void,
28377            value: *mut windows_core::PWSTR,
28378        ) -> windows_core::HRESULT {
28379            unsafe {
28380                let this: &Identity =
28381                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
28382                ICoreWebView2PrintSettings2_Impl::PageRanges(
28383                    this,
28384                    core::mem::transmute_copy(&value),
28385                )
28386                .into()
28387            }
28388        }
28389        unsafe extern "system" fn SetPageRanges<
28390            Identity: ICoreWebView2PrintSettings2_Impl,
28391            const OFFSET: isize,
28392        >(
28393            this: *mut core::ffi::c_void,
28394            value: windows_core::PCWSTR,
28395        ) -> windows_core::HRESULT {
28396            unsafe {
28397                let this: &Identity =
28398                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
28399                ICoreWebView2PrintSettings2_Impl::SetPageRanges(this, core::mem::transmute(&value))
28400                    .into()
28401            }
28402        }
28403        unsafe extern "system" fn PagesPerSide<
28404            Identity: ICoreWebView2PrintSettings2_Impl,
28405            const OFFSET: isize,
28406        >(
28407            this: *mut core::ffi::c_void,
28408            value: *mut i32,
28409        ) -> windows_core::HRESULT {
28410            unsafe {
28411                let this: &Identity =
28412                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
28413                ICoreWebView2PrintSettings2_Impl::PagesPerSide(
28414                    this,
28415                    core::mem::transmute_copy(&value),
28416                )
28417                .into()
28418            }
28419        }
28420        unsafe extern "system" fn SetPagesPerSide<
28421            Identity: ICoreWebView2PrintSettings2_Impl,
28422            const OFFSET: isize,
28423        >(
28424            this: *mut core::ffi::c_void,
28425            value: i32,
28426        ) -> windows_core::HRESULT {
28427            unsafe {
28428                let this: &Identity =
28429                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
28430                ICoreWebView2PrintSettings2_Impl::SetPagesPerSide(
28431                    this,
28432                    core::mem::transmute_copy(&value),
28433                )
28434                .into()
28435            }
28436        }
28437        unsafe extern "system" fn Copies<
28438            Identity: ICoreWebView2PrintSettings2_Impl,
28439            const OFFSET: isize,
28440        >(
28441            this: *mut core::ffi::c_void,
28442            value: *mut i32,
28443        ) -> windows_core::HRESULT {
28444            unsafe {
28445                let this: &Identity =
28446                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
28447                ICoreWebView2PrintSettings2_Impl::Copies(this, core::mem::transmute_copy(&value))
28448                    .into()
28449            }
28450        }
28451        unsafe extern "system" fn SetCopies<
28452            Identity: ICoreWebView2PrintSettings2_Impl,
28453            const OFFSET: isize,
28454        >(
28455            this: *mut core::ffi::c_void,
28456            value: i32,
28457        ) -> windows_core::HRESULT {
28458            unsafe {
28459                let this: &Identity =
28460                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
28461                ICoreWebView2PrintSettings2_Impl::SetCopies(this, core::mem::transmute_copy(&value))
28462                    .into()
28463            }
28464        }
28465        unsafe extern "system" fn Collation<
28466            Identity: ICoreWebView2PrintSettings2_Impl,
28467            const OFFSET: isize,
28468        >(
28469            this: *mut core::ffi::c_void,
28470            value: *mut COREWEBVIEW2_PRINT_COLLATION,
28471        ) -> windows_core::HRESULT {
28472            unsafe {
28473                let this: &Identity =
28474                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
28475                ICoreWebView2PrintSettings2_Impl::Collation(this, core::mem::transmute_copy(&value))
28476                    .into()
28477            }
28478        }
28479        unsafe extern "system" fn SetCollation<
28480            Identity: ICoreWebView2PrintSettings2_Impl,
28481            const OFFSET: isize,
28482        >(
28483            this: *mut core::ffi::c_void,
28484            value: COREWEBVIEW2_PRINT_COLLATION,
28485        ) -> windows_core::HRESULT {
28486            unsafe {
28487                let this: &Identity =
28488                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
28489                ICoreWebView2PrintSettings2_Impl::SetCollation(
28490                    this,
28491                    core::mem::transmute_copy(&value),
28492                )
28493                .into()
28494            }
28495        }
28496        unsafe extern "system" fn ColorMode<
28497            Identity: ICoreWebView2PrintSettings2_Impl,
28498            const OFFSET: isize,
28499        >(
28500            this: *mut core::ffi::c_void,
28501            value: *mut COREWEBVIEW2_PRINT_COLOR_MODE,
28502        ) -> windows_core::HRESULT {
28503            unsafe {
28504                let this: &Identity =
28505                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
28506                ICoreWebView2PrintSettings2_Impl::ColorMode(this, core::mem::transmute_copy(&value))
28507                    .into()
28508            }
28509        }
28510        unsafe extern "system" fn SetColorMode<
28511            Identity: ICoreWebView2PrintSettings2_Impl,
28512            const OFFSET: isize,
28513        >(
28514            this: *mut core::ffi::c_void,
28515            value: COREWEBVIEW2_PRINT_COLOR_MODE,
28516        ) -> windows_core::HRESULT {
28517            unsafe {
28518                let this: &Identity =
28519                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
28520                ICoreWebView2PrintSettings2_Impl::SetColorMode(
28521                    this,
28522                    core::mem::transmute_copy(&value),
28523                )
28524                .into()
28525            }
28526        }
28527        unsafe extern "system" fn Duplex<
28528            Identity: ICoreWebView2PrintSettings2_Impl,
28529            const OFFSET: isize,
28530        >(
28531            this: *mut core::ffi::c_void,
28532            value: *mut COREWEBVIEW2_PRINT_DUPLEX,
28533        ) -> windows_core::HRESULT {
28534            unsafe {
28535                let this: &Identity =
28536                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
28537                ICoreWebView2PrintSettings2_Impl::Duplex(this, core::mem::transmute_copy(&value))
28538                    .into()
28539            }
28540        }
28541        unsafe extern "system" fn SetDuplex<
28542            Identity: ICoreWebView2PrintSettings2_Impl,
28543            const OFFSET: isize,
28544        >(
28545            this: *mut core::ffi::c_void,
28546            value: COREWEBVIEW2_PRINT_DUPLEX,
28547        ) -> windows_core::HRESULT {
28548            unsafe {
28549                let this: &Identity =
28550                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
28551                ICoreWebView2PrintSettings2_Impl::SetDuplex(this, core::mem::transmute_copy(&value))
28552                    .into()
28553            }
28554        }
28555        unsafe extern "system" fn MediaSize<
28556            Identity: ICoreWebView2PrintSettings2_Impl,
28557            const OFFSET: isize,
28558        >(
28559            this: *mut core::ffi::c_void,
28560            value: *mut COREWEBVIEW2_PRINT_MEDIA_SIZE,
28561        ) -> windows_core::HRESULT {
28562            unsafe {
28563                let this: &Identity =
28564                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
28565                ICoreWebView2PrintSettings2_Impl::MediaSize(this, core::mem::transmute_copy(&value))
28566                    .into()
28567            }
28568        }
28569        unsafe extern "system" fn SetMediaSize<
28570            Identity: ICoreWebView2PrintSettings2_Impl,
28571            const OFFSET: isize,
28572        >(
28573            this: *mut core::ffi::c_void,
28574            value: COREWEBVIEW2_PRINT_MEDIA_SIZE,
28575        ) -> windows_core::HRESULT {
28576            unsafe {
28577                let this: &Identity =
28578                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
28579                ICoreWebView2PrintSettings2_Impl::SetMediaSize(
28580                    this,
28581                    core::mem::transmute_copy(&value),
28582                )
28583                .into()
28584            }
28585        }
28586        unsafe extern "system" fn PrinterName<
28587            Identity: ICoreWebView2PrintSettings2_Impl,
28588            const OFFSET: isize,
28589        >(
28590            this: *mut core::ffi::c_void,
28591            value: *mut windows_core::PWSTR,
28592        ) -> windows_core::HRESULT {
28593            unsafe {
28594                let this: &Identity =
28595                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
28596                ICoreWebView2PrintSettings2_Impl::PrinterName(
28597                    this,
28598                    core::mem::transmute_copy(&value),
28599                )
28600                .into()
28601            }
28602        }
28603        unsafe extern "system" fn SetPrinterName<
28604            Identity: ICoreWebView2PrintSettings2_Impl,
28605            const OFFSET: isize,
28606        >(
28607            this: *mut core::ffi::c_void,
28608            value: windows_core::PCWSTR,
28609        ) -> windows_core::HRESULT {
28610            unsafe {
28611                let this: &Identity =
28612                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
28613                ICoreWebView2PrintSettings2_Impl::SetPrinterName(this, core::mem::transmute(&value))
28614                    .into()
28615            }
28616        }
28617        Self {
28618            base__: ICoreWebView2PrintSettings_Vtbl::new::<Identity, OFFSET>(),
28619            PageRanges: PageRanges::<Identity, OFFSET>,
28620            SetPageRanges: SetPageRanges::<Identity, OFFSET>,
28621            PagesPerSide: PagesPerSide::<Identity, OFFSET>,
28622            SetPagesPerSide: SetPagesPerSide::<Identity, OFFSET>,
28623            Copies: Copies::<Identity, OFFSET>,
28624            SetCopies: SetCopies::<Identity, OFFSET>,
28625            Collation: Collation::<Identity, OFFSET>,
28626            SetCollation: SetCollation::<Identity, OFFSET>,
28627            ColorMode: ColorMode::<Identity, OFFSET>,
28628            SetColorMode: SetColorMode::<Identity, OFFSET>,
28629            Duplex: Duplex::<Identity, OFFSET>,
28630            SetDuplex: SetDuplex::<Identity, OFFSET>,
28631            MediaSize: MediaSize::<Identity, OFFSET>,
28632            SetMediaSize: SetMediaSize::<Identity, OFFSET>,
28633            PrinterName: PrinterName::<Identity, OFFSET>,
28634            SetPrinterName: SetPrinterName::<Identity, OFFSET>,
28635        }
28636    }
28637    pub fn matches(iid: &windows_core::GUID) -> bool {
28638        iid == &<ICoreWebView2PrintSettings2 as windows_core::Interface>::IID
28639            || iid == &<ICoreWebView2PrintSettings as windows_core::Interface>::IID
28640    }
28641}
28642impl windows_core::RuntimeName for ICoreWebView2PrintSettings2 {}
28643windows_core::imp::define_interface!(
28644    ICoreWebView2PrintToPdfCompletedHandler,
28645    ICoreWebView2PrintToPdfCompletedHandler_Vtbl,
28646    0xccf1ef04_fd8e_4d5f_b2de_0983e41b8c36
28647);
28648windows_core::imp::interface_hierarchy!(
28649    ICoreWebView2PrintToPdfCompletedHandler,
28650    windows_core::IUnknown
28651);
28652impl ICoreWebView2PrintToPdfCompletedHandler {
28653    pub unsafe fn Invoke(
28654        &self,
28655        errorcode: windows_core::HRESULT,
28656        result: bool,
28657    ) -> windows_core::Result<()> {
28658        unsafe {
28659            (windows_core::Interface::vtable(self).Invoke)(
28660                windows_core::Interface::as_raw(self),
28661                errorcode,
28662                result.into(),
28663            )
28664            .ok()
28665        }
28666    }
28667}
28668#[repr(C)]
28669#[doc(hidden)]
28670pub struct ICoreWebView2PrintToPdfCompletedHandler_Vtbl {
28671    pub base__: windows_core::IUnknown_Vtbl,
28672    pub Invoke: unsafe extern "system" fn(
28673        *mut core::ffi::c_void,
28674        windows_core::HRESULT,
28675        windows_core::BOOL,
28676    ) -> windows_core::HRESULT,
28677}
28678pub trait ICoreWebView2PrintToPdfCompletedHandler_Impl: windows_core::IUnknownImpl {
28679    fn Invoke(
28680        &self,
28681        errorcode: windows_core::HRESULT,
28682        result: windows_core::BOOL,
28683    ) -> windows_core::Result<()>;
28684}
28685impl ICoreWebView2PrintToPdfCompletedHandler_Vtbl {
28686    pub const fn new<
28687        Identity: ICoreWebView2PrintToPdfCompletedHandler_Impl,
28688        const OFFSET: isize,
28689    >() -> Self {
28690        unsafe extern "system" fn Invoke<
28691            Identity: ICoreWebView2PrintToPdfCompletedHandler_Impl,
28692            const OFFSET: isize,
28693        >(
28694            this: *mut core::ffi::c_void,
28695            errorcode: windows_core::HRESULT,
28696            result: windows_core::BOOL,
28697        ) -> windows_core::HRESULT {
28698            unsafe {
28699                let this: &Identity =
28700                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
28701                ICoreWebView2PrintToPdfCompletedHandler_Impl::Invoke(
28702                    this,
28703                    core::mem::transmute_copy(&errorcode),
28704                    core::mem::transmute_copy(&result),
28705                )
28706                .into()
28707            }
28708        }
28709        Self {
28710            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
28711            Invoke: Invoke::<Identity, OFFSET>,
28712        }
28713    }
28714    pub fn matches(iid: &windows_core::GUID) -> bool {
28715        iid == &<ICoreWebView2PrintToPdfCompletedHandler as windows_core::Interface>::IID
28716    }
28717}
28718impl windows_core::RuntimeName for ICoreWebView2PrintToPdfCompletedHandler {}
28719windows_core::imp::define_interface!(
28720    ICoreWebView2PrintToPdfStreamCompletedHandler,
28721    ICoreWebView2PrintToPdfStreamCompletedHandler_Vtbl,
28722    0x4c9f8229_8f93_444f_a711_2c0dfd6359d5
28723);
28724windows_core::imp::interface_hierarchy!(
28725    ICoreWebView2PrintToPdfStreamCompletedHandler,
28726    windows_core::IUnknown
28727);
28728impl ICoreWebView2PrintToPdfStreamCompletedHandler {
28729    pub unsafe fn Invoke<P1>(
28730        &self,
28731        errorcode: windows_core::HRESULT,
28732        result: P1,
28733    ) -> windows_core::Result<()>
28734    where
28735        P1: windows_core::Param<windows::Win32::System::Com::IStream>,
28736    {
28737        unsafe {
28738            (windows_core::Interface::vtable(self).Invoke)(
28739                windows_core::Interface::as_raw(self),
28740                errorcode,
28741                result.param().abi(),
28742            )
28743            .ok()
28744        }
28745    }
28746}
28747#[repr(C)]
28748#[doc(hidden)]
28749pub struct ICoreWebView2PrintToPdfStreamCompletedHandler_Vtbl {
28750    pub base__: windows_core::IUnknown_Vtbl,
28751    pub Invoke: unsafe extern "system" fn(
28752        *mut core::ffi::c_void,
28753        windows_core::HRESULT,
28754        *mut core::ffi::c_void,
28755    ) -> windows_core::HRESULT,
28756}
28757pub trait ICoreWebView2PrintToPdfStreamCompletedHandler_Impl: windows_core::IUnknownImpl {
28758    fn Invoke(
28759        &self,
28760        errorcode: windows_core::HRESULT,
28761        result: windows_core::Ref<'_, windows::Win32::System::Com::IStream>,
28762    ) -> windows_core::Result<()>;
28763}
28764impl ICoreWebView2PrintToPdfStreamCompletedHandler_Vtbl {
28765    pub const fn new<
28766        Identity: ICoreWebView2PrintToPdfStreamCompletedHandler_Impl,
28767        const OFFSET: isize,
28768    >() -> Self {
28769        unsafe extern "system" fn Invoke<
28770            Identity: ICoreWebView2PrintToPdfStreamCompletedHandler_Impl,
28771            const OFFSET: isize,
28772        >(
28773            this: *mut core::ffi::c_void,
28774            errorcode: windows_core::HRESULT,
28775            result: *mut core::ffi::c_void,
28776        ) -> windows_core::HRESULT {
28777            unsafe {
28778                let this: &Identity =
28779                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
28780                ICoreWebView2PrintToPdfStreamCompletedHandler_Impl::Invoke(
28781                    this,
28782                    core::mem::transmute_copy(&errorcode),
28783                    core::mem::transmute_copy(&result),
28784                )
28785                .into()
28786            }
28787        }
28788        Self {
28789            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
28790            Invoke: Invoke::<Identity, OFFSET>,
28791        }
28792    }
28793    pub fn matches(iid: &windows_core::GUID) -> bool {
28794        iid == &<ICoreWebView2PrintToPdfStreamCompletedHandler as windows_core::Interface>::IID
28795    }
28796}
28797impl windows_core::RuntimeName for ICoreWebView2PrintToPdfStreamCompletedHandler {}
28798windows_core::imp::define_interface!(
28799    ICoreWebView2ProcessExtendedInfo,
28800    ICoreWebView2ProcessExtendedInfo_Vtbl,
28801    0xaf4c4c2e_45db_11ee_be56_0242ac120002
28802);
28803windows_core::imp::interface_hierarchy!(ICoreWebView2ProcessExtendedInfo, windows_core::IUnknown);
28804impl ICoreWebView2ProcessExtendedInfo {
28805    pub unsafe fn ProcessInfo(&self) -> windows_core::Result<ICoreWebView2ProcessInfo> {
28806        unsafe {
28807            let mut result__ = core::mem::zeroed();
28808            (windows_core::Interface::vtable(self).ProcessInfo)(
28809                windows_core::Interface::as_raw(self),
28810                &mut result__,
28811            )
28812            .and_then(|| windows_core::Type::from_abi(result__))
28813        }
28814    }
28815    pub unsafe fn AssociatedFrameInfos(
28816        &self,
28817    ) -> windows_core::Result<ICoreWebView2FrameInfoCollection> {
28818        unsafe {
28819            let mut result__ = core::mem::zeroed();
28820            (windows_core::Interface::vtable(self).AssociatedFrameInfos)(
28821                windows_core::Interface::as_raw(self),
28822                &mut result__,
28823            )
28824            .and_then(|| windows_core::Type::from_abi(result__))
28825        }
28826    }
28827}
28828#[repr(C)]
28829#[doc(hidden)]
28830pub struct ICoreWebView2ProcessExtendedInfo_Vtbl {
28831    pub base__: windows_core::IUnknown_Vtbl,
28832    pub ProcessInfo: unsafe extern "system" fn(
28833        *mut core::ffi::c_void,
28834        *mut *mut core::ffi::c_void,
28835    ) -> windows_core::HRESULT,
28836    pub AssociatedFrameInfos: unsafe extern "system" fn(
28837        *mut core::ffi::c_void,
28838        *mut *mut core::ffi::c_void,
28839    ) -> windows_core::HRESULT,
28840}
28841pub trait ICoreWebView2ProcessExtendedInfo_Impl: windows_core::IUnknownImpl {
28842    fn ProcessInfo(&self) -> windows_core::Result<ICoreWebView2ProcessInfo>;
28843    fn AssociatedFrameInfos(&self) -> windows_core::Result<ICoreWebView2FrameInfoCollection>;
28844}
28845impl ICoreWebView2ProcessExtendedInfo_Vtbl {
28846    pub const fn new<Identity: ICoreWebView2ProcessExtendedInfo_Impl, const OFFSET: isize>() -> Self
28847    {
28848        unsafe extern "system" fn ProcessInfo<
28849            Identity: ICoreWebView2ProcessExtendedInfo_Impl,
28850            const OFFSET: isize,
28851        >(
28852            this: *mut core::ffi::c_void,
28853            processinfo: *mut *mut core::ffi::c_void,
28854        ) -> windows_core::HRESULT {
28855            unsafe {
28856                let this: &Identity =
28857                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
28858                match ICoreWebView2ProcessExtendedInfo_Impl::ProcessInfo(this) {
28859                    Ok(ok__) => {
28860                        processinfo.write(core::mem::transmute(ok__));
28861                        windows_core::HRESULT(0)
28862                    }
28863                    Err(err) => err.into(),
28864                }
28865            }
28866        }
28867        unsafe extern "system" fn AssociatedFrameInfos<
28868            Identity: ICoreWebView2ProcessExtendedInfo_Impl,
28869            const OFFSET: isize,
28870        >(
28871            this: *mut core::ffi::c_void,
28872            frames: *mut *mut core::ffi::c_void,
28873        ) -> windows_core::HRESULT {
28874            unsafe {
28875                let this: &Identity =
28876                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
28877                match ICoreWebView2ProcessExtendedInfo_Impl::AssociatedFrameInfos(this) {
28878                    Ok(ok__) => {
28879                        frames.write(core::mem::transmute(ok__));
28880                        windows_core::HRESULT(0)
28881                    }
28882                    Err(err) => err.into(),
28883                }
28884            }
28885        }
28886        Self {
28887            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
28888            ProcessInfo: ProcessInfo::<Identity, OFFSET>,
28889            AssociatedFrameInfos: AssociatedFrameInfos::<Identity, OFFSET>,
28890        }
28891    }
28892    pub fn matches(iid: &windows_core::GUID) -> bool {
28893        iid == &<ICoreWebView2ProcessExtendedInfo as windows_core::Interface>::IID
28894    }
28895}
28896impl windows_core::RuntimeName for ICoreWebView2ProcessExtendedInfo {}
28897windows_core::imp::define_interface!(
28898    ICoreWebView2ProcessExtendedInfoCollection,
28899    ICoreWebView2ProcessExtendedInfoCollection_Vtbl,
28900    0x32efa696_407a_11ee_be56_0242ac120002
28901);
28902windows_core::imp::interface_hierarchy!(
28903    ICoreWebView2ProcessExtendedInfoCollection,
28904    windows_core::IUnknown
28905);
28906impl ICoreWebView2ProcessExtendedInfoCollection {
28907    pub unsafe fn Count(&self, value: *mut u32) -> windows_core::Result<()> {
28908        unsafe {
28909            (windows_core::Interface::vtable(self).Count)(
28910                windows_core::Interface::as_raw(self),
28911                value as _,
28912            )
28913            .ok()
28914        }
28915    }
28916    pub unsafe fn GetValueAtIndex(
28917        &self,
28918        index: u32,
28919    ) -> windows_core::Result<ICoreWebView2ProcessExtendedInfo> {
28920        unsafe {
28921            let mut result__ = core::mem::zeroed();
28922            (windows_core::Interface::vtable(self).GetValueAtIndex)(
28923                windows_core::Interface::as_raw(self),
28924                index,
28925                &mut result__,
28926            )
28927            .and_then(|| windows_core::Type::from_abi(result__))
28928        }
28929    }
28930}
28931#[repr(C)]
28932#[doc(hidden)]
28933pub struct ICoreWebView2ProcessExtendedInfoCollection_Vtbl {
28934    pub base__: windows_core::IUnknown_Vtbl,
28935    pub Count: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
28936    pub GetValueAtIndex: unsafe extern "system" fn(
28937        *mut core::ffi::c_void,
28938        u32,
28939        *mut *mut core::ffi::c_void,
28940    ) -> windows_core::HRESULT,
28941}
28942pub trait ICoreWebView2ProcessExtendedInfoCollection_Impl: windows_core::IUnknownImpl {
28943    fn Count(&self, value: *mut u32) -> windows_core::Result<()>;
28944    fn GetValueAtIndex(&self, index: u32)
28945        -> windows_core::Result<ICoreWebView2ProcessExtendedInfo>;
28946}
28947impl ICoreWebView2ProcessExtendedInfoCollection_Vtbl {
28948    pub const fn new<
28949        Identity: ICoreWebView2ProcessExtendedInfoCollection_Impl,
28950        const OFFSET: isize,
28951    >() -> Self {
28952        unsafe extern "system" fn Count<
28953            Identity: ICoreWebView2ProcessExtendedInfoCollection_Impl,
28954            const OFFSET: isize,
28955        >(
28956            this: *mut core::ffi::c_void,
28957            value: *mut u32,
28958        ) -> windows_core::HRESULT {
28959            unsafe {
28960                let this: &Identity =
28961                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
28962                ICoreWebView2ProcessExtendedInfoCollection_Impl::Count(
28963                    this,
28964                    core::mem::transmute_copy(&value),
28965                )
28966                .into()
28967            }
28968        }
28969        unsafe extern "system" fn GetValueAtIndex<
28970            Identity: ICoreWebView2ProcessExtendedInfoCollection_Impl,
28971            const OFFSET: isize,
28972        >(
28973            this: *mut core::ffi::c_void,
28974            index: u32,
28975            value: *mut *mut core::ffi::c_void,
28976        ) -> windows_core::HRESULT {
28977            unsafe {
28978                let this: &Identity =
28979                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
28980                match ICoreWebView2ProcessExtendedInfoCollection_Impl::GetValueAtIndex(
28981                    this,
28982                    core::mem::transmute_copy(&index),
28983                ) {
28984                    Ok(ok__) => {
28985                        value.write(core::mem::transmute(ok__));
28986                        windows_core::HRESULT(0)
28987                    }
28988                    Err(err) => err.into(),
28989                }
28990            }
28991        }
28992        Self {
28993            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
28994            Count: Count::<Identity, OFFSET>,
28995            GetValueAtIndex: GetValueAtIndex::<Identity, OFFSET>,
28996        }
28997    }
28998    pub fn matches(iid: &windows_core::GUID) -> bool {
28999        iid == &<ICoreWebView2ProcessExtendedInfoCollection as windows_core::Interface>::IID
29000    }
29001}
29002impl windows_core::RuntimeName for ICoreWebView2ProcessExtendedInfoCollection {}
29003windows_core::imp::define_interface!(
29004    ICoreWebView2ProcessFailedEventArgs,
29005    ICoreWebView2ProcessFailedEventArgs_Vtbl,
29006    0x8155a9a4_1474_4a86_8cae_151b0fa6b8ca
29007);
29008windows_core::imp::interface_hierarchy!(
29009    ICoreWebView2ProcessFailedEventArgs,
29010    windows_core::IUnknown
29011);
29012impl ICoreWebView2ProcessFailedEventArgs {
29013    pub unsafe fn ProcessFailedKind(
29014        &self,
29015        value: *mut COREWEBVIEW2_PROCESS_FAILED_KIND,
29016    ) -> windows_core::Result<()> {
29017        unsafe {
29018            (windows_core::Interface::vtable(self).ProcessFailedKind)(
29019                windows_core::Interface::as_raw(self),
29020                value as _,
29021            )
29022            .ok()
29023        }
29024    }
29025}
29026#[repr(C)]
29027#[doc(hidden)]
29028pub struct ICoreWebView2ProcessFailedEventArgs_Vtbl {
29029    pub base__: windows_core::IUnknown_Vtbl,
29030    pub ProcessFailedKind: unsafe extern "system" fn(
29031        *mut core::ffi::c_void,
29032        *mut COREWEBVIEW2_PROCESS_FAILED_KIND,
29033    ) -> windows_core::HRESULT,
29034}
29035pub trait ICoreWebView2ProcessFailedEventArgs_Impl: windows_core::IUnknownImpl {
29036    fn ProcessFailedKind(
29037        &self,
29038        value: *mut COREWEBVIEW2_PROCESS_FAILED_KIND,
29039    ) -> windows_core::Result<()>;
29040}
29041impl ICoreWebView2ProcessFailedEventArgs_Vtbl {
29042    pub const fn new<Identity: ICoreWebView2ProcessFailedEventArgs_Impl, const OFFSET: isize>(
29043    ) -> Self {
29044        unsafe extern "system" fn ProcessFailedKind<
29045            Identity: ICoreWebView2ProcessFailedEventArgs_Impl,
29046            const OFFSET: isize,
29047        >(
29048            this: *mut core::ffi::c_void,
29049            value: *mut COREWEBVIEW2_PROCESS_FAILED_KIND,
29050        ) -> windows_core::HRESULT {
29051            unsafe {
29052                let this: &Identity =
29053                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
29054                ICoreWebView2ProcessFailedEventArgs_Impl::ProcessFailedKind(
29055                    this,
29056                    core::mem::transmute_copy(&value),
29057                )
29058                .into()
29059            }
29060        }
29061        Self {
29062            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
29063            ProcessFailedKind: ProcessFailedKind::<Identity, OFFSET>,
29064        }
29065    }
29066    pub fn matches(iid: &windows_core::GUID) -> bool {
29067        iid == &<ICoreWebView2ProcessFailedEventArgs as windows_core::Interface>::IID
29068    }
29069}
29070impl windows_core::RuntimeName for ICoreWebView2ProcessFailedEventArgs {}
29071windows_core::imp::define_interface!(
29072    ICoreWebView2ProcessFailedEventArgs2,
29073    ICoreWebView2ProcessFailedEventArgs2_Vtbl,
29074    0x4dab9422_46fa_4c3e_a5d2_41d2071d3680
29075);
29076impl core::ops::Deref for ICoreWebView2ProcessFailedEventArgs2 {
29077    type Target = ICoreWebView2ProcessFailedEventArgs;
29078    fn deref(&self) -> &Self::Target {
29079        unsafe { core::mem::transmute(self) }
29080    }
29081}
29082windows_core::imp::interface_hierarchy!(
29083    ICoreWebView2ProcessFailedEventArgs2,
29084    windows_core::IUnknown,
29085    ICoreWebView2ProcessFailedEventArgs
29086);
29087impl ICoreWebView2ProcessFailedEventArgs2 {
29088    pub unsafe fn Reason(
29089        &self,
29090        reason: *mut COREWEBVIEW2_PROCESS_FAILED_REASON,
29091    ) -> windows_core::Result<()> {
29092        unsafe {
29093            (windows_core::Interface::vtable(self).Reason)(
29094                windows_core::Interface::as_raw(self),
29095                reason as _,
29096            )
29097            .ok()
29098        }
29099    }
29100    pub unsafe fn ExitCode(&self, exitcode: *mut i32) -> windows_core::Result<()> {
29101        unsafe {
29102            (windows_core::Interface::vtable(self).ExitCode)(
29103                windows_core::Interface::as_raw(self),
29104                exitcode as _,
29105            )
29106            .ok()
29107        }
29108    }
29109    pub unsafe fn ProcessDescription(
29110        &self,
29111        processdescription: *mut windows_core::PWSTR,
29112    ) -> windows_core::Result<()> {
29113        unsafe {
29114            (windows_core::Interface::vtable(self).ProcessDescription)(
29115                windows_core::Interface::as_raw(self),
29116                processdescription as _,
29117            )
29118            .ok()
29119        }
29120    }
29121    pub unsafe fn FrameInfosForFailedProcess(
29122        &self,
29123    ) -> windows_core::Result<ICoreWebView2FrameInfoCollection> {
29124        unsafe {
29125            let mut result__ = core::mem::zeroed();
29126            (windows_core::Interface::vtable(self).FrameInfosForFailedProcess)(
29127                windows_core::Interface::as_raw(self),
29128                &mut result__,
29129            )
29130            .and_then(|| windows_core::Type::from_abi(result__))
29131        }
29132    }
29133}
29134#[repr(C)]
29135#[doc(hidden)]
29136pub struct ICoreWebView2ProcessFailedEventArgs2_Vtbl {
29137    pub base__: ICoreWebView2ProcessFailedEventArgs_Vtbl,
29138    pub Reason: unsafe extern "system" fn(
29139        *mut core::ffi::c_void,
29140        *mut COREWEBVIEW2_PROCESS_FAILED_REASON,
29141    ) -> windows_core::HRESULT,
29142    pub ExitCode:
29143        unsafe extern "system" fn(*mut core::ffi::c_void, *mut i32) -> windows_core::HRESULT,
29144    pub ProcessDescription: unsafe extern "system" fn(
29145        *mut core::ffi::c_void,
29146        *mut windows_core::PWSTR,
29147    ) -> windows_core::HRESULT,
29148    pub FrameInfosForFailedProcess: unsafe extern "system" fn(
29149        *mut core::ffi::c_void,
29150        *mut *mut core::ffi::c_void,
29151    ) -> windows_core::HRESULT,
29152}
29153pub trait ICoreWebView2ProcessFailedEventArgs2_Impl:
29154    ICoreWebView2ProcessFailedEventArgs_Impl
29155{
29156    fn Reason(&self, reason: *mut COREWEBVIEW2_PROCESS_FAILED_REASON) -> windows_core::Result<()>;
29157    fn ExitCode(&self, exitcode: *mut i32) -> windows_core::Result<()>;
29158    fn ProcessDescription(
29159        &self,
29160        processdescription: *mut windows_core::PWSTR,
29161    ) -> windows_core::Result<()>;
29162    fn FrameInfosForFailedProcess(&self) -> windows_core::Result<ICoreWebView2FrameInfoCollection>;
29163}
29164impl ICoreWebView2ProcessFailedEventArgs2_Vtbl {
29165    pub const fn new<Identity: ICoreWebView2ProcessFailedEventArgs2_Impl, const OFFSET: isize>(
29166    ) -> Self {
29167        unsafe extern "system" fn Reason<
29168            Identity: ICoreWebView2ProcessFailedEventArgs2_Impl,
29169            const OFFSET: isize,
29170        >(
29171            this: *mut core::ffi::c_void,
29172            reason: *mut COREWEBVIEW2_PROCESS_FAILED_REASON,
29173        ) -> windows_core::HRESULT {
29174            unsafe {
29175                let this: &Identity =
29176                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
29177                ICoreWebView2ProcessFailedEventArgs2_Impl::Reason(
29178                    this,
29179                    core::mem::transmute_copy(&reason),
29180                )
29181                .into()
29182            }
29183        }
29184        unsafe extern "system" fn ExitCode<
29185            Identity: ICoreWebView2ProcessFailedEventArgs2_Impl,
29186            const OFFSET: isize,
29187        >(
29188            this: *mut core::ffi::c_void,
29189            exitcode: *mut i32,
29190        ) -> windows_core::HRESULT {
29191            unsafe {
29192                let this: &Identity =
29193                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
29194                ICoreWebView2ProcessFailedEventArgs2_Impl::ExitCode(
29195                    this,
29196                    core::mem::transmute_copy(&exitcode),
29197                )
29198                .into()
29199            }
29200        }
29201        unsafe extern "system" fn ProcessDescription<
29202            Identity: ICoreWebView2ProcessFailedEventArgs2_Impl,
29203            const OFFSET: isize,
29204        >(
29205            this: *mut core::ffi::c_void,
29206            processdescription: *mut windows_core::PWSTR,
29207        ) -> windows_core::HRESULT {
29208            unsafe {
29209                let this: &Identity =
29210                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
29211                ICoreWebView2ProcessFailedEventArgs2_Impl::ProcessDescription(
29212                    this,
29213                    core::mem::transmute_copy(&processdescription),
29214                )
29215                .into()
29216            }
29217        }
29218        unsafe extern "system" fn FrameInfosForFailedProcess<
29219            Identity: ICoreWebView2ProcessFailedEventArgs2_Impl,
29220            const OFFSET: isize,
29221        >(
29222            this: *mut core::ffi::c_void,
29223            frames: *mut *mut core::ffi::c_void,
29224        ) -> windows_core::HRESULT {
29225            unsafe {
29226                let this: &Identity =
29227                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
29228                match ICoreWebView2ProcessFailedEventArgs2_Impl::FrameInfosForFailedProcess(this) {
29229                    Ok(ok__) => {
29230                        frames.write(core::mem::transmute(ok__));
29231                        windows_core::HRESULT(0)
29232                    }
29233                    Err(err) => err.into(),
29234                }
29235            }
29236        }
29237        Self {
29238            base__: ICoreWebView2ProcessFailedEventArgs_Vtbl::new::<Identity, OFFSET>(),
29239            Reason: Reason::<Identity, OFFSET>,
29240            ExitCode: ExitCode::<Identity, OFFSET>,
29241            ProcessDescription: ProcessDescription::<Identity, OFFSET>,
29242            FrameInfosForFailedProcess: FrameInfosForFailedProcess::<Identity, OFFSET>,
29243        }
29244    }
29245    pub fn matches(iid: &windows_core::GUID) -> bool {
29246        iid == &<ICoreWebView2ProcessFailedEventArgs2 as windows_core::Interface>::IID
29247            || iid == &<ICoreWebView2ProcessFailedEventArgs as windows_core::Interface>::IID
29248    }
29249}
29250impl windows_core::RuntimeName for ICoreWebView2ProcessFailedEventArgs2 {}
29251windows_core::imp::define_interface!(
29252    ICoreWebView2ProcessFailedEventArgs3,
29253    ICoreWebView2ProcessFailedEventArgs3_Vtbl,
29254    0xab667428_094d_5fd1_b480_8b4c0fdbdf2f
29255);
29256impl core::ops::Deref for ICoreWebView2ProcessFailedEventArgs3 {
29257    type Target = ICoreWebView2ProcessFailedEventArgs2;
29258    fn deref(&self) -> &Self::Target {
29259        unsafe { core::mem::transmute(self) }
29260    }
29261}
29262windows_core::imp::interface_hierarchy!(
29263    ICoreWebView2ProcessFailedEventArgs3,
29264    windows_core::IUnknown,
29265    ICoreWebView2ProcessFailedEventArgs,
29266    ICoreWebView2ProcessFailedEventArgs2
29267);
29268impl ICoreWebView2ProcessFailedEventArgs3 {
29269    pub unsafe fn FailureSourceModulePath(
29270        &self,
29271        value: *mut windows_core::PWSTR,
29272    ) -> windows_core::Result<()> {
29273        unsafe {
29274            (windows_core::Interface::vtable(self).FailureSourceModulePath)(
29275                windows_core::Interface::as_raw(self),
29276                value as _,
29277            )
29278            .ok()
29279        }
29280    }
29281}
29282#[repr(C)]
29283#[doc(hidden)]
29284pub struct ICoreWebView2ProcessFailedEventArgs3_Vtbl {
29285    pub base__: ICoreWebView2ProcessFailedEventArgs2_Vtbl,
29286    pub FailureSourceModulePath: unsafe extern "system" fn(
29287        *mut core::ffi::c_void,
29288        *mut windows_core::PWSTR,
29289    ) -> windows_core::HRESULT,
29290}
29291pub trait ICoreWebView2ProcessFailedEventArgs3_Impl:
29292    ICoreWebView2ProcessFailedEventArgs2_Impl
29293{
29294    fn FailureSourceModulePath(&self, value: *mut windows_core::PWSTR) -> windows_core::Result<()>;
29295}
29296impl ICoreWebView2ProcessFailedEventArgs3_Vtbl {
29297    pub const fn new<Identity: ICoreWebView2ProcessFailedEventArgs3_Impl, const OFFSET: isize>(
29298    ) -> Self {
29299        unsafe extern "system" fn FailureSourceModulePath<
29300            Identity: ICoreWebView2ProcessFailedEventArgs3_Impl,
29301            const OFFSET: isize,
29302        >(
29303            this: *mut core::ffi::c_void,
29304            value: *mut windows_core::PWSTR,
29305        ) -> windows_core::HRESULT {
29306            unsafe {
29307                let this: &Identity =
29308                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
29309                ICoreWebView2ProcessFailedEventArgs3_Impl::FailureSourceModulePath(
29310                    this,
29311                    core::mem::transmute_copy(&value),
29312                )
29313                .into()
29314            }
29315        }
29316        Self {
29317            base__: ICoreWebView2ProcessFailedEventArgs2_Vtbl::new::<Identity, OFFSET>(),
29318            FailureSourceModulePath: FailureSourceModulePath::<Identity, OFFSET>,
29319        }
29320    }
29321    pub fn matches(iid: &windows_core::GUID) -> bool {
29322        iid == &<ICoreWebView2ProcessFailedEventArgs3 as windows_core::Interface>::IID
29323            || iid == &<ICoreWebView2ProcessFailedEventArgs as windows_core::Interface>::IID
29324            || iid == &<ICoreWebView2ProcessFailedEventArgs2 as windows_core::Interface>::IID
29325    }
29326}
29327impl windows_core::RuntimeName for ICoreWebView2ProcessFailedEventArgs3 {}
29328windows_core::imp::define_interface!(
29329    ICoreWebView2ProcessFailedEventHandler,
29330    ICoreWebView2ProcessFailedEventHandler_Vtbl,
29331    0x79e0aea4_990b_42d9_aa1d_0fcc2e5bc7f1
29332);
29333windows_core::imp::interface_hierarchy!(
29334    ICoreWebView2ProcessFailedEventHandler,
29335    windows_core::IUnknown
29336);
29337impl ICoreWebView2ProcessFailedEventHandler {
29338    pub unsafe fn Invoke<P0, P1>(&self, sender: P0, args: P1) -> windows_core::Result<()>
29339    where
29340        P0: windows_core::Param<ICoreWebView2>,
29341        P1: windows_core::Param<ICoreWebView2ProcessFailedEventArgs>,
29342    {
29343        unsafe {
29344            (windows_core::Interface::vtable(self).Invoke)(
29345                windows_core::Interface::as_raw(self),
29346                sender.param().abi(),
29347                args.param().abi(),
29348            )
29349            .ok()
29350        }
29351    }
29352}
29353#[repr(C)]
29354#[doc(hidden)]
29355pub struct ICoreWebView2ProcessFailedEventHandler_Vtbl {
29356    pub base__: windows_core::IUnknown_Vtbl,
29357    pub Invoke: unsafe extern "system" fn(
29358        *mut core::ffi::c_void,
29359        *mut core::ffi::c_void,
29360        *mut core::ffi::c_void,
29361    ) -> windows_core::HRESULT,
29362}
29363pub trait ICoreWebView2ProcessFailedEventHandler_Impl: windows_core::IUnknownImpl {
29364    fn Invoke(
29365        &self,
29366        sender: windows_core::Ref<'_, ICoreWebView2>,
29367        args: windows_core::Ref<'_, ICoreWebView2ProcessFailedEventArgs>,
29368    ) -> windows_core::Result<()>;
29369}
29370impl ICoreWebView2ProcessFailedEventHandler_Vtbl {
29371    pub const fn new<Identity: ICoreWebView2ProcessFailedEventHandler_Impl, const OFFSET: isize>(
29372    ) -> Self {
29373        unsafe extern "system" fn Invoke<
29374            Identity: ICoreWebView2ProcessFailedEventHandler_Impl,
29375            const OFFSET: isize,
29376        >(
29377            this: *mut core::ffi::c_void,
29378            sender: *mut core::ffi::c_void,
29379            args: *mut core::ffi::c_void,
29380        ) -> windows_core::HRESULT {
29381            unsafe {
29382                let this: &Identity =
29383                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
29384                ICoreWebView2ProcessFailedEventHandler_Impl::Invoke(
29385                    this,
29386                    core::mem::transmute_copy(&sender),
29387                    core::mem::transmute_copy(&args),
29388                )
29389                .into()
29390            }
29391        }
29392        Self {
29393            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
29394            Invoke: Invoke::<Identity, OFFSET>,
29395        }
29396    }
29397    pub fn matches(iid: &windows_core::GUID) -> bool {
29398        iid == &<ICoreWebView2ProcessFailedEventHandler as windows_core::Interface>::IID
29399    }
29400}
29401impl windows_core::RuntimeName for ICoreWebView2ProcessFailedEventHandler {}
29402windows_core::imp::define_interface!(
29403    ICoreWebView2ProcessInfo,
29404    ICoreWebView2ProcessInfo_Vtbl,
29405    0x84fa7612_3f3d_4fbf_889d_fad000492d72
29406);
29407windows_core::imp::interface_hierarchy!(ICoreWebView2ProcessInfo, windows_core::IUnknown);
29408impl ICoreWebView2ProcessInfo {
29409    pub unsafe fn ProcessId(&self, value: *mut i32) -> windows_core::Result<()> {
29410        unsafe {
29411            (windows_core::Interface::vtable(self).ProcessId)(
29412                windows_core::Interface::as_raw(self),
29413                value as _,
29414            )
29415            .ok()
29416        }
29417    }
29418    pub unsafe fn Kind(&self, kind: *mut COREWEBVIEW2_PROCESS_KIND) -> windows_core::Result<()> {
29419        unsafe {
29420            (windows_core::Interface::vtable(self).Kind)(
29421                windows_core::Interface::as_raw(self),
29422                kind as _,
29423            )
29424            .ok()
29425        }
29426    }
29427}
29428#[repr(C)]
29429#[doc(hidden)]
29430pub struct ICoreWebView2ProcessInfo_Vtbl {
29431    pub base__: windows_core::IUnknown_Vtbl,
29432    pub ProcessId:
29433        unsafe extern "system" fn(*mut core::ffi::c_void, *mut i32) -> windows_core::HRESULT,
29434    pub Kind: unsafe extern "system" fn(
29435        *mut core::ffi::c_void,
29436        *mut COREWEBVIEW2_PROCESS_KIND,
29437    ) -> windows_core::HRESULT,
29438}
29439pub trait ICoreWebView2ProcessInfo_Impl: windows_core::IUnknownImpl {
29440    fn ProcessId(&self, value: *mut i32) -> windows_core::Result<()>;
29441    fn Kind(&self, kind: *mut COREWEBVIEW2_PROCESS_KIND) -> windows_core::Result<()>;
29442}
29443impl ICoreWebView2ProcessInfo_Vtbl {
29444    pub const fn new<Identity: ICoreWebView2ProcessInfo_Impl, const OFFSET: isize>() -> Self {
29445        unsafe extern "system" fn ProcessId<
29446            Identity: ICoreWebView2ProcessInfo_Impl,
29447            const OFFSET: isize,
29448        >(
29449            this: *mut core::ffi::c_void,
29450            value: *mut i32,
29451        ) -> windows_core::HRESULT {
29452            unsafe {
29453                let this: &Identity =
29454                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
29455                ICoreWebView2ProcessInfo_Impl::ProcessId(this, core::mem::transmute_copy(&value))
29456                    .into()
29457            }
29458        }
29459        unsafe extern "system" fn Kind<
29460            Identity: ICoreWebView2ProcessInfo_Impl,
29461            const OFFSET: isize,
29462        >(
29463            this: *mut core::ffi::c_void,
29464            kind: *mut COREWEBVIEW2_PROCESS_KIND,
29465        ) -> windows_core::HRESULT {
29466            unsafe {
29467                let this: &Identity =
29468                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
29469                ICoreWebView2ProcessInfo_Impl::Kind(this, core::mem::transmute_copy(&kind)).into()
29470            }
29471        }
29472        Self {
29473            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
29474            ProcessId: ProcessId::<Identity, OFFSET>,
29475            Kind: Kind::<Identity, OFFSET>,
29476        }
29477    }
29478    pub fn matches(iid: &windows_core::GUID) -> bool {
29479        iid == &<ICoreWebView2ProcessInfo as windows_core::Interface>::IID
29480    }
29481}
29482impl windows_core::RuntimeName for ICoreWebView2ProcessInfo {}
29483windows_core::imp::define_interface!(
29484    ICoreWebView2ProcessInfoCollection,
29485    ICoreWebView2ProcessInfoCollection_Vtbl,
29486    0x402b99cd_a0cc_4fa5_b7a5_51d86a1d2339
29487);
29488windows_core::imp::interface_hierarchy!(ICoreWebView2ProcessInfoCollection, windows_core::IUnknown);
29489impl ICoreWebView2ProcessInfoCollection {
29490    pub unsafe fn Count(&self, value: *mut u32) -> windows_core::Result<()> {
29491        unsafe {
29492            (windows_core::Interface::vtable(self).Count)(
29493                windows_core::Interface::as_raw(self),
29494                value as _,
29495            )
29496            .ok()
29497        }
29498    }
29499    pub unsafe fn GetValueAtIndex(
29500        &self,
29501        index: u32,
29502    ) -> windows_core::Result<ICoreWebView2ProcessInfo> {
29503        unsafe {
29504            let mut result__ = core::mem::zeroed();
29505            (windows_core::Interface::vtable(self).GetValueAtIndex)(
29506                windows_core::Interface::as_raw(self),
29507                index,
29508                &mut result__,
29509            )
29510            .and_then(|| windows_core::Type::from_abi(result__))
29511        }
29512    }
29513}
29514#[repr(C)]
29515#[doc(hidden)]
29516pub struct ICoreWebView2ProcessInfoCollection_Vtbl {
29517    pub base__: windows_core::IUnknown_Vtbl,
29518    pub Count: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
29519    pub GetValueAtIndex: unsafe extern "system" fn(
29520        *mut core::ffi::c_void,
29521        u32,
29522        *mut *mut core::ffi::c_void,
29523    ) -> windows_core::HRESULT,
29524}
29525pub trait ICoreWebView2ProcessInfoCollection_Impl: windows_core::IUnknownImpl {
29526    fn Count(&self, value: *mut u32) -> windows_core::Result<()>;
29527    fn GetValueAtIndex(&self, index: u32) -> windows_core::Result<ICoreWebView2ProcessInfo>;
29528}
29529impl ICoreWebView2ProcessInfoCollection_Vtbl {
29530    pub const fn new<Identity: ICoreWebView2ProcessInfoCollection_Impl, const OFFSET: isize>(
29531    ) -> Self {
29532        unsafe extern "system" fn Count<
29533            Identity: ICoreWebView2ProcessInfoCollection_Impl,
29534            const OFFSET: isize,
29535        >(
29536            this: *mut core::ffi::c_void,
29537            value: *mut u32,
29538        ) -> windows_core::HRESULT {
29539            unsafe {
29540                let this: &Identity =
29541                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
29542                ICoreWebView2ProcessInfoCollection_Impl::Count(
29543                    this,
29544                    core::mem::transmute_copy(&value),
29545                )
29546                .into()
29547            }
29548        }
29549        unsafe extern "system" fn GetValueAtIndex<
29550            Identity: ICoreWebView2ProcessInfoCollection_Impl,
29551            const OFFSET: isize,
29552        >(
29553            this: *mut core::ffi::c_void,
29554            index: u32,
29555            value: *mut *mut core::ffi::c_void,
29556        ) -> windows_core::HRESULT {
29557            unsafe {
29558                let this: &Identity =
29559                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
29560                match ICoreWebView2ProcessInfoCollection_Impl::GetValueAtIndex(
29561                    this,
29562                    core::mem::transmute_copy(&index),
29563                ) {
29564                    Ok(ok__) => {
29565                        value.write(core::mem::transmute(ok__));
29566                        windows_core::HRESULT(0)
29567                    }
29568                    Err(err) => err.into(),
29569                }
29570            }
29571        }
29572        Self {
29573            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
29574            Count: Count::<Identity, OFFSET>,
29575            GetValueAtIndex: GetValueAtIndex::<Identity, OFFSET>,
29576        }
29577    }
29578    pub fn matches(iid: &windows_core::GUID) -> bool {
29579        iid == &<ICoreWebView2ProcessInfoCollection as windows_core::Interface>::IID
29580    }
29581}
29582impl windows_core::RuntimeName for ICoreWebView2ProcessInfoCollection {}
29583windows_core::imp::define_interface!(
29584    ICoreWebView2ProcessInfosChangedEventHandler,
29585    ICoreWebView2ProcessInfosChangedEventHandler_Vtbl,
29586    0xf4af0c39_44b9_40e9_8b11_0484cfb9e0a1
29587);
29588windows_core::imp::interface_hierarchy!(
29589    ICoreWebView2ProcessInfosChangedEventHandler,
29590    windows_core::IUnknown
29591);
29592impl ICoreWebView2ProcessInfosChangedEventHandler {
29593    pub unsafe fn Invoke<P0, P1>(&self, sender: P0, args: P1) -> windows_core::Result<()>
29594    where
29595        P0: windows_core::Param<ICoreWebView2Environment>,
29596        P1: windows_core::Param<windows_core::IUnknown>,
29597    {
29598        unsafe {
29599            (windows_core::Interface::vtable(self).Invoke)(
29600                windows_core::Interface::as_raw(self),
29601                sender.param().abi(),
29602                args.param().abi(),
29603            )
29604            .ok()
29605        }
29606    }
29607}
29608#[repr(C)]
29609#[doc(hidden)]
29610pub struct ICoreWebView2ProcessInfosChangedEventHandler_Vtbl {
29611    pub base__: windows_core::IUnknown_Vtbl,
29612    pub Invoke: unsafe extern "system" fn(
29613        *mut core::ffi::c_void,
29614        *mut core::ffi::c_void,
29615        *mut core::ffi::c_void,
29616    ) -> windows_core::HRESULT,
29617}
29618pub trait ICoreWebView2ProcessInfosChangedEventHandler_Impl: windows_core::IUnknownImpl {
29619    fn Invoke(
29620        &self,
29621        sender: windows_core::Ref<'_, ICoreWebView2Environment>,
29622        args: windows_core::Ref<'_, windows_core::IUnknown>,
29623    ) -> windows_core::Result<()>;
29624}
29625impl ICoreWebView2ProcessInfosChangedEventHandler_Vtbl {
29626    pub const fn new<
29627        Identity: ICoreWebView2ProcessInfosChangedEventHandler_Impl,
29628        const OFFSET: isize,
29629    >() -> Self {
29630        unsafe extern "system" fn Invoke<
29631            Identity: ICoreWebView2ProcessInfosChangedEventHandler_Impl,
29632            const OFFSET: isize,
29633        >(
29634            this: *mut core::ffi::c_void,
29635            sender: *mut core::ffi::c_void,
29636            args: *mut core::ffi::c_void,
29637        ) -> windows_core::HRESULT {
29638            unsafe {
29639                let this: &Identity =
29640                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
29641                ICoreWebView2ProcessInfosChangedEventHandler_Impl::Invoke(
29642                    this,
29643                    core::mem::transmute_copy(&sender),
29644                    core::mem::transmute_copy(&args),
29645                )
29646                .into()
29647            }
29648        }
29649        Self {
29650            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
29651            Invoke: Invoke::<Identity, OFFSET>,
29652        }
29653    }
29654    pub fn matches(iid: &windows_core::GUID) -> bool {
29655        iid == &<ICoreWebView2ProcessInfosChangedEventHandler as windows_core::Interface>::IID
29656    }
29657}
29658impl windows_core::RuntimeName for ICoreWebView2ProcessInfosChangedEventHandler {}
29659windows_core::imp::define_interface!(
29660    ICoreWebView2Profile,
29661    ICoreWebView2Profile_Vtbl,
29662    0x79110ad3_cd5d_4373_8bc3_c60658f17a5f
29663);
29664windows_core::imp::interface_hierarchy!(ICoreWebView2Profile, windows_core::IUnknown);
29665impl ICoreWebView2Profile {
29666    pub unsafe fn ProfileName(&self, value: *mut windows_core::PWSTR) -> windows_core::Result<()> {
29667        unsafe {
29668            (windows_core::Interface::vtable(self).ProfileName)(
29669                windows_core::Interface::as_raw(self),
29670                value as _,
29671            )
29672            .ok()
29673        }
29674    }
29675    pub unsafe fn IsInPrivateModeEnabled(
29676        &self,
29677        value: *mut windows_core::BOOL,
29678    ) -> windows_core::Result<()> {
29679        unsafe {
29680            (windows_core::Interface::vtable(self).IsInPrivateModeEnabled)(
29681                windows_core::Interface::as_raw(self),
29682                value as _,
29683            )
29684            .ok()
29685        }
29686    }
29687    pub unsafe fn ProfilePath(&self, value: *mut windows_core::PWSTR) -> windows_core::Result<()> {
29688        unsafe {
29689            (windows_core::Interface::vtable(self).ProfilePath)(
29690                windows_core::Interface::as_raw(self),
29691                value as _,
29692            )
29693            .ok()
29694        }
29695    }
29696    pub unsafe fn DefaultDownloadFolderPath(
29697        &self,
29698        value: *mut windows_core::PWSTR,
29699    ) -> windows_core::Result<()> {
29700        unsafe {
29701            (windows_core::Interface::vtable(self).DefaultDownloadFolderPath)(
29702                windows_core::Interface::as_raw(self),
29703                value as _,
29704            )
29705            .ok()
29706        }
29707    }
29708    pub unsafe fn SetDefaultDownloadFolderPath<P0>(&self, value: P0) -> windows_core::Result<()>
29709    where
29710        P0: windows_core::Param<windows_core::PCWSTR>,
29711    {
29712        unsafe {
29713            (windows_core::Interface::vtable(self).SetDefaultDownloadFolderPath)(
29714                windows_core::Interface::as_raw(self),
29715                value.param().abi(),
29716            )
29717            .ok()
29718        }
29719    }
29720    pub unsafe fn PreferredColorScheme(
29721        &self,
29722        value: *mut COREWEBVIEW2_PREFERRED_COLOR_SCHEME,
29723    ) -> windows_core::Result<()> {
29724        unsafe {
29725            (windows_core::Interface::vtable(self).PreferredColorScheme)(
29726                windows_core::Interface::as_raw(self),
29727                value as _,
29728            )
29729            .ok()
29730        }
29731    }
29732    pub unsafe fn SetPreferredColorScheme(
29733        &self,
29734        value: COREWEBVIEW2_PREFERRED_COLOR_SCHEME,
29735    ) -> windows_core::Result<()> {
29736        unsafe {
29737            (windows_core::Interface::vtable(self).SetPreferredColorScheme)(
29738                windows_core::Interface::as_raw(self),
29739                value,
29740            )
29741            .ok()
29742        }
29743    }
29744}
29745#[repr(C)]
29746#[doc(hidden)]
29747pub struct ICoreWebView2Profile_Vtbl {
29748    pub base__: windows_core::IUnknown_Vtbl,
29749    pub ProfileName: unsafe extern "system" fn(
29750        *mut core::ffi::c_void,
29751        *mut windows_core::PWSTR,
29752    ) -> windows_core::HRESULT,
29753    pub IsInPrivateModeEnabled: unsafe extern "system" fn(
29754        *mut core::ffi::c_void,
29755        *mut windows_core::BOOL,
29756    ) -> windows_core::HRESULT,
29757    pub ProfilePath: unsafe extern "system" fn(
29758        *mut core::ffi::c_void,
29759        *mut windows_core::PWSTR,
29760    ) -> windows_core::HRESULT,
29761    pub DefaultDownloadFolderPath: unsafe extern "system" fn(
29762        *mut core::ffi::c_void,
29763        *mut windows_core::PWSTR,
29764    ) -> windows_core::HRESULT,
29765    pub SetDefaultDownloadFolderPath: unsafe extern "system" fn(
29766        *mut core::ffi::c_void,
29767        windows_core::PCWSTR,
29768    ) -> windows_core::HRESULT,
29769    pub PreferredColorScheme: unsafe extern "system" fn(
29770        *mut core::ffi::c_void,
29771        *mut COREWEBVIEW2_PREFERRED_COLOR_SCHEME,
29772    ) -> windows_core::HRESULT,
29773    pub SetPreferredColorScheme: unsafe extern "system" fn(
29774        *mut core::ffi::c_void,
29775        COREWEBVIEW2_PREFERRED_COLOR_SCHEME,
29776    ) -> windows_core::HRESULT,
29777}
29778pub trait ICoreWebView2Profile_Impl: windows_core::IUnknownImpl {
29779    fn ProfileName(&self, value: *mut windows_core::PWSTR) -> windows_core::Result<()>;
29780    fn IsInPrivateModeEnabled(&self, value: *mut windows_core::BOOL) -> windows_core::Result<()>;
29781    fn ProfilePath(&self, value: *mut windows_core::PWSTR) -> windows_core::Result<()>;
29782    fn DefaultDownloadFolderPath(
29783        &self,
29784        value: *mut windows_core::PWSTR,
29785    ) -> windows_core::Result<()>;
29786    fn SetDefaultDownloadFolderPath(
29787        &self,
29788        value: &windows_core::PCWSTR,
29789    ) -> windows_core::Result<()>;
29790    fn PreferredColorScheme(
29791        &self,
29792        value: *mut COREWEBVIEW2_PREFERRED_COLOR_SCHEME,
29793    ) -> windows_core::Result<()>;
29794    fn SetPreferredColorScheme(
29795        &self,
29796        value: COREWEBVIEW2_PREFERRED_COLOR_SCHEME,
29797    ) -> windows_core::Result<()>;
29798}
29799impl ICoreWebView2Profile_Vtbl {
29800    pub const fn new<Identity: ICoreWebView2Profile_Impl, const OFFSET: isize>() -> Self {
29801        unsafe extern "system" fn ProfileName<
29802            Identity: ICoreWebView2Profile_Impl,
29803            const OFFSET: isize,
29804        >(
29805            this: *mut core::ffi::c_void,
29806            value: *mut windows_core::PWSTR,
29807        ) -> windows_core::HRESULT {
29808            unsafe {
29809                let this: &Identity =
29810                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
29811                ICoreWebView2Profile_Impl::ProfileName(this, core::mem::transmute_copy(&value))
29812                    .into()
29813            }
29814        }
29815        unsafe extern "system" fn IsInPrivateModeEnabled<
29816            Identity: ICoreWebView2Profile_Impl,
29817            const OFFSET: isize,
29818        >(
29819            this: *mut core::ffi::c_void,
29820            value: *mut windows_core::BOOL,
29821        ) -> windows_core::HRESULT {
29822            unsafe {
29823                let this: &Identity =
29824                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
29825                ICoreWebView2Profile_Impl::IsInPrivateModeEnabled(
29826                    this,
29827                    core::mem::transmute_copy(&value),
29828                )
29829                .into()
29830            }
29831        }
29832        unsafe extern "system" fn ProfilePath<
29833            Identity: ICoreWebView2Profile_Impl,
29834            const OFFSET: isize,
29835        >(
29836            this: *mut core::ffi::c_void,
29837            value: *mut windows_core::PWSTR,
29838        ) -> windows_core::HRESULT {
29839            unsafe {
29840                let this: &Identity =
29841                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
29842                ICoreWebView2Profile_Impl::ProfilePath(this, core::mem::transmute_copy(&value))
29843                    .into()
29844            }
29845        }
29846        unsafe extern "system" fn DefaultDownloadFolderPath<
29847            Identity: ICoreWebView2Profile_Impl,
29848            const OFFSET: isize,
29849        >(
29850            this: *mut core::ffi::c_void,
29851            value: *mut windows_core::PWSTR,
29852        ) -> windows_core::HRESULT {
29853            unsafe {
29854                let this: &Identity =
29855                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
29856                ICoreWebView2Profile_Impl::DefaultDownloadFolderPath(
29857                    this,
29858                    core::mem::transmute_copy(&value),
29859                )
29860                .into()
29861            }
29862        }
29863        unsafe extern "system" fn SetDefaultDownloadFolderPath<
29864            Identity: ICoreWebView2Profile_Impl,
29865            const OFFSET: isize,
29866        >(
29867            this: *mut core::ffi::c_void,
29868            value: windows_core::PCWSTR,
29869        ) -> windows_core::HRESULT {
29870            unsafe {
29871                let this: &Identity =
29872                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
29873                ICoreWebView2Profile_Impl::SetDefaultDownloadFolderPath(
29874                    this,
29875                    core::mem::transmute(&value),
29876                )
29877                .into()
29878            }
29879        }
29880        unsafe extern "system" fn PreferredColorScheme<
29881            Identity: ICoreWebView2Profile_Impl,
29882            const OFFSET: isize,
29883        >(
29884            this: *mut core::ffi::c_void,
29885            value: *mut COREWEBVIEW2_PREFERRED_COLOR_SCHEME,
29886        ) -> windows_core::HRESULT {
29887            unsafe {
29888                let this: &Identity =
29889                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
29890                ICoreWebView2Profile_Impl::PreferredColorScheme(
29891                    this,
29892                    core::mem::transmute_copy(&value),
29893                )
29894                .into()
29895            }
29896        }
29897        unsafe extern "system" fn SetPreferredColorScheme<
29898            Identity: ICoreWebView2Profile_Impl,
29899            const OFFSET: isize,
29900        >(
29901            this: *mut core::ffi::c_void,
29902            value: COREWEBVIEW2_PREFERRED_COLOR_SCHEME,
29903        ) -> windows_core::HRESULT {
29904            unsafe {
29905                let this: &Identity =
29906                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
29907                ICoreWebView2Profile_Impl::SetPreferredColorScheme(
29908                    this,
29909                    core::mem::transmute_copy(&value),
29910                )
29911                .into()
29912            }
29913        }
29914        Self {
29915            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
29916            ProfileName: ProfileName::<Identity, OFFSET>,
29917            IsInPrivateModeEnabled: IsInPrivateModeEnabled::<Identity, OFFSET>,
29918            ProfilePath: ProfilePath::<Identity, OFFSET>,
29919            DefaultDownloadFolderPath: DefaultDownloadFolderPath::<Identity, OFFSET>,
29920            SetDefaultDownloadFolderPath: SetDefaultDownloadFolderPath::<Identity, OFFSET>,
29921            PreferredColorScheme: PreferredColorScheme::<Identity, OFFSET>,
29922            SetPreferredColorScheme: SetPreferredColorScheme::<Identity, OFFSET>,
29923        }
29924    }
29925    pub fn matches(iid: &windows_core::GUID) -> bool {
29926        iid == &<ICoreWebView2Profile as windows_core::Interface>::IID
29927    }
29928}
29929impl windows_core::RuntimeName for ICoreWebView2Profile {}
29930windows_core::imp::define_interface!(
29931    ICoreWebView2Profile2,
29932    ICoreWebView2Profile2_Vtbl,
29933    0xfa740d4b_5eae_4344_a8ad_74be31925397
29934);
29935impl core::ops::Deref for ICoreWebView2Profile2 {
29936    type Target = ICoreWebView2Profile;
29937    fn deref(&self) -> &Self::Target {
29938        unsafe { core::mem::transmute(self) }
29939    }
29940}
29941windows_core::imp::interface_hierarchy!(
29942    ICoreWebView2Profile2,
29943    windows_core::IUnknown,
29944    ICoreWebView2Profile
29945);
29946impl ICoreWebView2Profile2 {
29947    pub unsafe fn ClearBrowsingData<P1>(
29948        &self,
29949        datakinds: COREWEBVIEW2_BROWSING_DATA_KINDS,
29950        handler: P1,
29951    ) -> windows_core::Result<()>
29952    where
29953        P1: windows_core::Param<ICoreWebView2ClearBrowsingDataCompletedHandler>,
29954    {
29955        unsafe {
29956            (windows_core::Interface::vtable(self).ClearBrowsingData)(
29957                windows_core::Interface::as_raw(self),
29958                datakinds,
29959                handler.param().abi(),
29960            )
29961            .ok()
29962        }
29963    }
29964    pub unsafe fn ClearBrowsingDataInTimeRange<P3>(
29965        &self,
29966        datakinds: COREWEBVIEW2_BROWSING_DATA_KINDS,
29967        starttime: f64,
29968        endtime: f64,
29969        handler: P3,
29970    ) -> windows_core::Result<()>
29971    where
29972        P3: windows_core::Param<ICoreWebView2ClearBrowsingDataCompletedHandler>,
29973    {
29974        unsafe {
29975            (windows_core::Interface::vtable(self).ClearBrowsingDataInTimeRange)(
29976                windows_core::Interface::as_raw(self),
29977                datakinds,
29978                starttime,
29979                endtime,
29980                handler.param().abi(),
29981            )
29982            .ok()
29983        }
29984    }
29985    pub unsafe fn ClearBrowsingDataAll<P0>(&self, handler: P0) -> windows_core::Result<()>
29986    where
29987        P0: windows_core::Param<ICoreWebView2ClearBrowsingDataCompletedHandler>,
29988    {
29989        unsafe {
29990            (windows_core::Interface::vtable(self).ClearBrowsingDataAll)(
29991                windows_core::Interface::as_raw(self),
29992                handler.param().abi(),
29993            )
29994            .ok()
29995        }
29996    }
29997}
29998#[repr(C)]
29999#[doc(hidden)]
30000pub struct ICoreWebView2Profile2_Vtbl {
30001    pub base__: ICoreWebView2Profile_Vtbl,
30002    pub ClearBrowsingData: unsafe extern "system" fn(
30003        *mut core::ffi::c_void,
30004        COREWEBVIEW2_BROWSING_DATA_KINDS,
30005        *mut core::ffi::c_void,
30006    ) -> windows_core::HRESULT,
30007    pub ClearBrowsingDataInTimeRange: unsafe extern "system" fn(
30008        *mut core::ffi::c_void,
30009        COREWEBVIEW2_BROWSING_DATA_KINDS,
30010        f64,
30011        f64,
30012        *mut core::ffi::c_void,
30013    ) -> windows_core::HRESULT,
30014    pub ClearBrowsingDataAll: unsafe extern "system" fn(
30015        *mut core::ffi::c_void,
30016        *mut core::ffi::c_void,
30017    ) -> windows_core::HRESULT,
30018}
30019pub trait ICoreWebView2Profile2_Impl: ICoreWebView2Profile_Impl {
30020    fn ClearBrowsingData(
30021        &self,
30022        datakinds: COREWEBVIEW2_BROWSING_DATA_KINDS,
30023        handler: windows_core::Ref<'_, ICoreWebView2ClearBrowsingDataCompletedHandler>,
30024    ) -> windows_core::Result<()>;
30025    fn ClearBrowsingDataInTimeRange(
30026        &self,
30027        datakinds: COREWEBVIEW2_BROWSING_DATA_KINDS,
30028        starttime: f64,
30029        endtime: f64,
30030        handler: windows_core::Ref<'_, ICoreWebView2ClearBrowsingDataCompletedHandler>,
30031    ) -> windows_core::Result<()>;
30032    fn ClearBrowsingDataAll(
30033        &self,
30034        handler: windows_core::Ref<'_, ICoreWebView2ClearBrowsingDataCompletedHandler>,
30035    ) -> windows_core::Result<()>;
30036}
30037impl ICoreWebView2Profile2_Vtbl {
30038    pub const fn new<Identity: ICoreWebView2Profile2_Impl, const OFFSET: isize>() -> Self {
30039        unsafe extern "system" fn ClearBrowsingData<
30040            Identity: ICoreWebView2Profile2_Impl,
30041            const OFFSET: isize,
30042        >(
30043            this: *mut core::ffi::c_void,
30044            datakinds: COREWEBVIEW2_BROWSING_DATA_KINDS,
30045            handler: *mut core::ffi::c_void,
30046        ) -> windows_core::HRESULT {
30047            unsafe {
30048                let this: &Identity =
30049                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
30050                ICoreWebView2Profile2_Impl::ClearBrowsingData(
30051                    this,
30052                    core::mem::transmute_copy(&datakinds),
30053                    core::mem::transmute_copy(&handler),
30054                )
30055                .into()
30056            }
30057        }
30058        unsafe extern "system" fn ClearBrowsingDataInTimeRange<
30059            Identity: ICoreWebView2Profile2_Impl,
30060            const OFFSET: isize,
30061        >(
30062            this: *mut core::ffi::c_void,
30063            datakinds: COREWEBVIEW2_BROWSING_DATA_KINDS,
30064            starttime: f64,
30065            endtime: f64,
30066            handler: *mut core::ffi::c_void,
30067        ) -> windows_core::HRESULT {
30068            unsafe {
30069                let this: &Identity =
30070                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
30071                ICoreWebView2Profile2_Impl::ClearBrowsingDataInTimeRange(
30072                    this,
30073                    core::mem::transmute_copy(&datakinds),
30074                    core::mem::transmute_copy(&starttime),
30075                    core::mem::transmute_copy(&endtime),
30076                    core::mem::transmute_copy(&handler),
30077                )
30078                .into()
30079            }
30080        }
30081        unsafe extern "system" fn ClearBrowsingDataAll<
30082            Identity: ICoreWebView2Profile2_Impl,
30083            const OFFSET: isize,
30084        >(
30085            this: *mut core::ffi::c_void,
30086            handler: *mut core::ffi::c_void,
30087        ) -> windows_core::HRESULT {
30088            unsafe {
30089                let this: &Identity =
30090                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
30091                ICoreWebView2Profile2_Impl::ClearBrowsingDataAll(
30092                    this,
30093                    core::mem::transmute_copy(&handler),
30094                )
30095                .into()
30096            }
30097        }
30098        Self {
30099            base__: ICoreWebView2Profile_Vtbl::new::<Identity, OFFSET>(),
30100            ClearBrowsingData: ClearBrowsingData::<Identity, OFFSET>,
30101            ClearBrowsingDataInTimeRange: ClearBrowsingDataInTimeRange::<Identity, OFFSET>,
30102            ClearBrowsingDataAll: ClearBrowsingDataAll::<Identity, OFFSET>,
30103        }
30104    }
30105    pub fn matches(iid: &windows_core::GUID) -> bool {
30106        iid == &<ICoreWebView2Profile2 as windows_core::Interface>::IID
30107            || iid == &<ICoreWebView2Profile as windows_core::Interface>::IID
30108    }
30109}
30110impl windows_core::RuntimeName for ICoreWebView2Profile2 {}
30111windows_core::imp::define_interface!(
30112    ICoreWebView2Profile3,
30113    ICoreWebView2Profile3_Vtbl,
30114    0xb188e659_5685_4e05_bdba_fc640e0f1992
30115);
30116impl core::ops::Deref for ICoreWebView2Profile3 {
30117    type Target = ICoreWebView2Profile2;
30118    fn deref(&self) -> &Self::Target {
30119        unsafe { core::mem::transmute(self) }
30120    }
30121}
30122windows_core::imp::interface_hierarchy!(
30123    ICoreWebView2Profile3,
30124    windows_core::IUnknown,
30125    ICoreWebView2Profile,
30126    ICoreWebView2Profile2
30127);
30128impl ICoreWebView2Profile3 {
30129    pub unsafe fn PreferredTrackingPreventionLevel(
30130        &self,
30131        value: *mut COREWEBVIEW2_TRACKING_PREVENTION_LEVEL,
30132    ) -> windows_core::Result<()> {
30133        unsafe {
30134            (windows_core::Interface::vtable(self).PreferredTrackingPreventionLevel)(
30135                windows_core::Interface::as_raw(self),
30136                value as _,
30137            )
30138            .ok()
30139        }
30140    }
30141    pub unsafe fn SetPreferredTrackingPreventionLevel(
30142        &self,
30143        value: COREWEBVIEW2_TRACKING_PREVENTION_LEVEL,
30144    ) -> windows_core::Result<()> {
30145        unsafe {
30146            (windows_core::Interface::vtable(self).SetPreferredTrackingPreventionLevel)(
30147                windows_core::Interface::as_raw(self),
30148                value,
30149            )
30150            .ok()
30151        }
30152    }
30153}
30154#[repr(C)]
30155#[doc(hidden)]
30156pub struct ICoreWebView2Profile3_Vtbl {
30157    pub base__: ICoreWebView2Profile2_Vtbl,
30158    pub PreferredTrackingPreventionLevel: unsafe extern "system" fn(
30159        *mut core::ffi::c_void,
30160        *mut COREWEBVIEW2_TRACKING_PREVENTION_LEVEL,
30161    ) -> windows_core::HRESULT,
30162    pub SetPreferredTrackingPreventionLevel: unsafe extern "system" fn(
30163        *mut core::ffi::c_void,
30164        COREWEBVIEW2_TRACKING_PREVENTION_LEVEL,
30165    )
30166        -> windows_core::HRESULT,
30167}
30168pub trait ICoreWebView2Profile3_Impl: ICoreWebView2Profile2_Impl {
30169    fn PreferredTrackingPreventionLevel(
30170        &self,
30171        value: *mut COREWEBVIEW2_TRACKING_PREVENTION_LEVEL,
30172    ) -> windows_core::Result<()>;
30173    fn SetPreferredTrackingPreventionLevel(
30174        &self,
30175        value: COREWEBVIEW2_TRACKING_PREVENTION_LEVEL,
30176    ) -> windows_core::Result<()>;
30177}
30178impl ICoreWebView2Profile3_Vtbl {
30179    pub const fn new<Identity: ICoreWebView2Profile3_Impl, const OFFSET: isize>() -> Self {
30180        unsafe extern "system" fn PreferredTrackingPreventionLevel<
30181            Identity: ICoreWebView2Profile3_Impl,
30182            const OFFSET: isize,
30183        >(
30184            this: *mut core::ffi::c_void,
30185            value: *mut COREWEBVIEW2_TRACKING_PREVENTION_LEVEL,
30186        ) -> windows_core::HRESULT {
30187            unsafe {
30188                let this: &Identity =
30189                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
30190                ICoreWebView2Profile3_Impl::PreferredTrackingPreventionLevel(
30191                    this,
30192                    core::mem::transmute_copy(&value),
30193                )
30194                .into()
30195            }
30196        }
30197        unsafe extern "system" fn SetPreferredTrackingPreventionLevel<
30198            Identity: ICoreWebView2Profile3_Impl,
30199            const OFFSET: isize,
30200        >(
30201            this: *mut core::ffi::c_void,
30202            value: COREWEBVIEW2_TRACKING_PREVENTION_LEVEL,
30203        ) -> windows_core::HRESULT {
30204            unsafe {
30205                let this: &Identity =
30206                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
30207                ICoreWebView2Profile3_Impl::SetPreferredTrackingPreventionLevel(
30208                    this,
30209                    core::mem::transmute_copy(&value),
30210                )
30211                .into()
30212            }
30213        }
30214        Self {
30215            base__: ICoreWebView2Profile2_Vtbl::new::<Identity, OFFSET>(),
30216            PreferredTrackingPreventionLevel: PreferredTrackingPreventionLevel::<Identity, OFFSET>,
30217            SetPreferredTrackingPreventionLevel: SetPreferredTrackingPreventionLevel::<
30218                Identity,
30219                OFFSET,
30220            >,
30221        }
30222    }
30223    pub fn matches(iid: &windows_core::GUID) -> bool {
30224        iid == &<ICoreWebView2Profile3 as windows_core::Interface>::IID
30225            || iid == &<ICoreWebView2Profile as windows_core::Interface>::IID
30226            || iid == &<ICoreWebView2Profile2 as windows_core::Interface>::IID
30227    }
30228}
30229impl windows_core::RuntimeName for ICoreWebView2Profile3 {}
30230windows_core::imp::define_interface!(
30231    ICoreWebView2Profile4,
30232    ICoreWebView2Profile4_Vtbl,
30233    0x8f4ae680_192e_4ec8_833a_21cfadaef628
30234);
30235impl core::ops::Deref for ICoreWebView2Profile4 {
30236    type Target = ICoreWebView2Profile3;
30237    fn deref(&self) -> &Self::Target {
30238        unsafe { core::mem::transmute(self) }
30239    }
30240}
30241windows_core::imp::interface_hierarchy!(
30242    ICoreWebView2Profile4,
30243    windows_core::IUnknown,
30244    ICoreWebView2Profile,
30245    ICoreWebView2Profile2,
30246    ICoreWebView2Profile3
30247);
30248impl ICoreWebView2Profile4 {
30249    pub unsafe fn SetPermissionState<P1, P3>(
30250        &self,
30251        permissionkind: COREWEBVIEW2_PERMISSION_KIND,
30252        origin: P1,
30253        state: COREWEBVIEW2_PERMISSION_STATE,
30254        handler: P3,
30255    ) -> windows_core::Result<()>
30256    where
30257        P1: windows_core::Param<windows_core::PCWSTR>,
30258        P3: windows_core::Param<ICoreWebView2SetPermissionStateCompletedHandler>,
30259    {
30260        unsafe {
30261            (windows_core::Interface::vtable(self).SetPermissionState)(
30262                windows_core::Interface::as_raw(self),
30263                permissionkind,
30264                origin.param().abi(),
30265                state,
30266                handler.param().abi(),
30267            )
30268            .ok()
30269        }
30270    }
30271    pub unsafe fn GetNonDefaultPermissionSettings<P0>(
30272        &self,
30273        handler: P0,
30274    ) -> windows_core::Result<()>
30275    where
30276        P0: windows_core::Param<ICoreWebView2GetNonDefaultPermissionSettingsCompletedHandler>,
30277    {
30278        unsafe {
30279            (windows_core::Interface::vtable(self).GetNonDefaultPermissionSettings)(
30280                windows_core::Interface::as_raw(self),
30281                handler.param().abi(),
30282            )
30283            .ok()
30284        }
30285    }
30286}
30287#[repr(C)]
30288#[doc(hidden)]
30289pub struct ICoreWebView2Profile4_Vtbl {
30290    pub base__: ICoreWebView2Profile3_Vtbl,
30291    pub SetPermissionState: unsafe extern "system" fn(
30292        *mut core::ffi::c_void,
30293        COREWEBVIEW2_PERMISSION_KIND,
30294        windows_core::PCWSTR,
30295        COREWEBVIEW2_PERMISSION_STATE,
30296        *mut core::ffi::c_void,
30297    ) -> windows_core::HRESULT,
30298    pub GetNonDefaultPermissionSettings: unsafe extern "system" fn(
30299        *mut core::ffi::c_void,
30300        *mut core::ffi::c_void,
30301    ) -> windows_core::HRESULT,
30302}
30303pub trait ICoreWebView2Profile4_Impl: ICoreWebView2Profile3_Impl {
30304    fn SetPermissionState(
30305        &self,
30306        permissionkind: COREWEBVIEW2_PERMISSION_KIND,
30307        origin: &windows_core::PCWSTR,
30308        state: COREWEBVIEW2_PERMISSION_STATE,
30309        handler: windows_core::Ref<'_, ICoreWebView2SetPermissionStateCompletedHandler>,
30310    ) -> windows_core::Result<()>;
30311    fn GetNonDefaultPermissionSettings(
30312        &self,
30313        handler: windows_core::Ref<
30314            '_,
30315            ICoreWebView2GetNonDefaultPermissionSettingsCompletedHandler,
30316        >,
30317    ) -> windows_core::Result<()>;
30318}
30319impl ICoreWebView2Profile4_Vtbl {
30320    pub const fn new<Identity: ICoreWebView2Profile4_Impl, const OFFSET: isize>() -> Self {
30321        unsafe extern "system" fn SetPermissionState<
30322            Identity: ICoreWebView2Profile4_Impl,
30323            const OFFSET: isize,
30324        >(
30325            this: *mut core::ffi::c_void,
30326            permissionkind: COREWEBVIEW2_PERMISSION_KIND,
30327            origin: windows_core::PCWSTR,
30328            state: COREWEBVIEW2_PERMISSION_STATE,
30329            handler: *mut core::ffi::c_void,
30330        ) -> windows_core::HRESULT {
30331            unsafe {
30332                let this: &Identity =
30333                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
30334                ICoreWebView2Profile4_Impl::SetPermissionState(
30335                    this,
30336                    core::mem::transmute_copy(&permissionkind),
30337                    core::mem::transmute(&origin),
30338                    core::mem::transmute_copy(&state),
30339                    core::mem::transmute_copy(&handler),
30340                )
30341                .into()
30342            }
30343        }
30344        unsafe extern "system" fn GetNonDefaultPermissionSettings<
30345            Identity: ICoreWebView2Profile4_Impl,
30346            const OFFSET: isize,
30347        >(
30348            this: *mut core::ffi::c_void,
30349            handler: *mut core::ffi::c_void,
30350        ) -> windows_core::HRESULT {
30351            unsafe {
30352                let this: &Identity =
30353                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
30354                ICoreWebView2Profile4_Impl::GetNonDefaultPermissionSettings(
30355                    this,
30356                    core::mem::transmute_copy(&handler),
30357                )
30358                .into()
30359            }
30360        }
30361        Self {
30362            base__: ICoreWebView2Profile3_Vtbl::new::<Identity, OFFSET>(),
30363            SetPermissionState: SetPermissionState::<Identity, OFFSET>,
30364            GetNonDefaultPermissionSettings: GetNonDefaultPermissionSettings::<Identity, OFFSET>,
30365        }
30366    }
30367    pub fn matches(iid: &windows_core::GUID) -> bool {
30368        iid == &<ICoreWebView2Profile4 as windows_core::Interface>::IID
30369            || iid == &<ICoreWebView2Profile as windows_core::Interface>::IID
30370            || iid == &<ICoreWebView2Profile2 as windows_core::Interface>::IID
30371            || iid == &<ICoreWebView2Profile3 as windows_core::Interface>::IID
30372    }
30373}
30374impl windows_core::RuntimeName for ICoreWebView2Profile4 {}
30375windows_core::imp::define_interface!(
30376    ICoreWebView2Profile5,
30377    ICoreWebView2Profile5_Vtbl,
30378    0x2ee5b76e_6e80_4df2_bcd3_d4ec3340a01b
30379);
30380impl core::ops::Deref for ICoreWebView2Profile5 {
30381    type Target = ICoreWebView2Profile4;
30382    fn deref(&self) -> &Self::Target {
30383        unsafe { core::mem::transmute(self) }
30384    }
30385}
30386windows_core::imp::interface_hierarchy!(
30387    ICoreWebView2Profile5,
30388    windows_core::IUnknown,
30389    ICoreWebView2Profile,
30390    ICoreWebView2Profile2,
30391    ICoreWebView2Profile3,
30392    ICoreWebView2Profile4
30393);
30394impl ICoreWebView2Profile5 {
30395    pub unsafe fn CookieManager(&self) -> windows_core::Result<ICoreWebView2CookieManager> {
30396        unsafe {
30397            let mut result__ = core::mem::zeroed();
30398            (windows_core::Interface::vtable(self).CookieManager)(
30399                windows_core::Interface::as_raw(self),
30400                &mut result__,
30401            )
30402            .and_then(|| windows_core::Type::from_abi(result__))
30403        }
30404    }
30405}
30406#[repr(C)]
30407#[doc(hidden)]
30408pub struct ICoreWebView2Profile5_Vtbl {
30409    pub base__: ICoreWebView2Profile4_Vtbl,
30410    pub CookieManager: unsafe extern "system" fn(
30411        *mut core::ffi::c_void,
30412        *mut *mut core::ffi::c_void,
30413    ) -> windows_core::HRESULT,
30414}
30415pub trait ICoreWebView2Profile5_Impl: ICoreWebView2Profile4_Impl {
30416    fn CookieManager(&self) -> windows_core::Result<ICoreWebView2CookieManager>;
30417}
30418impl ICoreWebView2Profile5_Vtbl {
30419    pub const fn new<Identity: ICoreWebView2Profile5_Impl, const OFFSET: isize>() -> Self {
30420        unsafe extern "system" fn CookieManager<
30421            Identity: ICoreWebView2Profile5_Impl,
30422            const OFFSET: isize,
30423        >(
30424            this: *mut core::ffi::c_void,
30425            value: *mut *mut core::ffi::c_void,
30426        ) -> windows_core::HRESULT {
30427            unsafe {
30428                let this: &Identity =
30429                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
30430                match ICoreWebView2Profile5_Impl::CookieManager(this) {
30431                    Ok(ok__) => {
30432                        value.write(core::mem::transmute(ok__));
30433                        windows_core::HRESULT(0)
30434                    }
30435                    Err(err) => err.into(),
30436                }
30437            }
30438        }
30439        Self {
30440            base__: ICoreWebView2Profile4_Vtbl::new::<Identity, OFFSET>(),
30441            CookieManager: CookieManager::<Identity, OFFSET>,
30442        }
30443    }
30444    pub fn matches(iid: &windows_core::GUID) -> bool {
30445        iid == &<ICoreWebView2Profile5 as windows_core::Interface>::IID
30446            || iid == &<ICoreWebView2Profile as windows_core::Interface>::IID
30447            || iid == &<ICoreWebView2Profile2 as windows_core::Interface>::IID
30448            || iid == &<ICoreWebView2Profile3 as windows_core::Interface>::IID
30449            || iid == &<ICoreWebView2Profile4 as windows_core::Interface>::IID
30450    }
30451}
30452impl windows_core::RuntimeName for ICoreWebView2Profile5 {}
30453windows_core::imp::define_interface!(
30454    ICoreWebView2Profile6,
30455    ICoreWebView2Profile6_Vtbl,
30456    0xbd82fa6a_1d65_4c33_b2b4_0393020cc61b
30457);
30458impl core::ops::Deref for ICoreWebView2Profile6 {
30459    type Target = ICoreWebView2Profile5;
30460    fn deref(&self) -> &Self::Target {
30461        unsafe { core::mem::transmute(self) }
30462    }
30463}
30464windows_core::imp::interface_hierarchy!(
30465    ICoreWebView2Profile6,
30466    windows_core::IUnknown,
30467    ICoreWebView2Profile,
30468    ICoreWebView2Profile2,
30469    ICoreWebView2Profile3,
30470    ICoreWebView2Profile4,
30471    ICoreWebView2Profile5
30472);
30473impl ICoreWebView2Profile6 {
30474    pub unsafe fn IsPasswordAutosaveEnabled(
30475        &self,
30476        value: *mut windows_core::BOOL,
30477    ) -> windows_core::Result<()> {
30478        unsafe {
30479            (windows_core::Interface::vtable(self).IsPasswordAutosaveEnabled)(
30480                windows_core::Interface::as_raw(self),
30481                value as _,
30482            )
30483            .ok()
30484        }
30485    }
30486    pub unsafe fn SetIsPasswordAutosaveEnabled(&self, value: bool) -> windows_core::Result<()> {
30487        unsafe {
30488            (windows_core::Interface::vtable(self).SetIsPasswordAutosaveEnabled)(
30489                windows_core::Interface::as_raw(self),
30490                value.into(),
30491            )
30492            .ok()
30493        }
30494    }
30495    pub unsafe fn IsGeneralAutofillEnabled(
30496        &self,
30497        value: *mut windows_core::BOOL,
30498    ) -> windows_core::Result<()> {
30499        unsafe {
30500            (windows_core::Interface::vtable(self).IsGeneralAutofillEnabled)(
30501                windows_core::Interface::as_raw(self),
30502                value as _,
30503            )
30504            .ok()
30505        }
30506    }
30507    pub unsafe fn SetIsGeneralAutofillEnabled(&self, value: bool) -> windows_core::Result<()> {
30508        unsafe {
30509            (windows_core::Interface::vtable(self).SetIsGeneralAutofillEnabled)(
30510                windows_core::Interface::as_raw(self),
30511                value.into(),
30512            )
30513            .ok()
30514        }
30515    }
30516}
30517#[repr(C)]
30518#[doc(hidden)]
30519pub struct ICoreWebView2Profile6_Vtbl {
30520    pub base__: ICoreWebView2Profile5_Vtbl,
30521    pub IsPasswordAutosaveEnabled: unsafe extern "system" fn(
30522        *mut core::ffi::c_void,
30523        *mut windows_core::BOOL,
30524    ) -> windows_core::HRESULT,
30525    pub SetIsPasswordAutosaveEnabled: unsafe extern "system" fn(
30526        *mut core::ffi::c_void,
30527        windows_core::BOOL,
30528    ) -> windows_core::HRESULT,
30529    pub IsGeneralAutofillEnabled: unsafe extern "system" fn(
30530        *mut core::ffi::c_void,
30531        *mut windows_core::BOOL,
30532    ) -> windows_core::HRESULT,
30533    pub SetIsGeneralAutofillEnabled: unsafe extern "system" fn(
30534        *mut core::ffi::c_void,
30535        windows_core::BOOL,
30536    ) -> windows_core::HRESULT,
30537}
30538pub trait ICoreWebView2Profile6_Impl: ICoreWebView2Profile5_Impl {
30539    fn IsPasswordAutosaveEnabled(&self, value: *mut windows_core::BOOL)
30540        -> windows_core::Result<()>;
30541    fn SetIsPasswordAutosaveEnabled(&self, value: windows_core::BOOL) -> windows_core::Result<()>;
30542    fn IsGeneralAutofillEnabled(&self, value: *mut windows_core::BOOL) -> windows_core::Result<()>;
30543    fn SetIsGeneralAutofillEnabled(&self, value: windows_core::BOOL) -> windows_core::Result<()>;
30544}
30545impl ICoreWebView2Profile6_Vtbl {
30546    pub const fn new<Identity: ICoreWebView2Profile6_Impl, const OFFSET: isize>() -> Self {
30547        unsafe extern "system" fn IsPasswordAutosaveEnabled<
30548            Identity: ICoreWebView2Profile6_Impl,
30549            const OFFSET: isize,
30550        >(
30551            this: *mut core::ffi::c_void,
30552            value: *mut windows_core::BOOL,
30553        ) -> windows_core::HRESULT {
30554            unsafe {
30555                let this: &Identity =
30556                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
30557                ICoreWebView2Profile6_Impl::IsPasswordAutosaveEnabled(
30558                    this,
30559                    core::mem::transmute_copy(&value),
30560                )
30561                .into()
30562            }
30563        }
30564        unsafe extern "system" fn SetIsPasswordAutosaveEnabled<
30565            Identity: ICoreWebView2Profile6_Impl,
30566            const OFFSET: isize,
30567        >(
30568            this: *mut core::ffi::c_void,
30569            value: windows_core::BOOL,
30570        ) -> windows_core::HRESULT {
30571            unsafe {
30572                let this: &Identity =
30573                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
30574                ICoreWebView2Profile6_Impl::SetIsPasswordAutosaveEnabled(
30575                    this,
30576                    core::mem::transmute_copy(&value),
30577                )
30578                .into()
30579            }
30580        }
30581        unsafe extern "system" fn IsGeneralAutofillEnabled<
30582            Identity: ICoreWebView2Profile6_Impl,
30583            const OFFSET: isize,
30584        >(
30585            this: *mut core::ffi::c_void,
30586            value: *mut windows_core::BOOL,
30587        ) -> windows_core::HRESULT {
30588            unsafe {
30589                let this: &Identity =
30590                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
30591                ICoreWebView2Profile6_Impl::IsGeneralAutofillEnabled(
30592                    this,
30593                    core::mem::transmute_copy(&value),
30594                )
30595                .into()
30596            }
30597        }
30598        unsafe extern "system" fn SetIsGeneralAutofillEnabled<
30599            Identity: ICoreWebView2Profile6_Impl,
30600            const OFFSET: isize,
30601        >(
30602            this: *mut core::ffi::c_void,
30603            value: windows_core::BOOL,
30604        ) -> windows_core::HRESULT {
30605            unsafe {
30606                let this: &Identity =
30607                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
30608                ICoreWebView2Profile6_Impl::SetIsGeneralAutofillEnabled(
30609                    this,
30610                    core::mem::transmute_copy(&value),
30611                )
30612                .into()
30613            }
30614        }
30615        Self {
30616            base__: ICoreWebView2Profile5_Vtbl::new::<Identity, OFFSET>(),
30617            IsPasswordAutosaveEnabled: IsPasswordAutosaveEnabled::<Identity, OFFSET>,
30618            SetIsPasswordAutosaveEnabled: SetIsPasswordAutosaveEnabled::<Identity, OFFSET>,
30619            IsGeneralAutofillEnabled: IsGeneralAutofillEnabled::<Identity, OFFSET>,
30620            SetIsGeneralAutofillEnabled: SetIsGeneralAutofillEnabled::<Identity, OFFSET>,
30621        }
30622    }
30623    pub fn matches(iid: &windows_core::GUID) -> bool {
30624        iid == &<ICoreWebView2Profile6 as windows_core::Interface>::IID
30625            || iid == &<ICoreWebView2Profile as windows_core::Interface>::IID
30626            || iid == &<ICoreWebView2Profile2 as windows_core::Interface>::IID
30627            || iid == &<ICoreWebView2Profile3 as windows_core::Interface>::IID
30628            || iid == &<ICoreWebView2Profile4 as windows_core::Interface>::IID
30629            || iid == &<ICoreWebView2Profile5 as windows_core::Interface>::IID
30630    }
30631}
30632impl windows_core::RuntimeName for ICoreWebView2Profile6 {}
30633windows_core::imp::define_interface!(
30634    ICoreWebView2Profile7,
30635    ICoreWebView2Profile7_Vtbl,
30636    0x7b4c7906_a1aa_4cb4_b723_db09f813d541
30637);
30638impl core::ops::Deref for ICoreWebView2Profile7 {
30639    type Target = ICoreWebView2Profile6;
30640    fn deref(&self) -> &Self::Target {
30641        unsafe { core::mem::transmute(self) }
30642    }
30643}
30644windows_core::imp::interface_hierarchy!(
30645    ICoreWebView2Profile7,
30646    windows_core::IUnknown,
30647    ICoreWebView2Profile,
30648    ICoreWebView2Profile2,
30649    ICoreWebView2Profile3,
30650    ICoreWebView2Profile4,
30651    ICoreWebView2Profile5,
30652    ICoreWebView2Profile6
30653);
30654impl ICoreWebView2Profile7 {
30655    pub unsafe fn AddBrowserExtension<P0, P1>(
30656        &self,
30657        extensionfolderpath: P0,
30658        handler: P1,
30659    ) -> windows_core::Result<()>
30660    where
30661        P0: windows_core::Param<windows_core::PCWSTR>,
30662        P1: windows_core::Param<ICoreWebView2ProfileAddBrowserExtensionCompletedHandler>,
30663    {
30664        unsafe {
30665            (windows_core::Interface::vtable(self).AddBrowserExtension)(
30666                windows_core::Interface::as_raw(self),
30667                extensionfolderpath.param().abi(),
30668                handler.param().abi(),
30669            )
30670            .ok()
30671        }
30672    }
30673    pub unsafe fn GetBrowserExtensions<P0>(&self, handler: P0) -> windows_core::Result<()>
30674    where
30675        P0: windows_core::Param<ICoreWebView2ProfileGetBrowserExtensionsCompletedHandler>,
30676    {
30677        unsafe {
30678            (windows_core::Interface::vtable(self).GetBrowserExtensions)(
30679                windows_core::Interface::as_raw(self),
30680                handler.param().abi(),
30681            )
30682            .ok()
30683        }
30684    }
30685}
30686#[repr(C)]
30687#[doc(hidden)]
30688pub struct ICoreWebView2Profile7_Vtbl {
30689    pub base__: ICoreWebView2Profile6_Vtbl,
30690    pub AddBrowserExtension: unsafe extern "system" fn(
30691        *mut core::ffi::c_void,
30692        windows_core::PCWSTR,
30693        *mut core::ffi::c_void,
30694    ) -> windows_core::HRESULT,
30695    pub GetBrowserExtensions: unsafe extern "system" fn(
30696        *mut core::ffi::c_void,
30697        *mut core::ffi::c_void,
30698    ) -> windows_core::HRESULT,
30699}
30700pub trait ICoreWebView2Profile7_Impl: ICoreWebView2Profile6_Impl {
30701    fn AddBrowserExtension(
30702        &self,
30703        extensionfolderpath: &windows_core::PCWSTR,
30704        handler: windows_core::Ref<'_, ICoreWebView2ProfileAddBrowserExtensionCompletedHandler>,
30705    ) -> windows_core::Result<()>;
30706    fn GetBrowserExtensions(
30707        &self,
30708        handler: windows_core::Ref<'_, ICoreWebView2ProfileGetBrowserExtensionsCompletedHandler>,
30709    ) -> windows_core::Result<()>;
30710}
30711impl ICoreWebView2Profile7_Vtbl {
30712    pub const fn new<Identity: ICoreWebView2Profile7_Impl, const OFFSET: isize>() -> Self {
30713        unsafe extern "system" fn AddBrowserExtension<
30714            Identity: ICoreWebView2Profile7_Impl,
30715            const OFFSET: isize,
30716        >(
30717            this: *mut core::ffi::c_void,
30718            extensionfolderpath: windows_core::PCWSTR,
30719            handler: *mut core::ffi::c_void,
30720        ) -> windows_core::HRESULT {
30721            unsafe {
30722                let this: &Identity =
30723                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
30724                ICoreWebView2Profile7_Impl::AddBrowserExtension(
30725                    this,
30726                    core::mem::transmute(&extensionfolderpath),
30727                    core::mem::transmute_copy(&handler),
30728                )
30729                .into()
30730            }
30731        }
30732        unsafe extern "system" fn GetBrowserExtensions<
30733            Identity: ICoreWebView2Profile7_Impl,
30734            const OFFSET: isize,
30735        >(
30736            this: *mut core::ffi::c_void,
30737            handler: *mut core::ffi::c_void,
30738        ) -> windows_core::HRESULT {
30739            unsafe {
30740                let this: &Identity =
30741                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
30742                ICoreWebView2Profile7_Impl::GetBrowserExtensions(
30743                    this,
30744                    core::mem::transmute_copy(&handler),
30745                )
30746                .into()
30747            }
30748        }
30749        Self {
30750            base__: ICoreWebView2Profile6_Vtbl::new::<Identity, OFFSET>(),
30751            AddBrowserExtension: AddBrowserExtension::<Identity, OFFSET>,
30752            GetBrowserExtensions: GetBrowserExtensions::<Identity, OFFSET>,
30753        }
30754    }
30755    pub fn matches(iid: &windows_core::GUID) -> bool {
30756        iid == &<ICoreWebView2Profile7 as windows_core::Interface>::IID
30757            || iid == &<ICoreWebView2Profile as windows_core::Interface>::IID
30758            || iid == &<ICoreWebView2Profile2 as windows_core::Interface>::IID
30759            || iid == &<ICoreWebView2Profile3 as windows_core::Interface>::IID
30760            || iid == &<ICoreWebView2Profile4 as windows_core::Interface>::IID
30761            || iid == &<ICoreWebView2Profile5 as windows_core::Interface>::IID
30762            || iid == &<ICoreWebView2Profile6 as windows_core::Interface>::IID
30763    }
30764}
30765impl windows_core::RuntimeName for ICoreWebView2Profile7 {}
30766windows_core::imp::define_interface!(
30767    ICoreWebView2Profile8,
30768    ICoreWebView2Profile8_Vtbl,
30769    0xfbf70c2f_eb1f_4383_85a0_163e92044011
30770);
30771impl core::ops::Deref for ICoreWebView2Profile8 {
30772    type Target = ICoreWebView2Profile7;
30773    fn deref(&self) -> &Self::Target {
30774        unsafe { core::mem::transmute(self) }
30775    }
30776}
30777windows_core::imp::interface_hierarchy!(
30778    ICoreWebView2Profile8,
30779    windows_core::IUnknown,
30780    ICoreWebView2Profile,
30781    ICoreWebView2Profile2,
30782    ICoreWebView2Profile3,
30783    ICoreWebView2Profile4,
30784    ICoreWebView2Profile5,
30785    ICoreWebView2Profile6,
30786    ICoreWebView2Profile7
30787);
30788impl ICoreWebView2Profile8 {
30789    pub unsafe fn Delete(&self) -> windows_core::Result<()> {
30790        unsafe {
30791            (windows_core::Interface::vtable(self).Delete)(windows_core::Interface::as_raw(self))
30792                .ok()
30793        }
30794    }
30795    pub unsafe fn add_Deleted<P0>(
30796        &self,
30797        eventhandler: P0,
30798        token: *mut i64,
30799    ) -> windows_core::Result<()>
30800    where
30801        P0: windows_core::Param<ICoreWebView2ProfileDeletedEventHandler>,
30802    {
30803        unsafe {
30804            (windows_core::Interface::vtable(self).add_Deleted)(
30805                windows_core::Interface::as_raw(self),
30806                eventhandler.param().abi(),
30807                token as _,
30808            )
30809            .ok()
30810        }
30811    }
30812    pub unsafe fn remove_Deleted(&self, token: i64) -> windows_core::Result<()> {
30813        unsafe {
30814            (windows_core::Interface::vtable(self).remove_Deleted)(
30815                windows_core::Interface::as_raw(self),
30816                token,
30817            )
30818            .ok()
30819        }
30820    }
30821}
30822#[repr(C)]
30823#[doc(hidden)]
30824pub struct ICoreWebView2Profile8_Vtbl {
30825    pub base__: ICoreWebView2Profile7_Vtbl,
30826    pub Delete: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
30827    pub add_Deleted: unsafe extern "system" fn(
30828        *mut core::ffi::c_void,
30829        *mut core::ffi::c_void,
30830        *mut i64,
30831    ) -> windows_core::HRESULT,
30832    pub remove_Deleted:
30833        unsafe extern "system" fn(*mut core::ffi::c_void, i64) -> windows_core::HRESULT,
30834}
30835pub trait ICoreWebView2Profile8_Impl: ICoreWebView2Profile7_Impl {
30836    fn Delete(&self) -> windows_core::Result<()>;
30837    fn add_Deleted(
30838        &self,
30839        eventhandler: windows_core::Ref<'_, ICoreWebView2ProfileDeletedEventHandler>,
30840        token: *mut i64,
30841    ) -> windows_core::Result<()>;
30842    fn remove_Deleted(&self, token: i64) -> windows_core::Result<()>;
30843}
30844impl ICoreWebView2Profile8_Vtbl {
30845    pub const fn new<Identity: ICoreWebView2Profile8_Impl, const OFFSET: isize>() -> Self {
30846        unsafe extern "system" fn Delete<
30847            Identity: ICoreWebView2Profile8_Impl,
30848            const OFFSET: isize,
30849        >(
30850            this: *mut core::ffi::c_void,
30851        ) -> windows_core::HRESULT {
30852            unsafe {
30853                let this: &Identity =
30854                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
30855                ICoreWebView2Profile8_Impl::Delete(this).into()
30856            }
30857        }
30858        unsafe extern "system" fn add_Deleted<
30859            Identity: ICoreWebView2Profile8_Impl,
30860            const OFFSET: isize,
30861        >(
30862            this: *mut core::ffi::c_void,
30863            eventhandler: *mut core::ffi::c_void,
30864            token: *mut i64,
30865        ) -> windows_core::HRESULT {
30866            unsafe {
30867                let this: &Identity =
30868                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
30869                ICoreWebView2Profile8_Impl::add_Deleted(
30870                    this,
30871                    core::mem::transmute_copy(&eventhandler),
30872                    core::mem::transmute_copy(&token),
30873                )
30874                .into()
30875            }
30876        }
30877        unsafe extern "system" fn remove_Deleted<
30878            Identity: ICoreWebView2Profile8_Impl,
30879            const OFFSET: isize,
30880        >(
30881            this: *mut core::ffi::c_void,
30882            token: i64,
30883        ) -> windows_core::HRESULT {
30884            unsafe {
30885                let this: &Identity =
30886                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
30887                ICoreWebView2Profile8_Impl::remove_Deleted(this, core::mem::transmute_copy(&token))
30888                    .into()
30889            }
30890        }
30891        Self {
30892            base__: ICoreWebView2Profile7_Vtbl::new::<Identity, OFFSET>(),
30893            Delete: Delete::<Identity, OFFSET>,
30894            add_Deleted: add_Deleted::<Identity, OFFSET>,
30895            remove_Deleted: remove_Deleted::<Identity, OFFSET>,
30896        }
30897    }
30898    pub fn matches(iid: &windows_core::GUID) -> bool {
30899        iid == &<ICoreWebView2Profile8 as windows_core::Interface>::IID
30900            || iid == &<ICoreWebView2Profile as windows_core::Interface>::IID
30901            || iid == &<ICoreWebView2Profile2 as windows_core::Interface>::IID
30902            || iid == &<ICoreWebView2Profile3 as windows_core::Interface>::IID
30903            || iid == &<ICoreWebView2Profile4 as windows_core::Interface>::IID
30904            || iid == &<ICoreWebView2Profile5 as windows_core::Interface>::IID
30905            || iid == &<ICoreWebView2Profile6 as windows_core::Interface>::IID
30906            || iid == &<ICoreWebView2Profile7 as windows_core::Interface>::IID
30907    }
30908}
30909impl windows_core::RuntimeName for ICoreWebView2Profile8 {}
30910windows_core::imp::define_interface!(
30911    ICoreWebView2ProfileAddBrowserExtensionCompletedHandler,
30912    ICoreWebView2ProfileAddBrowserExtensionCompletedHandler_Vtbl,
30913    0xdf1aab27_82b9_4ab6_aae8_017a49398c14
30914);
30915windows_core::imp::interface_hierarchy!(
30916    ICoreWebView2ProfileAddBrowserExtensionCompletedHandler,
30917    windows_core::IUnknown
30918);
30919impl ICoreWebView2ProfileAddBrowserExtensionCompletedHandler {
30920    pub unsafe fn Invoke<P1>(
30921        &self,
30922        errorcode: windows_core::HRESULT,
30923        result: P1,
30924    ) -> windows_core::Result<()>
30925    where
30926        P1: windows_core::Param<ICoreWebView2BrowserExtension>,
30927    {
30928        unsafe {
30929            (windows_core::Interface::vtable(self).Invoke)(
30930                windows_core::Interface::as_raw(self),
30931                errorcode,
30932                result.param().abi(),
30933            )
30934            .ok()
30935        }
30936    }
30937}
30938#[repr(C)]
30939#[doc(hidden)]
30940pub struct ICoreWebView2ProfileAddBrowserExtensionCompletedHandler_Vtbl {
30941    pub base__: windows_core::IUnknown_Vtbl,
30942    pub Invoke: unsafe extern "system" fn(
30943        *mut core::ffi::c_void,
30944        windows_core::HRESULT,
30945        *mut core::ffi::c_void,
30946    ) -> windows_core::HRESULT,
30947}
30948pub trait ICoreWebView2ProfileAddBrowserExtensionCompletedHandler_Impl:
30949    windows_core::IUnknownImpl
30950{
30951    fn Invoke(
30952        &self,
30953        errorcode: windows_core::HRESULT,
30954        result: windows_core::Ref<'_, ICoreWebView2BrowserExtension>,
30955    ) -> windows_core::Result<()>;
30956}
30957impl ICoreWebView2ProfileAddBrowserExtensionCompletedHandler_Vtbl {
30958    pub const fn new<
30959        Identity: ICoreWebView2ProfileAddBrowserExtensionCompletedHandler_Impl,
30960        const OFFSET: isize,
30961    >() -> Self {
30962        unsafe extern "system" fn Invoke<
30963            Identity: ICoreWebView2ProfileAddBrowserExtensionCompletedHandler_Impl,
30964            const OFFSET: isize,
30965        >(
30966            this: *mut core::ffi::c_void,
30967            errorcode: windows_core::HRESULT,
30968            result: *mut core::ffi::c_void,
30969        ) -> windows_core::HRESULT {
30970            unsafe {
30971                let this: &Identity =
30972                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
30973                ICoreWebView2ProfileAddBrowserExtensionCompletedHandler_Impl::Invoke(
30974                    this,
30975                    core::mem::transmute_copy(&errorcode),
30976                    core::mem::transmute_copy(&result),
30977                )
30978                .into()
30979            }
30980        }
30981        Self {
30982            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
30983            Invoke: Invoke::<Identity, OFFSET>,
30984        }
30985    }
30986    pub fn matches(iid: &windows_core::GUID) -> bool {
30987        iid == & < ICoreWebView2ProfileAddBrowserExtensionCompletedHandler as windows_core::Interface >::IID
30988    }
30989}
30990impl windows_core::RuntimeName for ICoreWebView2ProfileAddBrowserExtensionCompletedHandler {}
30991windows_core::imp::define_interface!(
30992    ICoreWebView2ProfileDeletedEventHandler,
30993    ICoreWebView2ProfileDeletedEventHandler_Vtbl,
30994    0xdf35055d_772e_4dbe_b743_5fbf74a2b258
30995);
30996windows_core::imp::interface_hierarchy!(
30997    ICoreWebView2ProfileDeletedEventHandler,
30998    windows_core::IUnknown
30999);
31000impl ICoreWebView2ProfileDeletedEventHandler {
31001    pub unsafe fn Invoke<P0, P1>(&self, sender: P0, args: P1) -> windows_core::Result<()>
31002    where
31003        P0: windows_core::Param<ICoreWebView2Profile>,
31004        P1: windows_core::Param<windows_core::IUnknown>,
31005    {
31006        unsafe {
31007            (windows_core::Interface::vtable(self).Invoke)(
31008                windows_core::Interface::as_raw(self),
31009                sender.param().abi(),
31010                args.param().abi(),
31011            )
31012            .ok()
31013        }
31014    }
31015}
31016#[repr(C)]
31017#[doc(hidden)]
31018pub struct ICoreWebView2ProfileDeletedEventHandler_Vtbl {
31019    pub base__: windows_core::IUnknown_Vtbl,
31020    pub Invoke: unsafe extern "system" fn(
31021        *mut core::ffi::c_void,
31022        *mut core::ffi::c_void,
31023        *mut core::ffi::c_void,
31024    ) -> windows_core::HRESULT,
31025}
31026pub trait ICoreWebView2ProfileDeletedEventHandler_Impl: windows_core::IUnknownImpl {
31027    fn Invoke(
31028        &self,
31029        sender: windows_core::Ref<'_, ICoreWebView2Profile>,
31030        args: windows_core::Ref<'_, windows_core::IUnknown>,
31031    ) -> windows_core::Result<()>;
31032}
31033impl ICoreWebView2ProfileDeletedEventHandler_Vtbl {
31034    pub const fn new<
31035        Identity: ICoreWebView2ProfileDeletedEventHandler_Impl,
31036        const OFFSET: isize,
31037    >() -> Self {
31038        unsafe extern "system" fn Invoke<
31039            Identity: ICoreWebView2ProfileDeletedEventHandler_Impl,
31040            const OFFSET: isize,
31041        >(
31042            this: *mut core::ffi::c_void,
31043            sender: *mut core::ffi::c_void,
31044            args: *mut core::ffi::c_void,
31045        ) -> windows_core::HRESULT {
31046            unsafe {
31047                let this: &Identity =
31048                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
31049                ICoreWebView2ProfileDeletedEventHandler_Impl::Invoke(
31050                    this,
31051                    core::mem::transmute_copy(&sender),
31052                    core::mem::transmute_copy(&args),
31053                )
31054                .into()
31055            }
31056        }
31057        Self {
31058            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
31059            Invoke: Invoke::<Identity, OFFSET>,
31060        }
31061    }
31062    pub fn matches(iid: &windows_core::GUID) -> bool {
31063        iid == &<ICoreWebView2ProfileDeletedEventHandler as windows_core::Interface>::IID
31064    }
31065}
31066impl windows_core::RuntimeName for ICoreWebView2ProfileDeletedEventHandler {}
31067windows_core::imp::define_interface!(
31068    ICoreWebView2ProfileGetBrowserExtensionsCompletedHandler,
31069    ICoreWebView2ProfileGetBrowserExtensionsCompletedHandler_Vtbl,
31070    0xfce16a1c_f107_4601_8b75_fc4940ae25d0
31071);
31072windows_core::imp::interface_hierarchy!(
31073    ICoreWebView2ProfileGetBrowserExtensionsCompletedHandler,
31074    windows_core::IUnknown
31075);
31076impl ICoreWebView2ProfileGetBrowserExtensionsCompletedHandler {
31077    pub unsafe fn Invoke<P1>(
31078        &self,
31079        errorcode: windows_core::HRESULT,
31080        result: P1,
31081    ) -> windows_core::Result<()>
31082    where
31083        P1: windows_core::Param<ICoreWebView2BrowserExtensionList>,
31084    {
31085        unsafe {
31086            (windows_core::Interface::vtable(self).Invoke)(
31087                windows_core::Interface::as_raw(self),
31088                errorcode,
31089                result.param().abi(),
31090            )
31091            .ok()
31092        }
31093    }
31094}
31095#[repr(C)]
31096#[doc(hidden)]
31097pub struct ICoreWebView2ProfileGetBrowserExtensionsCompletedHandler_Vtbl {
31098    pub base__: windows_core::IUnknown_Vtbl,
31099    pub Invoke: unsafe extern "system" fn(
31100        *mut core::ffi::c_void,
31101        windows_core::HRESULT,
31102        *mut core::ffi::c_void,
31103    ) -> windows_core::HRESULT,
31104}
31105pub trait ICoreWebView2ProfileGetBrowserExtensionsCompletedHandler_Impl:
31106    windows_core::IUnknownImpl
31107{
31108    fn Invoke(
31109        &self,
31110        errorcode: windows_core::HRESULT,
31111        result: windows_core::Ref<'_, ICoreWebView2BrowserExtensionList>,
31112    ) -> windows_core::Result<()>;
31113}
31114impl ICoreWebView2ProfileGetBrowserExtensionsCompletedHandler_Vtbl {
31115    pub const fn new<
31116        Identity: ICoreWebView2ProfileGetBrowserExtensionsCompletedHandler_Impl,
31117        const OFFSET: isize,
31118    >() -> Self {
31119        unsafe extern "system" fn Invoke<
31120            Identity: ICoreWebView2ProfileGetBrowserExtensionsCompletedHandler_Impl,
31121            const OFFSET: isize,
31122        >(
31123            this: *mut core::ffi::c_void,
31124            errorcode: windows_core::HRESULT,
31125            result: *mut core::ffi::c_void,
31126        ) -> windows_core::HRESULT {
31127            unsafe {
31128                let this: &Identity =
31129                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
31130                ICoreWebView2ProfileGetBrowserExtensionsCompletedHandler_Impl::Invoke(
31131                    this,
31132                    core::mem::transmute_copy(&errorcode),
31133                    core::mem::transmute_copy(&result),
31134                )
31135                .into()
31136            }
31137        }
31138        Self {
31139            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
31140            Invoke: Invoke::<Identity, OFFSET>,
31141        }
31142    }
31143    pub fn matches(iid: &windows_core::GUID) -> bool {
31144        iid == & < ICoreWebView2ProfileGetBrowserExtensionsCompletedHandler as windows_core::Interface >::IID
31145    }
31146}
31147impl windows_core::RuntimeName for ICoreWebView2ProfileGetBrowserExtensionsCompletedHandler {}
31148windows_core::imp::define_interface!(
31149    ICoreWebView2RasterizationScaleChangedEventHandler,
31150    ICoreWebView2RasterizationScaleChangedEventHandler_Vtbl,
31151    0x9c98c8b1_ac53_427e_a345_3049b5524bbe
31152);
31153windows_core::imp::interface_hierarchy!(
31154    ICoreWebView2RasterizationScaleChangedEventHandler,
31155    windows_core::IUnknown
31156);
31157impl ICoreWebView2RasterizationScaleChangedEventHandler {
31158    pub unsafe fn Invoke<P0, P1>(&self, sender: P0, args: P1) -> windows_core::Result<()>
31159    where
31160        P0: windows_core::Param<ICoreWebView2Controller>,
31161        P1: windows_core::Param<windows_core::IUnknown>,
31162    {
31163        unsafe {
31164            (windows_core::Interface::vtable(self).Invoke)(
31165                windows_core::Interface::as_raw(self),
31166                sender.param().abi(),
31167                args.param().abi(),
31168            )
31169            .ok()
31170        }
31171    }
31172}
31173#[repr(C)]
31174#[doc(hidden)]
31175pub struct ICoreWebView2RasterizationScaleChangedEventHandler_Vtbl {
31176    pub base__: windows_core::IUnknown_Vtbl,
31177    pub Invoke: unsafe extern "system" fn(
31178        *mut core::ffi::c_void,
31179        *mut core::ffi::c_void,
31180        *mut core::ffi::c_void,
31181    ) -> windows_core::HRESULT,
31182}
31183pub trait ICoreWebView2RasterizationScaleChangedEventHandler_Impl:
31184    windows_core::IUnknownImpl
31185{
31186    fn Invoke(
31187        &self,
31188        sender: windows_core::Ref<'_, ICoreWebView2Controller>,
31189        args: windows_core::Ref<'_, windows_core::IUnknown>,
31190    ) -> windows_core::Result<()>;
31191}
31192impl ICoreWebView2RasterizationScaleChangedEventHandler_Vtbl {
31193    pub const fn new<
31194        Identity: ICoreWebView2RasterizationScaleChangedEventHandler_Impl,
31195        const OFFSET: isize,
31196    >() -> Self {
31197        unsafe extern "system" fn Invoke<
31198            Identity: ICoreWebView2RasterizationScaleChangedEventHandler_Impl,
31199            const OFFSET: isize,
31200        >(
31201            this: *mut core::ffi::c_void,
31202            sender: *mut core::ffi::c_void,
31203            args: *mut core::ffi::c_void,
31204        ) -> windows_core::HRESULT {
31205            unsafe {
31206                let this: &Identity =
31207                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
31208                ICoreWebView2RasterizationScaleChangedEventHandler_Impl::Invoke(
31209                    this,
31210                    core::mem::transmute_copy(&sender),
31211                    core::mem::transmute_copy(&args),
31212                )
31213                .into()
31214            }
31215        }
31216        Self {
31217            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
31218            Invoke: Invoke::<Identity, OFFSET>,
31219        }
31220    }
31221    pub fn matches(iid: &windows_core::GUID) -> bool {
31222        iid == &<ICoreWebView2RasterizationScaleChangedEventHandler as windows_core::Interface>::IID
31223    }
31224}
31225impl windows_core::RuntimeName for ICoreWebView2RasterizationScaleChangedEventHandler {}
31226windows_core::imp::define_interface!(
31227    ICoreWebView2RegionRectCollectionView,
31228    ICoreWebView2RegionRectCollectionView_Vtbl,
31229    0x333353b8_48bf_4449_8fcc_22697faf5753
31230);
31231windows_core::imp::interface_hierarchy!(
31232    ICoreWebView2RegionRectCollectionView,
31233    windows_core::IUnknown
31234);
31235impl ICoreWebView2RegionRectCollectionView {
31236    pub unsafe fn Count(&self, value: *mut u32) -> windows_core::Result<()> {
31237        unsafe {
31238            (windows_core::Interface::vtable(self).Count)(
31239                windows_core::Interface::as_raw(self),
31240                value as _,
31241            )
31242            .ok()
31243        }
31244    }
31245    pub unsafe fn GetValueAtIndex(
31246        &self,
31247        index: u32,
31248        value: *mut windows::Win32::Foundation::RECT,
31249    ) -> windows_core::Result<()> {
31250        unsafe {
31251            (windows_core::Interface::vtable(self).GetValueAtIndex)(
31252                windows_core::Interface::as_raw(self),
31253                index,
31254                value as _,
31255            )
31256            .ok()
31257        }
31258    }
31259}
31260#[repr(C)]
31261#[doc(hidden)]
31262pub struct ICoreWebView2RegionRectCollectionView_Vtbl {
31263    pub base__: windows_core::IUnknown_Vtbl,
31264    pub Count: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
31265    pub GetValueAtIndex: unsafe extern "system" fn(
31266        *mut core::ffi::c_void,
31267        u32,
31268        *mut windows::Win32::Foundation::RECT,
31269    ) -> windows_core::HRESULT,
31270}
31271pub trait ICoreWebView2RegionRectCollectionView_Impl: windows_core::IUnknownImpl {
31272    fn Count(&self, value: *mut u32) -> windows_core::Result<()>;
31273    fn GetValueAtIndex(
31274        &self,
31275        index: u32,
31276        value: *mut windows::Win32::Foundation::RECT,
31277    ) -> windows_core::Result<()>;
31278}
31279impl ICoreWebView2RegionRectCollectionView_Vtbl {
31280    pub const fn new<Identity: ICoreWebView2RegionRectCollectionView_Impl, const OFFSET: isize>(
31281    ) -> Self {
31282        unsafe extern "system" fn Count<
31283            Identity: ICoreWebView2RegionRectCollectionView_Impl,
31284            const OFFSET: isize,
31285        >(
31286            this: *mut core::ffi::c_void,
31287            value: *mut u32,
31288        ) -> windows_core::HRESULT {
31289            unsafe {
31290                let this: &Identity =
31291                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
31292                ICoreWebView2RegionRectCollectionView_Impl::Count(
31293                    this,
31294                    core::mem::transmute_copy(&value),
31295                )
31296                .into()
31297            }
31298        }
31299        unsafe extern "system" fn GetValueAtIndex<
31300            Identity: ICoreWebView2RegionRectCollectionView_Impl,
31301            const OFFSET: isize,
31302        >(
31303            this: *mut core::ffi::c_void,
31304            index: u32,
31305            value: *mut windows::Win32::Foundation::RECT,
31306        ) -> windows_core::HRESULT {
31307            unsafe {
31308                let this: &Identity =
31309                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
31310                ICoreWebView2RegionRectCollectionView_Impl::GetValueAtIndex(
31311                    this,
31312                    core::mem::transmute_copy(&index),
31313                    core::mem::transmute_copy(&value),
31314                )
31315                .into()
31316            }
31317        }
31318        Self {
31319            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
31320            Count: Count::<Identity, OFFSET>,
31321            GetValueAtIndex: GetValueAtIndex::<Identity, OFFSET>,
31322        }
31323    }
31324    pub fn matches(iid: &windows_core::GUID) -> bool {
31325        iid == &<ICoreWebView2RegionRectCollectionView as windows_core::Interface>::IID
31326    }
31327}
31328impl windows_core::RuntimeName for ICoreWebView2RegionRectCollectionView {}
31329windows_core::imp::define_interface!(
31330    ICoreWebView2SaveAsUIShowingEventArgs,
31331    ICoreWebView2SaveAsUIShowingEventArgs_Vtbl,
31332    0x55902952_0e0d_5aaa_a7d0_e833cdb34f62
31333);
31334windows_core::imp::interface_hierarchy!(
31335    ICoreWebView2SaveAsUIShowingEventArgs,
31336    windows_core::IUnknown
31337);
31338impl ICoreWebView2SaveAsUIShowingEventArgs {
31339    pub unsafe fn ContentMimeType(
31340        &self,
31341        value: *mut windows_core::PWSTR,
31342    ) -> windows_core::Result<()> {
31343        unsafe {
31344            (windows_core::Interface::vtable(self).ContentMimeType)(
31345                windows_core::Interface::as_raw(self),
31346                value as _,
31347            )
31348            .ok()
31349        }
31350    }
31351    pub unsafe fn SetCancel(&self, value: bool) -> windows_core::Result<()> {
31352        unsafe {
31353            (windows_core::Interface::vtable(self).SetCancel)(
31354                windows_core::Interface::as_raw(self),
31355                value.into(),
31356            )
31357            .ok()
31358        }
31359    }
31360    pub unsafe fn Cancel(&self, value: *mut windows_core::BOOL) -> windows_core::Result<()> {
31361        unsafe {
31362            (windows_core::Interface::vtable(self).Cancel)(
31363                windows_core::Interface::as_raw(self),
31364                value as _,
31365            )
31366            .ok()
31367        }
31368    }
31369    pub unsafe fn SetSuppressDefaultDialog(&self, value: bool) -> windows_core::Result<()> {
31370        unsafe {
31371            (windows_core::Interface::vtable(self).SetSuppressDefaultDialog)(
31372                windows_core::Interface::as_raw(self),
31373                value.into(),
31374            )
31375            .ok()
31376        }
31377    }
31378    pub unsafe fn SuppressDefaultDialog(
31379        &self,
31380        value: *mut windows_core::BOOL,
31381    ) -> windows_core::Result<()> {
31382        unsafe {
31383            (windows_core::Interface::vtable(self).SuppressDefaultDialog)(
31384                windows_core::Interface::as_raw(self),
31385                value as _,
31386            )
31387            .ok()
31388        }
31389    }
31390    pub unsafe fn GetDeferral(&self) -> windows_core::Result<ICoreWebView2Deferral> {
31391        unsafe {
31392            let mut result__ = core::mem::zeroed();
31393            (windows_core::Interface::vtable(self).GetDeferral)(
31394                windows_core::Interface::as_raw(self),
31395                &mut result__,
31396            )
31397            .and_then(|| windows_core::Type::from_abi(result__))
31398        }
31399    }
31400    pub unsafe fn SetSaveAsFilePath<P0>(&self, value: P0) -> windows_core::Result<()>
31401    where
31402        P0: windows_core::Param<windows_core::PCWSTR>,
31403    {
31404        unsafe {
31405            (windows_core::Interface::vtable(self).SetSaveAsFilePath)(
31406                windows_core::Interface::as_raw(self),
31407                value.param().abi(),
31408            )
31409            .ok()
31410        }
31411    }
31412    pub unsafe fn SaveAsFilePath(
31413        &self,
31414        value: *mut windows_core::PWSTR,
31415    ) -> windows_core::Result<()> {
31416        unsafe {
31417            (windows_core::Interface::vtable(self).SaveAsFilePath)(
31418                windows_core::Interface::as_raw(self),
31419                value as _,
31420            )
31421            .ok()
31422        }
31423    }
31424    pub unsafe fn SetAllowReplace(&self, value: bool) -> windows_core::Result<()> {
31425        unsafe {
31426            (windows_core::Interface::vtable(self).SetAllowReplace)(
31427                windows_core::Interface::as_raw(self),
31428                value.into(),
31429            )
31430            .ok()
31431        }
31432    }
31433    pub unsafe fn AllowReplace(&self, value: *mut windows_core::BOOL) -> windows_core::Result<()> {
31434        unsafe {
31435            (windows_core::Interface::vtable(self).AllowReplace)(
31436                windows_core::Interface::as_raw(self),
31437                value as _,
31438            )
31439            .ok()
31440        }
31441    }
31442    pub unsafe fn SetKind(&self, value: COREWEBVIEW2_SAVE_AS_KIND) -> windows_core::Result<()> {
31443        unsafe {
31444            (windows_core::Interface::vtable(self).SetKind)(
31445                windows_core::Interface::as_raw(self),
31446                value,
31447            )
31448            .ok()
31449        }
31450    }
31451    pub unsafe fn Kind(&self, value: *mut COREWEBVIEW2_SAVE_AS_KIND) -> windows_core::Result<()> {
31452        unsafe {
31453            (windows_core::Interface::vtable(self).Kind)(
31454                windows_core::Interface::as_raw(self),
31455                value as _,
31456            )
31457            .ok()
31458        }
31459    }
31460}
31461#[repr(C)]
31462#[doc(hidden)]
31463pub struct ICoreWebView2SaveAsUIShowingEventArgs_Vtbl {
31464    pub base__: windows_core::IUnknown_Vtbl,
31465    pub ContentMimeType: unsafe extern "system" fn(
31466        *mut core::ffi::c_void,
31467        *mut windows_core::PWSTR,
31468    ) -> windows_core::HRESULT,
31469    pub SetCancel: unsafe extern "system" fn(
31470        *mut core::ffi::c_void,
31471        windows_core::BOOL,
31472    ) -> windows_core::HRESULT,
31473    pub Cancel: unsafe extern "system" fn(
31474        *mut core::ffi::c_void,
31475        *mut windows_core::BOOL,
31476    ) -> windows_core::HRESULT,
31477    pub SetSuppressDefaultDialog: unsafe extern "system" fn(
31478        *mut core::ffi::c_void,
31479        windows_core::BOOL,
31480    ) -> windows_core::HRESULT,
31481    pub SuppressDefaultDialog: unsafe extern "system" fn(
31482        *mut core::ffi::c_void,
31483        *mut windows_core::BOOL,
31484    ) -> windows_core::HRESULT,
31485    pub GetDeferral: unsafe extern "system" fn(
31486        *mut core::ffi::c_void,
31487        *mut *mut core::ffi::c_void,
31488    ) -> windows_core::HRESULT,
31489    pub SetSaveAsFilePath: unsafe extern "system" fn(
31490        *mut core::ffi::c_void,
31491        windows_core::PCWSTR,
31492    ) -> windows_core::HRESULT,
31493    pub SaveAsFilePath: unsafe extern "system" fn(
31494        *mut core::ffi::c_void,
31495        *mut windows_core::PWSTR,
31496    ) -> windows_core::HRESULT,
31497    pub SetAllowReplace: unsafe extern "system" fn(
31498        *mut core::ffi::c_void,
31499        windows_core::BOOL,
31500    ) -> windows_core::HRESULT,
31501    pub AllowReplace: unsafe extern "system" fn(
31502        *mut core::ffi::c_void,
31503        *mut windows_core::BOOL,
31504    ) -> windows_core::HRESULT,
31505    pub SetKind: unsafe extern "system" fn(
31506        *mut core::ffi::c_void,
31507        COREWEBVIEW2_SAVE_AS_KIND,
31508    ) -> windows_core::HRESULT,
31509    pub Kind: unsafe extern "system" fn(
31510        *mut core::ffi::c_void,
31511        *mut COREWEBVIEW2_SAVE_AS_KIND,
31512    ) -> windows_core::HRESULT,
31513}
31514pub trait ICoreWebView2SaveAsUIShowingEventArgs_Impl: windows_core::IUnknownImpl {
31515    fn ContentMimeType(&self, value: *mut windows_core::PWSTR) -> windows_core::Result<()>;
31516    fn SetCancel(&self, value: windows_core::BOOL) -> windows_core::Result<()>;
31517    fn Cancel(&self, value: *mut windows_core::BOOL) -> windows_core::Result<()>;
31518    fn SetSuppressDefaultDialog(&self, value: windows_core::BOOL) -> windows_core::Result<()>;
31519    fn SuppressDefaultDialog(&self, value: *mut windows_core::BOOL) -> windows_core::Result<()>;
31520    fn GetDeferral(&self) -> windows_core::Result<ICoreWebView2Deferral>;
31521    fn SetSaveAsFilePath(&self, value: &windows_core::PCWSTR) -> windows_core::Result<()>;
31522    fn SaveAsFilePath(&self, value: *mut windows_core::PWSTR) -> windows_core::Result<()>;
31523    fn SetAllowReplace(&self, value: windows_core::BOOL) -> windows_core::Result<()>;
31524    fn AllowReplace(&self, value: *mut windows_core::BOOL) -> windows_core::Result<()>;
31525    fn SetKind(&self, value: COREWEBVIEW2_SAVE_AS_KIND) -> windows_core::Result<()>;
31526    fn Kind(&self, value: *mut COREWEBVIEW2_SAVE_AS_KIND) -> windows_core::Result<()>;
31527}
31528impl ICoreWebView2SaveAsUIShowingEventArgs_Vtbl {
31529    pub const fn new<Identity: ICoreWebView2SaveAsUIShowingEventArgs_Impl, const OFFSET: isize>(
31530    ) -> Self {
31531        unsafe extern "system" fn ContentMimeType<
31532            Identity: ICoreWebView2SaveAsUIShowingEventArgs_Impl,
31533            const OFFSET: isize,
31534        >(
31535            this: *mut core::ffi::c_void,
31536            value: *mut windows_core::PWSTR,
31537        ) -> windows_core::HRESULT {
31538            unsafe {
31539                let this: &Identity =
31540                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
31541                ICoreWebView2SaveAsUIShowingEventArgs_Impl::ContentMimeType(
31542                    this,
31543                    core::mem::transmute_copy(&value),
31544                )
31545                .into()
31546            }
31547        }
31548        unsafe extern "system" fn SetCancel<
31549            Identity: ICoreWebView2SaveAsUIShowingEventArgs_Impl,
31550            const OFFSET: isize,
31551        >(
31552            this: *mut core::ffi::c_void,
31553            value: windows_core::BOOL,
31554        ) -> windows_core::HRESULT {
31555            unsafe {
31556                let this: &Identity =
31557                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
31558                ICoreWebView2SaveAsUIShowingEventArgs_Impl::SetCancel(
31559                    this,
31560                    core::mem::transmute_copy(&value),
31561                )
31562                .into()
31563            }
31564        }
31565        unsafe extern "system" fn Cancel<
31566            Identity: ICoreWebView2SaveAsUIShowingEventArgs_Impl,
31567            const OFFSET: isize,
31568        >(
31569            this: *mut core::ffi::c_void,
31570            value: *mut windows_core::BOOL,
31571        ) -> windows_core::HRESULT {
31572            unsafe {
31573                let this: &Identity =
31574                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
31575                ICoreWebView2SaveAsUIShowingEventArgs_Impl::Cancel(
31576                    this,
31577                    core::mem::transmute_copy(&value),
31578                )
31579                .into()
31580            }
31581        }
31582        unsafe extern "system" fn SetSuppressDefaultDialog<
31583            Identity: ICoreWebView2SaveAsUIShowingEventArgs_Impl,
31584            const OFFSET: isize,
31585        >(
31586            this: *mut core::ffi::c_void,
31587            value: windows_core::BOOL,
31588        ) -> windows_core::HRESULT {
31589            unsafe {
31590                let this: &Identity =
31591                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
31592                ICoreWebView2SaveAsUIShowingEventArgs_Impl::SetSuppressDefaultDialog(
31593                    this,
31594                    core::mem::transmute_copy(&value),
31595                )
31596                .into()
31597            }
31598        }
31599        unsafe extern "system" fn SuppressDefaultDialog<
31600            Identity: ICoreWebView2SaveAsUIShowingEventArgs_Impl,
31601            const OFFSET: isize,
31602        >(
31603            this: *mut core::ffi::c_void,
31604            value: *mut windows_core::BOOL,
31605        ) -> windows_core::HRESULT {
31606            unsafe {
31607                let this: &Identity =
31608                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
31609                ICoreWebView2SaveAsUIShowingEventArgs_Impl::SuppressDefaultDialog(
31610                    this,
31611                    core::mem::transmute_copy(&value),
31612                )
31613                .into()
31614            }
31615        }
31616        unsafe extern "system" fn GetDeferral<
31617            Identity: ICoreWebView2SaveAsUIShowingEventArgs_Impl,
31618            const OFFSET: isize,
31619        >(
31620            this: *mut core::ffi::c_void,
31621            value: *mut *mut core::ffi::c_void,
31622        ) -> windows_core::HRESULT {
31623            unsafe {
31624                let this: &Identity =
31625                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
31626                match ICoreWebView2SaveAsUIShowingEventArgs_Impl::GetDeferral(this) {
31627                    Ok(ok__) => {
31628                        value.write(core::mem::transmute(ok__));
31629                        windows_core::HRESULT(0)
31630                    }
31631                    Err(err) => err.into(),
31632                }
31633            }
31634        }
31635        unsafe extern "system" fn SetSaveAsFilePath<
31636            Identity: ICoreWebView2SaveAsUIShowingEventArgs_Impl,
31637            const OFFSET: isize,
31638        >(
31639            this: *mut core::ffi::c_void,
31640            value: windows_core::PCWSTR,
31641        ) -> windows_core::HRESULT {
31642            unsafe {
31643                let this: &Identity =
31644                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
31645                ICoreWebView2SaveAsUIShowingEventArgs_Impl::SetSaveAsFilePath(
31646                    this,
31647                    core::mem::transmute(&value),
31648                )
31649                .into()
31650            }
31651        }
31652        unsafe extern "system" fn SaveAsFilePath<
31653            Identity: ICoreWebView2SaveAsUIShowingEventArgs_Impl,
31654            const OFFSET: isize,
31655        >(
31656            this: *mut core::ffi::c_void,
31657            value: *mut windows_core::PWSTR,
31658        ) -> windows_core::HRESULT {
31659            unsafe {
31660                let this: &Identity =
31661                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
31662                ICoreWebView2SaveAsUIShowingEventArgs_Impl::SaveAsFilePath(
31663                    this,
31664                    core::mem::transmute_copy(&value),
31665                )
31666                .into()
31667            }
31668        }
31669        unsafe extern "system" fn SetAllowReplace<
31670            Identity: ICoreWebView2SaveAsUIShowingEventArgs_Impl,
31671            const OFFSET: isize,
31672        >(
31673            this: *mut core::ffi::c_void,
31674            value: windows_core::BOOL,
31675        ) -> windows_core::HRESULT {
31676            unsafe {
31677                let this: &Identity =
31678                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
31679                ICoreWebView2SaveAsUIShowingEventArgs_Impl::SetAllowReplace(
31680                    this,
31681                    core::mem::transmute_copy(&value),
31682                )
31683                .into()
31684            }
31685        }
31686        unsafe extern "system" fn AllowReplace<
31687            Identity: ICoreWebView2SaveAsUIShowingEventArgs_Impl,
31688            const OFFSET: isize,
31689        >(
31690            this: *mut core::ffi::c_void,
31691            value: *mut windows_core::BOOL,
31692        ) -> windows_core::HRESULT {
31693            unsafe {
31694                let this: &Identity =
31695                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
31696                ICoreWebView2SaveAsUIShowingEventArgs_Impl::AllowReplace(
31697                    this,
31698                    core::mem::transmute_copy(&value),
31699                )
31700                .into()
31701            }
31702        }
31703        unsafe extern "system" fn SetKind<
31704            Identity: ICoreWebView2SaveAsUIShowingEventArgs_Impl,
31705            const OFFSET: isize,
31706        >(
31707            this: *mut core::ffi::c_void,
31708            value: COREWEBVIEW2_SAVE_AS_KIND,
31709        ) -> windows_core::HRESULT {
31710            unsafe {
31711                let this: &Identity =
31712                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
31713                ICoreWebView2SaveAsUIShowingEventArgs_Impl::SetKind(
31714                    this,
31715                    core::mem::transmute_copy(&value),
31716                )
31717                .into()
31718            }
31719        }
31720        unsafe extern "system" fn Kind<
31721            Identity: ICoreWebView2SaveAsUIShowingEventArgs_Impl,
31722            const OFFSET: isize,
31723        >(
31724            this: *mut core::ffi::c_void,
31725            value: *mut COREWEBVIEW2_SAVE_AS_KIND,
31726        ) -> windows_core::HRESULT {
31727            unsafe {
31728                let this: &Identity =
31729                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
31730                ICoreWebView2SaveAsUIShowingEventArgs_Impl::Kind(
31731                    this,
31732                    core::mem::transmute_copy(&value),
31733                )
31734                .into()
31735            }
31736        }
31737        Self {
31738            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
31739            ContentMimeType: ContentMimeType::<Identity, OFFSET>,
31740            SetCancel: SetCancel::<Identity, OFFSET>,
31741            Cancel: Cancel::<Identity, OFFSET>,
31742            SetSuppressDefaultDialog: SetSuppressDefaultDialog::<Identity, OFFSET>,
31743            SuppressDefaultDialog: SuppressDefaultDialog::<Identity, OFFSET>,
31744            GetDeferral: GetDeferral::<Identity, OFFSET>,
31745            SetSaveAsFilePath: SetSaveAsFilePath::<Identity, OFFSET>,
31746            SaveAsFilePath: SaveAsFilePath::<Identity, OFFSET>,
31747            SetAllowReplace: SetAllowReplace::<Identity, OFFSET>,
31748            AllowReplace: AllowReplace::<Identity, OFFSET>,
31749            SetKind: SetKind::<Identity, OFFSET>,
31750            Kind: Kind::<Identity, OFFSET>,
31751        }
31752    }
31753    pub fn matches(iid: &windows_core::GUID) -> bool {
31754        iid == &<ICoreWebView2SaveAsUIShowingEventArgs as windows_core::Interface>::IID
31755    }
31756}
31757impl windows_core::RuntimeName for ICoreWebView2SaveAsUIShowingEventArgs {}
31758windows_core::imp::define_interface!(
31759    ICoreWebView2SaveAsUIShowingEventHandler,
31760    ICoreWebView2SaveAsUIShowingEventHandler_Vtbl,
31761    0x6baa177e_3a2e_5ccf_9a13_fad676cd0522
31762);
31763windows_core::imp::interface_hierarchy!(
31764    ICoreWebView2SaveAsUIShowingEventHandler,
31765    windows_core::IUnknown
31766);
31767impl ICoreWebView2SaveAsUIShowingEventHandler {
31768    pub unsafe fn Invoke<P0, P1>(&self, sender: P0, args: P1) -> windows_core::Result<()>
31769    where
31770        P0: windows_core::Param<ICoreWebView2>,
31771        P1: windows_core::Param<ICoreWebView2SaveAsUIShowingEventArgs>,
31772    {
31773        unsafe {
31774            (windows_core::Interface::vtable(self).Invoke)(
31775                windows_core::Interface::as_raw(self),
31776                sender.param().abi(),
31777                args.param().abi(),
31778            )
31779            .ok()
31780        }
31781    }
31782}
31783#[repr(C)]
31784#[doc(hidden)]
31785pub struct ICoreWebView2SaveAsUIShowingEventHandler_Vtbl {
31786    pub base__: windows_core::IUnknown_Vtbl,
31787    pub Invoke: unsafe extern "system" fn(
31788        *mut core::ffi::c_void,
31789        *mut core::ffi::c_void,
31790        *mut core::ffi::c_void,
31791    ) -> windows_core::HRESULT,
31792}
31793pub trait ICoreWebView2SaveAsUIShowingEventHandler_Impl: windows_core::IUnknownImpl {
31794    fn Invoke(
31795        &self,
31796        sender: windows_core::Ref<'_, ICoreWebView2>,
31797        args: windows_core::Ref<'_, ICoreWebView2SaveAsUIShowingEventArgs>,
31798    ) -> windows_core::Result<()>;
31799}
31800impl ICoreWebView2SaveAsUIShowingEventHandler_Vtbl {
31801    pub const fn new<
31802        Identity: ICoreWebView2SaveAsUIShowingEventHandler_Impl,
31803        const OFFSET: isize,
31804    >() -> Self {
31805        unsafe extern "system" fn Invoke<
31806            Identity: ICoreWebView2SaveAsUIShowingEventHandler_Impl,
31807            const OFFSET: isize,
31808        >(
31809            this: *mut core::ffi::c_void,
31810            sender: *mut core::ffi::c_void,
31811            args: *mut core::ffi::c_void,
31812        ) -> windows_core::HRESULT {
31813            unsafe {
31814                let this: &Identity =
31815                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
31816                ICoreWebView2SaveAsUIShowingEventHandler_Impl::Invoke(
31817                    this,
31818                    core::mem::transmute_copy(&sender),
31819                    core::mem::transmute_copy(&args),
31820                )
31821                .into()
31822            }
31823        }
31824        Self {
31825            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
31826            Invoke: Invoke::<Identity, OFFSET>,
31827        }
31828    }
31829    pub fn matches(iid: &windows_core::GUID) -> bool {
31830        iid == &<ICoreWebView2SaveAsUIShowingEventHandler as windows_core::Interface>::IID
31831    }
31832}
31833impl windows_core::RuntimeName for ICoreWebView2SaveAsUIShowingEventHandler {}
31834windows_core::imp::define_interface!(
31835    ICoreWebView2SaveFileSecurityCheckStartingEventArgs,
31836    ICoreWebView2SaveFileSecurityCheckStartingEventArgs_Vtbl,
31837    0xcf4ff1d1_5a67_5660_8d63_ef699881ea65
31838);
31839windows_core::imp::interface_hierarchy!(
31840    ICoreWebView2SaveFileSecurityCheckStartingEventArgs,
31841    windows_core::IUnknown
31842);
31843impl ICoreWebView2SaveFileSecurityCheckStartingEventArgs {
31844    pub unsafe fn CancelSave(&self, value: *mut windows_core::BOOL) -> windows_core::Result<()> {
31845        unsafe {
31846            (windows_core::Interface::vtable(self).CancelSave)(
31847                windows_core::Interface::as_raw(self),
31848                value as _,
31849            )
31850            .ok()
31851        }
31852    }
31853    pub unsafe fn SetCancelSave(&self, value: bool) -> windows_core::Result<()> {
31854        unsafe {
31855            (windows_core::Interface::vtable(self).SetCancelSave)(
31856                windows_core::Interface::as_raw(self),
31857                value.into(),
31858            )
31859            .ok()
31860        }
31861    }
31862    pub unsafe fn DocumentOriginUri(
31863        &self,
31864        value: *mut windows_core::PWSTR,
31865    ) -> windows_core::Result<()> {
31866        unsafe {
31867            (windows_core::Interface::vtable(self).DocumentOriginUri)(
31868                windows_core::Interface::as_raw(self),
31869                value as _,
31870            )
31871            .ok()
31872        }
31873    }
31874    pub unsafe fn FileExtension(
31875        &self,
31876        value: *mut windows_core::PWSTR,
31877    ) -> windows_core::Result<()> {
31878        unsafe {
31879            (windows_core::Interface::vtable(self).FileExtension)(
31880                windows_core::Interface::as_raw(self),
31881                value as _,
31882            )
31883            .ok()
31884        }
31885    }
31886    pub unsafe fn FilePath(&self, value: *mut windows_core::PWSTR) -> windows_core::Result<()> {
31887        unsafe {
31888            (windows_core::Interface::vtable(self).FilePath)(
31889                windows_core::Interface::as_raw(self),
31890                value as _,
31891            )
31892            .ok()
31893        }
31894    }
31895    pub unsafe fn SuppressDefaultPolicy(
31896        &self,
31897        value: *mut windows_core::BOOL,
31898    ) -> windows_core::Result<()> {
31899        unsafe {
31900            (windows_core::Interface::vtable(self).SuppressDefaultPolicy)(
31901                windows_core::Interface::as_raw(self),
31902                value as _,
31903            )
31904            .ok()
31905        }
31906    }
31907    pub unsafe fn SetSuppressDefaultPolicy(&self, value: bool) -> windows_core::Result<()> {
31908        unsafe {
31909            (windows_core::Interface::vtable(self).SetSuppressDefaultPolicy)(
31910                windows_core::Interface::as_raw(self),
31911                value.into(),
31912            )
31913            .ok()
31914        }
31915    }
31916    pub unsafe fn GetDeferral(&self) -> windows_core::Result<ICoreWebView2Deferral> {
31917        unsafe {
31918            let mut result__ = core::mem::zeroed();
31919            (windows_core::Interface::vtable(self).GetDeferral)(
31920                windows_core::Interface::as_raw(self),
31921                &mut result__,
31922            )
31923            .and_then(|| windows_core::Type::from_abi(result__))
31924        }
31925    }
31926}
31927#[repr(C)]
31928#[doc(hidden)]
31929pub struct ICoreWebView2SaveFileSecurityCheckStartingEventArgs_Vtbl {
31930    pub base__: windows_core::IUnknown_Vtbl,
31931    pub CancelSave: unsafe extern "system" fn(
31932        *mut core::ffi::c_void,
31933        *mut windows_core::BOOL,
31934    ) -> windows_core::HRESULT,
31935    pub SetCancelSave: unsafe extern "system" fn(
31936        *mut core::ffi::c_void,
31937        windows_core::BOOL,
31938    ) -> windows_core::HRESULT,
31939    pub DocumentOriginUri: unsafe extern "system" fn(
31940        *mut core::ffi::c_void,
31941        *mut windows_core::PWSTR,
31942    ) -> windows_core::HRESULT,
31943    pub FileExtension: unsafe extern "system" fn(
31944        *mut core::ffi::c_void,
31945        *mut windows_core::PWSTR,
31946    ) -> windows_core::HRESULT,
31947    pub FilePath: unsafe extern "system" fn(
31948        *mut core::ffi::c_void,
31949        *mut windows_core::PWSTR,
31950    ) -> windows_core::HRESULT,
31951    pub SuppressDefaultPolicy: unsafe extern "system" fn(
31952        *mut core::ffi::c_void,
31953        *mut windows_core::BOOL,
31954    ) -> windows_core::HRESULT,
31955    pub SetSuppressDefaultPolicy: unsafe extern "system" fn(
31956        *mut core::ffi::c_void,
31957        windows_core::BOOL,
31958    ) -> windows_core::HRESULT,
31959    pub GetDeferral: unsafe extern "system" fn(
31960        *mut core::ffi::c_void,
31961        *mut *mut core::ffi::c_void,
31962    ) -> windows_core::HRESULT,
31963}
31964pub trait ICoreWebView2SaveFileSecurityCheckStartingEventArgs_Impl:
31965    windows_core::IUnknownImpl
31966{
31967    fn CancelSave(&self, value: *mut windows_core::BOOL) -> windows_core::Result<()>;
31968    fn SetCancelSave(&self, value: windows_core::BOOL) -> windows_core::Result<()>;
31969    fn DocumentOriginUri(&self, value: *mut windows_core::PWSTR) -> windows_core::Result<()>;
31970    fn FileExtension(&self, value: *mut windows_core::PWSTR) -> windows_core::Result<()>;
31971    fn FilePath(&self, value: *mut windows_core::PWSTR) -> windows_core::Result<()>;
31972    fn SuppressDefaultPolicy(&self, value: *mut windows_core::BOOL) -> windows_core::Result<()>;
31973    fn SetSuppressDefaultPolicy(&self, value: windows_core::BOOL) -> windows_core::Result<()>;
31974    fn GetDeferral(&self) -> windows_core::Result<ICoreWebView2Deferral>;
31975}
31976impl ICoreWebView2SaveFileSecurityCheckStartingEventArgs_Vtbl {
31977    pub const fn new<
31978        Identity: ICoreWebView2SaveFileSecurityCheckStartingEventArgs_Impl,
31979        const OFFSET: isize,
31980    >() -> Self {
31981        unsafe extern "system" fn CancelSave<
31982            Identity: ICoreWebView2SaveFileSecurityCheckStartingEventArgs_Impl,
31983            const OFFSET: isize,
31984        >(
31985            this: *mut core::ffi::c_void,
31986            value: *mut windows_core::BOOL,
31987        ) -> windows_core::HRESULT {
31988            unsafe {
31989                let this: &Identity =
31990                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
31991                ICoreWebView2SaveFileSecurityCheckStartingEventArgs_Impl::CancelSave(
31992                    this,
31993                    core::mem::transmute_copy(&value),
31994                )
31995                .into()
31996            }
31997        }
31998        unsafe extern "system" fn SetCancelSave<
31999            Identity: ICoreWebView2SaveFileSecurityCheckStartingEventArgs_Impl,
32000            const OFFSET: isize,
32001        >(
32002            this: *mut core::ffi::c_void,
32003            value: windows_core::BOOL,
32004        ) -> windows_core::HRESULT {
32005            unsafe {
32006                let this: &Identity =
32007                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
32008                ICoreWebView2SaveFileSecurityCheckStartingEventArgs_Impl::SetCancelSave(
32009                    this,
32010                    core::mem::transmute_copy(&value),
32011                )
32012                .into()
32013            }
32014        }
32015        unsafe extern "system" fn DocumentOriginUri<
32016            Identity: ICoreWebView2SaveFileSecurityCheckStartingEventArgs_Impl,
32017            const OFFSET: isize,
32018        >(
32019            this: *mut core::ffi::c_void,
32020            value: *mut windows_core::PWSTR,
32021        ) -> windows_core::HRESULT {
32022            unsafe {
32023                let this: &Identity =
32024                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
32025                ICoreWebView2SaveFileSecurityCheckStartingEventArgs_Impl::DocumentOriginUri(
32026                    this,
32027                    core::mem::transmute_copy(&value),
32028                )
32029                .into()
32030            }
32031        }
32032        unsafe extern "system" fn FileExtension<
32033            Identity: ICoreWebView2SaveFileSecurityCheckStartingEventArgs_Impl,
32034            const OFFSET: isize,
32035        >(
32036            this: *mut core::ffi::c_void,
32037            value: *mut windows_core::PWSTR,
32038        ) -> windows_core::HRESULT {
32039            unsafe {
32040                let this: &Identity =
32041                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
32042                ICoreWebView2SaveFileSecurityCheckStartingEventArgs_Impl::FileExtension(
32043                    this,
32044                    core::mem::transmute_copy(&value),
32045                )
32046                .into()
32047            }
32048        }
32049        unsafe extern "system" fn FilePath<
32050            Identity: ICoreWebView2SaveFileSecurityCheckStartingEventArgs_Impl,
32051            const OFFSET: isize,
32052        >(
32053            this: *mut core::ffi::c_void,
32054            value: *mut windows_core::PWSTR,
32055        ) -> windows_core::HRESULT {
32056            unsafe {
32057                let this: &Identity =
32058                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
32059                ICoreWebView2SaveFileSecurityCheckStartingEventArgs_Impl::FilePath(
32060                    this,
32061                    core::mem::transmute_copy(&value),
32062                )
32063                .into()
32064            }
32065        }
32066        unsafe extern "system" fn SuppressDefaultPolicy<
32067            Identity: ICoreWebView2SaveFileSecurityCheckStartingEventArgs_Impl,
32068            const OFFSET: isize,
32069        >(
32070            this: *mut core::ffi::c_void,
32071            value: *mut windows_core::BOOL,
32072        ) -> windows_core::HRESULT {
32073            unsafe {
32074                let this: &Identity =
32075                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
32076                ICoreWebView2SaveFileSecurityCheckStartingEventArgs_Impl::SuppressDefaultPolicy(
32077                    this,
32078                    core::mem::transmute_copy(&value),
32079                )
32080                .into()
32081            }
32082        }
32083        unsafe extern "system" fn SetSuppressDefaultPolicy<
32084            Identity: ICoreWebView2SaveFileSecurityCheckStartingEventArgs_Impl,
32085            const OFFSET: isize,
32086        >(
32087            this: *mut core::ffi::c_void,
32088            value: windows_core::BOOL,
32089        ) -> windows_core::HRESULT {
32090            unsafe {
32091                let this: &Identity =
32092                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
32093                ICoreWebView2SaveFileSecurityCheckStartingEventArgs_Impl::SetSuppressDefaultPolicy(
32094                    this,
32095                    core::mem::transmute_copy(&value),
32096                )
32097                .into()
32098            }
32099        }
32100        unsafe extern "system" fn GetDeferral<
32101            Identity: ICoreWebView2SaveFileSecurityCheckStartingEventArgs_Impl,
32102            const OFFSET: isize,
32103        >(
32104            this: *mut core::ffi::c_void,
32105            value: *mut *mut core::ffi::c_void,
32106        ) -> windows_core::HRESULT {
32107            unsafe {
32108                let this: &Identity =
32109                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
32110                match ICoreWebView2SaveFileSecurityCheckStartingEventArgs_Impl::GetDeferral(this) {
32111                    Ok(ok__) => {
32112                        value.write(core::mem::transmute(ok__));
32113                        windows_core::HRESULT(0)
32114                    }
32115                    Err(err) => err.into(),
32116                }
32117            }
32118        }
32119        Self {
32120            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
32121            CancelSave: CancelSave::<Identity, OFFSET>,
32122            SetCancelSave: SetCancelSave::<Identity, OFFSET>,
32123            DocumentOriginUri: DocumentOriginUri::<Identity, OFFSET>,
32124            FileExtension: FileExtension::<Identity, OFFSET>,
32125            FilePath: FilePath::<Identity, OFFSET>,
32126            SuppressDefaultPolicy: SuppressDefaultPolicy::<Identity, OFFSET>,
32127            SetSuppressDefaultPolicy: SetSuppressDefaultPolicy::<Identity, OFFSET>,
32128            GetDeferral: GetDeferral::<Identity, OFFSET>,
32129        }
32130    }
32131    pub fn matches(iid: &windows_core::GUID) -> bool {
32132        iid == & < ICoreWebView2SaveFileSecurityCheckStartingEventArgs as windows_core::Interface >::IID
32133    }
32134}
32135impl windows_core::RuntimeName for ICoreWebView2SaveFileSecurityCheckStartingEventArgs {}
32136windows_core::imp::define_interface!(
32137    ICoreWebView2SaveFileSecurityCheckStartingEventHandler,
32138    ICoreWebView2SaveFileSecurityCheckStartingEventHandler_Vtbl,
32139    0x7899576c_19e3_57c8_b7d1_55808292de57
32140);
32141windows_core::imp::interface_hierarchy!(
32142    ICoreWebView2SaveFileSecurityCheckStartingEventHandler,
32143    windows_core::IUnknown
32144);
32145impl ICoreWebView2SaveFileSecurityCheckStartingEventHandler {
32146    pub unsafe fn Invoke<P0, P1>(&self, sender: P0, args: P1) -> windows_core::Result<()>
32147    where
32148        P0: windows_core::Param<ICoreWebView2>,
32149        P1: windows_core::Param<ICoreWebView2SaveFileSecurityCheckStartingEventArgs>,
32150    {
32151        unsafe {
32152            (windows_core::Interface::vtable(self).Invoke)(
32153                windows_core::Interface::as_raw(self),
32154                sender.param().abi(),
32155                args.param().abi(),
32156            )
32157            .ok()
32158        }
32159    }
32160}
32161#[repr(C)]
32162#[doc(hidden)]
32163pub struct ICoreWebView2SaveFileSecurityCheckStartingEventHandler_Vtbl {
32164    pub base__: windows_core::IUnknown_Vtbl,
32165    pub Invoke: unsafe extern "system" fn(
32166        *mut core::ffi::c_void,
32167        *mut core::ffi::c_void,
32168        *mut core::ffi::c_void,
32169    ) -> windows_core::HRESULT,
32170}
32171pub trait ICoreWebView2SaveFileSecurityCheckStartingEventHandler_Impl:
32172    windows_core::IUnknownImpl
32173{
32174    fn Invoke(
32175        &self,
32176        sender: windows_core::Ref<'_, ICoreWebView2>,
32177        args: windows_core::Ref<'_, ICoreWebView2SaveFileSecurityCheckStartingEventArgs>,
32178    ) -> windows_core::Result<()>;
32179}
32180impl ICoreWebView2SaveFileSecurityCheckStartingEventHandler_Vtbl {
32181    pub const fn new<
32182        Identity: ICoreWebView2SaveFileSecurityCheckStartingEventHandler_Impl,
32183        const OFFSET: isize,
32184    >() -> Self {
32185        unsafe extern "system" fn Invoke<
32186            Identity: ICoreWebView2SaveFileSecurityCheckStartingEventHandler_Impl,
32187            const OFFSET: isize,
32188        >(
32189            this: *mut core::ffi::c_void,
32190            sender: *mut core::ffi::c_void,
32191            args: *mut core::ffi::c_void,
32192        ) -> windows_core::HRESULT {
32193            unsafe {
32194                let this: &Identity =
32195                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
32196                ICoreWebView2SaveFileSecurityCheckStartingEventHandler_Impl::Invoke(
32197                    this,
32198                    core::mem::transmute_copy(&sender),
32199                    core::mem::transmute_copy(&args),
32200                )
32201                .into()
32202            }
32203        }
32204        Self {
32205            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
32206            Invoke: Invoke::<Identity, OFFSET>,
32207        }
32208    }
32209    pub fn matches(iid: &windows_core::GUID) -> bool {
32210        iid == & < ICoreWebView2SaveFileSecurityCheckStartingEventHandler as windows_core::Interface >::IID
32211    }
32212}
32213impl windows_core::RuntimeName for ICoreWebView2SaveFileSecurityCheckStartingEventHandler {}
32214windows_core::imp::define_interface!(
32215    ICoreWebView2ScreenCaptureStartingEventArgs,
32216    ICoreWebView2ScreenCaptureStartingEventArgs_Vtbl,
32217    0x892c03fd_aee3_5eba_a1fa_6fd2f6484b2b
32218);
32219windows_core::imp::interface_hierarchy!(
32220    ICoreWebView2ScreenCaptureStartingEventArgs,
32221    windows_core::IUnknown
32222);
32223impl ICoreWebView2ScreenCaptureStartingEventArgs {
32224    pub unsafe fn Cancel(&self, value: *mut windows_core::BOOL) -> windows_core::Result<()> {
32225        unsafe {
32226            (windows_core::Interface::vtable(self).Cancel)(
32227                windows_core::Interface::as_raw(self),
32228                value as _,
32229            )
32230            .ok()
32231        }
32232    }
32233    pub unsafe fn SetCancel(&self, value: bool) -> windows_core::Result<()> {
32234        unsafe {
32235            (windows_core::Interface::vtable(self).SetCancel)(
32236                windows_core::Interface::as_raw(self),
32237                value.into(),
32238            )
32239            .ok()
32240        }
32241    }
32242    pub unsafe fn Handled(&self, value: *mut windows_core::BOOL) -> windows_core::Result<()> {
32243        unsafe {
32244            (windows_core::Interface::vtable(self).Handled)(
32245                windows_core::Interface::as_raw(self),
32246                value as _,
32247            )
32248            .ok()
32249        }
32250    }
32251    pub unsafe fn SetHandled(&self, value: bool) -> windows_core::Result<()> {
32252        unsafe {
32253            (windows_core::Interface::vtable(self).SetHandled)(
32254                windows_core::Interface::as_raw(self),
32255                value.into(),
32256            )
32257            .ok()
32258        }
32259    }
32260    pub unsafe fn OriginalSourceFrameInfo(&self) -> windows_core::Result<ICoreWebView2FrameInfo> {
32261        unsafe {
32262            let mut result__ = core::mem::zeroed();
32263            (windows_core::Interface::vtable(self).OriginalSourceFrameInfo)(
32264                windows_core::Interface::as_raw(self),
32265                &mut result__,
32266            )
32267            .and_then(|| windows_core::Type::from_abi(result__))
32268        }
32269    }
32270    pub unsafe fn GetDeferral(&self) -> windows_core::Result<ICoreWebView2Deferral> {
32271        unsafe {
32272            let mut result__ = core::mem::zeroed();
32273            (windows_core::Interface::vtable(self).GetDeferral)(
32274                windows_core::Interface::as_raw(self),
32275                &mut result__,
32276            )
32277            .and_then(|| windows_core::Type::from_abi(result__))
32278        }
32279    }
32280}
32281#[repr(C)]
32282#[doc(hidden)]
32283pub struct ICoreWebView2ScreenCaptureStartingEventArgs_Vtbl {
32284    pub base__: windows_core::IUnknown_Vtbl,
32285    pub Cancel: unsafe extern "system" fn(
32286        *mut core::ffi::c_void,
32287        *mut windows_core::BOOL,
32288    ) -> windows_core::HRESULT,
32289    pub SetCancel: unsafe extern "system" fn(
32290        *mut core::ffi::c_void,
32291        windows_core::BOOL,
32292    ) -> windows_core::HRESULT,
32293    pub Handled: unsafe extern "system" fn(
32294        *mut core::ffi::c_void,
32295        *mut windows_core::BOOL,
32296    ) -> windows_core::HRESULT,
32297    pub SetHandled: unsafe extern "system" fn(
32298        *mut core::ffi::c_void,
32299        windows_core::BOOL,
32300    ) -> windows_core::HRESULT,
32301    pub OriginalSourceFrameInfo: unsafe extern "system" fn(
32302        *mut core::ffi::c_void,
32303        *mut *mut core::ffi::c_void,
32304    ) -> windows_core::HRESULT,
32305    pub GetDeferral: unsafe extern "system" fn(
32306        *mut core::ffi::c_void,
32307        *mut *mut core::ffi::c_void,
32308    ) -> windows_core::HRESULT,
32309}
32310pub trait ICoreWebView2ScreenCaptureStartingEventArgs_Impl: windows_core::IUnknownImpl {
32311    fn Cancel(&self, value: *mut windows_core::BOOL) -> windows_core::Result<()>;
32312    fn SetCancel(&self, value: windows_core::BOOL) -> windows_core::Result<()>;
32313    fn Handled(&self, value: *mut windows_core::BOOL) -> windows_core::Result<()>;
32314    fn SetHandled(&self, value: windows_core::BOOL) -> windows_core::Result<()>;
32315    fn OriginalSourceFrameInfo(&self) -> windows_core::Result<ICoreWebView2FrameInfo>;
32316    fn GetDeferral(&self) -> windows_core::Result<ICoreWebView2Deferral>;
32317}
32318impl ICoreWebView2ScreenCaptureStartingEventArgs_Vtbl {
32319    pub const fn new<
32320        Identity: ICoreWebView2ScreenCaptureStartingEventArgs_Impl,
32321        const OFFSET: isize,
32322    >() -> Self {
32323        unsafe extern "system" fn Cancel<
32324            Identity: ICoreWebView2ScreenCaptureStartingEventArgs_Impl,
32325            const OFFSET: isize,
32326        >(
32327            this: *mut core::ffi::c_void,
32328            value: *mut windows_core::BOOL,
32329        ) -> windows_core::HRESULT {
32330            unsafe {
32331                let this: &Identity =
32332                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
32333                ICoreWebView2ScreenCaptureStartingEventArgs_Impl::Cancel(
32334                    this,
32335                    core::mem::transmute_copy(&value),
32336                )
32337                .into()
32338            }
32339        }
32340        unsafe extern "system" fn SetCancel<
32341            Identity: ICoreWebView2ScreenCaptureStartingEventArgs_Impl,
32342            const OFFSET: isize,
32343        >(
32344            this: *mut core::ffi::c_void,
32345            value: windows_core::BOOL,
32346        ) -> windows_core::HRESULT {
32347            unsafe {
32348                let this: &Identity =
32349                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
32350                ICoreWebView2ScreenCaptureStartingEventArgs_Impl::SetCancel(
32351                    this,
32352                    core::mem::transmute_copy(&value),
32353                )
32354                .into()
32355            }
32356        }
32357        unsafe extern "system" fn Handled<
32358            Identity: ICoreWebView2ScreenCaptureStartingEventArgs_Impl,
32359            const OFFSET: isize,
32360        >(
32361            this: *mut core::ffi::c_void,
32362            value: *mut windows_core::BOOL,
32363        ) -> windows_core::HRESULT {
32364            unsafe {
32365                let this: &Identity =
32366                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
32367                ICoreWebView2ScreenCaptureStartingEventArgs_Impl::Handled(
32368                    this,
32369                    core::mem::transmute_copy(&value),
32370                )
32371                .into()
32372            }
32373        }
32374        unsafe extern "system" fn SetHandled<
32375            Identity: ICoreWebView2ScreenCaptureStartingEventArgs_Impl,
32376            const OFFSET: isize,
32377        >(
32378            this: *mut core::ffi::c_void,
32379            value: windows_core::BOOL,
32380        ) -> windows_core::HRESULT {
32381            unsafe {
32382                let this: &Identity =
32383                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
32384                ICoreWebView2ScreenCaptureStartingEventArgs_Impl::SetHandled(
32385                    this,
32386                    core::mem::transmute_copy(&value),
32387                )
32388                .into()
32389            }
32390        }
32391        unsafe extern "system" fn OriginalSourceFrameInfo<
32392            Identity: ICoreWebView2ScreenCaptureStartingEventArgs_Impl,
32393            const OFFSET: isize,
32394        >(
32395            this: *mut core::ffi::c_void,
32396            value: *mut *mut core::ffi::c_void,
32397        ) -> windows_core::HRESULT {
32398            unsafe {
32399                let this: &Identity =
32400                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
32401                match ICoreWebView2ScreenCaptureStartingEventArgs_Impl::OriginalSourceFrameInfo(
32402                    this,
32403                ) {
32404                    Ok(ok__) => {
32405                        value.write(core::mem::transmute(ok__));
32406                        windows_core::HRESULT(0)
32407                    }
32408                    Err(err) => err.into(),
32409                }
32410            }
32411        }
32412        unsafe extern "system" fn GetDeferral<
32413            Identity: ICoreWebView2ScreenCaptureStartingEventArgs_Impl,
32414            const OFFSET: isize,
32415        >(
32416            this: *mut core::ffi::c_void,
32417            value: *mut *mut core::ffi::c_void,
32418        ) -> windows_core::HRESULT {
32419            unsafe {
32420                let this: &Identity =
32421                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
32422                match ICoreWebView2ScreenCaptureStartingEventArgs_Impl::GetDeferral(this) {
32423                    Ok(ok__) => {
32424                        value.write(core::mem::transmute(ok__));
32425                        windows_core::HRESULT(0)
32426                    }
32427                    Err(err) => err.into(),
32428                }
32429            }
32430        }
32431        Self {
32432            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
32433            Cancel: Cancel::<Identity, OFFSET>,
32434            SetCancel: SetCancel::<Identity, OFFSET>,
32435            Handled: Handled::<Identity, OFFSET>,
32436            SetHandled: SetHandled::<Identity, OFFSET>,
32437            OriginalSourceFrameInfo: OriginalSourceFrameInfo::<Identity, OFFSET>,
32438            GetDeferral: GetDeferral::<Identity, OFFSET>,
32439        }
32440    }
32441    pub fn matches(iid: &windows_core::GUID) -> bool {
32442        iid == &<ICoreWebView2ScreenCaptureStartingEventArgs as windows_core::Interface>::IID
32443    }
32444}
32445impl windows_core::RuntimeName for ICoreWebView2ScreenCaptureStartingEventArgs {}
32446windows_core::imp::define_interface!(
32447    ICoreWebView2ScreenCaptureStartingEventHandler,
32448    ICoreWebView2ScreenCaptureStartingEventHandler_Vtbl,
32449    0xe24ff05a_1db5_59d9_89f3_3c864268db4a
32450);
32451windows_core::imp::interface_hierarchy!(
32452    ICoreWebView2ScreenCaptureStartingEventHandler,
32453    windows_core::IUnknown
32454);
32455impl ICoreWebView2ScreenCaptureStartingEventHandler {
32456    pub unsafe fn Invoke<P0, P1>(&self, sender: P0, args: P1) -> windows_core::Result<()>
32457    where
32458        P0: windows_core::Param<ICoreWebView2>,
32459        P1: windows_core::Param<ICoreWebView2ScreenCaptureStartingEventArgs>,
32460    {
32461        unsafe {
32462            (windows_core::Interface::vtable(self).Invoke)(
32463                windows_core::Interface::as_raw(self),
32464                sender.param().abi(),
32465                args.param().abi(),
32466            )
32467            .ok()
32468        }
32469    }
32470}
32471#[repr(C)]
32472#[doc(hidden)]
32473pub struct ICoreWebView2ScreenCaptureStartingEventHandler_Vtbl {
32474    pub base__: windows_core::IUnknown_Vtbl,
32475    pub Invoke: unsafe extern "system" fn(
32476        *mut core::ffi::c_void,
32477        *mut core::ffi::c_void,
32478        *mut core::ffi::c_void,
32479    ) -> windows_core::HRESULT,
32480}
32481pub trait ICoreWebView2ScreenCaptureStartingEventHandler_Impl: windows_core::IUnknownImpl {
32482    fn Invoke(
32483        &self,
32484        sender: windows_core::Ref<'_, ICoreWebView2>,
32485        args: windows_core::Ref<'_, ICoreWebView2ScreenCaptureStartingEventArgs>,
32486    ) -> windows_core::Result<()>;
32487}
32488impl ICoreWebView2ScreenCaptureStartingEventHandler_Vtbl {
32489    pub const fn new<
32490        Identity: ICoreWebView2ScreenCaptureStartingEventHandler_Impl,
32491        const OFFSET: isize,
32492    >() -> Self {
32493        unsafe extern "system" fn Invoke<
32494            Identity: ICoreWebView2ScreenCaptureStartingEventHandler_Impl,
32495            const OFFSET: isize,
32496        >(
32497            this: *mut core::ffi::c_void,
32498            sender: *mut core::ffi::c_void,
32499            args: *mut core::ffi::c_void,
32500        ) -> windows_core::HRESULT {
32501            unsafe {
32502                let this: &Identity =
32503                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
32504                ICoreWebView2ScreenCaptureStartingEventHandler_Impl::Invoke(
32505                    this,
32506                    core::mem::transmute_copy(&sender),
32507                    core::mem::transmute_copy(&args),
32508                )
32509                .into()
32510            }
32511        }
32512        Self {
32513            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
32514            Invoke: Invoke::<Identity, OFFSET>,
32515        }
32516    }
32517    pub fn matches(iid: &windows_core::GUID) -> bool {
32518        iid == &<ICoreWebView2ScreenCaptureStartingEventHandler as windows_core::Interface>::IID
32519    }
32520}
32521impl windows_core::RuntimeName for ICoreWebView2ScreenCaptureStartingEventHandler {}
32522windows_core::imp::define_interface!(
32523    ICoreWebView2ScriptDialogOpeningEventArgs,
32524    ICoreWebView2ScriptDialogOpeningEventArgs_Vtbl,
32525    0x7390bb70_abe0_4843_9529_f143b31b03d6
32526);
32527windows_core::imp::interface_hierarchy!(
32528    ICoreWebView2ScriptDialogOpeningEventArgs,
32529    windows_core::IUnknown
32530);
32531impl ICoreWebView2ScriptDialogOpeningEventArgs {
32532    pub unsafe fn Uri(&self, uri: *mut windows_core::PWSTR) -> windows_core::Result<()> {
32533        unsafe {
32534            (windows_core::Interface::vtable(self).Uri)(
32535                windows_core::Interface::as_raw(self),
32536                uri as _,
32537            )
32538            .ok()
32539        }
32540    }
32541    pub unsafe fn Kind(
32542        &self,
32543        kind: *mut COREWEBVIEW2_SCRIPT_DIALOG_KIND,
32544    ) -> windows_core::Result<()> {
32545        unsafe {
32546            (windows_core::Interface::vtable(self).Kind)(
32547                windows_core::Interface::as_raw(self),
32548                kind as _,
32549            )
32550            .ok()
32551        }
32552    }
32553    pub unsafe fn Message(&self, message: *mut windows_core::PWSTR) -> windows_core::Result<()> {
32554        unsafe {
32555            (windows_core::Interface::vtable(self).Message)(
32556                windows_core::Interface::as_raw(self),
32557                message as _,
32558            )
32559            .ok()
32560        }
32561    }
32562    pub unsafe fn Accept(&self) -> windows_core::Result<()> {
32563        unsafe {
32564            (windows_core::Interface::vtable(self).Accept)(windows_core::Interface::as_raw(self))
32565                .ok()
32566        }
32567    }
32568    pub unsafe fn DefaultText(
32569        &self,
32570        defaulttext: *mut windows_core::PWSTR,
32571    ) -> windows_core::Result<()> {
32572        unsafe {
32573            (windows_core::Interface::vtable(self).DefaultText)(
32574                windows_core::Interface::as_raw(self),
32575                defaulttext as _,
32576            )
32577            .ok()
32578        }
32579    }
32580    pub unsafe fn ResultText(
32581        &self,
32582        resulttext: *mut windows_core::PWSTR,
32583    ) -> windows_core::Result<()> {
32584        unsafe {
32585            (windows_core::Interface::vtable(self).ResultText)(
32586                windows_core::Interface::as_raw(self),
32587                resulttext as _,
32588            )
32589            .ok()
32590        }
32591    }
32592    pub unsafe fn SetResultText<P0>(&self, resulttext: P0) -> windows_core::Result<()>
32593    where
32594        P0: windows_core::Param<windows_core::PCWSTR>,
32595    {
32596        unsafe {
32597            (windows_core::Interface::vtable(self).SetResultText)(
32598                windows_core::Interface::as_raw(self),
32599                resulttext.param().abi(),
32600            )
32601            .ok()
32602        }
32603    }
32604    pub unsafe fn GetDeferral(&self) -> windows_core::Result<ICoreWebView2Deferral> {
32605        unsafe {
32606            let mut result__ = core::mem::zeroed();
32607            (windows_core::Interface::vtable(self).GetDeferral)(
32608                windows_core::Interface::as_raw(self),
32609                &mut result__,
32610            )
32611            .and_then(|| windows_core::Type::from_abi(result__))
32612        }
32613    }
32614}
32615#[repr(C)]
32616#[doc(hidden)]
32617pub struct ICoreWebView2ScriptDialogOpeningEventArgs_Vtbl {
32618    pub base__: windows_core::IUnknown_Vtbl,
32619    pub Uri: unsafe extern "system" fn(
32620        *mut core::ffi::c_void,
32621        *mut windows_core::PWSTR,
32622    ) -> windows_core::HRESULT,
32623    pub Kind: unsafe extern "system" fn(
32624        *mut core::ffi::c_void,
32625        *mut COREWEBVIEW2_SCRIPT_DIALOG_KIND,
32626    ) -> windows_core::HRESULT,
32627    pub Message: unsafe extern "system" fn(
32628        *mut core::ffi::c_void,
32629        *mut windows_core::PWSTR,
32630    ) -> windows_core::HRESULT,
32631    pub Accept: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
32632    pub DefaultText: unsafe extern "system" fn(
32633        *mut core::ffi::c_void,
32634        *mut windows_core::PWSTR,
32635    ) -> windows_core::HRESULT,
32636    pub ResultText: unsafe extern "system" fn(
32637        *mut core::ffi::c_void,
32638        *mut windows_core::PWSTR,
32639    ) -> windows_core::HRESULT,
32640    pub SetResultText: unsafe extern "system" fn(
32641        *mut core::ffi::c_void,
32642        windows_core::PCWSTR,
32643    ) -> windows_core::HRESULT,
32644    pub GetDeferral: unsafe extern "system" fn(
32645        *mut core::ffi::c_void,
32646        *mut *mut core::ffi::c_void,
32647    ) -> windows_core::HRESULT,
32648}
32649pub trait ICoreWebView2ScriptDialogOpeningEventArgs_Impl: windows_core::IUnknownImpl {
32650    fn Uri(&self, uri: *mut windows_core::PWSTR) -> windows_core::Result<()>;
32651    fn Kind(&self, kind: *mut COREWEBVIEW2_SCRIPT_DIALOG_KIND) -> windows_core::Result<()>;
32652    fn Message(&self, message: *mut windows_core::PWSTR) -> windows_core::Result<()>;
32653    fn Accept(&self) -> windows_core::Result<()>;
32654    fn DefaultText(&self, defaulttext: *mut windows_core::PWSTR) -> windows_core::Result<()>;
32655    fn ResultText(&self, resulttext: *mut windows_core::PWSTR) -> windows_core::Result<()>;
32656    fn SetResultText(&self, resulttext: &windows_core::PCWSTR) -> windows_core::Result<()>;
32657    fn GetDeferral(&self) -> windows_core::Result<ICoreWebView2Deferral>;
32658}
32659impl ICoreWebView2ScriptDialogOpeningEventArgs_Vtbl {
32660    pub const fn new<
32661        Identity: ICoreWebView2ScriptDialogOpeningEventArgs_Impl,
32662        const OFFSET: isize,
32663    >() -> Self {
32664        unsafe extern "system" fn Uri<
32665            Identity: ICoreWebView2ScriptDialogOpeningEventArgs_Impl,
32666            const OFFSET: isize,
32667        >(
32668            this: *mut core::ffi::c_void,
32669            uri: *mut windows_core::PWSTR,
32670        ) -> windows_core::HRESULT {
32671            unsafe {
32672                let this: &Identity =
32673                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
32674                ICoreWebView2ScriptDialogOpeningEventArgs_Impl::Uri(
32675                    this,
32676                    core::mem::transmute_copy(&uri),
32677                )
32678                .into()
32679            }
32680        }
32681        unsafe extern "system" fn Kind<
32682            Identity: ICoreWebView2ScriptDialogOpeningEventArgs_Impl,
32683            const OFFSET: isize,
32684        >(
32685            this: *mut core::ffi::c_void,
32686            kind: *mut COREWEBVIEW2_SCRIPT_DIALOG_KIND,
32687        ) -> windows_core::HRESULT {
32688            unsafe {
32689                let this: &Identity =
32690                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
32691                ICoreWebView2ScriptDialogOpeningEventArgs_Impl::Kind(
32692                    this,
32693                    core::mem::transmute_copy(&kind),
32694                )
32695                .into()
32696            }
32697        }
32698        unsafe extern "system" fn Message<
32699            Identity: ICoreWebView2ScriptDialogOpeningEventArgs_Impl,
32700            const OFFSET: isize,
32701        >(
32702            this: *mut core::ffi::c_void,
32703            message: *mut windows_core::PWSTR,
32704        ) -> windows_core::HRESULT {
32705            unsafe {
32706                let this: &Identity =
32707                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
32708                ICoreWebView2ScriptDialogOpeningEventArgs_Impl::Message(
32709                    this,
32710                    core::mem::transmute_copy(&message),
32711                )
32712                .into()
32713            }
32714        }
32715        unsafe extern "system" fn Accept<
32716            Identity: ICoreWebView2ScriptDialogOpeningEventArgs_Impl,
32717            const OFFSET: isize,
32718        >(
32719            this: *mut core::ffi::c_void,
32720        ) -> windows_core::HRESULT {
32721            unsafe {
32722                let this: &Identity =
32723                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
32724                ICoreWebView2ScriptDialogOpeningEventArgs_Impl::Accept(this).into()
32725            }
32726        }
32727        unsafe extern "system" fn DefaultText<
32728            Identity: ICoreWebView2ScriptDialogOpeningEventArgs_Impl,
32729            const OFFSET: isize,
32730        >(
32731            this: *mut core::ffi::c_void,
32732            defaulttext: *mut windows_core::PWSTR,
32733        ) -> windows_core::HRESULT {
32734            unsafe {
32735                let this: &Identity =
32736                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
32737                ICoreWebView2ScriptDialogOpeningEventArgs_Impl::DefaultText(
32738                    this,
32739                    core::mem::transmute_copy(&defaulttext),
32740                )
32741                .into()
32742            }
32743        }
32744        unsafe extern "system" fn ResultText<
32745            Identity: ICoreWebView2ScriptDialogOpeningEventArgs_Impl,
32746            const OFFSET: isize,
32747        >(
32748            this: *mut core::ffi::c_void,
32749            resulttext: *mut windows_core::PWSTR,
32750        ) -> windows_core::HRESULT {
32751            unsafe {
32752                let this: &Identity =
32753                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
32754                ICoreWebView2ScriptDialogOpeningEventArgs_Impl::ResultText(
32755                    this,
32756                    core::mem::transmute_copy(&resulttext),
32757                )
32758                .into()
32759            }
32760        }
32761        unsafe extern "system" fn SetResultText<
32762            Identity: ICoreWebView2ScriptDialogOpeningEventArgs_Impl,
32763            const OFFSET: isize,
32764        >(
32765            this: *mut core::ffi::c_void,
32766            resulttext: windows_core::PCWSTR,
32767        ) -> windows_core::HRESULT {
32768            unsafe {
32769                let this: &Identity =
32770                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
32771                ICoreWebView2ScriptDialogOpeningEventArgs_Impl::SetResultText(
32772                    this,
32773                    core::mem::transmute(&resulttext),
32774                )
32775                .into()
32776            }
32777        }
32778        unsafe extern "system" fn GetDeferral<
32779            Identity: ICoreWebView2ScriptDialogOpeningEventArgs_Impl,
32780            const OFFSET: isize,
32781        >(
32782            this: *mut core::ffi::c_void,
32783            deferral: *mut *mut core::ffi::c_void,
32784        ) -> windows_core::HRESULT {
32785            unsafe {
32786                let this: &Identity =
32787                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
32788                match ICoreWebView2ScriptDialogOpeningEventArgs_Impl::GetDeferral(this) {
32789                    Ok(ok__) => {
32790                        deferral.write(core::mem::transmute(ok__));
32791                        windows_core::HRESULT(0)
32792                    }
32793                    Err(err) => err.into(),
32794                }
32795            }
32796        }
32797        Self {
32798            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
32799            Uri: Uri::<Identity, OFFSET>,
32800            Kind: Kind::<Identity, OFFSET>,
32801            Message: Message::<Identity, OFFSET>,
32802            Accept: Accept::<Identity, OFFSET>,
32803            DefaultText: DefaultText::<Identity, OFFSET>,
32804            ResultText: ResultText::<Identity, OFFSET>,
32805            SetResultText: SetResultText::<Identity, OFFSET>,
32806            GetDeferral: GetDeferral::<Identity, OFFSET>,
32807        }
32808    }
32809    pub fn matches(iid: &windows_core::GUID) -> bool {
32810        iid == &<ICoreWebView2ScriptDialogOpeningEventArgs as windows_core::Interface>::IID
32811    }
32812}
32813impl windows_core::RuntimeName for ICoreWebView2ScriptDialogOpeningEventArgs {}
32814windows_core::imp::define_interface!(
32815    ICoreWebView2ScriptDialogOpeningEventHandler,
32816    ICoreWebView2ScriptDialogOpeningEventHandler_Vtbl,
32817    0xef381bf9_afa8_4e37_91c4_8ac48524bdfb
32818);
32819windows_core::imp::interface_hierarchy!(
32820    ICoreWebView2ScriptDialogOpeningEventHandler,
32821    windows_core::IUnknown
32822);
32823impl ICoreWebView2ScriptDialogOpeningEventHandler {
32824    pub unsafe fn Invoke<P0, P1>(&self, sender: P0, args: P1) -> windows_core::Result<()>
32825    where
32826        P0: windows_core::Param<ICoreWebView2>,
32827        P1: windows_core::Param<ICoreWebView2ScriptDialogOpeningEventArgs>,
32828    {
32829        unsafe {
32830            (windows_core::Interface::vtable(self).Invoke)(
32831                windows_core::Interface::as_raw(self),
32832                sender.param().abi(),
32833                args.param().abi(),
32834            )
32835            .ok()
32836        }
32837    }
32838}
32839#[repr(C)]
32840#[doc(hidden)]
32841pub struct ICoreWebView2ScriptDialogOpeningEventHandler_Vtbl {
32842    pub base__: windows_core::IUnknown_Vtbl,
32843    pub Invoke: unsafe extern "system" fn(
32844        *mut core::ffi::c_void,
32845        *mut core::ffi::c_void,
32846        *mut core::ffi::c_void,
32847    ) -> windows_core::HRESULT,
32848}
32849pub trait ICoreWebView2ScriptDialogOpeningEventHandler_Impl: windows_core::IUnknownImpl {
32850    fn Invoke(
32851        &self,
32852        sender: windows_core::Ref<'_, ICoreWebView2>,
32853        args: windows_core::Ref<'_, ICoreWebView2ScriptDialogOpeningEventArgs>,
32854    ) -> windows_core::Result<()>;
32855}
32856impl ICoreWebView2ScriptDialogOpeningEventHandler_Vtbl {
32857    pub const fn new<
32858        Identity: ICoreWebView2ScriptDialogOpeningEventHandler_Impl,
32859        const OFFSET: isize,
32860    >() -> Self {
32861        unsafe extern "system" fn Invoke<
32862            Identity: ICoreWebView2ScriptDialogOpeningEventHandler_Impl,
32863            const OFFSET: isize,
32864        >(
32865            this: *mut core::ffi::c_void,
32866            sender: *mut core::ffi::c_void,
32867            args: *mut core::ffi::c_void,
32868        ) -> windows_core::HRESULT {
32869            unsafe {
32870                let this: &Identity =
32871                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
32872                ICoreWebView2ScriptDialogOpeningEventHandler_Impl::Invoke(
32873                    this,
32874                    core::mem::transmute_copy(&sender),
32875                    core::mem::transmute_copy(&args),
32876                )
32877                .into()
32878            }
32879        }
32880        Self {
32881            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
32882            Invoke: Invoke::<Identity, OFFSET>,
32883        }
32884    }
32885    pub fn matches(iid: &windows_core::GUID) -> bool {
32886        iid == &<ICoreWebView2ScriptDialogOpeningEventHandler as windows_core::Interface>::IID
32887    }
32888}
32889impl windows_core::RuntimeName for ICoreWebView2ScriptDialogOpeningEventHandler {}
32890windows_core::imp::define_interface!(
32891    ICoreWebView2ScriptException,
32892    ICoreWebView2ScriptException_Vtbl,
32893    0x054dae00_84a3_49ff_bc17_4012a90bc9fd
32894);
32895windows_core::imp::interface_hierarchy!(ICoreWebView2ScriptException, windows_core::IUnknown);
32896impl ICoreWebView2ScriptException {
32897    pub unsafe fn LineNumber(&self, value: *mut u32) -> windows_core::Result<()> {
32898        unsafe {
32899            (windows_core::Interface::vtable(self).LineNumber)(
32900                windows_core::Interface::as_raw(self),
32901                value as _,
32902            )
32903            .ok()
32904        }
32905    }
32906    pub unsafe fn ColumnNumber(&self, value: *mut u32) -> windows_core::Result<()> {
32907        unsafe {
32908            (windows_core::Interface::vtable(self).ColumnNumber)(
32909                windows_core::Interface::as_raw(self),
32910                value as _,
32911            )
32912            .ok()
32913        }
32914    }
32915    pub unsafe fn Name(&self, value: *mut windows_core::PWSTR) -> windows_core::Result<()> {
32916        unsafe {
32917            (windows_core::Interface::vtable(self).Name)(
32918                windows_core::Interface::as_raw(self),
32919                value as _,
32920            )
32921            .ok()
32922        }
32923    }
32924    pub unsafe fn Message(&self, value: *mut windows_core::PWSTR) -> windows_core::Result<()> {
32925        unsafe {
32926            (windows_core::Interface::vtable(self).Message)(
32927                windows_core::Interface::as_raw(self),
32928                value as _,
32929            )
32930            .ok()
32931        }
32932    }
32933    pub unsafe fn ToJson(&self, value: *mut windows_core::PWSTR) -> windows_core::Result<()> {
32934        unsafe {
32935            (windows_core::Interface::vtable(self).ToJson)(
32936                windows_core::Interface::as_raw(self),
32937                value as _,
32938            )
32939            .ok()
32940        }
32941    }
32942}
32943#[repr(C)]
32944#[doc(hidden)]
32945pub struct ICoreWebView2ScriptException_Vtbl {
32946    pub base__: windows_core::IUnknown_Vtbl,
32947    pub LineNumber:
32948        unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
32949    pub ColumnNumber:
32950        unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
32951    pub Name: unsafe extern "system" fn(
32952        *mut core::ffi::c_void,
32953        *mut windows_core::PWSTR,
32954    ) -> windows_core::HRESULT,
32955    pub Message: unsafe extern "system" fn(
32956        *mut core::ffi::c_void,
32957        *mut windows_core::PWSTR,
32958    ) -> windows_core::HRESULT,
32959    pub ToJson: unsafe extern "system" fn(
32960        *mut core::ffi::c_void,
32961        *mut windows_core::PWSTR,
32962    ) -> windows_core::HRESULT,
32963}
32964pub trait ICoreWebView2ScriptException_Impl: windows_core::IUnknownImpl {
32965    fn LineNumber(&self, value: *mut u32) -> windows_core::Result<()>;
32966    fn ColumnNumber(&self, value: *mut u32) -> windows_core::Result<()>;
32967    fn Name(&self, value: *mut windows_core::PWSTR) -> windows_core::Result<()>;
32968    fn Message(&self, value: *mut windows_core::PWSTR) -> windows_core::Result<()>;
32969    fn ToJson(&self, value: *mut windows_core::PWSTR) -> windows_core::Result<()>;
32970}
32971impl ICoreWebView2ScriptException_Vtbl {
32972    pub const fn new<Identity: ICoreWebView2ScriptException_Impl, const OFFSET: isize>() -> Self {
32973        unsafe extern "system" fn LineNumber<
32974            Identity: ICoreWebView2ScriptException_Impl,
32975            const OFFSET: isize,
32976        >(
32977            this: *mut core::ffi::c_void,
32978            value: *mut u32,
32979        ) -> windows_core::HRESULT {
32980            unsafe {
32981                let this: &Identity =
32982                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
32983                ICoreWebView2ScriptException_Impl::LineNumber(
32984                    this,
32985                    core::mem::transmute_copy(&value),
32986                )
32987                .into()
32988            }
32989        }
32990        unsafe extern "system" fn ColumnNumber<
32991            Identity: ICoreWebView2ScriptException_Impl,
32992            const OFFSET: isize,
32993        >(
32994            this: *mut core::ffi::c_void,
32995            value: *mut u32,
32996        ) -> windows_core::HRESULT {
32997            unsafe {
32998                let this: &Identity =
32999                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
33000                ICoreWebView2ScriptException_Impl::ColumnNumber(
33001                    this,
33002                    core::mem::transmute_copy(&value),
33003                )
33004                .into()
33005            }
33006        }
33007        unsafe extern "system" fn Name<
33008            Identity: ICoreWebView2ScriptException_Impl,
33009            const OFFSET: isize,
33010        >(
33011            this: *mut core::ffi::c_void,
33012            value: *mut windows_core::PWSTR,
33013        ) -> windows_core::HRESULT {
33014            unsafe {
33015                let this: &Identity =
33016                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
33017                ICoreWebView2ScriptException_Impl::Name(this, core::mem::transmute_copy(&value))
33018                    .into()
33019            }
33020        }
33021        unsafe extern "system" fn Message<
33022            Identity: ICoreWebView2ScriptException_Impl,
33023            const OFFSET: isize,
33024        >(
33025            this: *mut core::ffi::c_void,
33026            value: *mut windows_core::PWSTR,
33027        ) -> windows_core::HRESULT {
33028            unsafe {
33029                let this: &Identity =
33030                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
33031                ICoreWebView2ScriptException_Impl::Message(this, core::mem::transmute_copy(&value))
33032                    .into()
33033            }
33034        }
33035        unsafe extern "system" fn ToJson<
33036            Identity: ICoreWebView2ScriptException_Impl,
33037            const OFFSET: isize,
33038        >(
33039            this: *mut core::ffi::c_void,
33040            value: *mut windows_core::PWSTR,
33041        ) -> windows_core::HRESULT {
33042            unsafe {
33043                let this: &Identity =
33044                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
33045                ICoreWebView2ScriptException_Impl::ToJson(this, core::mem::transmute_copy(&value))
33046                    .into()
33047            }
33048        }
33049        Self {
33050            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
33051            LineNumber: LineNumber::<Identity, OFFSET>,
33052            ColumnNumber: ColumnNumber::<Identity, OFFSET>,
33053            Name: Name::<Identity, OFFSET>,
33054            Message: Message::<Identity, OFFSET>,
33055            ToJson: ToJson::<Identity, OFFSET>,
33056        }
33057    }
33058    pub fn matches(iid: &windows_core::GUID) -> bool {
33059        iid == &<ICoreWebView2ScriptException as windows_core::Interface>::IID
33060    }
33061}
33062impl windows_core::RuntimeName for ICoreWebView2ScriptException {}
33063windows_core::imp::define_interface!(
33064    ICoreWebView2ServerCertificateErrorDetectedEventArgs,
33065    ICoreWebView2ServerCertificateErrorDetectedEventArgs_Vtbl,
33066    0x012193ed_7c13_48ff_969d_a84c1f432a14
33067);
33068windows_core::imp::interface_hierarchy!(
33069    ICoreWebView2ServerCertificateErrorDetectedEventArgs,
33070    windows_core::IUnknown
33071);
33072impl ICoreWebView2ServerCertificateErrorDetectedEventArgs {
33073    pub unsafe fn ErrorStatus(
33074        &self,
33075        value: *mut COREWEBVIEW2_WEB_ERROR_STATUS,
33076    ) -> windows_core::Result<()> {
33077        unsafe {
33078            (windows_core::Interface::vtable(self).ErrorStatus)(
33079                windows_core::Interface::as_raw(self),
33080                value as _,
33081            )
33082            .ok()
33083        }
33084    }
33085    pub unsafe fn RequestUri(&self, value: *mut windows_core::PWSTR) -> windows_core::Result<()> {
33086        unsafe {
33087            (windows_core::Interface::vtable(self).RequestUri)(
33088                windows_core::Interface::as_raw(self),
33089                value as _,
33090            )
33091            .ok()
33092        }
33093    }
33094    pub unsafe fn ServerCertificate(&self) -> windows_core::Result<ICoreWebView2Certificate> {
33095        unsafe {
33096            let mut result__ = core::mem::zeroed();
33097            (windows_core::Interface::vtable(self).ServerCertificate)(
33098                windows_core::Interface::as_raw(self),
33099                &mut result__,
33100            )
33101            .and_then(|| windows_core::Type::from_abi(result__))
33102        }
33103    }
33104    pub unsafe fn Action(
33105        &self,
33106        value: *mut COREWEBVIEW2_SERVER_CERTIFICATE_ERROR_ACTION,
33107    ) -> windows_core::Result<()> {
33108        unsafe {
33109            (windows_core::Interface::vtable(self).Action)(
33110                windows_core::Interface::as_raw(self),
33111                value as _,
33112            )
33113            .ok()
33114        }
33115    }
33116    pub unsafe fn SetAction(
33117        &self,
33118        value: COREWEBVIEW2_SERVER_CERTIFICATE_ERROR_ACTION,
33119    ) -> windows_core::Result<()> {
33120        unsafe {
33121            (windows_core::Interface::vtable(self).SetAction)(
33122                windows_core::Interface::as_raw(self),
33123                value,
33124            )
33125            .ok()
33126        }
33127    }
33128    pub unsafe fn GetDeferral(&self) -> windows_core::Result<ICoreWebView2Deferral> {
33129        unsafe {
33130            let mut result__ = core::mem::zeroed();
33131            (windows_core::Interface::vtable(self).GetDeferral)(
33132                windows_core::Interface::as_raw(self),
33133                &mut result__,
33134            )
33135            .and_then(|| windows_core::Type::from_abi(result__))
33136        }
33137    }
33138}
33139#[repr(C)]
33140#[doc(hidden)]
33141pub struct ICoreWebView2ServerCertificateErrorDetectedEventArgs_Vtbl {
33142    pub base__: windows_core::IUnknown_Vtbl,
33143    pub ErrorStatus: unsafe extern "system" fn(
33144        *mut core::ffi::c_void,
33145        *mut COREWEBVIEW2_WEB_ERROR_STATUS,
33146    ) -> windows_core::HRESULT,
33147    pub RequestUri: unsafe extern "system" fn(
33148        *mut core::ffi::c_void,
33149        *mut windows_core::PWSTR,
33150    ) -> windows_core::HRESULT,
33151    pub ServerCertificate: unsafe extern "system" fn(
33152        *mut core::ffi::c_void,
33153        *mut *mut core::ffi::c_void,
33154    ) -> windows_core::HRESULT,
33155    pub Action: unsafe extern "system" fn(
33156        *mut core::ffi::c_void,
33157        *mut COREWEBVIEW2_SERVER_CERTIFICATE_ERROR_ACTION,
33158    ) -> windows_core::HRESULT,
33159    pub SetAction: unsafe extern "system" fn(
33160        *mut core::ffi::c_void,
33161        COREWEBVIEW2_SERVER_CERTIFICATE_ERROR_ACTION,
33162    ) -> windows_core::HRESULT,
33163    pub GetDeferral: unsafe extern "system" fn(
33164        *mut core::ffi::c_void,
33165        *mut *mut core::ffi::c_void,
33166    ) -> windows_core::HRESULT,
33167}
33168pub trait ICoreWebView2ServerCertificateErrorDetectedEventArgs_Impl:
33169    windows_core::IUnknownImpl
33170{
33171    fn ErrorStatus(&self, value: *mut COREWEBVIEW2_WEB_ERROR_STATUS) -> windows_core::Result<()>;
33172    fn RequestUri(&self, value: *mut windows_core::PWSTR) -> windows_core::Result<()>;
33173    fn ServerCertificate(&self) -> windows_core::Result<ICoreWebView2Certificate>;
33174    fn Action(
33175        &self,
33176        value: *mut COREWEBVIEW2_SERVER_CERTIFICATE_ERROR_ACTION,
33177    ) -> windows_core::Result<()>;
33178    fn SetAction(
33179        &self,
33180        value: COREWEBVIEW2_SERVER_CERTIFICATE_ERROR_ACTION,
33181    ) -> windows_core::Result<()>;
33182    fn GetDeferral(&self) -> windows_core::Result<ICoreWebView2Deferral>;
33183}
33184impl ICoreWebView2ServerCertificateErrorDetectedEventArgs_Vtbl {
33185    pub const fn new<
33186        Identity: ICoreWebView2ServerCertificateErrorDetectedEventArgs_Impl,
33187        const OFFSET: isize,
33188    >() -> Self {
33189        unsafe extern "system" fn ErrorStatus<
33190            Identity: ICoreWebView2ServerCertificateErrorDetectedEventArgs_Impl,
33191            const OFFSET: isize,
33192        >(
33193            this: *mut core::ffi::c_void,
33194            value: *mut COREWEBVIEW2_WEB_ERROR_STATUS,
33195        ) -> windows_core::HRESULT {
33196            unsafe {
33197                let this: &Identity =
33198                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
33199                ICoreWebView2ServerCertificateErrorDetectedEventArgs_Impl::ErrorStatus(
33200                    this,
33201                    core::mem::transmute_copy(&value),
33202                )
33203                .into()
33204            }
33205        }
33206        unsafe extern "system" fn RequestUri<
33207            Identity: ICoreWebView2ServerCertificateErrorDetectedEventArgs_Impl,
33208            const OFFSET: isize,
33209        >(
33210            this: *mut core::ffi::c_void,
33211            value: *mut windows_core::PWSTR,
33212        ) -> windows_core::HRESULT {
33213            unsafe {
33214                let this: &Identity =
33215                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
33216                ICoreWebView2ServerCertificateErrorDetectedEventArgs_Impl::RequestUri(
33217                    this,
33218                    core::mem::transmute_copy(&value),
33219                )
33220                .into()
33221            }
33222        }
33223        unsafe extern "system" fn ServerCertificate<
33224            Identity: ICoreWebView2ServerCertificateErrorDetectedEventArgs_Impl,
33225            const OFFSET: isize,
33226        >(
33227            this: *mut core::ffi::c_void,
33228            value: *mut *mut core::ffi::c_void,
33229        ) -> windows_core::HRESULT {
33230            unsafe {
33231                let this: &Identity =
33232                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
33233                match ICoreWebView2ServerCertificateErrorDetectedEventArgs_Impl::ServerCertificate(
33234                    this,
33235                ) {
33236                    Ok(ok__) => {
33237                        value.write(core::mem::transmute(ok__));
33238                        windows_core::HRESULT(0)
33239                    }
33240                    Err(err) => err.into(),
33241                }
33242            }
33243        }
33244        unsafe extern "system" fn Action<
33245            Identity: ICoreWebView2ServerCertificateErrorDetectedEventArgs_Impl,
33246            const OFFSET: isize,
33247        >(
33248            this: *mut core::ffi::c_void,
33249            value: *mut COREWEBVIEW2_SERVER_CERTIFICATE_ERROR_ACTION,
33250        ) -> windows_core::HRESULT {
33251            unsafe {
33252                let this: &Identity =
33253                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
33254                ICoreWebView2ServerCertificateErrorDetectedEventArgs_Impl::Action(
33255                    this,
33256                    core::mem::transmute_copy(&value),
33257                )
33258                .into()
33259            }
33260        }
33261        unsafe extern "system" fn SetAction<
33262            Identity: ICoreWebView2ServerCertificateErrorDetectedEventArgs_Impl,
33263            const OFFSET: isize,
33264        >(
33265            this: *mut core::ffi::c_void,
33266            value: COREWEBVIEW2_SERVER_CERTIFICATE_ERROR_ACTION,
33267        ) -> windows_core::HRESULT {
33268            unsafe {
33269                let this: &Identity =
33270                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
33271                ICoreWebView2ServerCertificateErrorDetectedEventArgs_Impl::SetAction(
33272                    this,
33273                    core::mem::transmute_copy(&value),
33274                )
33275                .into()
33276            }
33277        }
33278        unsafe extern "system" fn GetDeferral<
33279            Identity: ICoreWebView2ServerCertificateErrorDetectedEventArgs_Impl,
33280            const OFFSET: isize,
33281        >(
33282            this: *mut core::ffi::c_void,
33283            deferral: *mut *mut core::ffi::c_void,
33284        ) -> windows_core::HRESULT {
33285            unsafe {
33286                let this: &Identity =
33287                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
33288                match ICoreWebView2ServerCertificateErrorDetectedEventArgs_Impl::GetDeferral(this) {
33289                    Ok(ok__) => {
33290                        deferral.write(core::mem::transmute(ok__));
33291                        windows_core::HRESULT(0)
33292                    }
33293                    Err(err) => err.into(),
33294                }
33295            }
33296        }
33297        Self {
33298            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
33299            ErrorStatus: ErrorStatus::<Identity, OFFSET>,
33300            RequestUri: RequestUri::<Identity, OFFSET>,
33301            ServerCertificate: ServerCertificate::<Identity, OFFSET>,
33302            Action: Action::<Identity, OFFSET>,
33303            SetAction: SetAction::<Identity, OFFSET>,
33304            GetDeferral: GetDeferral::<Identity, OFFSET>,
33305        }
33306    }
33307    pub fn matches(iid: &windows_core::GUID) -> bool {
33308        iid == & < ICoreWebView2ServerCertificateErrorDetectedEventArgs as windows_core::Interface >::IID
33309    }
33310}
33311impl windows_core::RuntimeName for ICoreWebView2ServerCertificateErrorDetectedEventArgs {}
33312windows_core::imp::define_interface!(
33313    ICoreWebView2ServerCertificateErrorDetectedEventHandler,
33314    ICoreWebView2ServerCertificateErrorDetectedEventHandler_Vtbl,
33315    0x969b3a26_d85e_4795_8199_fef57344da22
33316);
33317windows_core::imp::interface_hierarchy!(
33318    ICoreWebView2ServerCertificateErrorDetectedEventHandler,
33319    windows_core::IUnknown
33320);
33321impl ICoreWebView2ServerCertificateErrorDetectedEventHandler {
33322    pub unsafe fn Invoke<P0, P1>(&self, sender: P0, args: P1) -> windows_core::Result<()>
33323    where
33324        P0: windows_core::Param<ICoreWebView2>,
33325        P1: windows_core::Param<ICoreWebView2ServerCertificateErrorDetectedEventArgs>,
33326    {
33327        unsafe {
33328            (windows_core::Interface::vtable(self).Invoke)(
33329                windows_core::Interface::as_raw(self),
33330                sender.param().abi(),
33331                args.param().abi(),
33332            )
33333            .ok()
33334        }
33335    }
33336}
33337#[repr(C)]
33338#[doc(hidden)]
33339pub struct ICoreWebView2ServerCertificateErrorDetectedEventHandler_Vtbl {
33340    pub base__: windows_core::IUnknown_Vtbl,
33341    pub Invoke: unsafe extern "system" fn(
33342        *mut core::ffi::c_void,
33343        *mut core::ffi::c_void,
33344        *mut core::ffi::c_void,
33345    ) -> windows_core::HRESULT,
33346}
33347pub trait ICoreWebView2ServerCertificateErrorDetectedEventHandler_Impl:
33348    windows_core::IUnknownImpl
33349{
33350    fn Invoke(
33351        &self,
33352        sender: windows_core::Ref<'_, ICoreWebView2>,
33353        args: windows_core::Ref<'_, ICoreWebView2ServerCertificateErrorDetectedEventArgs>,
33354    ) -> windows_core::Result<()>;
33355}
33356impl ICoreWebView2ServerCertificateErrorDetectedEventHandler_Vtbl {
33357    pub const fn new<
33358        Identity: ICoreWebView2ServerCertificateErrorDetectedEventHandler_Impl,
33359        const OFFSET: isize,
33360    >() -> Self {
33361        unsafe extern "system" fn Invoke<
33362            Identity: ICoreWebView2ServerCertificateErrorDetectedEventHandler_Impl,
33363            const OFFSET: isize,
33364        >(
33365            this: *mut core::ffi::c_void,
33366            sender: *mut core::ffi::c_void,
33367            args: *mut core::ffi::c_void,
33368        ) -> windows_core::HRESULT {
33369            unsafe {
33370                let this: &Identity =
33371                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
33372                ICoreWebView2ServerCertificateErrorDetectedEventHandler_Impl::Invoke(
33373                    this,
33374                    core::mem::transmute_copy(&sender),
33375                    core::mem::transmute_copy(&args),
33376                )
33377                .into()
33378            }
33379        }
33380        Self {
33381            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
33382            Invoke: Invoke::<Identity, OFFSET>,
33383        }
33384    }
33385    pub fn matches(iid: &windows_core::GUID) -> bool {
33386        iid == & < ICoreWebView2ServerCertificateErrorDetectedEventHandler as windows_core::Interface >::IID
33387    }
33388}
33389impl windows_core::RuntimeName for ICoreWebView2ServerCertificateErrorDetectedEventHandler {}
33390windows_core::imp::define_interface!(
33391    ICoreWebView2SetPermissionStateCompletedHandler,
33392    ICoreWebView2SetPermissionStateCompletedHandler_Vtbl,
33393    0xfc77fb30_9c9e_4076_b8c7_7644a703ca1b
33394);
33395windows_core::imp::interface_hierarchy!(
33396    ICoreWebView2SetPermissionStateCompletedHandler,
33397    windows_core::IUnknown
33398);
33399impl ICoreWebView2SetPermissionStateCompletedHandler {
33400    pub unsafe fn Invoke(&self, errorcode: windows_core::HRESULT) -> windows_core::Result<()> {
33401        unsafe {
33402            (windows_core::Interface::vtable(self).Invoke)(
33403                windows_core::Interface::as_raw(self),
33404                errorcode,
33405            )
33406            .ok()
33407        }
33408    }
33409}
33410#[repr(C)]
33411#[doc(hidden)]
33412pub struct ICoreWebView2SetPermissionStateCompletedHandler_Vtbl {
33413    pub base__: windows_core::IUnknown_Vtbl,
33414    pub Invoke: unsafe extern "system" fn(
33415        *mut core::ffi::c_void,
33416        windows_core::HRESULT,
33417    ) -> windows_core::HRESULT,
33418}
33419pub trait ICoreWebView2SetPermissionStateCompletedHandler_Impl: windows_core::IUnknownImpl {
33420    fn Invoke(&self, errorcode: windows_core::HRESULT) -> windows_core::Result<()>;
33421}
33422impl ICoreWebView2SetPermissionStateCompletedHandler_Vtbl {
33423    pub const fn new<
33424        Identity: ICoreWebView2SetPermissionStateCompletedHandler_Impl,
33425        const OFFSET: isize,
33426    >() -> Self {
33427        unsafe extern "system" fn Invoke<
33428            Identity: ICoreWebView2SetPermissionStateCompletedHandler_Impl,
33429            const OFFSET: isize,
33430        >(
33431            this: *mut core::ffi::c_void,
33432            errorcode: windows_core::HRESULT,
33433        ) -> windows_core::HRESULT {
33434            unsafe {
33435                let this: &Identity =
33436                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
33437                ICoreWebView2SetPermissionStateCompletedHandler_Impl::Invoke(
33438                    this,
33439                    core::mem::transmute_copy(&errorcode),
33440                )
33441                .into()
33442            }
33443        }
33444        Self {
33445            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
33446            Invoke: Invoke::<Identity, OFFSET>,
33447        }
33448    }
33449    pub fn matches(iid: &windows_core::GUID) -> bool {
33450        iid == &<ICoreWebView2SetPermissionStateCompletedHandler as windows_core::Interface>::IID
33451    }
33452}
33453impl windows_core::RuntimeName for ICoreWebView2SetPermissionStateCompletedHandler {}
33454windows_core::imp::define_interface!(
33455    ICoreWebView2Settings,
33456    ICoreWebView2Settings_Vtbl,
33457    0xe562e4f0_d7fa_43ac_8d71_c05150499f00
33458);
33459windows_core::imp::interface_hierarchy!(ICoreWebView2Settings, windows_core::IUnknown);
33460impl ICoreWebView2Settings {
33461    pub unsafe fn IsScriptEnabled(
33462        &self,
33463        isscriptenabled: *mut windows_core::BOOL,
33464    ) -> windows_core::Result<()> {
33465        unsafe {
33466            (windows_core::Interface::vtable(self).IsScriptEnabled)(
33467                windows_core::Interface::as_raw(self),
33468                isscriptenabled as _,
33469            )
33470            .ok()
33471        }
33472    }
33473    pub unsafe fn SetIsScriptEnabled(&self, isscriptenabled: bool) -> windows_core::Result<()> {
33474        unsafe {
33475            (windows_core::Interface::vtable(self).SetIsScriptEnabled)(
33476                windows_core::Interface::as_raw(self),
33477                isscriptenabled.into(),
33478            )
33479            .ok()
33480        }
33481    }
33482    pub unsafe fn IsWebMessageEnabled(
33483        &self,
33484        iswebmessageenabled: *mut windows_core::BOOL,
33485    ) -> windows_core::Result<()> {
33486        unsafe {
33487            (windows_core::Interface::vtable(self).IsWebMessageEnabled)(
33488                windows_core::Interface::as_raw(self),
33489                iswebmessageenabled as _,
33490            )
33491            .ok()
33492        }
33493    }
33494    pub unsafe fn SetIsWebMessageEnabled(
33495        &self,
33496        iswebmessageenabled: bool,
33497    ) -> windows_core::Result<()> {
33498        unsafe {
33499            (windows_core::Interface::vtable(self).SetIsWebMessageEnabled)(
33500                windows_core::Interface::as_raw(self),
33501                iswebmessageenabled.into(),
33502            )
33503            .ok()
33504        }
33505    }
33506    pub unsafe fn AreDefaultScriptDialogsEnabled(
33507        &self,
33508        aredefaultscriptdialogsenabled: *mut windows_core::BOOL,
33509    ) -> windows_core::Result<()> {
33510        unsafe {
33511            (windows_core::Interface::vtable(self).AreDefaultScriptDialogsEnabled)(
33512                windows_core::Interface::as_raw(self),
33513                aredefaultscriptdialogsenabled as _,
33514            )
33515            .ok()
33516        }
33517    }
33518    pub unsafe fn SetAreDefaultScriptDialogsEnabled(
33519        &self,
33520        aredefaultscriptdialogsenabled: bool,
33521    ) -> windows_core::Result<()> {
33522        unsafe {
33523            (windows_core::Interface::vtable(self).SetAreDefaultScriptDialogsEnabled)(
33524                windows_core::Interface::as_raw(self),
33525                aredefaultscriptdialogsenabled.into(),
33526            )
33527            .ok()
33528        }
33529    }
33530    pub unsafe fn IsStatusBarEnabled(
33531        &self,
33532        isstatusbarenabled: *mut windows_core::BOOL,
33533    ) -> windows_core::Result<()> {
33534        unsafe {
33535            (windows_core::Interface::vtable(self).IsStatusBarEnabled)(
33536                windows_core::Interface::as_raw(self),
33537                isstatusbarenabled as _,
33538            )
33539            .ok()
33540        }
33541    }
33542    pub unsafe fn SetIsStatusBarEnabled(
33543        &self,
33544        isstatusbarenabled: bool,
33545    ) -> windows_core::Result<()> {
33546        unsafe {
33547            (windows_core::Interface::vtable(self).SetIsStatusBarEnabled)(
33548                windows_core::Interface::as_raw(self),
33549                isstatusbarenabled.into(),
33550            )
33551            .ok()
33552        }
33553    }
33554    pub unsafe fn AreDevToolsEnabled(
33555        &self,
33556        aredevtoolsenabled: *mut windows_core::BOOL,
33557    ) -> windows_core::Result<()> {
33558        unsafe {
33559            (windows_core::Interface::vtable(self).AreDevToolsEnabled)(
33560                windows_core::Interface::as_raw(self),
33561                aredevtoolsenabled as _,
33562            )
33563            .ok()
33564        }
33565    }
33566    pub unsafe fn SetAreDevToolsEnabled(
33567        &self,
33568        aredevtoolsenabled: bool,
33569    ) -> windows_core::Result<()> {
33570        unsafe {
33571            (windows_core::Interface::vtable(self).SetAreDevToolsEnabled)(
33572                windows_core::Interface::as_raw(self),
33573                aredevtoolsenabled.into(),
33574            )
33575            .ok()
33576        }
33577    }
33578    pub unsafe fn AreDefaultContextMenusEnabled(
33579        &self,
33580        enabled: *mut windows_core::BOOL,
33581    ) -> windows_core::Result<()> {
33582        unsafe {
33583            (windows_core::Interface::vtable(self).AreDefaultContextMenusEnabled)(
33584                windows_core::Interface::as_raw(self),
33585                enabled as _,
33586            )
33587            .ok()
33588        }
33589    }
33590    pub unsafe fn SetAreDefaultContextMenusEnabled(
33591        &self,
33592        enabled: bool,
33593    ) -> windows_core::Result<()> {
33594        unsafe {
33595            (windows_core::Interface::vtable(self).SetAreDefaultContextMenusEnabled)(
33596                windows_core::Interface::as_raw(self),
33597                enabled.into(),
33598            )
33599            .ok()
33600        }
33601    }
33602    pub unsafe fn AreHostObjectsAllowed(
33603        &self,
33604        allowed: *mut windows_core::BOOL,
33605    ) -> windows_core::Result<()> {
33606        unsafe {
33607            (windows_core::Interface::vtable(self).AreHostObjectsAllowed)(
33608                windows_core::Interface::as_raw(self),
33609                allowed as _,
33610            )
33611            .ok()
33612        }
33613    }
33614    pub unsafe fn SetAreHostObjectsAllowed(&self, allowed: bool) -> windows_core::Result<()> {
33615        unsafe {
33616            (windows_core::Interface::vtable(self).SetAreHostObjectsAllowed)(
33617                windows_core::Interface::as_raw(self),
33618                allowed.into(),
33619            )
33620            .ok()
33621        }
33622    }
33623    pub unsafe fn IsZoomControlEnabled(
33624        &self,
33625        enabled: *mut windows_core::BOOL,
33626    ) -> windows_core::Result<()> {
33627        unsafe {
33628            (windows_core::Interface::vtable(self).IsZoomControlEnabled)(
33629                windows_core::Interface::as_raw(self),
33630                enabled as _,
33631            )
33632            .ok()
33633        }
33634    }
33635    pub unsafe fn SetIsZoomControlEnabled(&self, enabled: bool) -> windows_core::Result<()> {
33636        unsafe {
33637            (windows_core::Interface::vtable(self).SetIsZoomControlEnabled)(
33638                windows_core::Interface::as_raw(self),
33639                enabled.into(),
33640            )
33641            .ok()
33642        }
33643    }
33644    pub unsafe fn IsBuiltInErrorPageEnabled(
33645        &self,
33646        enabled: *mut windows_core::BOOL,
33647    ) -> windows_core::Result<()> {
33648        unsafe {
33649            (windows_core::Interface::vtable(self).IsBuiltInErrorPageEnabled)(
33650                windows_core::Interface::as_raw(self),
33651                enabled as _,
33652            )
33653            .ok()
33654        }
33655    }
33656    pub unsafe fn SetIsBuiltInErrorPageEnabled(&self, enabled: bool) -> windows_core::Result<()> {
33657        unsafe {
33658            (windows_core::Interface::vtable(self).SetIsBuiltInErrorPageEnabled)(
33659                windows_core::Interface::as_raw(self),
33660                enabled.into(),
33661            )
33662            .ok()
33663        }
33664    }
33665}
33666#[repr(C)]
33667#[doc(hidden)]
33668pub struct ICoreWebView2Settings_Vtbl {
33669    pub base__: windows_core::IUnknown_Vtbl,
33670    pub IsScriptEnabled: unsafe extern "system" fn(
33671        *mut core::ffi::c_void,
33672        *mut windows_core::BOOL,
33673    ) -> windows_core::HRESULT,
33674    pub SetIsScriptEnabled: unsafe extern "system" fn(
33675        *mut core::ffi::c_void,
33676        windows_core::BOOL,
33677    ) -> windows_core::HRESULT,
33678    pub IsWebMessageEnabled: unsafe extern "system" fn(
33679        *mut core::ffi::c_void,
33680        *mut windows_core::BOOL,
33681    ) -> windows_core::HRESULT,
33682    pub SetIsWebMessageEnabled: unsafe extern "system" fn(
33683        *mut core::ffi::c_void,
33684        windows_core::BOOL,
33685    ) -> windows_core::HRESULT,
33686    pub AreDefaultScriptDialogsEnabled: unsafe extern "system" fn(
33687        *mut core::ffi::c_void,
33688        *mut windows_core::BOOL,
33689    ) -> windows_core::HRESULT,
33690    pub SetAreDefaultScriptDialogsEnabled: unsafe extern "system" fn(
33691        *mut core::ffi::c_void,
33692        windows_core::BOOL,
33693    ) -> windows_core::HRESULT,
33694    pub IsStatusBarEnabled: unsafe extern "system" fn(
33695        *mut core::ffi::c_void,
33696        *mut windows_core::BOOL,
33697    ) -> windows_core::HRESULT,
33698    pub SetIsStatusBarEnabled: unsafe extern "system" fn(
33699        *mut core::ffi::c_void,
33700        windows_core::BOOL,
33701    ) -> windows_core::HRESULT,
33702    pub AreDevToolsEnabled: unsafe extern "system" fn(
33703        *mut core::ffi::c_void,
33704        *mut windows_core::BOOL,
33705    ) -> windows_core::HRESULT,
33706    pub SetAreDevToolsEnabled: unsafe extern "system" fn(
33707        *mut core::ffi::c_void,
33708        windows_core::BOOL,
33709    ) -> windows_core::HRESULT,
33710    pub AreDefaultContextMenusEnabled: unsafe extern "system" fn(
33711        *mut core::ffi::c_void,
33712        *mut windows_core::BOOL,
33713    ) -> windows_core::HRESULT,
33714    pub SetAreDefaultContextMenusEnabled: unsafe extern "system" fn(
33715        *mut core::ffi::c_void,
33716        windows_core::BOOL,
33717    ) -> windows_core::HRESULT,
33718    pub AreHostObjectsAllowed: unsafe extern "system" fn(
33719        *mut core::ffi::c_void,
33720        *mut windows_core::BOOL,
33721    ) -> windows_core::HRESULT,
33722    pub SetAreHostObjectsAllowed: unsafe extern "system" fn(
33723        *mut core::ffi::c_void,
33724        windows_core::BOOL,
33725    ) -> windows_core::HRESULT,
33726    pub IsZoomControlEnabled: unsafe extern "system" fn(
33727        *mut core::ffi::c_void,
33728        *mut windows_core::BOOL,
33729    ) -> windows_core::HRESULT,
33730    pub SetIsZoomControlEnabled: unsafe extern "system" fn(
33731        *mut core::ffi::c_void,
33732        windows_core::BOOL,
33733    ) -> windows_core::HRESULT,
33734    pub IsBuiltInErrorPageEnabled: unsafe extern "system" fn(
33735        *mut core::ffi::c_void,
33736        *mut windows_core::BOOL,
33737    ) -> windows_core::HRESULT,
33738    pub SetIsBuiltInErrorPageEnabled: unsafe extern "system" fn(
33739        *mut core::ffi::c_void,
33740        windows_core::BOOL,
33741    ) -> windows_core::HRESULT,
33742}
33743pub trait ICoreWebView2Settings_Impl: windows_core::IUnknownImpl {
33744    fn IsScriptEnabled(&self, isscriptenabled: *mut windows_core::BOOL)
33745        -> windows_core::Result<()>;
33746    fn SetIsScriptEnabled(&self, isscriptenabled: windows_core::BOOL) -> windows_core::Result<()>;
33747    fn IsWebMessageEnabled(
33748        &self,
33749        iswebmessageenabled: *mut windows_core::BOOL,
33750    ) -> windows_core::Result<()>;
33751    fn SetIsWebMessageEnabled(
33752        &self,
33753        iswebmessageenabled: windows_core::BOOL,
33754    ) -> windows_core::Result<()>;
33755    fn AreDefaultScriptDialogsEnabled(
33756        &self,
33757        aredefaultscriptdialogsenabled: *mut windows_core::BOOL,
33758    ) -> windows_core::Result<()>;
33759    fn SetAreDefaultScriptDialogsEnabled(
33760        &self,
33761        aredefaultscriptdialogsenabled: windows_core::BOOL,
33762    ) -> windows_core::Result<()>;
33763    fn IsStatusBarEnabled(
33764        &self,
33765        isstatusbarenabled: *mut windows_core::BOOL,
33766    ) -> windows_core::Result<()>;
33767    fn SetIsStatusBarEnabled(
33768        &self,
33769        isstatusbarenabled: windows_core::BOOL,
33770    ) -> windows_core::Result<()>;
33771    fn AreDevToolsEnabled(
33772        &self,
33773        aredevtoolsenabled: *mut windows_core::BOOL,
33774    ) -> windows_core::Result<()>;
33775    fn SetAreDevToolsEnabled(
33776        &self,
33777        aredevtoolsenabled: windows_core::BOOL,
33778    ) -> windows_core::Result<()>;
33779    fn AreDefaultContextMenusEnabled(
33780        &self,
33781        enabled: *mut windows_core::BOOL,
33782    ) -> windows_core::Result<()>;
33783    fn SetAreDefaultContextMenusEnabled(
33784        &self,
33785        enabled: windows_core::BOOL,
33786    ) -> windows_core::Result<()>;
33787    fn AreHostObjectsAllowed(&self, allowed: *mut windows_core::BOOL) -> windows_core::Result<()>;
33788    fn SetAreHostObjectsAllowed(&self, allowed: windows_core::BOOL) -> windows_core::Result<()>;
33789    fn IsZoomControlEnabled(&self, enabled: *mut windows_core::BOOL) -> windows_core::Result<()>;
33790    fn SetIsZoomControlEnabled(&self, enabled: windows_core::BOOL) -> windows_core::Result<()>;
33791    fn IsBuiltInErrorPageEnabled(
33792        &self,
33793        enabled: *mut windows_core::BOOL,
33794    ) -> windows_core::Result<()>;
33795    fn SetIsBuiltInErrorPageEnabled(&self, enabled: windows_core::BOOL)
33796        -> windows_core::Result<()>;
33797}
33798impl ICoreWebView2Settings_Vtbl {
33799    pub const fn new<Identity: ICoreWebView2Settings_Impl, const OFFSET: isize>() -> Self {
33800        unsafe extern "system" fn IsScriptEnabled<
33801            Identity: ICoreWebView2Settings_Impl,
33802            const OFFSET: isize,
33803        >(
33804            this: *mut core::ffi::c_void,
33805            isscriptenabled: *mut windows_core::BOOL,
33806        ) -> windows_core::HRESULT {
33807            unsafe {
33808                let this: &Identity =
33809                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
33810                ICoreWebView2Settings_Impl::IsScriptEnabled(
33811                    this,
33812                    core::mem::transmute_copy(&isscriptenabled),
33813                )
33814                .into()
33815            }
33816        }
33817        unsafe extern "system" fn SetIsScriptEnabled<
33818            Identity: ICoreWebView2Settings_Impl,
33819            const OFFSET: isize,
33820        >(
33821            this: *mut core::ffi::c_void,
33822            isscriptenabled: windows_core::BOOL,
33823        ) -> windows_core::HRESULT {
33824            unsafe {
33825                let this: &Identity =
33826                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
33827                ICoreWebView2Settings_Impl::SetIsScriptEnabled(
33828                    this,
33829                    core::mem::transmute_copy(&isscriptenabled),
33830                )
33831                .into()
33832            }
33833        }
33834        unsafe extern "system" fn IsWebMessageEnabled<
33835            Identity: ICoreWebView2Settings_Impl,
33836            const OFFSET: isize,
33837        >(
33838            this: *mut core::ffi::c_void,
33839            iswebmessageenabled: *mut windows_core::BOOL,
33840        ) -> windows_core::HRESULT {
33841            unsafe {
33842                let this: &Identity =
33843                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
33844                ICoreWebView2Settings_Impl::IsWebMessageEnabled(
33845                    this,
33846                    core::mem::transmute_copy(&iswebmessageenabled),
33847                )
33848                .into()
33849            }
33850        }
33851        unsafe extern "system" fn SetIsWebMessageEnabled<
33852            Identity: ICoreWebView2Settings_Impl,
33853            const OFFSET: isize,
33854        >(
33855            this: *mut core::ffi::c_void,
33856            iswebmessageenabled: windows_core::BOOL,
33857        ) -> windows_core::HRESULT {
33858            unsafe {
33859                let this: &Identity =
33860                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
33861                ICoreWebView2Settings_Impl::SetIsWebMessageEnabled(
33862                    this,
33863                    core::mem::transmute_copy(&iswebmessageenabled),
33864                )
33865                .into()
33866            }
33867        }
33868        unsafe extern "system" fn AreDefaultScriptDialogsEnabled<
33869            Identity: ICoreWebView2Settings_Impl,
33870            const OFFSET: isize,
33871        >(
33872            this: *mut core::ffi::c_void,
33873            aredefaultscriptdialogsenabled: *mut windows_core::BOOL,
33874        ) -> windows_core::HRESULT {
33875            unsafe {
33876                let this: &Identity =
33877                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
33878                ICoreWebView2Settings_Impl::AreDefaultScriptDialogsEnabled(
33879                    this,
33880                    core::mem::transmute_copy(&aredefaultscriptdialogsenabled),
33881                )
33882                .into()
33883            }
33884        }
33885        unsafe extern "system" fn SetAreDefaultScriptDialogsEnabled<
33886            Identity: ICoreWebView2Settings_Impl,
33887            const OFFSET: isize,
33888        >(
33889            this: *mut core::ffi::c_void,
33890            aredefaultscriptdialogsenabled: windows_core::BOOL,
33891        ) -> windows_core::HRESULT {
33892            unsafe {
33893                let this: &Identity =
33894                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
33895                ICoreWebView2Settings_Impl::SetAreDefaultScriptDialogsEnabled(
33896                    this,
33897                    core::mem::transmute_copy(&aredefaultscriptdialogsenabled),
33898                )
33899                .into()
33900            }
33901        }
33902        unsafe extern "system" fn IsStatusBarEnabled<
33903            Identity: ICoreWebView2Settings_Impl,
33904            const OFFSET: isize,
33905        >(
33906            this: *mut core::ffi::c_void,
33907            isstatusbarenabled: *mut windows_core::BOOL,
33908        ) -> windows_core::HRESULT {
33909            unsafe {
33910                let this: &Identity =
33911                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
33912                ICoreWebView2Settings_Impl::IsStatusBarEnabled(
33913                    this,
33914                    core::mem::transmute_copy(&isstatusbarenabled),
33915                )
33916                .into()
33917            }
33918        }
33919        unsafe extern "system" fn SetIsStatusBarEnabled<
33920            Identity: ICoreWebView2Settings_Impl,
33921            const OFFSET: isize,
33922        >(
33923            this: *mut core::ffi::c_void,
33924            isstatusbarenabled: windows_core::BOOL,
33925        ) -> windows_core::HRESULT {
33926            unsafe {
33927                let this: &Identity =
33928                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
33929                ICoreWebView2Settings_Impl::SetIsStatusBarEnabled(
33930                    this,
33931                    core::mem::transmute_copy(&isstatusbarenabled),
33932                )
33933                .into()
33934            }
33935        }
33936        unsafe extern "system" fn AreDevToolsEnabled<
33937            Identity: ICoreWebView2Settings_Impl,
33938            const OFFSET: isize,
33939        >(
33940            this: *mut core::ffi::c_void,
33941            aredevtoolsenabled: *mut windows_core::BOOL,
33942        ) -> windows_core::HRESULT {
33943            unsafe {
33944                let this: &Identity =
33945                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
33946                ICoreWebView2Settings_Impl::AreDevToolsEnabled(
33947                    this,
33948                    core::mem::transmute_copy(&aredevtoolsenabled),
33949                )
33950                .into()
33951            }
33952        }
33953        unsafe extern "system" fn SetAreDevToolsEnabled<
33954            Identity: ICoreWebView2Settings_Impl,
33955            const OFFSET: isize,
33956        >(
33957            this: *mut core::ffi::c_void,
33958            aredevtoolsenabled: windows_core::BOOL,
33959        ) -> windows_core::HRESULT {
33960            unsafe {
33961                let this: &Identity =
33962                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
33963                ICoreWebView2Settings_Impl::SetAreDevToolsEnabled(
33964                    this,
33965                    core::mem::transmute_copy(&aredevtoolsenabled),
33966                )
33967                .into()
33968            }
33969        }
33970        unsafe extern "system" fn AreDefaultContextMenusEnabled<
33971            Identity: ICoreWebView2Settings_Impl,
33972            const OFFSET: isize,
33973        >(
33974            this: *mut core::ffi::c_void,
33975            enabled: *mut windows_core::BOOL,
33976        ) -> windows_core::HRESULT {
33977            unsafe {
33978                let this: &Identity =
33979                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
33980                ICoreWebView2Settings_Impl::AreDefaultContextMenusEnabled(
33981                    this,
33982                    core::mem::transmute_copy(&enabled),
33983                )
33984                .into()
33985            }
33986        }
33987        unsafe extern "system" fn SetAreDefaultContextMenusEnabled<
33988            Identity: ICoreWebView2Settings_Impl,
33989            const OFFSET: isize,
33990        >(
33991            this: *mut core::ffi::c_void,
33992            enabled: windows_core::BOOL,
33993        ) -> windows_core::HRESULT {
33994            unsafe {
33995                let this: &Identity =
33996                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
33997                ICoreWebView2Settings_Impl::SetAreDefaultContextMenusEnabled(
33998                    this,
33999                    core::mem::transmute_copy(&enabled),
34000                )
34001                .into()
34002            }
34003        }
34004        unsafe extern "system" fn AreHostObjectsAllowed<
34005            Identity: ICoreWebView2Settings_Impl,
34006            const OFFSET: isize,
34007        >(
34008            this: *mut core::ffi::c_void,
34009            allowed: *mut windows_core::BOOL,
34010        ) -> windows_core::HRESULT {
34011            unsafe {
34012                let this: &Identity =
34013                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
34014                ICoreWebView2Settings_Impl::AreHostObjectsAllowed(
34015                    this,
34016                    core::mem::transmute_copy(&allowed),
34017                )
34018                .into()
34019            }
34020        }
34021        unsafe extern "system" fn SetAreHostObjectsAllowed<
34022            Identity: ICoreWebView2Settings_Impl,
34023            const OFFSET: isize,
34024        >(
34025            this: *mut core::ffi::c_void,
34026            allowed: windows_core::BOOL,
34027        ) -> windows_core::HRESULT {
34028            unsafe {
34029                let this: &Identity =
34030                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
34031                ICoreWebView2Settings_Impl::SetAreHostObjectsAllowed(
34032                    this,
34033                    core::mem::transmute_copy(&allowed),
34034                )
34035                .into()
34036            }
34037        }
34038        unsafe extern "system" fn IsZoomControlEnabled<
34039            Identity: ICoreWebView2Settings_Impl,
34040            const OFFSET: isize,
34041        >(
34042            this: *mut core::ffi::c_void,
34043            enabled: *mut windows_core::BOOL,
34044        ) -> windows_core::HRESULT {
34045            unsafe {
34046                let this: &Identity =
34047                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
34048                ICoreWebView2Settings_Impl::IsZoomControlEnabled(
34049                    this,
34050                    core::mem::transmute_copy(&enabled),
34051                )
34052                .into()
34053            }
34054        }
34055        unsafe extern "system" fn SetIsZoomControlEnabled<
34056            Identity: ICoreWebView2Settings_Impl,
34057            const OFFSET: isize,
34058        >(
34059            this: *mut core::ffi::c_void,
34060            enabled: windows_core::BOOL,
34061        ) -> windows_core::HRESULT {
34062            unsafe {
34063                let this: &Identity =
34064                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
34065                ICoreWebView2Settings_Impl::SetIsZoomControlEnabled(
34066                    this,
34067                    core::mem::transmute_copy(&enabled),
34068                )
34069                .into()
34070            }
34071        }
34072        unsafe extern "system" fn IsBuiltInErrorPageEnabled<
34073            Identity: ICoreWebView2Settings_Impl,
34074            const OFFSET: isize,
34075        >(
34076            this: *mut core::ffi::c_void,
34077            enabled: *mut windows_core::BOOL,
34078        ) -> windows_core::HRESULT {
34079            unsafe {
34080                let this: &Identity =
34081                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
34082                ICoreWebView2Settings_Impl::IsBuiltInErrorPageEnabled(
34083                    this,
34084                    core::mem::transmute_copy(&enabled),
34085                )
34086                .into()
34087            }
34088        }
34089        unsafe extern "system" fn SetIsBuiltInErrorPageEnabled<
34090            Identity: ICoreWebView2Settings_Impl,
34091            const OFFSET: isize,
34092        >(
34093            this: *mut core::ffi::c_void,
34094            enabled: windows_core::BOOL,
34095        ) -> windows_core::HRESULT {
34096            unsafe {
34097                let this: &Identity =
34098                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
34099                ICoreWebView2Settings_Impl::SetIsBuiltInErrorPageEnabled(
34100                    this,
34101                    core::mem::transmute_copy(&enabled),
34102                )
34103                .into()
34104            }
34105        }
34106        Self {
34107            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
34108            IsScriptEnabled: IsScriptEnabled::<Identity, OFFSET>,
34109            SetIsScriptEnabled: SetIsScriptEnabled::<Identity, OFFSET>,
34110            IsWebMessageEnabled: IsWebMessageEnabled::<Identity, OFFSET>,
34111            SetIsWebMessageEnabled: SetIsWebMessageEnabled::<Identity, OFFSET>,
34112            AreDefaultScriptDialogsEnabled: AreDefaultScriptDialogsEnabled::<Identity, OFFSET>,
34113            SetAreDefaultScriptDialogsEnabled: SetAreDefaultScriptDialogsEnabled::<Identity, OFFSET>,
34114            IsStatusBarEnabled: IsStatusBarEnabled::<Identity, OFFSET>,
34115            SetIsStatusBarEnabled: SetIsStatusBarEnabled::<Identity, OFFSET>,
34116            AreDevToolsEnabled: AreDevToolsEnabled::<Identity, OFFSET>,
34117            SetAreDevToolsEnabled: SetAreDevToolsEnabled::<Identity, OFFSET>,
34118            AreDefaultContextMenusEnabled: AreDefaultContextMenusEnabled::<Identity, OFFSET>,
34119            SetAreDefaultContextMenusEnabled: SetAreDefaultContextMenusEnabled::<Identity, OFFSET>,
34120            AreHostObjectsAllowed: AreHostObjectsAllowed::<Identity, OFFSET>,
34121            SetAreHostObjectsAllowed: SetAreHostObjectsAllowed::<Identity, OFFSET>,
34122            IsZoomControlEnabled: IsZoomControlEnabled::<Identity, OFFSET>,
34123            SetIsZoomControlEnabled: SetIsZoomControlEnabled::<Identity, OFFSET>,
34124            IsBuiltInErrorPageEnabled: IsBuiltInErrorPageEnabled::<Identity, OFFSET>,
34125            SetIsBuiltInErrorPageEnabled: SetIsBuiltInErrorPageEnabled::<Identity, OFFSET>,
34126        }
34127    }
34128    pub fn matches(iid: &windows_core::GUID) -> bool {
34129        iid == &<ICoreWebView2Settings as windows_core::Interface>::IID
34130    }
34131}
34132impl windows_core::RuntimeName for ICoreWebView2Settings {}
34133windows_core::imp::define_interface!(
34134    ICoreWebView2Settings2,
34135    ICoreWebView2Settings2_Vtbl,
34136    0xee9a0f68_f46c_4e32_ac23_ef8cac224d2a
34137);
34138impl core::ops::Deref for ICoreWebView2Settings2 {
34139    type Target = ICoreWebView2Settings;
34140    fn deref(&self) -> &Self::Target {
34141        unsafe { core::mem::transmute(self) }
34142    }
34143}
34144windows_core::imp::interface_hierarchy!(
34145    ICoreWebView2Settings2,
34146    windows_core::IUnknown,
34147    ICoreWebView2Settings
34148);
34149impl ICoreWebView2Settings2 {
34150    pub unsafe fn UserAgent(&self, value: *mut windows_core::PWSTR) -> windows_core::Result<()> {
34151        unsafe {
34152            (windows_core::Interface::vtable(self).UserAgent)(
34153                windows_core::Interface::as_raw(self),
34154                value as _,
34155            )
34156            .ok()
34157        }
34158    }
34159    pub unsafe fn SetUserAgent<P0>(&self, value: P0) -> windows_core::Result<()>
34160    where
34161        P0: windows_core::Param<windows_core::PCWSTR>,
34162    {
34163        unsafe {
34164            (windows_core::Interface::vtable(self).SetUserAgent)(
34165                windows_core::Interface::as_raw(self),
34166                value.param().abi(),
34167            )
34168            .ok()
34169        }
34170    }
34171}
34172#[repr(C)]
34173#[doc(hidden)]
34174pub struct ICoreWebView2Settings2_Vtbl {
34175    pub base__: ICoreWebView2Settings_Vtbl,
34176    pub UserAgent: unsafe extern "system" fn(
34177        *mut core::ffi::c_void,
34178        *mut windows_core::PWSTR,
34179    ) -> windows_core::HRESULT,
34180    pub SetUserAgent: unsafe extern "system" fn(
34181        *mut core::ffi::c_void,
34182        windows_core::PCWSTR,
34183    ) -> windows_core::HRESULT,
34184}
34185pub trait ICoreWebView2Settings2_Impl: ICoreWebView2Settings_Impl {
34186    fn UserAgent(&self, value: *mut windows_core::PWSTR) -> windows_core::Result<()>;
34187    fn SetUserAgent(&self, value: &windows_core::PCWSTR) -> windows_core::Result<()>;
34188}
34189impl ICoreWebView2Settings2_Vtbl {
34190    pub const fn new<Identity: ICoreWebView2Settings2_Impl, const OFFSET: isize>() -> Self {
34191        unsafe extern "system" fn UserAgent<
34192            Identity: ICoreWebView2Settings2_Impl,
34193            const OFFSET: isize,
34194        >(
34195            this: *mut core::ffi::c_void,
34196            value: *mut windows_core::PWSTR,
34197        ) -> windows_core::HRESULT {
34198            unsafe {
34199                let this: &Identity =
34200                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
34201                ICoreWebView2Settings2_Impl::UserAgent(this, core::mem::transmute_copy(&value))
34202                    .into()
34203            }
34204        }
34205        unsafe extern "system" fn SetUserAgent<
34206            Identity: ICoreWebView2Settings2_Impl,
34207            const OFFSET: isize,
34208        >(
34209            this: *mut core::ffi::c_void,
34210            value: windows_core::PCWSTR,
34211        ) -> windows_core::HRESULT {
34212            unsafe {
34213                let this: &Identity =
34214                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
34215                ICoreWebView2Settings2_Impl::SetUserAgent(this, core::mem::transmute(&value)).into()
34216            }
34217        }
34218        Self {
34219            base__: ICoreWebView2Settings_Vtbl::new::<Identity, OFFSET>(),
34220            UserAgent: UserAgent::<Identity, OFFSET>,
34221            SetUserAgent: SetUserAgent::<Identity, OFFSET>,
34222        }
34223    }
34224    pub fn matches(iid: &windows_core::GUID) -> bool {
34225        iid == &<ICoreWebView2Settings2 as windows_core::Interface>::IID
34226            || iid == &<ICoreWebView2Settings as windows_core::Interface>::IID
34227    }
34228}
34229impl windows_core::RuntimeName for ICoreWebView2Settings2 {}
34230windows_core::imp::define_interface!(
34231    ICoreWebView2Settings3,
34232    ICoreWebView2Settings3_Vtbl,
34233    0xfdb5ab74_af33_4854_84f0_0a631deb5eba
34234);
34235impl core::ops::Deref for ICoreWebView2Settings3 {
34236    type Target = ICoreWebView2Settings2;
34237    fn deref(&self) -> &Self::Target {
34238        unsafe { core::mem::transmute(self) }
34239    }
34240}
34241windows_core::imp::interface_hierarchy!(
34242    ICoreWebView2Settings3,
34243    windows_core::IUnknown,
34244    ICoreWebView2Settings,
34245    ICoreWebView2Settings2
34246);
34247impl ICoreWebView2Settings3 {
34248    pub unsafe fn AreBrowserAcceleratorKeysEnabled(
34249        &self,
34250        value: *mut windows_core::BOOL,
34251    ) -> windows_core::Result<()> {
34252        unsafe {
34253            (windows_core::Interface::vtable(self).AreBrowserAcceleratorKeysEnabled)(
34254                windows_core::Interface::as_raw(self),
34255                value as _,
34256            )
34257            .ok()
34258        }
34259    }
34260    pub unsafe fn SetAreBrowserAcceleratorKeysEnabled(
34261        &self,
34262        value: bool,
34263    ) -> windows_core::Result<()> {
34264        unsafe {
34265            (windows_core::Interface::vtable(self).SetAreBrowserAcceleratorKeysEnabled)(
34266                windows_core::Interface::as_raw(self),
34267                value.into(),
34268            )
34269            .ok()
34270        }
34271    }
34272}
34273#[repr(C)]
34274#[doc(hidden)]
34275pub struct ICoreWebView2Settings3_Vtbl {
34276    pub base__: ICoreWebView2Settings2_Vtbl,
34277    pub AreBrowserAcceleratorKeysEnabled: unsafe extern "system" fn(
34278        *mut core::ffi::c_void,
34279        *mut windows_core::BOOL,
34280    ) -> windows_core::HRESULT,
34281    pub SetAreBrowserAcceleratorKeysEnabled: unsafe extern "system" fn(
34282        *mut core::ffi::c_void,
34283        windows_core::BOOL,
34284    )
34285        -> windows_core::HRESULT,
34286}
34287pub trait ICoreWebView2Settings3_Impl: ICoreWebView2Settings2_Impl {
34288    fn AreBrowserAcceleratorKeysEnabled(
34289        &self,
34290        value: *mut windows_core::BOOL,
34291    ) -> windows_core::Result<()>;
34292    fn SetAreBrowserAcceleratorKeysEnabled(
34293        &self,
34294        value: windows_core::BOOL,
34295    ) -> windows_core::Result<()>;
34296}
34297impl ICoreWebView2Settings3_Vtbl {
34298    pub const fn new<Identity: ICoreWebView2Settings3_Impl, const OFFSET: isize>() -> Self {
34299        unsafe extern "system" fn AreBrowserAcceleratorKeysEnabled<
34300            Identity: ICoreWebView2Settings3_Impl,
34301            const OFFSET: isize,
34302        >(
34303            this: *mut core::ffi::c_void,
34304            value: *mut windows_core::BOOL,
34305        ) -> windows_core::HRESULT {
34306            unsafe {
34307                let this: &Identity =
34308                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
34309                ICoreWebView2Settings3_Impl::AreBrowserAcceleratorKeysEnabled(
34310                    this,
34311                    core::mem::transmute_copy(&value),
34312                )
34313                .into()
34314            }
34315        }
34316        unsafe extern "system" fn SetAreBrowserAcceleratorKeysEnabled<
34317            Identity: ICoreWebView2Settings3_Impl,
34318            const OFFSET: isize,
34319        >(
34320            this: *mut core::ffi::c_void,
34321            value: windows_core::BOOL,
34322        ) -> windows_core::HRESULT {
34323            unsafe {
34324                let this: &Identity =
34325                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
34326                ICoreWebView2Settings3_Impl::SetAreBrowserAcceleratorKeysEnabled(
34327                    this,
34328                    core::mem::transmute_copy(&value),
34329                )
34330                .into()
34331            }
34332        }
34333        Self {
34334            base__: ICoreWebView2Settings2_Vtbl::new::<Identity, OFFSET>(),
34335            AreBrowserAcceleratorKeysEnabled: AreBrowserAcceleratorKeysEnabled::<Identity, OFFSET>,
34336            SetAreBrowserAcceleratorKeysEnabled: SetAreBrowserAcceleratorKeysEnabled::<
34337                Identity,
34338                OFFSET,
34339            >,
34340        }
34341    }
34342    pub fn matches(iid: &windows_core::GUID) -> bool {
34343        iid == &<ICoreWebView2Settings3 as windows_core::Interface>::IID
34344            || iid == &<ICoreWebView2Settings as windows_core::Interface>::IID
34345            || iid == &<ICoreWebView2Settings2 as windows_core::Interface>::IID
34346    }
34347}
34348impl windows_core::RuntimeName for ICoreWebView2Settings3 {}
34349windows_core::imp::define_interface!(
34350    ICoreWebView2Settings4,
34351    ICoreWebView2Settings4_Vtbl,
34352    0xcb56846c_4168_4d53_b04f_03b6d6796ff2
34353);
34354impl core::ops::Deref for ICoreWebView2Settings4 {
34355    type Target = ICoreWebView2Settings3;
34356    fn deref(&self) -> &Self::Target {
34357        unsafe { core::mem::transmute(self) }
34358    }
34359}
34360windows_core::imp::interface_hierarchy!(
34361    ICoreWebView2Settings4,
34362    windows_core::IUnknown,
34363    ICoreWebView2Settings,
34364    ICoreWebView2Settings2,
34365    ICoreWebView2Settings3
34366);
34367impl ICoreWebView2Settings4 {
34368    pub unsafe fn IsPasswordAutosaveEnabled(
34369        &self,
34370        value: *mut windows_core::BOOL,
34371    ) -> windows_core::Result<()> {
34372        unsafe {
34373            (windows_core::Interface::vtable(self).IsPasswordAutosaveEnabled)(
34374                windows_core::Interface::as_raw(self),
34375                value as _,
34376            )
34377            .ok()
34378        }
34379    }
34380    pub unsafe fn SetIsPasswordAutosaveEnabled(&self, value: bool) -> windows_core::Result<()> {
34381        unsafe {
34382            (windows_core::Interface::vtable(self).SetIsPasswordAutosaveEnabled)(
34383                windows_core::Interface::as_raw(self),
34384                value.into(),
34385            )
34386            .ok()
34387        }
34388    }
34389    pub unsafe fn IsGeneralAutofillEnabled(
34390        &self,
34391        value: *mut windows_core::BOOL,
34392    ) -> windows_core::Result<()> {
34393        unsafe {
34394            (windows_core::Interface::vtable(self).IsGeneralAutofillEnabled)(
34395                windows_core::Interface::as_raw(self),
34396                value as _,
34397            )
34398            .ok()
34399        }
34400    }
34401    pub unsafe fn SetIsGeneralAutofillEnabled(&self, value: bool) -> windows_core::Result<()> {
34402        unsafe {
34403            (windows_core::Interface::vtable(self).SetIsGeneralAutofillEnabled)(
34404                windows_core::Interface::as_raw(self),
34405                value.into(),
34406            )
34407            .ok()
34408        }
34409    }
34410}
34411#[repr(C)]
34412#[doc(hidden)]
34413pub struct ICoreWebView2Settings4_Vtbl {
34414    pub base__: ICoreWebView2Settings3_Vtbl,
34415    pub IsPasswordAutosaveEnabled: unsafe extern "system" fn(
34416        *mut core::ffi::c_void,
34417        *mut windows_core::BOOL,
34418    ) -> windows_core::HRESULT,
34419    pub SetIsPasswordAutosaveEnabled: unsafe extern "system" fn(
34420        *mut core::ffi::c_void,
34421        windows_core::BOOL,
34422    ) -> windows_core::HRESULT,
34423    pub IsGeneralAutofillEnabled: unsafe extern "system" fn(
34424        *mut core::ffi::c_void,
34425        *mut windows_core::BOOL,
34426    ) -> windows_core::HRESULT,
34427    pub SetIsGeneralAutofillEnabled: unsafe extern "system" fn(
34428        *mut core::ffi::c_void,
34429        windows_core::BOOL,
34430    ) -> windows_core::HRESULT,
34431}
34432pub trait ICoreWebView2Settings4_Impl: ICoreWebView2Settings3_Impl {
34433    fn IsPasswordAutosaveEnabled(&self, value: *mut windows_core::BOOL)
34434        -> windows_core::Result<()>;
34435    fn SetIsPasswordAutosaveEnabled(&self, value: windows_core::BOOL) -> windows_core::Result<()>;
34436    fn IsGeneralAutofillEnabled(&self, value: *mut windows_core::BOOL) -> windows_core::Result<()>;
34437    fn SetIsGeneralAutofillEnabled(&self, value: windows_core::BOOL) -> windows_core::Result<()>;
34438}
34439impl ICoreWebView2Settings4_Vtbl {
34440    pub const fn new<Identity: ICoreWebView2Settings4_Impl, const OFFSET: isize>() -> Self {
34441        unsafe extern "system" fn IsPasswordAutosaveEnabled<
34442            Identity: ICoreWebView2Settings4_Impl,
34443            const OFFSET: isize,
34444        >(
34445            this: *mut core::ffi::c_void,
34446            value: *mut windows_core::BOOL,
34447        ) -> windows_core::HRESULT {
34448            unsafe {
34449                let this: &Identity =
34450                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
34451                ICoreWebView2Settings4_Impl::IsPasswordAutosaveEnabled(
34452                    this,
34453                    core::mem::transmute_copy(&value),
34454                )
34455                .into()
34456            }
34457        }
34458        unsafe extern "system" fn SetIsPasswordAutosaveEnabled<
34459            Identity: ICoreWebView2Settings4_Impl,
34460            const OFFSET: isize,
34461        >(
34462            this: *mut core::ffi::c_void,
34463            value: windows_core::BOOL,
34464        ) -> windows_core::HRESULT {
34465            unsafe {
34466                let this: &Identity =
34467                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
34468                ICoreWebView2Settings4_Impl::SetIsPasswordAutosaveEnabled(
34469                    this,
34470                    core::mem::transmute_copy(&value),
34471                )
34472                .into()
34473            }
34474        }
34475        unsafe extern "system" fn IsGeneralAutofillEnabled<
34476            Identity: ICoreWebView2Settings4_Impl,
34477            const OFFSET: isize,
34478        >(
34479            this: *mut core::ffi::c_void,
34480            value: *mut windows_core::BOOL,
34481        ) -> windows_core::HRESULT {
34482            unsafe {
34483                let this: &Identity =
34484                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
34485                ICoreWebView2Settings4_Impl::IsGeneralAutofillEnabled(
34486                    this,
34487                    core::mem::transmute_copy(&value),
34488                )
34489                .into()
34490            }
34491        }
34492        unsafe extern "system" fn SetIsGeneralAutofillEnabled<
34493            Identity: ICoreWebView2Settings4_Impl,
34494            const OFFSET: isize,
34495        >(
34496            this: *mut core::ffi::c_void,
34497            value: windows_core::BOOL,
34498        ) -> windows_core::HRESULT {
34499            unsafe {
34500                let this: &Identity =
34501                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
34502                ICoreWebView2Settings4_Impl::SetIsGeneralAutofillEnabled(
34503                    this,
34504                    core::mem::transmute_copy(&value),
34505                )
34506                .into()
34507            }
34508        }
34509        Self {
34510            base__: ICoreWebView2Settings3_Vtbl::new::<Identity, OFFSET>(),
34511            IsPasswordAutosaveEnabled: IsPasswordAutosaveEnabled::<Identity, OFFSET>,
34512            SetIsPasswordAutosaveEnabled: SetIsPasswordAutosaveEnabled::<Identity, OFFSET>,
34513            IsGeneralAutofillEnabled: IsGeneralAutofillEnabled::<Identity, OFFSET>,
34514            SetIsGeneralAutofillEnabled: SetIsGeneralAutofillEnabled::<Identity, OFFSET>,
34515        }
34516    }
34517    pub fn matches(iid: &windows_core::GUID) -> bool {
34518        iid == &<ICoreWebView2Settings4 as windows_core::Interface>::IID
34519            || iid == &<ICoreWebView2Settings as windows_core::Interface>::IID
34520            || iid == &<ICoreWebView2Settings2 as windows_core::Interface>::IID
34521            || iid == &<ICoreWebView2Settings3 as windows_core::Interface>::IID
34522    }
34523}
34524impl windows_core::RuntimeName for ICoreWebView2Settings4 {}
34525windows_core::imp::define_interface!(
34526    ICoreWebView2Settings5,
34527    ICoreWebView2Settings5_Vtbl,
34528    0x183e7052_1d03_43a0_ab99_98e043b66b39
34529);
34530impl core::ops::Deref for ICoreWebView2Settings5 {
34531    type Target = ICoreWebView2Settings4;
34532    fn deref(&self) -> &Self::Target {
34533        unsafe { core::mem::transmute(self) }
34534    }
34535}
34536windows_core::imp::interface_hierarchy!(
34537    ICoreWebView2Settings5,
34538    windows_core::IUnknown,
34539    ICoreWebView2Settings,
34540    ICoreWebView2Settings2,
34541    ICoreWebView2Settings3,
34542    ICoreWebView2Settings4
34543);
34544impl ICoreWebView2Settings5 {
34545    pub unsafe fn IsPinchZoomEnabled(
34546        &self,
34547        value: *mut windows_core::BOOL,
34548    ) -> windows_core::Result<()> {
34549        unsafe {
34550            (windows_core::Interface::vtable(self).IsPinchZoomEnabled)(
34551                windows_core::Interface::as_raw(self),
34552                value as _,
34553            )
34554            .ok()
34555        }
34556    }
34557    pub unsafe fn SetIsPinchZoomEnabled(&self, value: bool) -> windows_core::Result<()> {
34558        unsafe {
34559            (windows_core::Interface::vtable(self).SetIsPinchZoomEnabled)(
34560                windows_core::Interface::as_raw(self),
34561                value.into(),
34562            )
34563            .ok()
34564        }
34565    }
34566}
34567#[repr(C)]
34568#[doc(hidden)]
34569pub struct ICoreWebView2Settings5_Vtbl {
34570    pub base__: ICoreWebView2Settings4_Vtbl,
34571    pub IsPinchZoomEnabled: unsafe extern "system" fn(
34572        *mut core::ffi::c_void,
34573        *mut windows_core::BOOL,
34574    ) -> windows_core::HRESULT,
34575    pub SetIsPinchZoomEnabled: unsafe extern "system" fn(
34576        *mut core::ffi::c_void,
34577        windows_core::BOOL,
34578    ) -> windows_core::HRESULT,
34579}
34580pub trait ICoreWebView2Settings5_Impl: ICoreWebView2Settings4_Impl {
34581    fn IsPinchZoomEnabled(&self, value: *mut windows_core::BOOL) -> windows_core::Result<()>;
34582    fn SetIsPinchZoomEnabled(&self, value: windows_core::BOOL) -> windows_core::Result<()>;
34583}
34584impl ICoreWebView2Settings5_Vtbl {
34585    pub const fn new<Identity: ICoreWebView2Settings5_Impl, const OFFSET: isize>() -> Self {
34586        unsafe extern "system" fn IsPinchZoomEnabled<
34587            Identity: ICoreWebView2Settings5_Impl,
34588            const OFFSET: isize,
34589        >(
34590            this: *mut core::ffi::c_void,
34591            value: *mut windows_core::BOOL,
34592        ) -> windows_core::HRESULT {
34593            unsafe {
34594                let this: &Identity =
34595                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
34596                ICoreWebView2Settings5_Impl::IsPinchZoomEnabled(
34597                    this,
34598                    core::mem::transmute_copy(&value),
34599                )
34600                .into()
34601            }
34602        }
34603        unsafe extern "system" fn SetIsPinchZoomEnabled<
34604            Identity: ICoreWebView2Settings5_Impl,
34605            const OFFSET: isize,
34606        >(
34607            this: *mut core::ffi::c_void,
34608            value: windows_core::BOOL,
34609        ) -> windows_core::HRESULT {
34610            unsafe {
34611                let this: &Identity =
34612                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
34613                ICoreWebView2Settings5_Impl::SetIsPinchZoomEnabled(
34614                    this,
34615                    core::mem::transmute_copy(&value),
34616                )
34617                .into()
34618            }
34619        }
34620        Self {
34621            base__: ICoreWebView2Settings4_Vtbl::new::<Identity, OFFSET>(),
34622            IsPinchZoomEnabled: IsPinchZoomEnabled::<Identity, OFFSET>,
34623            SetIsPinchZoomEnabled: SetIsPinchZoomEnabled::<Identity, OFFSET>,
34624        }
34625    }
34626    pub fn matches(iid: &windows_core::GUID) -> bool {
34627        iid == &<ICoreWebView2Settings5 as windows_core::Interface>::IID
34628            || iid == &<ICoreWebView2Settings as windows_core::Interface>::IID
34629            || iid == &<ICoreWebView2Settings2 as windows_core::Interface>::IID
34630            || iid == &<ICoreWebView2Settings3 as windows_core::Interface>::IID
34631            || iid == &<ICoreWebView2Settings4 as windows_core::Interface>::IID
34632    }
34633}
34634impl windows_core::RuntimeName for ICoreWebView2Settings5 {}
34635windows_core::imp::define_interface!(
34636    ICoreWebView2Settings6,
34637    ICoreWebView2Settings6_Vtbl,
34638    0x11cb3acd_9bc8_43b8_83bf_f40753714f87
34639);
34640impl core::ops::Deref for ICoreWebView2Settings6 {
34641    type Target = ICoreWebView2Settings5;
34642    fn deref(&self) -> &Self::Target {
34643        unsafe { core::mem::transmute(self) }
34644    }
34645}
34646windows_core::imp::interface_hierarchy!(
34647    ICoreWebView2Settings6,
34648    windows_core::IUnknown,
34649    ICoreWebView2Settings,
34650    ICoreWebView2Settings2,
34651    ICoreWebView2Settings3,
34652    ICoreWebView2Settings4,
34653    ICoreWebView2Settings5
34654);
34655impl ICoreWebView2Settings6 {
34656    pub unsafe fn IsSwipeNavigationEnabled(
34657        &self,
34658        value: *mut windows_core::BOOL,
34659    ) -> windows_core::Result<()> {
34660        unsafe {
34661            (windows_core::Interface::vtable(self).IsSwipeNavigationEnabled)(
34662                windows_core::Interface::as_raw(self),
34663                value as _,
34664            )
34665            .ok()
34666        }
34667    }
34668    pub unsafe fn SetIsSwipeNavigationEnabled(&self, value: bool) -> windows_core::Result<()> {
34669        unsafe {
34670            (windows_core::Interface::vtable(self).SetIsSwipeNavigationEnabled)(
34671                windows_core::Interface::as_raw(self),
34672                value.into(),
34673            )
34674            .ok()
34675        }
34676    }
34677}
34678#[repr(C)]
34679#[doc(hidden)]
34680pub struct ICoreWebView2Settings6_Vtbl {
34681    pub base__: ICoreWebView2Settings5_Vtbl,
34682    pub IsSwipeNavigationEnabled: unsafe extern "system" fn(
34683        *mut core::ffi::c_void,
34684        *mut windows_core::BOOL,
34685    ) -> windows_core::HRESULT,
34686    pub SetIsSwipeNavigationEnabled: unsafe extern "system" fn(
34687        *mut core::ffi::c_void,
34688        windows_core::BOOL,
34689    ) -> windows_core::HRESULT,
34690}
34691pub trait ICoreWebView2Settings6_Impl: ICoreWebView2Settings5_Impl {
34692    fn IsSwipeNavigationEnabled(&self, value: *mut windows_core::BOOL) -> windows_core::Result<()>;
34693    fn SetIsSwipeNavigationEnabled(&self, value: windows_core::BOOL) -> windows_core::Result<()>;
34694}
34695impl ICoreWebView2Settings6_Vtbl {
34696    pub const fn new<Identity: ICoreWebView2Settings6_Impl, const OFFSET: isize>() -> Self {
34697        unsafe extern "system" fn IsSwipeNavigationEnabled<
34698            Identity: ICoreWebView2Settings6_Impl,
34699            const OFFSET: isize,
34700        >(
34701            this: *mut core::ffi::c_void,
34702            value: *mut windows_core::BOOL,
34703        ) -> windows_core::HRESULT {
34704            unsafe {
34705                let this: &Identity =
34706                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
34707                ICoreWebView2Settings6_Impl::IsSwipeNavigationEnabled(
34708                    this,
34709                    core::mem::transmute_copy(&value),
34710                )
34711                .into()
34712            }
34713        }
34714        unsafe extern "system" fn SetIsSwipeNavigationEnabled<
34715            Identity: ICoreWebView2Settings6_Impl,
34716            const OFFSET: isize,
34717        >(
34718            this: *mut core::ffi::c_void,
34719            value: windows_core::BOOL,
34720        ) -> windows_core::HRESULT {
34721            unsafe {
34722                let this: &Identity =
34723                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
34724                ICoreWebView2Settings6_Impl::SetIsSwipeNavigationEnabled(
34725                    this,
34726                    core::mem::transmute_copy(&value),
34727                )
34728                .into()
34729            }
34730        }
34731        Self {
34732            base__: ICoreWebView2Settings5_Vtbl::new::<Identity, OFFSET>(),
34733            IsSwipeNavigationEnabled: IsSwipeNavigationEnabled::<Identity, OFFSET>,
34734            SetIsSwipeNavigationEnabled: SetIsSwipeNavigationEnabled::<Identity, OFFSET>,
34735        }
34736    }
34737    pub fn matches(iid: &windows_core::GUID) -> bool {
34738        iid == &<ICoreWebView2Settings6 as windows_core::Interface>::IID
34739            || iid == &<ICoreWebView2Settings as windows_core::Interface>::IID
34740            || iid == &<ICoreWebView2Settings2 as windows_core::Interface>::IID
34741            || iid == &<ICoreWebView2Settings3 as windows_core::Interface>::IID
34742            || iid == &<ICoreWebView2Settings4 as windows_core::Interface>::IID
34743            || iid == &<ICoreWebView2Settings5 as windows_core::Interface>::IID
34744    }
34745}
34746impl windows_core::RuntimeName for ICoreWebView2Settings6 {}
34747windows_core::imp::define_interface!(
34748    ICoreWebView2Settings7,
34749    ICoreWebView2Settings7_Vtbl,
34750    0x488dc902_35ef_42d2_bc7d_94b65c4bc49c
34751);
34752impl core::ops::Deref for ICoreWebView2Settings7 {
34753    type Target = ICoreWebView2Settings6;
34754    fn deref(&self) -> &Self::Target {
34755        unsafe { core::mem::transmute(self) }
34756    }
34757}
34758windows_core::imp::interface_hierarchy!(
34759    ICoreWebView2Settings7,
34760    windows_core::IUnknown,
34761    ICoreWebView2Settings,
34762    ICoreWebView2Settings2,
34763    ICoreWebView2Settings3,
34764    ICoreWebView2Settings4,
34765    ICoreWebView2Settings5,
34766    ICoreWebView2Settings6
34767);
34768impl ICoreWebView2Settings7 {
34769    pub unsafe fn HiddenPdfToolbarItems(
34770        &self,
34771        value: *mut COREWEBVIEW2_PDF_TOOLBAR_ITEMS,
34772    ) -> windows_core::Result<()> {
34773        unsafe {
34774            (windows_core::Interface::vtable(self).HiddenPdfToolbarItems)(
34775                windows_core::Interface::as_raw(self),
34776                value as _,
34777            )
34778            .ok()
34779        }
34780    }
34781    pub unsafe fn SetHiddenPdfToolbarItems(
34782        &self,
34783        value: COREWEBVIEW2_PDF_TOOLBAR_ITEMS,
34784    ) -> windows_core::Result<()> {
34785        unsafe {
34786            (windows_core::Interface::vtable(self).SetHiddenPdfToolbarItems)(
34787                windows_core::Interface::as_raw(self),
34788                value,
34789            )
34790            .ok()
34791        }
34792    }
34793}
34794#[repr(C)]
34795#[doc(hidden)]
34796pub struct ICoreWebView2Settings7_Vtbl {
34797    pub base__: ICoreWebView2Settings6_Vtbl,
34798    pub HiddenPdfToolbarItems: unsafe extern "system" fn(
34799        *mut core::ffi::c_void,
34800        *mut COREWEBVIEW2_PDF_TOOLBAR_ITEMS,
34801    ) -> windows_core::HRESULT,
34802    pub SetHiddenPdfToolbarItems: unsafe extern "system" fn(
34803        *mut core::ffi::c_void,
34804        COREWEBVIEW2_PDF_TOOLBAR_ITEMS,
34805    ) -> windows_core::HRESULT,
34806}
34807pub trait ICoreWebView2Settings7_Impl: ICoreWebView2Settings6_Impl {
34808    fn HiddenPdfToolbarItems(
34809        &self,
34810        value: *mut COREWEBVIEW2_PDF_TOOLBAR_ITEMS,
34811    ) -> windows_core::Result<()>;
34812    fn SetHiddenPdfToolbarItems(
34813        &self,
34814        value: COREWEBVIEW2_PDF_TOOLBAR_ITEMS,
34815    ) -> windows_core::Result<()>;
34816}
34817impl ICoreWebView2Settings7_Vtbl {
34818    pub const fn new<Identity: ICoreWebView2Settings7_Impl, const OFFSET: isize>() -> Self {
34819        unsafe extern "system" fn HiddenPdfToolbarItems<
34820            Identity: ICoreWebView2Settings7_Impl,
34821            const OFFSET: isize,
34822        >(
34823            this: *mut core::ffi::c_void,
34824            value: *mut COREWEBVIEW2_PDF_TOOLBAR_ITEMS,
34825        ) -> windows_core::HRESULT {
34826            unsafe {
34827                let this: &Identity =
34828                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
34829                ICoreWebView2Settings7_Impl::HiddenPdfToolbarItems(
34830                    this,
34831                    core::mem::transmute_copy(&value),
34832                )
34833                .into()
34834            }
34835        }
34836        unsafe extern "system" fn SetHiddenPdfToolbarItems<
34837            Identity: ICoreWebView2Settings7_Impl,
34838            const OFFSET: isize,
34839        >(
34840            this: *mut core::ffi::c_void,
34841            value: COREWEBVIEW2_PDF_TOOLBAR_ITEMS,
34842        ) -> windows_core::HRESULT {
34843            unsafe {
34844                let this: &Identity =
34845                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
34846                ICoreWebView2Settings7_Impl::SetHiddenPdfToolbarItems(
34847                    this,
34848                    core::mem::transmute_copy(&value),
34849                )
34850                .into()
34851            }
34852        }
34853        Self {
34854            base__: ICoreWebView2Settings6_Vtbl::new::<Identity, OFFSET>(),
34855            HiddenPdfToolbarItems: HiddenPdfToolbarItems::<Identity, OFFSET>,
34856            SetHiddenPdfToolbarItems: SetHiddenPdfToolbarItems::<Identity, OFFSET>,
34857        }
34858    }
34859    pub fn matches(iid: &windows_core::GUID) -> bool {
34860        iid == &<ICoreWebView2Settings7 as windows_core::Interface>::IID
34861            || iid == &<ICoreWebView2Settings as windows_core::Interface>::IID
34862            || iid == &<ICoreWebView2Settings2 as windows_core::Interface>::IID
34863            || iid == &<ICoreWebView2Settings3 as windows_core::Interface>::IID
34864            || iid == &<ICoreWebView2Settings4 as windows_core::Interface>::IID
34865            || iid == &<ICoreWebView2Settings5 as windows_core::Interface>::IID
34866            || iid == &<ICoreWebView2Settings6 as windows_core::Interface>::IID
34867    }
34868}
34869impl windows_core::RuntimeName for ICoreWebView2Settings7 {}
34870windows_core::imp::define_interface!(
34871    ICoreWebView2Settings8,
34872    ICoreWebView2Settings8_Vtbl,
34873    0x9e6b0e8f_86ad_4e81_8147_a9b5edb68650
34874);
34875impl core::ops::Deref for ICoreWebView2Settings8 {
34876    type Target = ICoreWebView2Settings7;
34877    fn deref(&self) -> &Self::Target {
34878        unsafe { core::mem::transmute(self) }
34879    }
34880}
34881windows_core::imp::interface_hierarchy!(
34882    ICoreWebView2Settings8,
34883    windows_core::IUnknown,
34884    ICoreWebView2Settings,
34885    ICoreWebView2Settings2,
34886    ICoreWebView2Settings3,
34887    ICoreWebView2Settings4,
34888    ICoreWebView2Settings5,
34889    ICoreWebView2Settings6,
34890    ICoreWebView2Settings7
34891);
34892impl ICoreWebView2Settings8 {
34893    pub unsafe fn IsReputationCheckingRequired(
34894        &self,
34895        value: *mut windows_core::BOOL,
34896    ) -> windows_core::Result<()> {
34897        unsafe {
34898            (windows_core::Interface::vtable(self).IsReputationCheckingRequired)(
34899                windows_core::Interface::as_raw(self),
34900                value as _,
34901            )
34902            .ok()
34903        }
34904    }
34905    pub unsafe fn SetIsReputationCheckingRequired(&self, value: bool) -> windows_core::Result<()> {
34906        unsafe {
34907            (windows_core::Interface::vtable(self).SetIsReputationCheckingRequired)(
34908                windows_core::Interface::as_raw(self),
34909                value.into(),
34910            )
34911            .ok()
34912        }
34913    }
34914}
34915#[repr(C)]
34916#[doc(hidden)]
34917pub struct ICoreWebView2Settings8_Vtbl {
34918    pub base__: ICoreWebView2Settings7_Vtbl,
34919    pub IsReputationCheckingRequired: unsafe extern "system" fn(
34920        *mut core::ffi::c_void,
34921        *mut windows_core::BOOL,
34922    ) -> windows_core::HRESULT,
34923    pub SetIsReputationCheckingRequired: unsafe extern "system" fn(
34924        *mut core::ffi::c_void,
34925        windows_core::BOOL,
34926    ) -> windows_core::HRESULT,
34927}
34928pub trait ICoreWebView2Settings8_Impl: ICoreWebView2Settings7_Impl {
34929    fn IsReputationCheckingRequired(
34930        &self,
34931        value: *mut windows_core::BOOL,
34932    ) -> windows_core::Result<()>;
34933    fn SetIsReputationCheckingRequired(
34934        &self,
34935        value: windows_core::BOOL,
34936    ) -> windows_core::Result<()>;
34937}
34938impl ICoreWebView2Settings8_Vtbl {
34939    pub const fn new<Identity: ICoreWebView2Settings8_Impl, const OFFSET: isize>() -> Self {
34940        unsafe extern "system" fn IsReputationCheckingRequired<
34941            Identity: ICoreWebView2Settings8_Impl,
34942            const OFFSET: isize,
34943        >(
34944            this: *mut core::ffi::c_void,
34945            value: *mut windows_core::BOOL,
34946        ) -> windows_core::HRESULT {
34947            unsafe {
34948                let this: &Identity =
34949                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
34950                ICoreWebView2Settings8_Impl::IsReputationCheckingRequired(
34951                    this,
34952                    core::mem::transmute_copy(&value),
34953                )
34954                .into()
34955            }
34956        }
34957        unsafe extern "system" fn SetIsReputationCheckingRequired<
34958            Identity: ICoreWebView2Settings8_Impl,
34959            const OFFSET: isize,
34960        >(
34961            this: *mut core::ffi::c_void,
34962            value: windows_core::BOOL,
34963        ) -> windows_core::HRESULT {
34964            unsafe {
34965                let this: &Identity =
34966                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
34967                ICoreWebView2Settings8_Impl::SetIsReputationCheckingRequired(
34968                    this,
34969                    core::mem::transmute_copy(&value),
34970                )
34971                .into()
34972            }
34973        }
34974        Self {
34975            base__: ICoreWebView2Settings7_Vtbl::new::<Identity, OFFSET>(),
34976            IsReputationCheckingRequired: IsReputationCheckingRequired::<Identity, OFFSET>,
34977            SetIsReputationCheckingRequired: SetIsReputationCheckingRequired::<Identity, OFFSET>,
34978        }
34979    }
34980    pub fn matches(iid: &windows_core::GUID) -> bool {
34981        iid == &<ICoreWebView2Settings8 as windows_core::Interface>::IID
34982            || iid == &<ICoreWebView2Settings as windows_core::Interface>::IID
34983            || iid == &<ICoreWebView2Settings2 as windows_core::Interface>::IID
34984            || iid == &<ICoreWebView2Settings3 as windows_core::Interface>::IID
34985            || iid == &<ICoreWebView2Settings4 as windows_core::Interface>::IID
34986            || iid == &<ICoreWebView2Settings5 as windows_core::Interface>::IID
34987            || iid == &<ICoreWebView2Settings6 as windows_core::Interface>::IID
34988            || iid == &<ICoreWebView2Settings7 as windows_core::Interface>::IID
34989    }
34990}
34991impl windows_core::RuntimeName for ICoreWebView2Settings8 {}
34992windows_core::imp::define_interface!(
34993    ICoreWebView2Settings9,
34994    ICoreWebView2Settings9_Vtbl,
34995    0x0528a73b_e92d_49f4_927a_e547dddaa37d
34996);
34997impl core::ops::Deref for ICoreWebView2Settings9 {
34998    type Target = ICoreWebView2Settings8;
34999    fn deref(&self) -> &Self::Target {
35000        unsafe { core::mem::transmute(self) }
35001    }
35002}
35003windows_core::imp::interface_hierarchy!(
35004    ICoreWebView2Settings9,
35005    windows_core::IUnknown,
35006    ICoreWebView2Settings,
35007    ICoreWebView2Settings2,
35008    ICoreWebView2Settings3,
35009    ICoreWebView2Settings4,
35010    ICoreWebView2Settings5,
35011    ICoreWebView2Settings6,
35012    ICoreWebView2Settings7,
35013    ICoreWebView2Settings8
35014);
35015impl ICoreWebView2Settings9 {
35016    pub unsafe fn IsNonClientRegionSupportEnabled(
35017        &self,
35018        value: *mut windows_core::BOOL,
35019    ) -> windows_core::Result<()> {
35020        unsafe {
35021            (windows_core::Interface::vtable(self).IsNonClientRegionSupportEnabled)(
35022                windows_core::Interface::as_raw(self),
35023                value as _,
35024            )
35025            .ok()
35026        }
35027    }
35028    pub unsafe fn SetIsNonClientRegionSupportEnabled(
35029        &self,
35030        value: bool,
35031    ) -> windows_core::Result<()> {
35032        unsafe {
35033            (windows_core::Interface::vtable(self).SetIsNonClientRegionSupportEnabled)(
35034                windows_core::Interface::as_raw(self),
35035                value.into(),
35036            )
35037            .ok()
35038        }
35039    }
35040}
35041#[repr(C)]
35042#[doc(hidden)]
35043pub struct ICoreWebView2Settings9_Vtbl {
35044    pub base__: ICoreWebView2Settings8_Vtbl,
35045    pub IsNonClientRegionSupportEnabled: unsafe extern "system" fn(
35046        *mut core::ffi::c_void,
35047        *mut windows_core::BOOL,
35048    ) -> windows_core::HRESULT,
35049    pub SetIsNonClientRegionSupportEnabled: unsafe extern "system" fn(
35050        *mut core::ffi::c_void,
35051        windows_core::BOOL,
35052    ) -> windows_core::HRESULT,
35053}
35054pub trait ICoreWebView2Settings9_Impl: ICoreWebView2Settings8_Impl {
35055    fn IsNonClientRegionSupportEnabled(
35056        &self,
35057        value: *mut windows_core::BOOL,
35058    ) -> windows_core::Result<()>;
35059    fn SetIsNonClientRegionSupportEnabled(
35060        &self,
35061        value: windows_core::BOOL,
35062    ) -> windows_core::Result<()>;
35063}
35064impl ICoreWebView2Settings9_Vtbl {
35065    pub const fn new<Identity: ICoreWebView2Settings9_Impl, const OFFSET: isize>() -> Self {
35066        unsafe extern "system" fn IsNonClientRegionSupportEnabled<
35067            Identity: ICoreWebView2Settings9_Impl,
35068            const OFFSET: isize,
35069        >(
35070            this: *mut core::ffi::c_void,
35071            value: *mut windows_core::BOOL,
35072        ) -> windows_core::HRESULT {
35073            unsafe {
35074                let this: &Identity =
35075                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
35076                ICoreWebView2Settings9_Impl::IsNonClientRegionSupportEnabled(
35077                    this,
35078                    core::mem::transmute_copy(&value),
35079                )
35080                .into()
35081            }
35082        }
35083        unsafe extern "system" fn SetIsNonClientRegionSupportEnabled<
35084            Identity: ICoreWebView2Settings9_Impl,
35085            const OFFSET: isize,
35086        >(
35087            this: *mut core::ffi::c_void,
35088            value: windows_core::BOOL,
35089        ) -> windows_core::HRESULT {
35090            unsafe {
35091                let this: &Identity =
35092                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
35093                ICoreWebView2Settings9_Impl::SetIsNonClientRegionSupportEnabled(
35094                    this,
35095                    core::mem::transmute_copy(&value),
35096                )
35097                .into()
35098            }
35099        }
35100        Self {
35101            base__: ICoreWebView2Settings8_Vtbl::new::<Identity, OFFSET>(),
35102            IsNonClientRegionSupportEnabled: IsNonClientRegionSupportEnabled::<Identity, OFFSET>,
35103            SetIsNonClientRegionSupportEnabled: SetIsNonClientRegionSupportEnabled::<
35104                Identity,
35105                OFFSET,
35106            >,
35107        }
35108    }
35109    pub fn matches(iid: &windows_core::GUID) -> bool {
35110        iid == &<ICoreWebView2Settings9 as windows_core::Interface>::IID
35111            || iid == &<ICoreWebView2Settings as windows_core::Interface>::IID
35112            || iid == &<ICoreWebView2Settings2 as windows_core::Interface>::IID
35113            || iid == &<ICoreWebView2Settings3 as windows_core::Interface>::IID
35114            || iid == &<ICoreWebView2Settings4 as windows_core::Interface>::IID
35115            || iid == &<ICoreWebView2Settings5 as windows_core::Interface>::IID
35116            || iid == &<ICoreWebView2Settings6 as windows_core::Interface>::IID
35117            || iid == &<ICoreWebView2Settings7 as windows_core::Interface>::IID
35118            || iid == &<ICoreWebView2Settings8 as windows_core::Interface>::IID
35119    }
35120}
35121impl windows_core::RuntimeName for ICoreWebView2Settings9 {}
35122windows_core::imp::define_interface!(
35123    ICoreWebView2SharedBuffer,
35124    ICoreWebView2SharedBuffer_Vtbl,
35125    0xb747a495_0c6f_449e_97b8_2f81e9d6ab43
35126);
35127windows_core::imp::interface_hierarchy!(ICoreWebView2SharedBuffer, windows_core::IUnknown);
35128impl ICoreWebView2SharedBuffer {
35129    pub unsafe fn Size(&self, value: *mut u64) -> windows_core::Result<()> {
35130        unsafe {
35131            (windows_core::Interface::vtable(self).Size)(
35132                windows_core::Interface::as_raw(self),
35133                value as _,
35134            )
35135            .ok()
35136        }
35137    }
35138    pub unsafe fn Buffer(&self, value: *mut *mut u8) -> windows_core::Result<()> {
35139        unsafe {
35140            (windows_core::Interface::vtable(self).Buffer)(
35141                windows_core::Interface::as_raw(self),
35142                value as _,
35143            )
35144            .ok()
35145        }
35146    }
35147    pub unsafe fn OpenStream(&self) -> windows_core::Result<windows::Win32::System::Com::IStream> {
35148        unsafe {
35149            let mut result__ = core::mem::zeroed();
35150            (windows_core::Interface::vtable(self).OpenStream)(
35151                windows_core::Interface::as_raw(self),
35152                &mut result__,
35153            )
35154            .and_then(|| windows_core::Type::from_abi(result__))
35155        }
35156    }
35157    pub unsafe fn FileMappingHandle(
35158        &self,
35159        value: *mut windows::Win32::Foundation::HANDLE,
35160    ) -> windows_core::Result<()> {
35161        unsafe {
35162            (windows_core::Interface::vtable(self).FileMappingHandle)(
35163                windows_core::Interface::as_raw(self),
35164                value as _,
35165            )
35166            .ok()
35167        }
35168    }
35169    pub unsafe fn Close(&self) -> windows_core::Result<()> {
35170        unsafe {
35171            (windows_core::Interface::vtable(self).Close)(windows_core::Interface::as_raw(self))
35172                .ok()
35173        }
35174    }
35175}
35176#[repr(C)]
35177#[doc(hidden)]
35178pub struct ICoreWebView2SharedBuffer_Vtbl {
35179    pub base__: windows_core::IUnknown_Vtbl,
35180    pub Size: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u64) -> windows_core::HRESULT,
35181    pub Buffer:
35182        unsafe extern "system" fn(*mut core::ffi::c_void, *mut *mut u8) -> windows_core::HRESULT,
35183    pub OpenStream: unsafe extern "system" fn(
35184        *mut core::ffi::c_void,
35185        *mut *mut core::ffi::c_void,
35186    ) -> windows_core::HRESULT,
35187    pub FileMappingHandle: unsafe extern "system" fn(
35188        *mut core::ffi::c_void,
35189        *mut windows::Win32::Foundation::HANDLE,
35190    ) -> windows_core::HRESULT,
35191    pub Close: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
35192}
35193pub trait ICoreWebView2SharedBuffer_Impl: windows_core::IUnknownImpl {
35194    fn Size(&self, value: *mut u64) -> windows_core::Result<()>;
35195    fn Buffer(&self, value: *mut *mut u8) -> windows_core::Result<()>;
35196    fn OpenStream(&self) -> windows_core::Result<windows::Win32::System::Com::IStream>;
35197    fn FileMappingHandle(
35198        &self,
35199        value: *mut windows::Win32::Foundation::HANDLE,
35200    ) -> windows_core::Result<()>;
35201    fn Close(&self) -> windows_core::Result<()>;
35202}
35203impl ICoreWebView2SharedBuffer_Vtbl {
35204    pub const fn new<Identity: ICoreWebView2SharedBuffer_Impl, const OFFSET: isize>() -> Self {
35205        unsafe extern "system" fn Size<
35206            Identity: ICoreWebView2SharedBuffer_Impl,
35207            const OFFSET: isize,
35208        >(
35209            this: *mut core::ffi::c_void,
35210            value: *mut u64,
35211        ) -> windows_core::HRESULT {
35212            unsafe {
35213                let this: &Identity =
35214                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
35215                ICoreWebView2SharedBuffer_Impl::Size(this, core::mem::transmute_copy(&value)).into()
35216            }
35217        }
35218        unsafe extern "system" fn Buffer<
35219            Identity: ICoreWebView2SharedBuffer_Impl,
35220            const OFFSET: isize,
35221        >(
35222            this: *mut core::ffi::c_void,
35223            value: *mut *mut u8,
35224        ) -> windows_core::HRESULT {
35225            unsafe {
35226                let this: &Identity =
35227                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
35228                ICoreWebView2SharedBuffer_Impl::Buffer(this, core::mem::transmute_copy(&value))
35229                    .into()
35230            }
35231        }
35232        unsafe extern "system" fn OpenStream<
35233            Identity: ICoreWebView2SharedBuffer_Impl,
35234            const OFFSET: isize,
35235        >(
35236            this: *mut core::ffi::c_void,
35237            value: *mut *mut core::ffi::c_void,
35238        ) -> windows_core::HRESULT {
35239            unsafe {
35240                let this: &Identity =
35241                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
35242                match ICoreWebView2SharedBuffer_Impl::OpenStream(this) {
35243                    Ok(ok__) => {
35244                        value.write(core::mem::transmute(ok__));
35245                        windows_core::HRESULT(0)
35246                    }
35247                    Err(err) => err.into(),
35248                }
35249            }
35250        }
35251        unsafe extern "system" fn FileMappingHandle<
35252            Identity: ICoreWebView2SharedBuffer_Impl,
35253            const OFFSET: isize,
35254        >(
35255            this: *mut core::ffi::c_void,
35256            value: *mut windows::Win32::Foundation::HANDLE,
35257        ) -> windows_core::HRESULT {
35258            unsafe {
35259                let this: &Identity =
35260                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
35261                ICoreWebView2SharedBuffer_Impl::FileMappingHandle(
35262                    this,
35263                    core::mem::transmute_copy(&value),
35264                )
35265                .into()
35266            }
35267        }
35268        unsafe extern "system" fn Close<
35269            Identity: ICoreWebView2SharedBuffer_Impl,
35270            const OFFSET: isize,
35271        >(
35272            this: *mut core::ffi::c_void,
35273        ) -> windows_core::HRESULT {
35274            unsafe {
35275                let this: &Identity =
35276                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
35277                ICoreWebView2SharedBuffer_Impl::Close(this).into()
35278            }
35279        }
35280        Self {
35281            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
35282            Size: Size::<Identity, OFFSET>,
35283            Buffer: Buffer::<Identity, OFFSET>,
35284            OpenStream: OpenStream::<Identity, OFFSET>,
35285            FileMappingHandle: FileMappingHandle::<Identity, OFFSET>,
35286            Close: Close::<Identity, OFFSET>,
35287        }
35288    }
35289    pub fn matches(iid: &windows_core::GUID) -> bool {
35290        iid == &<ICoreWebView2SharedBuffer as windows_core::Interface>::IID
35291    }
35292}
35293impl windows_core::RuntimeName for ICoreWebView2SharedBuffer {}
35294windows_core::imp::define_interface!(
35295    ICoreWebView2ShowSaveAsUICompletedHandler,
35296    ICoreWebView2ShowSaveAsUICompletedHandler_Vtbl,
35297    0xe24b07e3_8169_5c34_994a_7f6478946a3c
35298);
35299windows_core::imp::interface_hierarchy!(
35300    ICoreWebView2ShowSaveAsUICompletedHandler,
35301    windows_core::IUnknown
35302);
35303impl ICoreWebView2ShowSaveAsUICompletedHandler {
35304    pub unsafe fn Invoke(
35305        &self,
35306        errorcode: windows_core::HRESULT,
35307        result: COREWEBVIEW2_SAVE_AS_UI_RESULT,
35308    ) -> windows_core::Result<()> {
35309        unsafe {
35310            (windows_core::Interface::vtable(self).Invoke)(
35311                windows_core::Interface::as_raw(self),
35312                errorcode,
35313                result,
35314            )
35315            .ok()
35316        }
35317    }
35318}
35319#[repr(C)]
35320#[doc(hidden)]
35321pub struct ICoreWebView2ShowSaveAsUICompletedHandler_Vtbl {
35322    pub base__: windows_core::IUnknown_Vtbl,
35323    pub Invoke: unsafe extern "system" fn(
35324        *mut core::ffi::c_void,
35325        windows_core::HRESULT,
35326        COREWEBVIEW2_SAVE_AS_UI_RESULT,
35327    ) -> windows_core::HRESULT,
35328}
35329pub trait ICoreWebView2ShowSaveAsUICompletedHandler_Impl: windows_core::IUnknownImpl {
35330    fn Invoke(
35331        &self,
35332        errorcode: windows_core::HRESULT,
35333        result: COREWEBVIEW2_SAVE_AS_UI_RESULT,
35334    ) -> windows_core::Result<()>;
35335}
35336impl ICoreWebView2ShowSaveAsUICompletedHandler_Vtbl {
35337    pub const fn new<
35338        Identity: ICoreWebView2ShowSaveAsUICompletedHandler_Impl,
35339        const OFFSET: isize,
35340    >() -> Self {
35341        unsafe extern "system" fn Invoke<
35342            Identity: ICoreWebView2ShowSaveAsUICompletedHandler_Impl,
35343            const OFFSET: isize,
35344        >(
35345            this: *mut core::ffi::c_void,
35346            errorcode: windows_core::HRESULT,
35347            result: COREWEBVIEW2_SAVE_AS_UI_RESULT,
35348        ) -> windows_core::HRESULT {
35349            unsafe {
35350                let this: &Identity =
35351                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
35352                ICoreWebView2ShowSaveAsUICompletedHandler_Impl::Invoke(
35353                    this,
35354                    core::mem::transmute_copy(&errorcode),
35355                    core::mem::transmute_copy(&result),
35356                )
35357                .into()
35358            }
35359        }
35360        Self {
35361            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
35362            Invoke: Invoke::<Identity, OFFSET>,
35363        }
35364    }
35365    pub fn matches(iid: &windows_core::GUID) -> bool {
35366        iid == &<ICoreWebView2ShowSaveAsUICompletedHandler as windows_core::Interface>::IID
35367    }
35368}
35369impl windows_core::RuntimeName for ICoreWebView2ShowSaveAsUICompletedHandler {}
35370windows_core::imp::define_interface!(
35371    ICoreWebView2SourceChangedEventArgs,
35372    ICoreWebView2SourceChangedEventArgs_Vtbl,
35373    0x31e0e545_1dba_4266_8914_f63848a1f7d7
35374);
35375windows_core::imp::interface_hierarchy!(
35376    ICoreWebView2SourceChangedEventArgs,
35377    windows_core::IUnknown
35378);
35379impl ICoreWebView2SourceChangedEventArgs {
35380    pub unsafe fn IsNewDocument(&self, value: *mut windows_core::BOOL) -> windows_core::Result<()> {
35381        unsafe {
35382            (windows_core::Interface::vtable(self).IsNewDocument)(
35383                windows_core::Interface::as_raw(self),
35384                value as _,
35385            )
35386            .ok()
35387        }
35388    }
35389}
35390#[repr(C)]
35391#[doc(hidden)]
35392pub struct ICoreWebView2SourceChangedEventArgs_Vtbl {
35393    pub base__: windows_core::IUnknown_Vtbl,
35394    pub IsNewDocument: unsafe extern "system" fn(
35395        *mut core::ffi::c_void,
35396        *mut windows_core::BOOL,
35397    ) -> windows_core::HRESULT,
35398}
35399pub trait ICoreWebView2SourceChangedEventArgs_Impl: windows_core::IUnknownImpl {
35400    fn IsNewDocument(&self, value: *mut windows_core::BOOL) -> windows_core::Result<()>;
35401}
35402impl ICoreWebView2SourceChangedEventArgs_Vtbl {
35403    pub const fn new<Identity: ICoreWebView2SourceChangedEventArgs_Impl, const OFFSET: isize>(
35404    ) -> Self {
35405        unsafe extern "system" fn IsNewDocument<
35406            Identity: ICoreWebView2SourceChangedEventArgs_Impl,
35407            const OFFSET: isize,
35408        >(
35409            this: *mut core::ffi::c_void,
35410            value: *mut windows_core::BOOL,
35411        ) -> windows_core::HRESULT {
35412            unsafe {
35413                let this: &Identity =
35414                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
35415                ICoreWebView2SourceChangedEventArgs_Impl::IsNewDocument(
35416                    this,
35417                    core::mem::transmute_copy(&value),
35418                )
35419                .into()
35420            }
35421        }
35422        Self {
35423            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
35424            IsNewDocument: IsNewDocument::<Identity, OFFSET>,
35425        }
35426    }
35427    pub fn matches(iid: &windows_core::GUID) -> bool {
35428        iid == &<ICoreWebView2SourceChangedEventArgs as windows_core::Interface>::IID
35429    }
35430}
35431impl windows_core::RuntimeName for ICoreWebView2SourceChangedEventArgs {}
35432windows_core::imp::define_interface!(
35433    ICoreWebView2SourceChangedEventHandler,
35434    ICoreWebView2SourceChangedEventHandler_Vtbl,
35435    0x3c067f9f_5388_4772_8b48_79f7ef1ab37c
35436);
35437windows_core::imp::interface_hierarchy!(
35438    ICoreWebView2SourceChangedEventHandler,
35439    windows_core::IUnknown
35440);
35441impl ICoreWebView2SourceChangedEventHandler {
35442    pub unsafe fn Invoke<P0, P1>(&self, sender: P0, args: P1) -> windows_core::Result<()>
35443    where
35444        P0: windows_core::Param<ICoreWebView2>,
35445        P1: windows_core::Param<ICoreWebView2SourceChangedEventArgs>,
35446    {
35447        unsafe {
35448            (windows_core::Interface::vtable(self).Invoke)(
35449                windows_core::Interface::as_raw(self),
35450                sender.param().abi(),
35451                args.param().abi(),
35452            )
35453            .ok()
35454        }
35455    }
35456}
35457#[repr(C)]
35458#[doc(hidden)]
35459pub struct ICoreWebView2SourceChangedEventHandler_Vtbl {
35460    pub base__: windows_core::IUnknown_Vtbl,
35461    pub Invoke: unsafe extern "system" fn(
35462        *mut core::ffi::c_void,
35463        *mut core::ffi::c_void,
35464        *mut core::ffi::c_void,
35465    ) -> windows_core::HRESULT,
35466}
35467pub trait ICoreWebView2SourceChangedEventHandler_Impl: windows_core::IUnknownImpl {
35468    fn Invoke(
35469        &self,
35470        sender: windows_core::Ref<'_, ICoreWebView2>,
35471        args: windows_core::Ref<'_, ICoreWebView2SourceChangedEventArgs>,
35472    ) -> windows_core::Result<()>;
35473}
35474impl ICoreWebView2SourceChangedEventHandler_Vtbl {
35475    pub const fn new<Identity: ICoreWebView2SourceChangedEventHandler_Impl, const OFFSET: isize>(
35476    ) -> Self {
35477        unsafe extern "system" fn Invoke<
35478            Identity: ICoreWebView2SourceChangedEventHandler_Impl,
35479            const OFFSET: isize,
35480        >(
35481            this: *mut core::ffi::c_void,
35482            sender: *mut core::ffi::c_void,
35483            args: *mut core::ffi::c_void,
35484        ) -> windows_core::HRESULT {
35485            unsafe {
35486                let this: &Identity =
35487                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
35488                ICoreWebView2SourceChangedEventHandler_Impl::Invoke(
35489                    this,
35490                    core::mem::transmute_copy(&sender),
35491                    core::mem::transmute_copy(&args),
35492                )
35493                .into()
35494            }
35495        }
35496        Self {
35497            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
35498            Invoke: Invoke::<Identity, OFFSET>,
35499        }
35500    }
35501    pub fn matches(iid: &windows_core::GUID) -> bool {
35502        iid == &<ICoreWebView2SourceChangedEventHandler as windows_core::Interface>::IID
35503    }
35504}
35505impl windows_core::RuntimeName for ICoreWebView2SourceChangedEventHandler {}
35506windows_core::imp::define_interface!(
35507    ICoreWebView2StateChangedEventHandler,
35508    ICoreWebView2StateChangedEventHandler_Vtbl,
35509    0x81336594_7ede_4ba9_bf71_acf0a95b58dd
35510);
35511windows_core::imp::interface_hierarchy!(
35512    ICoreWebView2StateChangedEventHandler,
35513    windows_core::IUnknown
35514);
35515impl ICoreWebView2StateChangedEventHandler {
35516    pub unsafe fn Invoke<P0, P1>(&self, sender: P0, args: P1) -> windows_core::Result<()>
35517    where
35518        P0: windows_core::Param<ICoreWebView2DownloadOperation>,
35519        P1: windows_core::Param<windows_core::IUnknown>,
35520    {
35521        unsafe {
35522            (windows_core::Interface::vtable(self).Invoke)(
35523                windows_core::Interface::as_raw(self),
35524                sender.param().abi(),
35525                args.param().abi(),
35526            )
35527            .ok()
35528        }
35529    }
35530}
35531#[repr(C)]
35532#[doc(hidden)]
35533pub struct ICoreWebView2StateChangedEventHandler_Vtbl {
35534    pub base__: windows_core::IUnknown_Vtbl,
35535    pub Invoke: unsafe extern "system" fn(
35536        *mut core::ffi::c_void,
35537        *mut core::ffi::c_void,
35538        *mut core::ffi::c_void,
35539    ) -> windows_core::HRESULT,
35540}
35541pub trait ICoreWebView2StateChangedEventHandler_Impl: windows_core::IUnknownImpl {
35542    fn Invoke(
35543        &self,
35544        sender: windows_core::Ref<'_, ICoreWebView2DownloadOperation>,
35545        args: windows_core::Ref<'_, windows_core::IUnknown>,
35546    ) -> windows_core::Result<()>;
35547}
35548impl ICoreWebView2StateChangedEventHandler_Vtbl {
35549    pub const fn new<Identity: ICoreWebView2StateChangedEventHandler_Impl, const OFFSET: isize>(
35550    ) -> Self {
35551        unsafe extern "system" fn Invoke<
35552            Identity: ICoreWebView2StateChangedEventHandler_Impl,
35553            const OFFSET: isize,
35554        >(
35555            this: *mut core::ffi::c_void,
35556            sender: *mut core::ffi::c_void,
35557            args: *mut core::ffi::c_void,
35558        ) -> windows_core::HRESULT {
35559            unsafe {
35560                let this: &Identity =
35561                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
35562                ICoreWebView2StateChangedEventHandler_Impl::Invoke(
35563                    this,
35564                    core::mem::transmute_copy(&sender),
35565                    core::mem::transmute_copy(&args),
35566                )
35567                .into()
35568            }
35569        }
35570        Self {
35571            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
35572            Invoke: Invoke::<Identity, OFFSET>,
35573        }
35574    }
35575    pub fn matches(iid: &windows_core::GUID) -> bool {
35576        iid == &<ICoreWebView2StateChangedEventHandler as windows_core::Interface>::IID
35577    }
35578}
35579impl windows_core::RuntimeName for ICoreWebView2StateChangedEventHandler {}
35580windows_core::imp::define_interface!(
35581    ICoreWebView2StatusBarTextChangedEventHandler,
35582    ICoreWebView2StatusBarTextChangedEventHandler_Vtbl,
35583    0xa5e3b0d0_10df_4156_bfad_3b43867acac6
35584);
35585windows_core::imp::interface_hierarchy!(
35586    ICoreWebView2StatusBarTextChangedEventHandler,
35587    windows_core::IUnknown
35588);
35589impl ICoreWebView2StatusBarTextChangedEventHandler {
35590    pub unsafe fn Invoke<P0, P1>(&self, sender: P0, args: P1) -> windows_core::Result<()>
35591    where
35592        P0: windows_core::Param<ICoreWebView2>,
35593        P1: windows_core::Param<windows_core::IUnknown>,
35594    {
35595        unsafe {
35596            (windows_core::Interface::vtable(self).Invoke)(
35597                windows_core::Interface::as_raw(self),
35598                sender.param().abi(),
35599                args.param().abi(),
35600            )
35601            .ok()
35602        }
35603    }
35604}
35605#[repr(C)]
35606#[doc(hidden)]
35607pub struct ICoreWebView2StatusBarTextChangedEventHandler_Vtbl {
35608    pub base__: windows_core::IUnknown_Vtbl,
35609    pub Invoke: unsafe extern "system" fn(
35610        *mut core::ffi::c_void,
35611        *mut core::ffi::c_void,
35612        *mut core::ffi::c_void,
35613    ) -> windows_core::HRESULT,
35614}
35615pub trait ICoreWebView2StatusBarTextChangedEventHandler_Impl: windows_core::IUnknownImpl {
35616    fn Invoke(
35617        &self,
35618        sender: windows_core::Ref<'_, ICoreWebView2>,
35619        args: windows_core::Ref<'_, windows_core::IUnknown>,
35620    ) -> windows_core::Result<()>;
35621}
35622impl ICoreWebView2StatusBarTextChangedEventHandler_Vtbl {
35623    pub const fn new<
35624        Identity: ICoreWebView2StatusBarTextChangedEventHandler_Impl,
35625        const OFFSET: isize,
35626    >() -> Self {
35627        unsafe extern "system" fn Invoke<
35628            Identity: ICoreWebView2StatusBarTextChangedEventHandler_Impl,
35629            const OFFSET: isize,
35630        >(
35631            this: *mut core::ffi::c_void,
35632            sender: *mut core::ffi::c_void,
35633            args: *mut core::ffi::c_void,
35634        ) -> windows_core::HRESULT {
35635            unsafe {
35636                let this: &Identity =
35637                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
35638                ICoreWebView2StatusBarTextChangedEventHandler_Impl::Invoke(
35639                    this,
35640                    core::mem::transmute_copy(&sender),
35641                    core::mem::transmute_copy(&args),
35642                )
35643                .into()
35644            }
35645        }
35646        Self {
35647            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
35648            Invoke: Invoke::<Identity, OFFSET>,
35649        }
35650    }
35651    pub fn matches(iid: &windows_core::GUID) -> bool {
35652        iid == &<ICoreWebView2StatusBarTextChangedEventHandler as windows_core::Interface>::IID
35653    }
35654}
35655impl windows_core::RuntimeName for ICoreWebView2StatusBarTextChangedEventHandler {}
35656windows_core::imp::define_interface!(
35657    ICoreWebView2StringCollection,
35658    ICoreWebView2StringCollection_Vtbl,
35659    0xf41f3f8a_bcc3_11eb_8529_0242ac130003
35660);
35661windows_core::imp::interface_hierarchy!(ICoreWebView2StringCollection, windows_core::IUnknown);
35662impl ICoreWebView2StringCollection {
35663    pub unsafe fn Count(&self, value: *mut u32) -> windows_core::Result<()> {
35664        unsafe {
35665            (windows_core::Interface::vtable(self).Count)(
35666                windows_core::Interface::as_raw(self),
35667                value as _,
35668            )
35669            .ok()
35670        }
35671    }
35672    pub unsafe fn GetValueAtIndex(
35673        &self,
35674        index: u32,
35675        value: *mut windows_core::PWSTR,
35676    ) -> windows_core::Result<()> {
35677        unsafe {
35678            (windows_core::Interface::vtable(self).GetValueAtIndex)(
35679                windows_core::Interface::as_raw(self),
35680                index,
35681                value as _,
35682            )
35683            .ok()
35684        }
35685    }
35686}
35687#[repr(C)]
35688#[doc(hidden)]
35689pub struct ICoreWebView2StringCollection_Vtbl {
35690    pub base__: windows_core::IUnknown_Vtbl,
35691    pub Count: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
35692    pub GetValueAtIndex: unsafe extern "system" fn(
35693        *mut core::ffi::c_void,
35694        u32,
35695        *mut windows_core::PWSTR,
35696    ) -> windows_core::HRESULT,
35697}
35698pub trait ICoreWebView2StringCollection_Impl: windows_core::IUnknownImpl {
35699    fn Count(&self, value: *mut u32) -> windows_core::Result<()>;
35700    fn GetValueAtIndex(
35701        &self,
35702        index: u32,
35703        value: *mut windows_core::PWSTR,
35704    ) -> windows_core::Result<()>;
35705}
35706impl ICoreWebView2StringCollection_Vtbl {
35707    pub const fn new<Identity: ICoreWebView2StringCollection_Impl, const OFFSET: isize>() -> Self {
35708        unsafe extern "system" fn Count<
35709            Identity: ICoreWebView2StringCollection_Impl,
35710            const OFFSET: isize,
35711        >(
35712            this: *mut core::ffi::c_void,
35713            value: *mut u32,
35714        ) -> windows_core::HRESULT {
35715            unsafe {
35716                let this: &Identity =
35717                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
35718                ICoreWebView2StringCollection_Impl::Count(this, core::mem::transmute_copy(&value))
35719                    .into()
35720            }
35721        }
35722        unsafe extern "system" fn GetValueAtIndex<
35723            Identity: ICoreWebView2StringCollection_Impl,
35724            const OFFSET: isize,
35725        >(
35726            this: *mut core::ffi::c_void,
35727            index: u32,
35728            value: *mut windows_core::PWSTR,
35729        ) -> windows_core::HRESULT {
35730            unsafe {
35731                let this: &Identity =
35732                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
35733                ICoreWebView2StringCollection_Impl::GetValueAtIndex(
35734                    this,
35735                    core::mem::transmute_copy(&index),
35736                    core::mem::transmute_copy(&value),
35737                )
35738                .into()
35739            }
35740        }
35741        Self {
35742            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
35743            Count: Count::<Identity, OFFSET>,
35744            GetValueAtIndex: GetValueAtIndex::<Identity, OFFSET>,
35745        }
35746    }
35747    pub fn matches(iid: &windows_core::GUID) -> bool {
35748        iid == &<ICoreWebView2StringCollection as windows_core::Interface>::IID
35749    }
35750}
35751impl windows_core::RuntimeName for ICoreWebView2StringCollection {}
35752windows_core::imp::define_interface!(
35753    ICoreWebView2TrySuspendCompletedHandler,
35754    ICoreWebView2TrySuspendCompletedHandler_Vtbl,
35755    0x00f206a7_9d17_4605_91f6_4e8e4de192e3
35756);
35757windows_core::imp::interface_hierarchy!(
35758    ICoreWebView2TrySuspendCompletedHandler,
35759    windows_core::IUnknown
35760);
35761impl ICoreWebView2TrySuspendCompletedHandler {
35762    pub unsafe fn Invoke(
35763        &self,
35764        errorcode: windows_core::HRESULT,
35765        result: bool,
35766    ) -> windows_core::Result<()> {
35767        unsafe {
35768            (windows_core::Interface::vtable(self).Invoke)(
35769                windows_core::Interface::as_raw(self),
35770                errorcode,
35771                result.into(),
35772            )
35773            .ok()
35774        }
35775    }
35776}
35777#[repr(C)]
35778#[doc(hidden)]
35779pub struct ICoreWebView2TrySuspendCompletedHandler_Vtbl {
35780    pub base__: windows_core::IUnknown_Vtbl,
35781    pub Invoke: unsafe extern "system" fn(
35782        *mut core::ffi::c_void,
35783        windows_core::HRESULT,
35784        windows_core::BOOL,
35785    ) -> windows_core::HRESULT,
35786}
35787pub trait ICoreWebView2TrySuspendCompletedHandler_Impl: windows_core::IUnknownImpl {
35788    fn Invoke(
35789        &self,
35790        errorcode: windows_core::HRESULT,
35791        result: windows_core::BOOL,
35792    ) -> windows_core::Result<()>;
35793}
35794impl ICoreWebView2TrySuspendCompletedHandler_Vtbl {
35795    pub const fn new<
35796        Identity: ICoreWebView2TrySuspendCompletedHandler_Impl,
35797        const OFFSET: isize,
35798    >() -> Self {
35799        unsafe extern "system" fn Invoke<
35800            Identity: ICoreWebView2TrySuspendCompletedHandler_Impl,
35801            const OFFSET: isize,
35802        >(
35803            this: *mut core::ffi::c_void,
35804            errorcode: windows_core::HRESULT,
35805            result: windows_core::BOOL,
35806        ) -> windows_core::HRESULT {
35807            unsafe {
35808                let this: &Identity =
35809                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
35810                ICoreWebView2TrySuspendCompletedHandler_Impl::Invoke(
35811                    this,
35812                    core::mem::transmute_copy(&errorcode),
35813                    core::mem::transmute_copy(&result),
35814                )
35815                .into()
35816            }
35817        }
35818        Self {
35819            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
35820            Invoke: Invoke::<Identity, OFFSET>,
35821        }
35822    }
35823    pub fn matches(iid: &windows_core::GUID) -> bool {
35824        iid == &<ICoreWebView2TrySuspendCompletedHandler as windows_core::Interface>::IID
35825    }
35826}
35827impl windows_core::RuntimeName for ICoreWebView2TrySuspendCompletedHandler {}
35828windows_core::imp::define_interface!(
35829    ICoreWebView2WebMessageReceivedEventArgs,
35830    ICoreWebView2WebMessageReceivedEventArgs_Vtbl,
35831    0x0f99a40c_e962_4207_9e92_e3d542eff849
35832);
35833windows_core::imp::interface_hierarchy!(
35834    ICoreWebView2WebMessageReceivedEventArgs,
35835    windows_core::IUnknown
35836);
35837impl ICoreWebView2WebMessageReceivedEventArgs {
35838    pub unsafe fn Source(&self, value: *mut windows_core::PWSTR) -> windows_core::Result<()> {
35839        unsafe {
35840            (windows_core::Interface::vtable(self).Source)(
35841                windows_core::Interface::as_raw(self),
35842                value as _,
35843            )
35844            .ok()
35845        }
35846    }
35847    pub unsafe fn WebMessageAsJson(
35848        &self,
35849        value: *mut windows_core::PWSTR,
35850    ) -> windows_core::Result<()> {
35851        unsafe {
35852            (windows_core::Interface::vtable(self).WebMessageAsJson)(
35853                windows_core::Interface::as_raw(self),
35854                value as _,
35855            )
35856            .ok()
35857        }
35858    }
35859    pub unsafe fn TryGetWebMessageAsString(
35860        &self,
35861        value: *mut windows_core::PWSTR,
35862    ) -> windows_core::Result<()> {
35863        unsafe {
35864            (windows_core::Interface::vtable(self).TryGetWebMessageAsString)(
35865                windows_core::Interface::as_raw(self),
35866                value as _,
35867            )
35868            .ok()
35869        }
35870    }
35871}
35872#[repr(C)]
35873#[doc(hidden)]
35874pub struct ICoreWebView2WebMessageReceivedEventArgs_Vtbl {
35875    pub base__: windows_core::IUnknown_Vtbl,
35876    pub Source: unsafe extern "system" fn(
35877        *mut core::ffi::c_void,
35878        *mut windows_core::PWSTR,
35879    ) -> windows_core::HRESULT,
35880    pub WebMessageAsJson: unsafe extern "system" fn(
35881        *mut core::ffi::c_void,
35882        *mut windows_core::PWSTR,
35883    ) -> windows_core::HRESULT,
35884    pub TryGetWebMessageAsString: unsafe extern "system" fn(
35885        *mut core::ffi::c_void,
35886        *mut windows_core::PWSTR,
35887    ) -> windows_core::HRESULT,
35888}
35889pub trait ICoreWebView2WebMessageReceivedEventArgs_Impl: windows_core::IUnknownImpl {
35890    fn Source(&self, value: *mut windows_core::PWSTR) -> windows_core::Result<()>;
35891    fn WebMessageAsJson(&self, value: *mut windows_core::PWSTR) -> windows_core::Result<()>;
35892    fn TryGetWebMessageAsString(&self, value: *mut windows_core::PWSTR)
35893        -> windows_core::Result<()>;
35894}
35895impl ICoreWebView2WebMessageReceivedEventArgs_Vtbl {
35896    pub const fn new<
35897        Identity: ICoreWebView2WebMessageReceivedEventArgs_Impl,
35898        const OFFSET: isize,
35899    >() -> Self {
35900        unsafe extern "system" fn Source<
35901            Identity: ICoreWebView2WebMessageReceivedEventArgs_Impl,
35902            const OFFSET: isize,
35903        >(
35904            this: *mut core::ffi::c_void,
35905            value: *mut windows_core::PWSTR,
35906        ) -> windows_core::HRESULT {
35907            unsafe {
35908                let this: &Identity =
35909                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
35910                ICoreWebView2WebMessageReceivedEventArgs_Impl::Source(
35911                    this,
35912                    core::mem::transmute_copy(&value),
35913                )
35914                .into()
35915            }
35916        }
35917        unsafe extern "system" fn WebMessageAsJson<
35918            Identity: ICoreWebView2WebMessageReceivedEventArgs_Impl,
35919            const OFFSET: isize,
35920        >(
35921            this: *mut core::ffi::c_void,
35922            value: *mut windows_core::PWSTR,
35923        ) -> windows_core::HRESULT {
35924            unsafe {
35925                let this: &Identity =
35926                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
35927                ICoreWebView2WebMessageReceivedEventArgs_Impl::WebMessageAsJson(
35928                    this,
35929                    core::mem::transmute_copy(&value),
35930                )
35931                .into()
35932            }
35933        }
35934        unsafe extern "system" fn TryGetWebMessageAsString<
35935            Identity: ICoreWebView2WebMessageReceivedEventArgs_Impl,
35936            const OFFSET: isize,
35937        >(
35938            this: *mut core::ffi::c_void,
35939            value: *mut windows_core::PWSTR,
35940        ) -> windows_core::HRESULT {
35941            unsafe {
35942                let this: &Identity =
35943                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
35944                ICoreWebView2WebMessageReceivedEventArgs_Impl::TryGetWebMessageAsString(
35945                    this,
35946                    core::mem::transmute_copy(&value),
35947                )
35948                .into()
35949            }
35950        }
35951        Self {
35952            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
35953            Source: Source::<Identity, OFFSET>,
35954            WebMessageAsJson: WebMessageAsJson::<Identity, OFFSET>,
35955            TryGetWebMessageAsString: TryGetWebMessageAsString::<Identity, OFFSET>,
35956        }
35957    }
35958    pub fn matches(iid: &windows_core::GUID) -> bool {
35959        iid == &<ICoreWebView2WebMessageReceivedEventArgs as windows_core::Interface>::IID
35960    }
35961}
35962impl windows_core::RuntimeName for ICoreWebView2WebMessageReceivedEventArgs {}
35963windows_core::imp::define_interface!(
35964    ICoreWebView2WebMessageReceivedEventArgs2,
35965    ICoreWebView2WebMessageReceivedEventArgs2_Vtbl,
35966    0x06fc7ab7_c90c_4297_9389_33ca01cf6d5e
35967);
35968impl core::ops::Deref for ICoreWebView2WebMessageReceivedEventArgs2 {
35969    type Target = ICoreWebView2WebMessageReceivedEventArgs;
35970    fn deref(&self) -> &Self::Target {
35971        unsafe { core::mem::transmute(self) }
35972    }
35973}
35974windows_core::imp::interface_hierarchy!(
35975    ICoreWebView2WebMessageReceivedEventArgs2,
35976    windows_core::IUnknown,
35977    ICoreWebView2WebMessageReceivedEventArgs
35978);
35979impl ICoreWebView2WebMessageReceivedEventArgs2 {
35980    pub unsafe fn AdditionalObjects(
35981        &self,
35982    ) -> windows_core::Result<ICoreWebView2ObjectCollectionView> {
35983        unsafe {
35984            let mut result__ = core::mem::zeroed();
35985            (windows_core::Interface::vtable(self).AdditionalObjects)(
35986                windows_core::Interface::as_raw(self),
35987                &mut result__,
35988            )
35989            .and_then(|| windows_core::Type::from_abi(result__))
35990        }
35991    }
35992}
35993#[repr(C)]
35994#[doc(hidden)]
35995pub struct ICoreWebView2WebMessageReceivedEventArgs2_Vtbl {
35996    pub base__: ICoreWebView2WebMessageReceivedEventArgs_Vtbl,
35997    pub AdditionalObjects: unsafe extern "system" fn(
35998        *mut core::ffi::c_void,
35999        *mut *mut core::ffi::c_void,
36000    ) -> windows_core::HRESULT,
36001}
36002pub trait ICoreWebView2WebMessageReceivedEventArgs2_Impl:
36003    ICoreWebView2WebMessageReceivedEventArgs_Impl
36004{
36005    fn AdditionalObjects(&self) -> windows_core::Result<ICoreWebView2ObjectCollectionView>;
36006}
36007impl ICoreWebView2WebMessageReceivedEventArgs2_Vtbl {
36008    pub const fn new<
36009        Identity: ICoreWebView2WebMessageReceivedEventArgs2_Impl,
36010        const OFFSET: isize,
36011    >() -> Self {
36012        unsafe extern "system" fn AdditionalObjects<
36013            Identity: ICoreWebView2WebMessageReceivedEventArgs2_Impl,
36014            const OFFSET: isize,
36015        >(
36016            this: *mut core::ffi::c_void,
36017            value: *mut *mut core::ffi::c_void,
36018        ) -> windows_core::HRESULT {
36019            unsafe {
36020                let this: &Identity =
36021                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
36022                match ICoreWebView2WebMessageReceivedEventArgs2_Impl::AdditionalObjects(this) {
36023                    Ok(ok__) => {
36024                        value.write(core::mem::transmute(ok__));
36025                        windows_core::HRESULT(0)
36026                    }
36027                    Err(err) => err.into(),
36028                }
36029            }
36030        }
36031        Self {
36032            base__: ICoreWebView2WebMessageReceivedEventArgs_Vtbl::new::<Identity, OFFSET>(),
36033            AdditionalObjects: AdditionalObjects::<Identity, OFFSET>,
36034        }
36035    }
36036    pub fn matches(iid: &windows_core::GUID) -> bool {
36037        iid == &<ICoreWebView2WebMessageReceivedEventArgs2 as windows_core::Interface>::IID
36038            || iid == &<ICoreWebView2WebMessageReceivedEventArgs as windows_core::Interface>::IID
36039    }
36040}
36041impl windows_core::RuntimeName for ICoreWebView2WebMessageReceivedEventArgs2 {}
36042windows_core::imp::define_interface!(
36043    ICoreWebView2WebMessageReceivedEventHandler,
36044    ICoreWebView2WebMessageReceivedEventHandler_Vtbl,
36045    0x57213f19_00e6_49fa_8e07_898ea01ecbd2
36046);
36047windows_core::imp::interface_hierarchy!(
36048    ICoreWebView2WebMessageReceivedEventHandler,
36049    windows_core::IUnknown
36050);
36051impl ICoreWebView2WebMessageReceivedEventHandler {
36052    pub unsafe fn Invoke<P0, P1>(&self, sender: P0, args: P1) -> windows_core::Result<()>
36053    where
36054        P0: windows_core::Param<ICoreWebView2>,
36055        P1: windows_core::Param<ICoreWebView2WebMessageReceivedEventArgs>,
36056    {
36057        unsafe {
36058            (windows_core::Interface::vtable(self).Invoke)(
36059                windows_core::Interface::as_raw(self),
36060                sender.param().abi(),
36061                args.param().abi(),
36062            )
36063            .ok()
36064        }
36065    }
36066}
36067#[repr(C)]
36068#[doc(hidden)]
36069pub struct ICoreWebView2WebMessageReceivedEventHandler_Vtbl {
36070    pub base__: windows_core::IUnknown_Vtbl,
36071    pub Invoke: unsafe extern "system" fn(
36072        *mut core::ffi::c_void,
36073        *mut core::ffi::c_void,
36074        *mut core::ffi::c_void,
36075    ) -> windows_core::HRESULT,
36076}
36077pub trait ICoreWebView2WebMessageReceivedEventHandler_Impl: windows_core::IUnknownImpl {
36078    fn Invoke(
36079        &self,
36080        sender: windows_core::Ref<'_, ICoreWebView2>,
36081        args: windows_core::Ref<'_, ICoreWebView2WebMessageReceivedEventArgs>,
36082    ) -> windows_core::Result<()>;
36083}
36084impl ICoreWebView2WebMessageReceivedEventHandler_Vtbl {
36085    pub const fn new<
36086        Identity: ICoreWebView2WebMessageReceivedEventHandler_Impl,
36087        const OFFSET: isize,
36088    >() -> Self {
36089        unsafe extern "system" fn Invoke<
36090            Identity: ICoreWebView2WebMessageReceivedEventHandler_Impl,
36091            const OFFSET: isize,
36092        >(
36093            this: *mut core::ffi::c_void,
36094            sender: *mut core::ffi::c_void,
36095            args: *mut core::ffi::c_void,
36096        ) -> windows_core::HRESULT {
36097            unsafe {
36098                let this: &Identity =
36099                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
36100                ICoreWebView2WebMessageReceivedEventHandler_Impl::Invoke(
36101                    this,
36102                    core::mem::transmute_copy(&sender),
36103                    core::mem::transmute_copy(&args),
36104                )
36105                .into()
36106            }
36107        }
36108        Self {
36109            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
36110            Invoke: Invoke::<Identity, OFFSET>,
36111        }
36112    }
36113    pub fn matches(iid: &windows_core::GUID) -> bool {
36114        iid == &<ICoreWebView2WebMessageReceivedEventHandler as windows_core::Interface>::IID
36115    }
36116}
36117impl windows_core::RuntimeName for ICoreWebView2WebMessageReceivedEventHandler {}
36118windows_core::imp::define_interface!(
36119    ICoreWebView2WebResourceRequest,
36120    ICoreWebView2WebResourceRequest_Vtbl,
36121    0x97055cd4_512c_4264_8b5f_e3f446cea6a5
36122);
36123windows_core::imp::interface_hierarchy!(ICoreWebView2WebResourceRequest, windows_core::IUnknown);
36124impl ICoreWebView2WebResourceRequest {
36125    pub unsafe fn Uri(&self, uri: *mut windows_core::PWSTR) -> windows_core::Result<()> {
36126        unsafe {
36127            (windows_core::Interface::vtable(self).Uri)(
36128                windows_core::Interface::as_raw(self),
36129                uri as _,
36130            )
36131            .ok()
36132        }
36133    }
36134    pub unsafe fn SetUri<P0>(&self, uri: P0) -> windows_core::Result<()>
36135    where
36136        P0: windows_core::Param<windows_core::PCWSTR>,
36137    {
36138        unsafe {
36139            (windows_core::Interface::vtable(self).SetUri)(
36140                windows_core::Interface::as_raw(self),
36141                uri.param().abi(),
36142            )
36143            .ok()
36144        }
36145    }
36146    pub unsafe fn Method(&self, method: *mut windows_core::PWSTR) -> windows_core::Result<()> {
36147        unsafe {
36148            (windows_core::Interface::vtable(self).Method)(
36149                windows_core::Interface::as_raw(self),
36150                method as _,
36151            )
36152            .ok()
36153        }
36154    }
36155    pub unsafe fn SetMethod<P0>(&self, method: P0) -> windows_core::Result<()>
36156    where
36157        P0: windows_core::Param<windows_core::PCWSTR>,
36158    {
36159        unsafe {
36160            (windows_core::Interface::vtable(self).SetMethod)(
36161                windows_core::Interface::as_raw(self),
36162                method.param().abi(),
36163            )
36164            .ok()
36165        }
36166    }
36167    pub unsafe fn Content(&self) -> windows_core::Result<windows::Win32::System::Com::IStream> {
36168        unsafe {
36169            let mut result__ = core::mem::zeroed();
36170            (windows_core::Interface::vtable(self).Content)(
36171                windows_core::Interface::as_raw(self),
36172                &mut result__,
36173            )
36174            .and_then(|| windows_core::Type::from_abi(result__))
36175        }
36176    }
36177    pub unsafe fn SetContent<P0>(&self, content: P0) -> windows_core::Result<()>
36178    where
36179        P0: windows_core::Param<windows::Win32::System::Com::IStream>,
36180    {
36181        unsafe {
36182            (windows_core::Interface::vtable(self).SetContent)(
36183                windows_core::Interface::as_raw(self),
36184                content.param().abi(),
36185            )
36186            .ok()
36187        }
36188    }
36189    pub unsafe fn Headers(&self) -> windows_core::Result<ICoreWebView2HttpRequestHeaders> {
36190        unsafe {
36191            let mut result__ = core::mem::zeroed();
36192            (windows_core::Interface::vtable(self).Headers)(
36193                windows_core::Interface::as_raw(self),
36194                &mut result__,
36195            )
36196            .and_then(|| windows_core::Type::from_abi(result__))
36197        }
36198    }
36199}
36200#[repr(C)]
36201#[doc(hidden)]
36202pub struct ICoreWebView2WebResourceRequest_Vtbl {
36203    pub base__: windows_core::IUnknown_Vtbl,
36204    pub Uri: unsafe extern "system" fn(
36205        *mut core::ffi::c_void,
36206        *mut windows_core::PWSTR,
36207    ) -> windows_core::HRESULT,
36208    pub SetUri: unsafe extern "system" fn(
36209        *mut core::ffi::c_void,
36210        windows_core::PCWSTR,
36211    ) -> windows_core::HRESULT,
36212    pub Method: unsafe extern "system" fn(
36213        *mut core::ffi::c_void,
36214        *mut windows_core::PWSTR,
36215    ) -> windows_core::HRESULT,
36216    pub SetMethod: unsafe extern "system" fn(
36217        *mut core::ffi::c_void,
36218        windows_core::PCWSTR,
36219    ) -> windows_core::HRESULT,
36220    pub Content: unsafe extern "system" fn(
36221        *mut core::ffi::c_void,
36222        *mut *mut core::ffi::c_void,
36223    ) -> windows_core::HRESULT,
36224    pub SetContent: unsafe extern "system" fn(
36225        *mut core::ffi::c_void,
36226        *mut core::ffi::c_void,
36227    ) -> windows_core::HRESULT,
36228    pub Headers: unsafe extern "system" fn(
36229        *mut core::ffi::c_void,
36230        *mut *mut core::ffi::c_void,
36231    ) -> windows_core::HRESULT,
36232}
36233pub trait ICoreWebView2WebResourceRequest_Impl: windows_core::IUnknownImpl {
36234    fn Uri(&self, uri: *mut windows_core::PWSTR) -> windows_core::Result<()>;
36235    fn SetUri(&self, uri: &windows_core::PCWSTR) -> windows_core::Result<()>;
36236    fn Method(&self, method: *mut windows_core::PWSTR) -> windows_core::Result<()>;
36237    fn SetMethod(&self, method: &windows_core::PCWSTR) -> windows_core::Result<()>;
36238    fn Content(&self) -> windows_core::Result<windows::Win32::System::Com::IStream>;
36239    fn SetContent(
36240        &self,
36241        content: windows_core::Ref<'_, windows::Win32::System::Com::IStream>,
36242    ) -> windows_core::Result<()>;
36243    fn Headers(&self) -> windows_core::Result<ICoreWebView2HttpRequestHeaders>;
36244}
36245impl ICoreWebView2WebResourceRequest_Vtbl {
36246    pub const fn new<Identity: ICoreWebView2WebResourceRequest_Impl, const OFFSET: isize>() -> Self
36247    {
36248        unsafe extern "system" fn Uri<
36249            Identity: ICoreWebView2WebResourceRequest_Impl,
36250            const OFFSET: isize,
36251        >(
36252            this: *mut core::ffi::c_void,
36253            uri: *mut windows_core::PWSTR,
36254        ) -> windows_core::HRESULT {
36255            unsafe {
36256                let this: &Identity =
36257                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
36258                ICoreWebView2WebResourceRequest_Impl::Uri(this, core::mem::transmute_copy(&uri))
36259                    .into()
36260            }
36261        }
36262        unsafe extern "system" fn SetUri<
36263            Identity: ICoreWebView2WebResourceRequest_Impl,
36264            const OFFSET: isize,
36265        >(
36266            this: *mut core::ffi::c_void,
36267            uri: windows_core::PCWSTR,
36268        ) -> windows_core::HRESULT {
36269            unsafe {
36270                let this: &Identity =
36271                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
36272                ICoreWebView2WebResourceRequest_Impl::SetUri(this, core::mem::transmute(&uri))
36273                    .into()
36274            }
36275        }
36276        unsafe extern "system" fn Method<
36277            Identity: ICoreWebView2WebResourceRequest_Impl,
36278            const OFFSET: isize,
36279        >(
36280            this: *mut core::ffi::c_void,
36281            method: *mut windows_core::PWSTR,
36282        ) -> windows_core::HRESULT {
36283            unsafe {
36284                let this: &Identity =
36285                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
36286                ICoreWebView2WebResourceRequest_Impl::Method(
36287                    this,
36288                    core::mem::transmute_copy(&method),
36289                )
36290                .into()
36291            }
36292        }
36293        unsafe extern "system" fn SetMethod<
36294            Identity: ICoreWebView2WebResourceRequest_Impl,
36295            const OFFSET: isize,
36296        >(
36297            this: *mut core::ffi::c_void,
36298            method: windows_core::PCWSTR,
36299        ) -> windows_core::HRESULT {
36300            unsafe {
36301                let this: &Identity =
36302                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
36303                ICoreWebView2WebResourceRequest_Impl::SetMethod(this, core::mem::transmute(&method))
36304                    .into()
36305            }
36306        }
36307        unsafe extern "system" fn Content<
36308            Identity: ICoreWebView2WebResourceRequest_Impl,
36309            const OFFSET: isize,
36310        >(
36311            this: *mut core::ffi::c_void,
36312            content: *mut *mut core::ffi::c_void,
36313        ) -> windows_core::HRESULT {
36314            unsafe {
36315                let this: &Identity =
36316                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
36317                match ICoreWebView2WebResourceRequest_Impl::Content(this) {
36318                    Ok(ok__) => {
36319                        content.write(core::mem::transmute(ok__));
36320                        windows_core::HRESULT(0)
36321                    }
36322                    Err(err) => err.into(),
36323                }
36324            }
36325        }
36326        unsafe extern "system" fn SetContent<
36327            Identity: ICoreWebView2WebResourceRequest_Impl,
36328            const OFFSET: isize,
36329        >(
36330            this: *mut core::ffi::c_void,
36331            content: *mut core::ffi::c_void,
36332        ) -> windows_core::HRESULT {
36333            unsafe {
36334                let this: &Identity =
36335                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
36336                ICoreWebView2WebResourceRequest_Impl::SetContent(
36337                    this,
36338                    core::mem::transmute_copy(&content),
36339                )
36340                .into()
36341            }
36342        }
36343        unsafe extern "system" fn Headers<
36344            Identity: ICoreWebView2WebResourceRequest_Impl,
36345            const OFFSET: isize,
36346        >(
36347            this: *mut core::ffi::c_void,
36348            headers: *mut *mut core::ffi::c_void,
36349        ) -> windows_core::HRESULT {
36350            unsafe {
36351                let this: &Identity =
36352                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
36353                match ICoreWebView2WebResourceRequest_Impl::Headers(this) {
36354                    Ok(ok__) => {
36355                        headers.write(core::mem::transmute(ok__));
36356                        windows_core::HRESULT(0)
36357                    }
36358                    Err(err) => err.into(),
36359                }
36360            }
36361        }
36362        Self {
36363            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
36364            Uri: Uri::<Identity, OFFSET>,
36365            SetUri: SetUri::<Identity, OFFSET>,
36366            Method: Method::<Identity, OFFSET>,
36367            SetMethod: SetMethod::<Identity, OFFSET>,
36368            Content: Content::<Identity, OFFSET>,
36369            SetContent: SetContent::<Identity, OFFSET>,
36370            Headers: Headers::<Identity, OFFSET>,
36371        }
36372    }
36373    pub fn matches(iid: &windows_core::GUID) -> bool {
36374        iid == &<ICoreWebView2WebResourceRequest as windows_core::Interface>::IID
36375    }
36376}
36377impl windows_core::RuntimeName for ICoreWebView2WebResourceRequest {}
36378windows_core::imp::define_interface!(
36379    ICoreWebView2WebResourceRequestedEventArgs,
36380    ICoreWebView2WebResourceRequestedEventArgs_Vtbl,
36381    0x453e667f_12c7_49d4_be6d_ddbe7956f57a
36382);
36383windows_core::imp::interface_hierarchy!(
36384    ICoreWebView2WebResourceRequestedEventArgs,
36385    windows_core::IUnknown
36386);
36387impl ICoreWebView2WebResourceRequestedEventArgs {
36388    pub unsafe fn Request(&self) -> windows_core::Result<ICoreWebView2WebResourceRequest> {
36389        unsafe {
36390            let mut result__ = core::mem::zeroed();
36391            (windows_core::Interface::vtable(self).Request)(
36392                windows_core::Interface::as_raw(self),
36393                &mut result__,
36394            )
36395            .and_then(|| windows_core::Type::from_abi(result__))
36396        }
36397    }
36398    pub unsafe fn Response(&self) -> windows_core::Result<ICoreWebView2WebResourceResponse> {
36399        unsafe {
36400            let mut result__ = core::mem::zeroed();
36401            (windows_core::Interface::vtable(self).Response)(
36402                windows_core::Interface::as_raw(self),
36403                &mut result__,
36404            )
36405            .and_then(|| windows_core::Type::from_abi(result__))
36406        }
36407    }
36408    pub unsafe fn SetResponse<P0>(&self, response: P0) -> windows_core::Result<()>
36409    where
36410        P0: windows_core::Param<ICoreWebView2WebResourceResponse>,
36411    {
36412        unsafe {
36413            (windows_core::Interface::vtable(self).SetResponse)(
36414                windows_core::Interface::as_raw(self),
36415                response.param().abi(),
36416            )
36417            .ok()
36418        }
36419    }
36420    pub unsafe fn GetDeferral(&self) -> windows_core::Result<ICoreWebView2Deferral> {
36421        unsafe {
36422            let mut result__ = core::mem::zeroed();
36423            (windows_core::Interface::vtable(self).GetDeferral)(
36424                windows_core::Interface::as_raw(self),
36425                &mut result__,
36426            )
36427            .and_then(|| windows_core::Type::from_abi(result__))
36428        }
36429    }
36430    pub unsafe fn ResourceContext(
36431        &self,
36432        context: *mut COREWEBVIEW2_WEB_RESOURCE_CONTEXT,
36433    ) -> windows_core::Result<()> {
36434        unsafe {
36435            (windows_core::Interface::vtable(self).ResourceContext)(
36436                windows_core::Interface::as_raw(self),
36437                context as _,
36438            )
36439            .ok()
36440        }
36441    }
36442}
36443#[repr(C)]
36444#[doc(hidden)]
36445pub struct ICoreWebView2WebResourceRequestedEventArgs_Vtbl {
36446    pub base__: windows_core::IUnknown_Vtbl,
36447    pub Request: unsafe extern "system" fn(
36448        *mut core::ffi::c_void,
36449        *mut *mut core::ffi::c_void,
36450    ) -> windows_core::HRESULT,
36451    pub Response: unsafe extern "system" fn(
36452        *mut core::ffi::c_void,
36453        *mut *mut core::ffi::c_void,
36454    ) -> windows_core::HRESULT,
36455    pub SetResponse: unsafe extern "system" fn(
36456        *mut core::ffi::c_void,
36457        *mut core::ffi::c_void,
36458    ) -> windows_core::HRESULT,
36459    pub GetDeferral: unsafe extern "system" fn(
36460        *mut core::ffi::c_void,
36461        *mut *mut core::ffi::c_void,
36462    ) -> windows_core::HRESULT,
36463    pub ResourceContext: unsafe extern "system" fn(
36464        *mut core::ffi::c_void,
36465        *mut COREWEBVIEW2_WEB_RESOURCE_CONTEXT,
36466    ) -> windows_core::HRESULT,
36467}
36468pub trait ICoreWebView2WebResourceRequestedEventArgs_Impl: windows_core::IUnknownImpl {
36469    fn Request(&self) -> windows_core::Result<ICoreWebView2WebResourceRequest>;
36470    fn Response(&self) -> windows_core::Result<ICoreWebView2WebResourceResponse>;
36471    fn SetResponse(
36472        &self,
36473        response: windows_core::Ref<'_, ICoreWebView2WebResourceResponse>,
36474    ) -> windows_core::Result<()>;
36475    fn GetDeferral(&self) -> windows_core::Result<ICoreWebView2Deferral>;
36476    fn ResourceContext(
36477        &self,
36478        context: *mut COREWEBVIEW2_WEB_RESOURCE_CONTEXT,
36479    ) -> windows_core::Result<()>;
36480}
36481impl ICoreWebView2WebResourceRequestedEventArgs_Vtbl {
36482    pub const fn new<
36483        Identity: ICoreWebView2WebResourceRequestedEventArgs_Impl,
36484        const OFFSET: isize,
36485    >() -> Self {
36486        unsafe extern "system" fn Request<
36487            Identity: ICoreWebView2WebResourceRequestedEventArgs_Impl,
36488            const OFFSET: isize,
36489        >(
36490            this: *mut core::ffi::c_void,
36491            request: *mut *mut core::ffi::c_void,
36492        ) -> windows_core::HRESULT {
36493            unsafe {
36494                let this: &Identity =
36495                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
36496                match ICoreWebView2WebResourceRequestedEventArgs_Impl::Request(this) {
36497                    Ok(ok__) => {
36498                        request.write(core::mem::transmute(ok__));
36499                        windows_core::HRESULT(0)
36500                    }
36501                    Err(err) => err.into(),
36502                }
36503            }
36504        }
36505        unsafe extern "system" fn Response<
36506            Identity: ICoreWebView2WebResourceRequestedEventArgs_Impl,
36507            const OFFSET: isize,
36508        >(
36509            this: *mut core::ffi::c_void,
36510            response: *mut *mut core::ffi::c_void,
36511        ) -> windows_core::HRESULT {
36512            unsafe {
36513                let this: &Identity =
36514                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
36515                match ICoreWebView2WebResourceRequestedEventArgs_Impl::Response(this) {
36516                    Ok(ok__) => {
36517                        response.write(core::mem::transmute(ok__));
36518                        windows_core::HRESULT(0)
36519                    }
36520                    Err(err) => err.into(),
36521                }
36522            }
36523        }
36524        unsafe extern "system" fn SetResponse<
36525            Identity: ICoreWebView2WebResourceRequestedEventArgs_Impl,
36526            const OFFSET: isize,
36527        >(
36528            this: *mut core::ffi::c_void,
36529            response: *mut core::ffi::c_void,
36530        ) -> windows_core::HRESULT {
36531            unsafe {
36532                let this: &Identity =
36533                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
36534                ICoreWebView2WebResourceRequestedEventArgs_Impl::SetResponse(
36535                    this,
36536                    core::mem::transmute_copy(&response),
36537                )
36538                .into()
36539            }
36540        }
36541        unsafe extern "system" fn GetDeferral<
36542            Identity: ICoreWebView2WebResourceRequestedEventArgs_Impl,
36543            const OFFSET: isize,
36544        >(
36545            this: *mut core::ffi::c_void,
36546            deferral: *mut *mut core::ffi::c_void,
36547        ) -> windows_core::HRESULT {
36548            unsafe {
36549                let this: &Identity =
36550                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
36551                match ICoreWebView2WebResourceRequestedEventArgs_Impl::GetDeferral(this) {
36552                    Ok(ok__) => {
36553                        deferral.write(core::mem::transmute(ok__));
36554                        windows_core::HRESULT(0)
36555                    }
36556                    Err(err) => err.into(),
36557                }
36558            }
36559        }
36560        unsafe extern "system" fn ResourceContext<
36561            Identity: ICoreWebView2WebResourceRequestedEventArgs_Impl,
36562            const OFFSET: isize,
36563        >(
36564            this: *mut core::ffi::c_void,
36565            context: *mut COREWEBVIEW2_WEB_RESOURCE_CONTEXT,
36566        ) -> windows_core::HRESULT {
36567            unsafe {
36568                let this: &Identity =
36569                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
36570                ICoreWebView2WebResourceRequestedEventArgs_Impl::ResourceContext(
36571                    this,
36572                    core::mem::transmute_copy(&context),
36573                )
36574                .into()
36575            }
36576        }
36577        Self {
36578            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
36579            Request: Request::<Identity, OFFSET>,
36580            Response: Response::<Identity, OFFSET>,
36581            SetResponse: SetResponse::<Identity, OFFSET>,
36582            GetDeferral: GetDeferral::<Identity, OFFSET>,
36583            ResourceContext: ResourceContext::<Identity, OFFSET>,
36584        }
36585    }
36586    pub fn matches(iid: &windows_core::GUID) -> bool {
36587        iid == &<ICoreWebView2WebResourceRequestedEventArgs as windows_core::Interface>::IID
36588    }
36589}
36590impl windows_core::RuntimeName for ICoreWebView2WebResourceRequestedEventArgs {}
36591windows_core::imp::define_interface!(
36592    ICoreWebView2WebResourceRequestedEventArgs2,
36593    ICoreWebView2WebResourceRequestedEventArgs2_Vtbl,
36594    0x9c562c24_b219_4d7f_92f6_b187fbbadd56
36595);
36596impl core::ops::Deref for ICoreWebView2WebResourceRequestedEventArgs2 {
36597    type Target = ICoreWebView2WebResourceRequestedEventArgs;
36598    fn deref(&self) -> &Self::Target {
36599        unsafe { core::mem::transmute(self) }
36600    }
36601}
36602windows_core::imp::interface_hierarchy!(
36603    ICoreWebView2WebResourceRequestedEventArgs2,
36604    windows_core::IUnknown,
36605    ICoreWebView2WebResourceRequestedEventArgs
36606);
36607impl ICoreWebView2WebResourceRequestedEventArgs2 {
36608    pub unsafe fn RequestedSourceKind(
36609        &self,
36610        value: *mut COREWEBVIEW2_WEB_RESOURCE_REQUEST_SOURCE_KINDS,
36611    ) -> windows_core::Result<()> {
36612        unsafe {
36613            (windows_core::Interface::vtable(self).RequestedSourceKind)(
36614                windows_core::Interface::as_raw(self),
36615                value as _,
36616            )
36617            .ok()
36618        }
36619    }
36620}
36621#[repr(C)]
36622#[doc(hidden)]
36623pub struct ICoreWebView2WebResourceRequestedEventArgs2_Vtbl {
36624    pub base__: ICoreWebView2WebResourceRequestedEventArgs_Vtbl,
36625    pub RequestedSourceKind: unsafe extern "system" fn(
36626        *mut core::ffi::c_void,
36627        *mut COREWEBVIEW2_WEB_RESOURCE_REQUEST_SOURCE_KINDS,
36628    ) -> windows_core::HRESULT,
36629}
36630pub trait ICoreWebView2WebResourceRequestedEventArgs2_Impl:
36631    ICoreWebView2WebResourceRequestedEventArgs_Impl
36632{
36633    fn RequestedSourceKind(
36634        &self,
36635        value: *mut COREWEBVIEW2_WEB_RESOURCE_REQUEST_SOURCE_KINDS,
36636    ) -> windows_core::Result<()>;
36637}
36638impl ICoreWebView2WebResourceRequestedEventArgs2_Vtbl {
36639    pub const fn new<
36640        Identity: ICoreWebView2WebResourceRequestedEventArgs2_Impl,
36641        const OFFSET: isize,
36642    >() -> Self {
36643        unsafe extern "system" fn RequestedSourceKind<
36644            Identity: ICoreWebView2WebResourceRequestedEventArgs2_Impl,
36645            const OFFSET: isize,
36646        >(
36647            this: *mut core::ffi::c_void,
36648            value: *mut COREWEBVIEW2_WEB_RESOURCE_REQUEST_SOURCE_KINDS,
36649        ) -> windows_core::HRESULT {
36650            unsafe {
36651                let this: &Identity =
36652                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
36653                ICoreWebView2WebResourceRequestedEventArgs2_Impl::RequestedSourceKind(
36654                    this,
36655                    core::mem::transmute_copy(&value),
36656                )
36657                .into()
36658            }
36659        }
36660        Self {
36661            base__: ICoreWebView2WebResourceRequestedEventArgs_Vtbl::new::<Identity, OFFSET>(),
36662            RequestedSourceKind: RequestedSourceKind::<Identity, OFFSET>,
36663        }
36664    }
36665    pub fn matches(iid: &windows_core::GUID) -> bool {
36666        iid == &<ICoreWebView2WebResourceRequestedEventArgs2 as windows_core::Interface>::IID
36667            || iid == &<ICoreWebView2WebResourceRequestedEventArgs as windows_core::Interface>::IID
36668    }
36669}
36670impl windows_core::RuntimeName for ICoreWebView2WebResourceRequestedEventArgs2 {}
36671windows_core::imp::define_interface!(
36672    ICoreWebView2WebResourceRequestedEventHandler,
36673    ICoreWebView2WebResourceRequestedEventHandler_Vtbl,
36674    0xab00b74c_15f1_4646_80e8_e76341d25d71
36675);
36676windows_core::imp::interface_hierarchy!(
36677    ICoreWebView2WebResourceRequestedEventHandler,
36678    windows_core::IUnknown
36679);
36680impl ICoreWebView2WebResourceRequestedEventHandler {
36681    pub unsafe fn Invoke<P0, P1>(&self, sender: P0, args: P1) -> windows_core::Result<()>
36682    where
36683        P0: windows_core::Param<ICoreWebView2>,
36684        P1: windows_core::Param<ICoreWebView2WebResourceRequestedEventArgs>,
36685    {
36686        unsafe {
36687            (windows_core::Interface::vtable(self).Invoke)(
36688                windows_core::Interface::as_raw(self),
36689                sender.param().abi(),
36690                args.param().abi(),
36691            )
36692            .ok()
36693        }
36694    }
36695}
36696#[repr(C)]
36697#[doc(hidden)]
36698pub struct ICoreWebView2WebResourceRequestedEventHandler_Vtbl {
36699    pub base__: windows_core::IUnknown_Vtbl,
36700    pub Invoke: unsafe extern "system" fn(
36701        *mut core::ffi::c_void,
36702        *mut core::ffi::c_void,
36703        *mut core::ffi::c_void,
36704    ) -> windows_core::HRESULT,
36705}
36706pub trait ICoreWebView2WebResourceRequestedEventHandler_Impl: windows_core::IUnknownImpl {
36707    fn Invoke(
36708        &self,
36709        sender: windows_core::Ref<'_, ICoreWebView2>,
36710        args: windows_core::Ref<'_, ICoreWebView2WebResourceRequestedEventArgs>,
36711    ) -> windows_core::Result<()>;
36712}
36713impl ICoreWebView2WebResourceRequestedEventHandler_Vtbl {
36714    pub const fn new<
36715        Identity: ICoreWebView2WebResourceRequestedEventHandler_Impl,
36716        const OFFSET: isize,
36717    >() -> Self {
36718        unsafe extern "system" fn Invoke<
36719            Identity: ICoreWebView2WebResourceRequestedEventHandler_Impl,
36720            const OFFSET: isize,
36721        >(
36722            this: *mut core::ffi::c_void,
36723            sender: *mut core::ffi::c_void,
36724            args: *mut core::ffi::c_void,
36725        ) -> windows_core::HRESULT {
36726            unsafe {
36727                let this: &Identity =
36728                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
36729                ICoreWebView2WebResourceRequestedEventHandler_Impl::Invoke(
36730                    this,
36731                    core::mem::transmute_copy(&sender),
36732                    core::mem::transmute_copy(&args),
36733                )
36734                .into()
36735            }
36736        }
36737        Self {
36738            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
36739            Invoke: Invoke::<Identity, OFFSET>,
36740        }
36741    }
36742    pub fn matches(iid: &windows_core::GUID) -> bool {
36743        iid == &<ICoreWebView2WebResourceRequestedEventHandler as windows_core::Interface>::IID
36744    }
36745}
36746impl windows_core::RuntimeName for ICoreWebView2WebResourceRequestedEventHandler {}
36747windows_core::imp::define_interface!(
36748    ICoreWebView2WebResourceResponse,
36749    ICoreWebView2WebResourceResponse_Vtbl,
36750    0xaafcc94f_fa27_48fd_97df_830ef75aaec9
36751);
36752windows_core::imp::interface_hierarchy!(ICoreWebView2WebResourceResponse, windows_core::IUnknown);
36753impl ICoreWebView2WebResourceResponse {
36754    pub unsafe fn Content(&self) -> windows_core::Result<windows::Win32::System::Com::IStream> {
36755        unsafe {
36756            let mut result__ = core::mem::zeroed();
36757            (windows_core::Interface::vtable(self).Content)(
36758                windows_core::Interface::as_raw(self),
36759                &mut result__,
36760            )
36761            .and_then(|| windows_core::Type::from_abi(result__))
36762        }
36763    }
36764    pub unsafe fn SetContent<P0>(&self, content: P0) -> windows_core::Result<()>
36765    where
36766        P0: windows_core::Param<windows::Win32::System::Com::IStream>,
36767    {
36768        unsafe {
36769            (windows_core::Interface::vtable(self).SetContent)(
36770                windows_core::Interface::as_raw(self),
36771                content.param().abi(),
36772            )
36773            .ok()
36774        }
36775    }
36776    pub unsafe fn Headers(&self) -> windows_core::Result<ICoreWebView2HttpResponseHeaders> {
36777        unsafe {
36778            let mut result__ = core::mem::zeroed();
36779            (windows_core::Interface::vtable(self).Headers)(
36780                windows_core::Interface::as_raw(self),
36781                &mut result__,
36782            )
36783            .and_then(|| windows_core::Type::from_abi(result__))
36784        }
36785    }
36786    pub unsafe fn StatusCode(&self, statuscode: *mut i32) -> windows_core::Result<()> {
36787        unsafe {
36788            (windows_core::Interface::vtable(self).StatusCode)(
36789                windows_core::Interface::as_raw(self),
36790                statuscode as _,
36791            )
36792            .ok()
36793        }
36794    }
36795    pub unsafe fn SetStatusCode(&self, statuscode: i32) -> windows_core::Result<()> {
36796        unsafe {
36797            (windows_core::Interface::vtable(self).SetStatusCode)(
36798                windows_core::Interface::as_raw(self),
36799                statuscode,
36800            )
36801            .ok()
36802        }
36803    }
36804    pub unsafe fn ReasonPhrase(
36805        &self,
36806        reasonphrase: *mut windows_core::PWSTR,
36807    ) -> windows_core::Result<()> {
36808        unsafe {
36809            (windows_core::Interface::vtable(self).ReasonPhrase)(
36810                windows_core::Interface::as_raw(self),
36811                reasonphrase as _,
36812            )
36813            .ok()
36814        }
36815    }
36816    pub unsafe fn SetReasonPhrase<P0>(&self, reasonphrase: P0) -> windows_core::Result<()>
36817    where
36818        P0: windows_core::Param<windows_core::PCWSTR>,
36819    {
36820        unsafe {
36821            (windows_core::Interface::vtable(self).SetReasonPhrase)(
36822                windows_core::Interface::as_raw(self),
36823                reasonphrase.param().abi(),
36824            )
36825            .ok()
36826        }
36827    }
36828}
36829#[repr(C)]
36830#[doc(hidden)]
36831pub struct ICoreWebView2WebResourceResponse_Vtbl {
36832    pub base__: windows_core::IUnknown_Vtbl,
36833    pub Content: unsafe extern "system" fn(
36834        *mut core::ffi::c_void,
36835        *mut *mut core::ffi::c_void,
36836    ) -> windows_core::HRESULT,
36837    pub SetContent: unsafe extern "system" fn(
36838        *mut core::ffi::c_void,
36839        *mut core::ffi::c_void,
36840    ) -> windows_core::HRESULT,
36841    pub Headers: unsafe extern "system" fn(
36842        *mut core::ffi::c_void,
36843        *mut *mut core::ffi::c_void,
36844    ) -> windows_core::HRESULT,
36845    pub StatusCode:
36846        unsafe extern "system" fn(*mut core::ffi::c_void, *mut i32) -> windows_core::HRESULT,
36847    pub SetStatusCode:
36848        unsafe extern "system" fn(*mut core::ffi::c_void, i32) -> windows_core::HRESULT,
36849    pub ReasonPhrase: unsafe extern "system" fn(
36850        *mut core::ffi::c_void,
36851        *mut windows_core::PWSTR,
36852    ) -> windows_core::HRESULT,
36853    pub SetReasonPhrase: unsafe extern "system" fn(
36854        *mut core::ffi::c_void,
36855        windows_core::PCWSTR,
36856    ) -> windows_core::HRESULT,
36857}
36858pub trait ICoreWebView2WebResourceResponse_Impl: windows_core::IUnknownImpl {
36859    fn Content(&self) -> windows_core::Result<windows::Win32::System::Com::IStream>;
36860    fn SetContent(
36861        &self,
36862        content: windows_core::Ref<'_, windows::Win32::System::Com::IStream>,
36863    ) -> windows_core::Result<()>;
36864    fn Headers(&self) -> windows_core::Result<ICoreWebView2HttpResponseHeaders>;
36865    fn StatusCode(&self, statuscode: *mut i32) -> windows_core::Result<()>;
36866    fn SetStatusCode(&self, statuscode: i32) -> windows_core::Result<()>;
36867    fn ReasonPhrase(&self, reasonphrase: *mut windows_core::PWSTR) -> windows_core::Result<()>;
36868    fn SetReasonPhrase(&self, reasonphrase: &windows_core::PCWSTR) -> windows_core::Result<()>;
36869}
36870impl ICoreWebView2WebResourceResponse_Vtbl {
36871    pub const fn new<Identity: ICoreWebView2WebResourceResponse_Impl, const OFFSET: isize>() -> Self
36872    {
36873        unsafe extern "system" fn Content<
36874            Identity: ICoreWebView2WebResourceResponse_Impl,
36875            const OFFSET: isize,
36876        >(
36877            this: *mut core::ffi::c_void,
36878            content: *mut *mut core::ffi::c_void,
36879        ) -> windows_core::HRESULT {
36880            unsafe {
36881                let this: &Identity =
36882                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
36883                match ICoreWebView2WebResourceResponse_Impl::Content(this) {
36884                    Ok(ok__) => {
36885                        content.write(core::mem::transmute(ok__));
36886                        windows_core::HRESULT(0)
36887                    }
36888                    Err(err) => err.into(),
36889                }
36890            }
36891        }
36892        unsafe extern "system" fn SetContent<
36893            Identity: ICoreWebView2WebResourceResponse_Impl,
36894            const OFFSET: isize,
36895        >(
36896            this: *mut core::ffi::c_void,
36897            content: *mut core::ffi::c_void,
36898        ) -> windows_core::HRESULT {
36899            unsafe {
36900                let this: &Identity =
36901                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
36902                ICoreWebView2WebResourceResponse_Impl::SetContent(
36903                    this,
36904                    core::mem::transmute_copy(&content),
36905                )
36906                .into()
36907            }
36908        }
36909        unsafe extern "system" fn Headers<
36910            Identity: ICoreWebView2WebResourceResponse_Impl,
36911            const OFFSET: isize,
36912        >(
36913            this: *mut core::ffi::c_void,
36914            headers: *mut *mut core::ffi::c_void,
36915        ) -> windows_core::HRESULT {
36916            unsafe {
36917                let this: &Identity =
36918                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
36919                match ICoreWebView2WebResourceResponse_Impl::Headers(this) {
36920                    Ok(ok__) => {
36921                        headers.write(core::mem::transmute(ok__));
36922                        windows_core::HRESULT(0)
36923                    }
36924                    Err(err) => err.into(),
36925                }
36926            }
36927        }
36928        unsafe extern "system" fn StatusCode<
36929            Identity: ICoreWebView2WebResourceResponse_Impl,
36930            const OFFSET: isize,
36931        >(
36932            this: *mut core::ffi::c_void,
36933            statuscode: *mut i32,
36934        ) -> windows_core::HRESULT {
36935            unsafe {
36936                let this: &Identity =
36937                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
36938                ICoreWebView2WebResourceResponse_Impl::StatusCode(
36939                    this,
36940                    core::mem::transmute_copy(&statuscode),
36941                )
36942                .into()
36943            }
36944        }
36945        unsafe extern "system" fn SetStatusCode<
36946            Identity: ICoreWebView2WebResourceResponse_Impl,
36947            const OFFSET: isize,
36948        >(
36949            this: *mut core::ffi::c_void,
36950            statuscode: i32,
36951        ) -> windows_core::HRESULT {
36952            unsafe {
36953                let this: &Identity =
36954                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
36955                ICoreWebView2WebResourceResponse_Impl::SetStatusCode(
36956                    this,
36957                    core::mem::transmute_copy(&statuscode),
36958                )
36959                .into()
36960            }
36961        }
36962        unsafe extern "system" fn ReasonPhrase<
36963            Identity: ICoreWebView2WebResourceResponse_Impl,
36964            const OFFSET: isize,
36965        >(
36966            this: *mut core::ffi::c_void,
36967            reasonphrase: *mut windows_core::PWSTR,
36968        ) -> windows_core::HRESULT {
36969            unsafe {
36970                let this: &Identity =
36971                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
36972                ICoreWebView2WebResourceResponse_Impl::ReasonPhrase(
36973                    this,
36974                    core::mem::transmute_copy(&reasonphrase),
36975                )
36976                .into()
36977            }
36978        }
36979        unsafe extern "system" fn SetReasonPhrase<
36980            Identity: ICoreWebView2WebResourceResponse_Impl,
36981            const OFFSET: isize,
36982        >(
36983            this: *mut core::ffi::c_void,
36984            reasonphrase: windows_core::PCWSTR,
36985        ) -> windows_core::HRESULT {
36986            unsafe {
36987                let this: &Identity =
36988                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
36989                ICoreWebView2WebResourceResponse_Impl::SetReasonPhrase(
36990                    this,
36991                    core::mem::transmute(&reasonphrase),
36992                )
36993                .into()
36994            }
36995        }
36996        Self {
36997            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
36998            Content: Content::<Identity, OFFSET>,
36999            SetContent: SetContent::<Identity, OFFSET>,
37000            Headers: Headers::<Identity, OFFSET>,
37001            StatusCode: StatusCode::<Identity, OFFSET>,
37002            SetStatusCode: SetStatusCode::<Identity, OFFSET>,
37003            ReasonPhrase: ReasonPhrase::<Identity, OFFSET>,
37004            SetReasonPhrase: SetReasonPhrase::<Identity, OFFSET>,
37005        }
37006    }
37007    pub fn matches(iid: &windows_core::GUID) -> bool {
37008        iid == &<ICoreWebView2WebResourceResponse as windows_core::Interface>::IID
37009    }
37010}
37011impl windows_core::RuntimeName for ICoreWebView2WebResourceResponse {}
37012windows_core::imp::define_interface!(
37013    ICoreWebView2WebResourceResponseReceivedEventArgs,
37014    ICoreWebView2WebResourceResponseReceivedEventArgs_Vtbl,
37015    0xd1db483d_6796_4b8b_80fc_13712bb716f4
37016);
37017windows_core::imp::interface_hierarchy!(
37018    ICoreWebView2WebResourceResponseReceivedEventArgs,
37019    windows_core::IUnknown
37020);
37021impl ICoreWebView2WebResourceResponseReceivedEventArgs {
37022    pub unsafe fn Request(&self) -> windows_core::Result<ICoreWebView2WebResourceRequest> {
37023        unsafe {
37024            let mut result__ = core::mem::zeroed();
37025            (windows_core::Interface::vtable(self).Request)(
37026                windows_core::Interface::as_raw(self),
37027                &mut result__,
37028            )
37029            .and_then(|| windows_core::Type::from_abi(result__))
37030        }
37031    }
37032    pub unsafe fn Response(&self) -> windows_core::Result<ICoreWebView2WebResourceResponseView> {
37033        unsafe {
37034            let mut result__ = core::mem::zeroed();
37035            (windows_core::Interface::vtable(self).Response)(
37036                windows_core::Interface::as_raw(self),
37037                &mut result__,
37038            )
37039            .and_then(|| windows_core::Type::from_abi(result__))
37040        }
37041    }
37042}
37043#[repr(C)]
37044#[doc(hidden)]
37045pub struct ICoreWebView2WebResourceResponseReceivedEventArgs_Vtbl {
37046    pub base__: windows_core::IUnknown_Vtbl,
37047    pub Request: unsafe extern "system" fn(
37048        *mut core::ffi::c_void,
37049        *mut *mut core::ffi::c_void,
37050    ) -> windows_core::HRESULT,
37051    pub Response: unsafe extern "system" fn(
37052        *mut core::ffi::c_void,
37053        *mut *mut core::ffi::c_void,
37054    ) -> windows_core::HRESULT,
37055}
37056pub trait ICoreWebView2WebResourceResponseReceivedEventArgs_Impl:
37057    windows_core::IUnknownImpl
37058{
37059    fn Request(&self) -> windows_core::Result<ICoreWebView2WebResourceRequest>;
37060    fn Response(&self) -> windows_core::Result<ICoreWebView2WebResourceResponseView>;
37061}
37062impl ICoreWebView2WebResourceResponseReceivedEventArgs_Vtbl {
37063    pub const fn new<
37064        Identity: ICoreWebView2WebResourceResponseReceivedEventArgs_Impl,
37065        const OFFSET: isize,
37066    >() -> Self {
37067        unsafe extern "system" fn Request<
37068            Identity: ICoreWebView2WebResourceResponseReceivedEventArgs_Impl,
37069            const OFFSET: isize,
37070        >(
37071            this: *mut core::ffi::c_void,
37072            value: *mut *mut core::ffi::c_void,
37073        ) -> windows_core::HRESULT {
37074            unsafe {
37075                let this: &Identity =
37076                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
37077                match ICoreWebView2WebResourceResponseReceivedEventArgs_Impl::Request(this) {
37078                    Ok(ok__) => {
37079                        value.write(core::mem::transmute(ok__));
37080                        windows_core::HRESULT(0)
37081                    }
37082                    Err(err) => err.into(),
37083                }
37084            }
37085        }
37086        unsafe extern "system" fn Response<
37087            Identity: ICoreWebView2WebResourceResponseReceivedEventArgs_Impl,
37088            const OFFSET: isize,
37089        >(
37090            this: *mut core::ffi::c_void,
37091            value: *mut *mut core::ffi::c_void,
37092        ) -> windows_core::HRESULT {
37093            unsafe {
37094                let this: &Identity =
37095                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
37096                match ICoreWebView2WebResourceResponseReceivedEventArgs_Impl::Response(this) {
37097                    Ok(ok__) => {
37098                        value.write(core::mem::transmute(ok__));
37099                        windows_core::HRESULT(0)
37100                    }
37101                    Err(err) => err.into(),
37102                }
37103            }
37104        }
37105        Self {
37106            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
37107            Request: Request::<Identity, OFFSET>,
37108            Response: Response::<Identity, OFFSET>,
37109        }
37110    }
37111    pub fn matches(iid: &windows_core::GUID) -> bool {
37112        iid == &<ICoreWebView2WebResourceResponseReceivedEventArgs as windows_core::Interface>::IID
37113    }
37114}
37115impl windows_core::RuntimeName for ICoreWebView2WebResourceResponseReceivedEventArgs {}
37116windows_core::imp::define_interface!(
37117    ICoreWebView2WebResourceResponseReceivedEventHandler,
37118    ICoreWebView2WebResourceResponseReceivedEventHandler_Vtbl,
37119    0x7de9898a_24f5_40c3_a2de_d4f458e69828
37120);
37121windows_core::imp::interface_hierarchy!(
37122    ICoreWebView2WebResourceResponseReceivedEventHandler,
37123    windows_core::IUnknown
37124);
37125impl ICoreWebView2WebResourceResponseReceivedEventHandler {
37126    pub unsafe fn Invoke<P0, P1>(&self, sender: P0, args: P1) -> windows_core::Result<()>
37127    where
37128        P0: windows_core::Param<ICoreWebView2>,
37129        P1: windows_core::Param<ICoreWebView2WebResourceResponseReceivedEventArgs>,
37130    {
37131        unsafe {
37132            (windows_core::Interface::vtable(self).Invoke)(
37133                windows_core::Interface::as_raw(self),
37134                sender.param().abi(),
37135                args.param().abi(),
37136            )
37137            .ok()
37138        }
37139    }
37140}
37141#[repr(C)]
37142#[doc(hidden)]
37143pub struct ICoreWebView2WebResourceResponseReceivedEventHandler_Vtbl {
37144    pub base__: windows_core::IUnknown_Vtbl,
37145    pub Invoke: unsafe extern "system" fn(
37146        *mut core::ffi::c_void,
37147        *mut core::ffi::c_void,
37148        *mut core::ffi::c_void,
37149    ) -> windows_core::HRESULT,
37150}
37151pub trait ICoreWebView2WebResourceResponseReceivedEventHandler_Impl:
37152    windows_core::IUnknownImpl
37153{
37154    fn Invoke(
37155        &self,
37156        sender: windows_core::Ref<'_, ICoreWebView2>,
37157        args: windows_core::Ref<'_, ICoreWebView2WebResourceResponseReceivedEventArgs>,
37158    ) -> windows_core::Result<()>;
37159}
37160impl ICoreWebView2WebResourceResponseReceivedEventHandler_Vtbl {
37161    pub const fn new<
37162        Identity: ICoreWebView2WebResourceResponseReceivedEventHandler_Impl,
37163        const OFFSET: isize,
37164    >() -> Self {
37165        unsafe extern "system" fn Invoke<
37166            Identity: ICoreWebView2WebResourceResponseReceivedEventHandler_Impl,
37167            const OFFSET: isize,
37168        >(
37169            this: *mut core::ffi::c_void,
37170            sender: *mut core::ffi::c_void,
37171            args: *mut core::ffi::c_void,
37172        ) -> windows_core::HRESULT {
37173            unsafe {
37174                let this: &Identity =
37175                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
37176                ICoreWebView2WebResourceResponseReceivedEventHandler_Impl::Invoke(
37177                    this,
37178                    core::mem::transmute_copy(&sender),
37179                    core::mem::transmute_copy(&args),
37180                )
37181                .into()
37182            }
37183        }
37184        Self {
37185            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
37186            Invoke: Invoke::<Identity, OFFSET>,
37187        }
37188    }
37189    pub fn matches(iid: &windows_core::GUID) -> bool {
37190        iid == & < ICoreWebView2WebResourceResponseReceivedEventHandler as windows_core::Interface >::IID
37191    }
37192}
37193impl windows_core::RuntimeName for ICoreWebView2WebResourceResponseReceivedEventHandler {}
37194windows_core::imp::define_interface!(
37195    ICoreWebView2WebResourceResponseView,
37196    ICoreWebView2WebResourceResponseView_Vtbl,
37197    0x79701053_7759_4162_8f7d_f1b3f084928d
37198);
37199windows_core::imp::interface_hierarchy!(
37200    ICoreWebView2WebResourceResponseView,
37201    windows_core::IUnknown
37202);
37203impl ICoreWebView2WebResourceResponseView {
37204    pub unsafe fn Headers(&self) -> windows_core::Result<ICoreWebView2HttpResponseHeaders> {
37205        unsafe {
37206            let mut result__ = core::mem::zeroed();
37207            (windows_core::Interface::vtable(self).Headers)(
37208                windows_core::Interface::as_raw(self),
37209                &mut result__,
37210            )
37211            .and_then(|| windows_core::Type::from_abi(result__))
37212        }
37213    }
37214    pub unsafe fn StatusCode(&self, statuscode: *mut i32) -> windows_core::Result<()> {
37215        unsafe {
37216            (windows_core::Interface::vtable(self).StatusCode)(
37217                windows_core::Interface::as_raw(self),
37218                statuscode as _,
37219            )
37220            .ok()
37221        }
37222    }
37223    pub unsafe fn ReasonPhrase(
37224        &self,
37225        reasonphrase: *mut windows_core::PWSTR,
37226    ) -> windows_core::Result<()> {
37227        unsafe {
37228            (windows_core::Interface::vtable(self).ReasonPhrase)(
37229                windows_core::Interface::as_raw(self),
37230                reasonphrase as _,
37231            )
37232            .ok()
37233        }
37234    }
37235    pub unsafe fn GetContent<P0>(&self, handler: P0) -> windows_core::Result<()>
37236    where
37237        P0: windows_core::Param<ICoreWebView2WebResourceResponseViewGetContentCompletedHandler>,
37238    {
37239        unsafe {
37240            (windows_core::Interface::vtable(self).GetContent)(
37241                windows_core::Interface::as_raw(self),
37242                handler.param().abi(),
37243            )
37244            .ok()
37245        }
37246    }
37247}
37248#[repr(C)]
37249#[doc(hidden)]
37250pub struct ICoreWebView2WebResourceResponseView_Vtbl {
37251    pub base__: windows_core::IUnknown_Vtbl,
37252    pub Headers: unsafe extern "system" fn(
37253        *mut core::ffi::c_void,
37254        *mut *mut core::ffi::c_void,
37255    ) -> windows_core::HRESULT,
37256    pub StatusCode:
37257        unsafe extern "system" fn(*mut core::ffi::c_void, *mut i32) -> windows_core::HRESULT,
37258    pub ReasonPhrase: unsafe extern "system" fn(
37259        *mut core::ffi::c_void,
37260        *mut windows_core::PWSTR,
37261    ) -> windows_core::HRESULT,
37262    pub GetContent: unsafe extern "system" fn(
37263        *mut core::ffi::c_void,
37264        *mut core::ffi::c_void,
37265    ) -> windows_core::HRESULT,
37266}
37267pub trait ICoreWebView2WebResourceResponseView_Impl: windows_core::IUnknownImpl {
37268    fn Headers(&self) -> windows_core::Result<ICoreWebView2HttpResponseHeaders>;
37269    fn StatusCode(&self, statuscode: *mut i32) -> windows_core::Result<()>;
37270    fn ReasonPhrase(&self, reasonphrase: *mut windows_core::PWSTR) -> windows_core::Result<()>;
37271    fn GetContent(
37272        &self,
37273        handler: windows_core::Ref<
37274            '_,
37275            ICoreWebView2WebResourceResponseViewGetContentCompletedHandler,
37276        >,
37277    ) -> windows_core::Result<()>;
37278}
37279impl ICoreWebView2WebResourceResponseView_Vtbl {
37280    pub const fn new<Identity: ICoreWebView2WebResourceResponseView_Impl, const OFFSET: isize>(
37281    ) -> Self {
37282        unsafe extern "system" fn Headers<
37283            Identity: ICoreWebView2WebResourceResponseView_Impl,
37284            const OFFSET: isize,
37285        >(
37286            this: *mut core::ffi::c_void,
37287            headers: *mut *mut core::ffi::c_void,
37288        ) -> windows_core::HRESULT {
37289            unsafe {
37290                let this: &Identity =
37291                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
37292                match ICoreWebView2WebResourceResponseView_Impl::Headers(this) {
37293                    Ok(ok__) => {
37294                        headers.write(core::mem::transmute(ok__));
37295                        windows_core::HRESULT(0)
37296                    }
37297                    Err(err) => err.into(),
37298                }
37299            }
37300        }
37301        unsafe extern "system" fn StatusCode<
37302            Identity: ICoreWebView2WebResourceResponseView_Impl,
37303            const OFFSET: isize,
37304        >(
37305            this: *mut core::ffi::c_void,
37306            statuscode: *mut i32,
37307        ) -> windows_core::HRESULT {
37308            unsafe {
37309                let this: &Identity =
37310                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
37311                ICoreWebView2WebResourceResponseView_Impl::StatusCode(
37312                    this,
37313                    core::mem::transmute_copy(&statuscode),
37314                )
37315                .into()
37316            }
37317        }
37318        unsafe extern "system" fn ReasonPhrase<
37319            Identity: ICoreWebView2WebResourceResponseView_Impl,
37320            const OFFSET: isize,
37321        >(
37322            this: *mut core::ffi::c_void,
37323            reasonphrase: *mut windows_core::PWSTR,
37324        ) -> windows_core::HRESULT {
37325            unsafe {
37326                let this: &Identity =
37327                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
37328                ICoreWebView2WebResourceResponseView_Impl::ReasonPhrase(
37329                    this,
37330                    core::mem::transmute_copy(&reasonphrase),
37331                )
37332                .into()
37333            }
37334        }
37335        unsafe extern "system" fn GetContent<
37336            Identity: ICoreWebView2WebResourceResponseView_Impl,
37337            const OFFSET: isize,
37338        >(
37339            this: *mut core::ffi::c_void,
37340            handler: *mut core::ffi::c_void,
37341        ) -> windows_core::HRESULT {
37342            unsafe {
37343                let this: &Identity =
37344                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
37345                ICoreWebView2WebResourceResponseView_Impl::GetContent(
37346                    this,
37347                    core::mem::transmute_copy(&handler),
37348                )
37349                .into()
37350            }
37351        }
37352        Self {
37353            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
37354            Headers: Headers::<Identity, OFFSET>,
37355            StatusCode: StatusCode::<Identity, OFFSET>,
37356            ReasonPhrase: ReasonPhrase::<Identity, OFFSET>,
37357            GetContent: GetContent::<Identity, OFFSET>,
37358        }
37359    }
37360    pub fn matches(iid: &windows_core::GUID) -> bool {
37361        iid == &<ICoreWebView2WebResourceResponseView as windows_core::Interface>::IID
37362    }
37363}
37364impl windows_core::RuntimeName for ICoreWebView2WebResourceResponseView {}
37365windows_core::imp::define_interface!(
37366    ICoreWebView2WebResourceResponseViewGetContentCompletedHandler,
37367    ICoreWebView2WebResourceResponseViewGetContentCompletedHandler_Vtbl,
37368    0x875738e1_9fa2_40e3_8b74_2e8972dd6fe7
37369);
37370windows_core::imp::interface_hierarchy!(
37371    ICoreWebView2WebResourceResponseViewGetContentCompletedHandler,
37372    windows_core::IUnknown
37373);
37374impl ICoreWebView2WebResourceResponseViewGetContentCompletedHandler {
37375    pub unsafe fn Invoke<P1>(
37376        &self,
37377        errorcode: windows_core::HRESULT,
37378        result: P1,
37379    ) -> windows_core::Result<()>
37380    where
37381        P1: windows_core::Param<windows::Win32::System::Com::IStream>,
37382    {
37383        unsafe {
37384            (windows_core::Interface::vtable(self).Invoke)(
37385                windows_core::Interface::as_raw(self),
37386                errorcode,
37387                result.param().abi(),
37388            )
37389            .ok()
37390        }
37391    }
37392}
37393#[repr(C)]
37394#[doc(hidden)]
37395pub struct ICoreWebView2WebResourceResponseViewGetContentCompletedHandler_Vtbl {
37396    pub base__: windows_core::IUnknown_Vtbl,
37397    pub Invoke: unsafe extern "system" fn(
37398        *mut core::ffi::c_void,
37399        windows_core::HRESULT,
37400        *mut core::ffi::c_void,
37401    ) -> windows_core::HRESULT,
37402}
37403pub trait ICoreWebView2WebResourceResponseViewGetContentCompletedHandler_Impl:
37404    windows_core::IUnknownImpl
37405{
37406    fn Invoke(
37407        &self,
37408        errorcode: windows_core::HRESULT,
37409        result: windows_core::Ref<'_, windows::Win32::System::Com::IStream>,
37410    ) -> windows_core::Result<()>;
37411}
37412impl ICoreWebView2WebResourceResponseViewGetContentCompletedHandler_Vtbl {
37413    pub const fn new<
37414        Identity: ICoreWebView2WebResourceResponseViewGetContentCompletedHandler_Impl,
37415        const OFFSET: isize,
37416    >() -> Self {
37417        unsafe extern "system" fn Invoke<
37418            Identity: ICoreWebView2WebResourceResponseViewGetContentCompletedHandler_Impl,
37419            const OFFSET: isize,
37420        >(
37421            this: *mut core::ffi::c_void,
37422            errorcode: windows_core::HRESULT,
37423            result: *mut core::ffi::c_void,
37424        ) -> windows_core::HRESULT {
37425            unsafe {
37426                let this: &Identity =
37427                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
37428                ICoreWebView2WebResourceResponseViewGetContentCompletedHandler_Impl::Invoke(
37429                    this,
37430                    core::mem::transmute_copy(&errorcode),
37431                    core::mem::transmute_copy(&result),
37432                )
37433                .into()
37434            }
37435        }
37436        Self {
37437            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
37438            Invoke: Invoke::<Identity, OFFSET>,
37439        }
37440    }
37441    pub fn matches(iid: &windows_core::GUID) -> bool {
37442        iid == & < ICoreWebView2WebResourceResponseViewGetContentCompletedHandler as windows_core::Interface >::IID
37443    }
37444}
37445impl windows_core::RuntimeName for ICoreWebView2WebResourceResponseViewGetContentCompletedHandler {}
37446windows_core::imp::define_interface!(
37447    ICoreWebView2WindowCloseRequestedEventHandler,
37448    ICoreWebView2WindowCloseRequestedEventHandler_Vtbl,
37449    0x5c19e9e0_092f_486b_affa_ca8231913039
37450);
37451windows_core::imp::interface_hierarchy!(
37452    ICoreWebView2WindowCloseRequestedEventHandler,
37453    windows_core::IUnknown
37454);
37455impl ICoreWebView2WindowCloseRequestedEventHandler {
37456    pub unsafe fn Invoke<P0, P1>(&self, sender: P0, args: P1) -> windows_core::Result<()>
37457    where
37458        P0: windows_core::Param<ICoreWebView2>,
37459        P1: windows_core::Param<windows_core::IUnknown>,
37460    {
37461        unsafe {
37462            (windows_core::Interface::vtable(self).Invoke)(
37463                windows_core::Interface::as_raw(self),
37464                sender.param().abi(),
37465                args.param().abi(),
37466            )
37467            .ok()
37468        }
37469    }
37470}
37471#[repr(C)]
37472#[doc(hidden)]
37473pub struct ICoreWebView2WindowCloseRequestedEventHandler_Vtbl {
37474    pub base__: windows_core::IUnknown_Vtbl,
37475    pub Invoke: unsafe extern "system" fn(
37476        *mut core::ffi::c_void,
37477        *mut core::ffi::c_void,
37478        *mut core::ffi::c_void,
37479    ) -> windows_core::HRESULT,
37480}
37481pub trait ICoreWebView2WindowCloseRequestedEventHandler_Impl: windows_core::IUnknownImpl {
37482    fn Invoke(
37483        &self,
37484        sender: windows_core::Ref<'_, ICoreWebView2>,
37485        args: windows_core::Ref<'_, windows_core::IUnknown>,
37486    ) -> windows_core::Result<()>;
37487}
37488impl ICoreWebView2WindowCloseRequestedEventHandler_Vtbl {
37489    pub const fn new<
37490        Identity: ICoreWebView2WindowCloseRequestedEventHandler_Impl,
37491        const OFFSET: isize,
37492    >() -> Self {
37493        unsafe extern "system" fn Invoke<
37494            Identity: ICoreWebView2WindowCloseRequestedEventHandler_Impl,
37495            const OFFSET: isize,
37496        >(
37497            this: *mut core::ffi::c_void,
37498            sender: *mut core::ffi::c_void,
37499            args: *mut core::ffi::c_void,
37500        ) -> windows_core::HRESULT {
37501            unsafe {
37502                let this: &Identity =
37503                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
37504                ICoreWebView2WindowCloseRequestedEventHandler_Impl::Invoke(
37505                    this,
37506                    core::mem::transmute_copy(&sender),
37507                    core::mem::transmute_copy(&args),
37508                )
37509                .into()
37510            }
37511        }
37512        Self {
37513            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
37514            Invoke: Invoke::<Identity, OFFSET>,
37515        }
37516    }
37517    pub fn matches(iid: &windows_core::GUID) -> bool {
37518        iid == &<ICoreWebView2WindowCloseRequestedEventHandler as windows_core::Interface>::IID
37519    }
37520}
37521impl windows_core::RuntimeName for ICoreWebView2WindowCloseRequestedEventHandler {}
37522windows_core::imp::define_interface!(
37523    ICoreWebView2WindowFeatures,
37524    ICoreWebView2WindowFeatures_Vtbl,
37525    0x5eaf559f_b46e_4397_8860_e422f287ff1e
37526);
37527windows_core::imp::interface_hierarchy!(ICoreWebView2WindowFeatures, windows_core::IUnknown);
37528impl ICoreWebView2WindowFeatures {
37529    pub unsafe fn HasPosition(&self, value: *mut windows_core::BOOL) -> windows_core::Result<()> {
37530        unsafe {
37531            (windows_core::Interface::vtable(self).HasPosition)(
37532                windows_core::Interface::as_raw(self),
37533                value as _,
37534            )
37535            .ok()
37536        }
37537    }
37538    pub unsafe fn HasSize(&self, value: *mut windows_core::BOOL) -> windows_core::Result<()> {
37539        unsafe {
37540            (windows_core::Interface::vtable(self).HasSize)(
37541                windows_core::Interface::as_raw(self),
37542                value as _,
37543            )
37544            .ok()
37545        }
37546    }
37547    pub unsafe fn Left(&self, value: *mut u32) -> windows_core::Result<()> {
37548        unsafe {
37549            (windows_core::Interface::vtable(self).Left)(
37550                windows_core::Interface::as_raw(self),
37551                value as _,
37552            )
37553            .ok()
37554        }
37555    }
37556    pub unsafe fn Top(&self, value: *mut u32) -> windows_core::Result<()> {
37557        unsafe {
37558            (windows_core::Interface::vtable(self).Top)(
37559                windows_core::Interface::as_raw(self),
37560                value as _,
37561            )
37562            .ok()
37563        }
37564    }
37565    pub unsafe fn Height(&self, value: *mut u32) -> windows_core::Result<()> {
37566        unsafe {
37567            (windows_core::Interface::vtable(self).Height)(
37568                windows_core::Interface::as_raw(self),
37569                value as _,
37570            )
37571            .ok()
37572        }
37573    }
37574    pub unsafe fn Width(&self, value: *mut u32) -> windows_core::Result<()> {
37575        unsafe {
37576            (windows_core::Interface::vtable(self).Width)(
37577                windows_core::Interface::as_raw(self),
37578                value as _,
37579            )
37580            .ok()
37581        }
37582    }
37583    pub unsafe fn ShouldDisplayMenuBar(
37584        &self,
37585        value: *mut windows_core::BOOL,
37586    ) -> windows_core::Result<()> {
37587        unsafe {
37588            (windows_core::Interface::vtable(self).ShouldDisplayMenuBar)(
37589                windows_core::Interface::as_raw(self),
37590                value as _,
37591            )
37592            .ok()
37593        }
37594    }
37595    pub unsafe fn ShouldDisplayStatus(
37596        &self,
37597        value: *mut windows_core::BOOL,
37598    ) -> windows_core::Result<()> {
37599        unsafe {
37600            (windows_core::Interface::vtable(self).ShouldDisplayStatus)(
37601                windows_core::Interface::as_raw(self),
37602                value as _,
37603            )
37604            .ok()
37605        }
37606    }
37607    pub unsafe fn ShouldDisplayToolbar(
37608        &self,
37609        value: *mut windows_core::BOOL,
37610    ) -> windows_core::Result<()> {
37611        unsafe {
37612            (windows_core::Interface::vtable(self).ShouldDisplayToolbar)(
37613                windows_core::Interface::as_raw(self),
37614                value as _,
37615            )
37616            .ok()
37617        }
37618    }
37619    pub unsafe fn ShouldDisplayScrollBars(
37620        &self,
37621        value: *mut windows_core::BOOL,
37622    ) -> windows_core::Result<()> {
37623        unsafe {
37624            (windows_core::Interface::vtable(self).ShouldDisplayScrollBars)(
37625                windows_core::Interface::as_raw(self),
37626                value as _,
37627            )
37628            .ok()
37629        }
37630    }
37631}
37632#[repr(C)]
37633#[doc(hidden)]
37634pub struct ICoreWebView2WindowFeatures_Vtbl {
37635    pub base__: windows_core::IUnknown_Vtbl,
37636    pub HasPosition: unsafe extern "system" fn(
37637        *mut core::ffi::c_void,
37638        *mut windows_core::BOOL,
37639    ) -> windows_core::HRESULT,
37640    pub HasSize: unsafe extern "system" fn(
37641        *mut core::ffi::c_void,
37642        *mut windows_core::BOOL,
37643    ) -> windows_core::HRESULT,
37644    pub Left: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
37645    pub Top: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
37646    pub Height:
37647        unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
37648    pub Width: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
37649    pub ShouldDisplayMenuBar: unsafe extern "system" fn(
37650        *mut core::ffi::c_void,
37651        *mut windows_core::BOOL,
37652    ) -> windows_core::HRESULT,
37653    pub ShouldDisplayStatus: unsafe extern "system" fn(
37654        *mut core::ffi::c_void,
37655        *mut windows_core::BOOL,
37656    ) -> windows_core::HRESULT,
37657    pub ShouldDisplayToolbar: unsafe extern "system" fn(
37658        *mut core::ffi::c_void,
37659        *mut windows_core::BOOL,
37660    ) -> windows_core::HRESULT,
37661    pub ShouldDisplayScrollBars: unsafe extern "system" fn(
37662        *mut core::ffi::c_void,
37663        *mut windows_core::BOOL,
37664    ) -> windows_core::HRESULT,
37665}
37666pub trait ICoreWebView2WindowFeatures_Impl: windows_core::IUnknownImpl {
37667    fn HasPosition(&self, value: *mut windows_core::BOOL) -> windows_core::Result<()>;
37668    fn HasSize(&self, value: *mut windows_core::BOOL) -> windows_core::Result<()>;
37669    fn Left(&self, value: *mut u32) -> windows_core::Result<()>;
37670    fn Top(&self, value: *mut u32) -> windows_core::Result<()>;
37671    fn Height(&self, value: *mut u32) -> windows_core::Result<()>;
37672    fn Width(&self, value: *mut u32) -> windows_core::Result<()>;
37673    fn ShouldDisplayMenuBar(&self, value: *mut windows_core::BOOL) -> windows_core::Result<()>;
37674    fn ShouldDisplayStatus(&self, value: *mut windows_core::BOOL) -> windows_core::Result<()>;
37675    fn ShouldDisplayToolbar(&self, value: *mut windows_core::BOOL) -> windows_core::Result<()>;
37676    fn ShouldDisplayScrollBars(&self, value: *mut windows_core::BOOL) -> windows_core::Result<()>;
37677}
37678impl ICoreWebView2WindowFeatures_Vtbl {
37679    pub const fn new<Identity: ICoreWebView2WindowFeatures_Impl, const OFFSET: isize>() -> Self {
37680        unsafe extern "system" fn HasPosition<
37681            Identity: ICoreWebView2WindowFeatures_Impl,
37682            const OFFSET: isize,
37683        >(
37684            this: *mut core::ffi::c_void,
37685            value: *mut windows_core::BOOL,
37686        ) -> windows_core::HRESULT {
37687            unsafe {
37688                let this: &Identity =
37689                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
37690                ICoreWebView2WindowFeatures_Impl::HasPosition(
37691                    this,
37692                    core::mem::transmute_copy(&value),
37693                )
37694                .into()
37695            }
37696        }
37697        unsafe extern "system" fn HasSize<
37698            Identity: ICoreWebView2WindowFeatures_Impl,
37699            const OFFSET: isize,
37700        >(
37701            this: *mut core::ffi::c_void,
37702            value: *mut windows_core::BOOL,
37703        ) -> windows_core::HRESULT {
37704            unsafe {
37705                let this: &Identity =
37706                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
37707                ICoreWebView2WindowFeatures_Impl::HasSize(this, core::mem::transmute_copy(&value))
37708                    .into()
37709            }
37710        }
37711        unsafe extern "system" fn Left<
37712            Identity: ICoreWebView2WindowFeatures_Impl,
37713            const OFFSET: isize,
37714        >(
37715            this: *mut core::ffi::c_void,
37716            value: *mut u32,
37717        ) -> windows_core::HRESULT {
37718            unsafe {
37719                let this: &Identity =
37720                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
37721                ICoreWebView2WindowFeatures_Impl::Left(this, core::mem::transmute_copy(&value))
37722                    .into()
37723            }
37724        }
37725        unsafe extern "system" fn Top<
37726            Identity: ICoreWebView2WindowFeatures_Impl,
37727            const OFFSET: isize,
37728        >(
37729            this: *mut core::ffi::c_void,
37730            value: *mut u32,
37731        ) -> windows_core::HRESULT {
37732            unsafe {
37733                let this: &Identity =
37734                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
37735                ICoreWebView2WindowFeatures_Impl::Top(this, core::mem::transmute_copy(&value))
37736                    .into()
37737            }
37738        }
37739        unsafe extern "system" fn Height<
37740            Identity: ICoreWebView2WindowFeatures_Impl,
37741            const OFFSET: isize,
37742        >(
37743            this: *mut core::ffi::c_void,
37744            value: *mut u32,
37745        ) -> windows_core::HRESULT {
37746            unsafe {
37747                let this: &Identity =
37748                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
37749                ICoreWebView2WindowFeatures_Impl::Height(this, core::mem::transmute_copy(&value))
37750                    .into()
37751            }
37752        }
37753        unsafe extern "system" fn Width<
37754            Identity: ICoreWebView2WindowFeatures_Impl,
37755            const OFFSET: isize,
37756        >(
37757            this: *mut core::ffi::c_void,
37758            value: *mut u32,
37759        ) -> windows_core::HRESULT {
37760            unsafe {
37761                let this: &Identity =
37762                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
37763                ICoreWebView2WindowFeatures_Impl::Width(this, core::mem::transmute_copy(&value))
37764                    .into()
37765            }
37766        }
37767        unsafe extern "system" fn ShouldDisplayMenuBar<
37768            Identity: ICoreWebView2WindowFeatures_Impl,
37769            const OFFSET: isize,
37770        >(
37771            this: *mut core::ffi::c_void,
37772            value: *mut windows_core::BOOL,
37773        ) -> windows_core::HRESULT {
37774            unsafe {
37775                let this: &Identity =
37776                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
37777                ICoreWebView2WindowFeatures_Impl::ShouldDisplayMenuBar(
37778                    this,
37779                    core::mem::transmute_copy(&value),
37780                )
37781                .into()
37782            }
37783        }
37784        unsafe extern "system" fn ShouldDisplayStatus<
37785            Identity: ICoreWebView2WindowFeatures_Impl,
37786            const OFFSET: isize,
37787        >(
37788            this: *mut core::ffi::c_void,
37789            value: *mut windows_core::BOOL,
37790        ) -> windows_core::HRESULT {
37791            unsafe {
37792                let this: &Identity =
37793                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
37794                ICoreWebView2WindowFeatures_Impl::ShouldDisplayStatus(
37795                    this,
37796                    core::mem::transmute_copy(&value),
37797                )
37798                .into()
37799            }
37800        }
37801        unsafe extern "system" fn ShouldDisplayToolbar<
37802            Identity: ICoreWebView2WindowFeatures_Impl,
37803            const OFFSET: isize,
37804        >(
37805            this: *mut core::ffi::c_void,
37806            value: *mut windows_core::BOOL,
37807        ) -> windows_core::HRESULT {
37808            unsafe {
37809                let this: &Identity =
37810                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
37811                ICoreWebView2WindowFeatures_Impl::ShouldDisplayToolbar(
37812                    this,
37813                    core::mem::transmute_copy(&value),
37814                )
37815                .into()
37816            }
37817        }
37818        unsafe extern "system" fn ShouldDisplayScrollBars<
37819            Identity: ICoreWebView2WindowFeatures_Impl,
37820            const OFFSET: isize,
37821        >(
37822            this: *mut core::ffi::c_void,
37823            value: *mut windows_core::BOOL,
37824        ) -> windows_core::HRESULT {
37825            unsafe {
37826                let this: &Identity =
37827                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
37828                ICoreWebView2WindowFeatures_Impl::ShouldDisplayScrollBars(
37829                    this,
37830                    core::mem::transmute_copy(&value),
37831                )
37832                .into()
37833            }
37834        }
37835        Self {
37836            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
37837            HasPosition: HasPosition::<Identity, OFFSET>,
37838            HasSize: HasSize::<Identity, OFFSET>,
37839            Left: Left::<Identity, OFFSET>,
37840            Top: Top::<Identity, OFFSET>,
37841            Height: Height::<Identity, OFFSET>,
37842            Width: Width::<Identity, OFFSET>,
37843            ShouldDisplayMenuBar: ShouldDisplayMenuBar::<Identity, OFFSET>,
37844            ShouldDisplayStatus: ShouldDisplayStatus::<Identity, OFFSET>,
37845            ShouldDisplayToolbar: ShouldDisplayToolbar::<Identity, OFFSET>,
37846            ShouldDisplayScrollBars: ShouldDisplayScrollBars::<Identity, OFFSET>,
37847        }
37848    }
37849    pub fn matches(iid: &windows_core::GUID) -> bool {
37850        iid == &<ICoreWebView2WindowFeatures as windows_core::Interface>::IID
37851    }
37852}
37853impl windows_core::RuntimeName for ICoreWebView2WindowFeatures {}
37854windows_core::imp::define_interface!(
37855    ICoreWebView2ZoomFactorChangedEventHandler,
37856    ICoreWebView2ZoomFactorChangedEventHandler_Vtbl,
37857    0xb52d71d6_c4df_4543_a90c_64a3e60f38cb
37858);
37859windows_core::imp::interface_hierarchy!(
37860    ICoreWebView2ZoomFactorChangedEventHandler,
37861    windows_core::IUnknown
37862);
37863impl ICoreWebView2ZoomFactorChangedEventHandler {
37864    pub unsafe fn Invoke<P0, P1>(&self, sender: P0, args: P1) -> windows_core::Result<()>
37865    where
37866        P0: windows_core::Param<ICoreWebView2Controller>,
37867        P1: windows_core::Param<windows_core::IUnknown>,
37868    {
37869        unsafe {
37870            (windows_core::Interface::vtable(self).Invoke)(
37871                windows_core::Interface::as_raw(self),
37872                sender.param().abi(),
37873                args.param().abi(),
37874            )
37875            .ok()
37876        }
37877    }
37878}
37879#[repr(C)]
37880#[doc(hidden)]
37881pub struct ICoreWebView2ZoomFactorChangedEventHandler_Vtbl {
37882    pub base__: windows_core::IUnknown_Vtbl,
37883    pub Invoke: unsafe extern "system" fn(
37884        *mut core::ffi::c_void,
37885        *mut core::ffi::c_void,
37886        *mut core::ffi::c_void,
37887    ) -> windows_core::HRESULT,
37888}
37889pub trait ICoreWebView2ZoomFactorChangedEventHandler_Impl: windows_core::IUnknownImpl {
37890    fn Invoke(
37891        &self,
37892        sender: windows_core::Ref<'_, ICoreWebView2Controller>,
37893        args: windows_core::Ref<'_, windows_core::IUnknown>,
37894    ) -> windows_core::Result<()>;
37895}
37896impl ICoreWebView2ZoomFactorChangedEventHandler_Vtbl {
37897    pub const fn new<
37898        Identity: ICoreWebView2ZoomFactorChangedEventHandler_Impl,
37899        const OFFSET: isize,
37900    >() -> Self {
37901        unsafe extern "system" fn Invoke<
37902            Identity: ICoreWebView2ZoomFactorChangedEventHandler_Impl,
37903            const OFFSET: isize,
37904        >(
37905            this: *mut core::ffi::c_void,
37906            sender: *mut core::ffi::c_void,
37907            args: *mut core::ffi::c_void,
37908        ) -> windows_core::HRESULT {
37909            unsafe {
37910                let this: &Identity =
37911                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
37912                ICoreWebView2ZoomFactorChangedEventHandler_Impl::Invoke(
37913                    this,
37914                    core::mem::transmute_copy(&sender),
37915                    core::mem::transmute_copy(&args),
37916                )
37917                .into()
37918            }
37919        }
37920        Self {
37921            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
37922            Invoke: Invoke::<Identity, OFFSET>,
37923        }
37924    }
37925    pub fn matches(iid: &windows_core::GUID) -> bool {
37926        iid == &<ICoreWebView2ZoomFactorChangedEventHandler as windows_core::Interface>::IID
37927    }
37928}
37929impl windows_core::RuntimeName for ICoreWebView2ZoomFactorChangedEventHandler {}
37930windows_core::imp::define_interface!(
37931    ICoreWebView2_10,
37932    ICoreWebView2_10_Vtbl,
37933    0xb1690564_6f5a_4983_8e48_31d1143fecdb
37934);
37935impl core::ops::Deref for ICoreWebView2_10 {
37936    type Target = ICoreWebView2_9;
37937    fn deref(&self) -> &Self::Target {
37938        unsafe { core::mem::transmute(self) }
37939    }
37940}
37941windows_core::imp::interface_hierarchy!(
37942    ICoreWebView2_10,
37943    windows_core::IUnknown,
37944    ICoreWebView2,
37945    ICoreWebView2_2,
37946    ICoreWebView2_3,
37947    ICoreWebView2_4,
37948    ICoreWebView2_5,
37949    ICoreWebView2_6,
37950    ICoreWebView2_7,
37951    ICoreWebView2_8,
37952    ICoreWebView2_9
37953);
37954impl ICoreWebView2_10 {
37955    pub unsafe fn add_BasicAuthenticationRequested<P0>(
37956        &self,
37957        eventhandler: P0,
37958        token: *mut i64,
37959    ) -> windows_core::Result<()>
37960    where
37961        P0: windows_core::Param<ICoreWebView2BasicAuthenticationRequestedEventHandler>,
37962    {
37963        unsafe {
37964            (windows_core::Interface::vtable(self).add_BasicAuthenticationRequested)(
37965                windows_core::Interface::as_raw(self),
37966                eventhandler.param().abi(),
37967                token as _,
37968            )
37969            .ok()
37970        }
37971    }
37972    pub unsafe fn remove_BasicAuthenticationRequested(
37973        &self,
37974        token: i64,
37975    ) -> windows_core::Result<()> {
37976        unsafe {
37977            (windows_core::Interface::vtable(self).remove_BasicAuthenticationRequested)(
37978                windows_core::Interface::as_raw(self),
37979                token,
37980            )
37981            .ok()
37982        }
37983    }
37984}
37985#[repr(C)]
37986#[doc(hidden)]
37987pub struct ICoreWebView2_10_Vtbl {
37988    pub base__: ICoreWebView2_9_Vtbl,
37989    pub add_BasicAuthenticationRequested: unsafe extern "system" fn(
37990        *mut core::ffi::c_void,
37991        *mut core::ffi::c_void,
37992        *mut i64,
37993    ) -> windows_core::HRESULT,
37994    pub remove_BasicAuthenticationRequested:
37995        unsafe extern "system" fn(*mut core::ffi::c_void, i64) -> windows_core::HRESULT,
37996}
37997pub trait ICoreWebView2_10_Impl: ICoreWebView2_9_Impl {
37998    fn add_BasicAuthenticationRequested(
37999        &self,
38000        eventhandler: windows_core::Ref<'_, ICoreWebView2BasicAuthenticationRequestedEventHandler>,
38001        token: *mut i64,
38002    ) -> windows_core::Result<()>;
38003    fn remove_BasicAuthenticationRequested(&self, token: i64) -> windows_core::Result<()>;
38004}
38005impl ICoreWebView2_10_Vtbl {
38006    pub const fn new<Identity: ICoreWebView2_10_Impl, const OFFSET: isize>() -> Self {
38007        unsafe extern "system" fn add_BasicAuthenticationRequested<
38008            Identity: ICoreWebView2_10_Impl,
38009            const OFFSET: isize,
38010        >(
38011            this: *mut core::ffi::c_void,
38012            eventhandler: *mut core::ffi::c_void,
38013            token: *mut i64,
38014        ) -> windows_core::HRESULT {
38015            unsafe {
38016                let this: &Identity =
38017                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
38018                ICoreWebView2_10_Impl::add_BasicAuthenticationRequested(
38019                    this,
38020                    core::mem::transmute_copy(&eventhandler),
38021                    core::mem::transmute_copy(&token),
38022                )
38023                .into()
38024            }
38025        }
38026        unsafe extern "system" fn remove_BasicAuthenticationRequested<
38027            Identity: ICoreWebView2_10_Impl,
38028            const OFFSET: isize,
38029        >(
38030            this: *mut core::ffi::c_void,
38031            token: i64,
38032        ) -> windows_core::HRESULT {
38033            unsafe {
38034                let this: &Identity =
38035                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
38036                ICoreWebView2_10_Impl::remove_BasicAuthenticationRequested(
38037                    this,
38038                    core::mem::transmute_copy(&token),
38039                )
38040                .into()
38041            }
38042        }
38043        Self {
38044            base__: ICoreWebView2_9_Vtbl::new::<Identity, OFFSET>(),
38045            add_BasicAuthenticationRequested: add_BasicAuthenticationRequested::<Identity, OFFSET>,
38046            remove_BasicAuthenticationRequested: remove_BasicAuthenticationRequested::<
38047                Identity,
38048                OFFSET,
38049            >,
38050        }
38051    }
38052    pub fn matches(iid: &windows_core::GUID) -> bool {
38053        iid == &<ICoreWebView2_10 as windows_core::Interface>::IID
38054            || iid == &<ICoreWebView2 as windows_core::Interface>::IID
38055            || iid == &<ICoreWebView2_2 as windows_core::Interface>::IID
38056            || iid == &<ICoreWebView2_3 as windows_core::Interface>::IID
38057            || iid == &<ICoreWebView2_4 as windows_core::Interface>::IID
38058            || iid == &<ICoreWebView2_5 as windows_core::Interface>::IID
38059            || iid == &<ICoreWebView2_6 as windows_core::Interface>::IID
38060            || iid == &<ICoreWebView2_7 as windows_core::Interface>::IID
38061            || iid == &<ICoreWebView2_8 as windows_core::Interface>::IID
38062            || iid == &<ICoreWebView2_9 as windows_core::Interface>::IID
38063    }
38064}
38065impl windows_core::RuntimeName for ICoreWebView2_10 {}
38066windows_core::imp::define_interface!(
38067    ICoreWebView2_11,
38068    ICoreWebView2_11_Vtbl,
38069    0x0be78e56_c193_4051_b943_23b460c08bdb
38070);
38071impl core::ops::Deref for ICoreWebView2_11 {
38072    type Target = ICoreWebView2_10;
38073    fn deref(&self) -> &Self::Target {
38074        unsafe { core::mem::transmute(self) }
38075    }
38076}
38077windows_core::imp::interface_hierarchy!(
38078    ICoreWebView2_11,
38079    windows_core::IUnknown,
38080    ICoreWebView2,
38081    ICoreWebView2_2,
38082    ICoreWebView2_3,
38083    ICoreWebView2_4,
38084    ICoreWebView2_5,
38085    ICoreWebView2_6,
38086    ICoreWebView2_7,
38087    ICoreWebView2_8,
38088    ICoreWebView2_9,
38089    ICoreWebView2_10
38090);
38091impl ICoreWebView2_11 {
38092    pub unsafe fn CallDevToolsProtocolMethodForSession<P0, P1, P2, P3>(
38093        &self,
38094        sessionid: P0,
38095        methodname: P1,
38096        parametersasjson: P2,
38097        handler: P3,
38098    ) -> windows_core::Result<()>
38099    where
38100        P0: windows_core::Param<windows_core::PCWSTR>,
38101        P1: windows_core::Param<windows_core::PCWSTR>,
38102        P2: windows_core::Param<windows_core::PCWSTR>,
38103        P3: windows_core::Param<ICoreWebView2CallDevToolsProtocolMethodCompletedHandler>,
38104    {
38105        unsafe {
38106            (windows_core::Interface::vtable(self).CallDevToolsProtocolMethodForSession)(
38107                windows_core::Interface::as_raw(self),
38108                sessionid.param().abi(),
38109                methodname.param().abi(),
38110                parametersasjson.param().abi(),
38111                handler.param().abi(),
38112            )
38113            .ok()
38114        }
38115    }
38116    pub unsafe fn add_ContextMenuRequested<P0>(
38117        &self,
38118        eventhandler: P0,
38119        token: *mut i64,
38120    ) -> windows_core::Result<()>
38121    where
38122        P0: windows_core::Param<ICoreWebView2ContextMenuRequestedEventHandler>,
38123    {
38124        unsafe {
38125            (windows_core::Interface::vtable(self).add_ContextMenuRequested)(
38126                windows_core::Interface::as_raw(self),
38127                eventhandler.param().abi(),
38128                token as _,
38129            )
38130            .ok()
38131        }
38132    }
38133    pub unsafe fn remove_ContextMenuRequested(&self, token: i64) -> windows_core::Result<()> {
38134        unsafe {
38135            (windows_core::Interface::vtable(self).remove_ContextMenuRequested)(
38136                windows_core::Interface::as_raw(self),
38137                token,
38138            )
38139            .ok()
38140        }
38141    }
38142}
38143#[repr(C)]
38144#[doc(hidden)]
38145pub struct ICoreWebView2_11_Vtbl {
38146    pub base__: ICoreWebView2_10_Vtbl,
38147    pub CallDevToolsProtocolMethodForSession: unsafe extern "system" fn(
38148        *mut core::ffi::c_void,
38149        windows_core::PCWSTR,
38150        windows_core::PCWSTR,
38151        windows_core::PCWSTR,
38152        *mut core::ffi::c_void,
38153    )
38154        -> windows_core::HRESULT,
38155    pub add_ContextMenuRequested: unsafe extern "system" fn(
38156        *mut core::ffi::c_void,
38157        *mut core::ffi::c_void,
38158        *mut i64,
38159    ) -> windows_core::HRESULT,
38160    pub remove_ContextMenuRequested:
38161        unsafe extern "system" fn(*mut core::ffi::c_void, i64) -> windows_core::HRESULT,
38162}
38163pub trait ICoreWebView2_11_Impl: ICoreWebView2_10_Impl {
38164    fn CallDevToolsProtocolMethodForSession(
38165        &self,
38166        sessionid: &windows_core::PCWSTR,
38167        methodname: &windows_core::PCWSTR,
38168        parametersasjson: &windows_core::PCWSTR,
38169        handler: windows_core::Ref<'_, ICoreWebView2CallDevToolsProtocolMethodCompletedHandler>,
38170    ) -> windows_core::Result<()>;
38171    fn add_ContextMenuRequested(
38172        &self,
38173        eventhandler: windows_core::Ref<'_, ICoreWebView2ContextMenuRequestedEventHandler>,
38174        token: *mut i64,
38175    ) -> windows_core::Result<()>;
38176    fn remove_ContextMenuRequested(&self, token: i64) -> windows_core::Result<()>;
38177}
38178impl ICoreWebView2_11_Vtbl {
38179    pub const fn new<Identity: ICoreWebView2_11_Impl, const OFFSET: isize>() -> Self {
38180        unsafe extern "system" fn CallDevToolsProtocolMethodForSession<
38181            Identity: ICoreWebView2_11_Impl,
38182            const OFFSET: isize,
38183        >(
38184            this: *mut core::ffi::c_void,
38185            sessionid: windows_core::PCWSTR,
38186            methodname: windows_core::PCWSTR,
38187            parametersasjson: windows_core::PCWSTR,
38188            handler: *mut core::ffi::c_void,
38189        ) -> windows_core::HRESULT {
38190            unsafe {
38191                let this: &Identity =
38192                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
38193                ICoreWebView2_11_Impl::CallDevToolsProtocolMethodForSession(
38194                    this,
38195                    core::mem::transmute(&sessionid),
38196                    core::mem::transmute(&methodname),
38197                    core::mem::transmute(&parametersasjson),
38198                    core::mem::transmute_copy(&handler),
38199                )
38200                .into()
38201            }
38202        }
38203        unsafe extern "system" fn add_ContextMenuRequested<
38204            Identity: ICoreWebView2_11_Impl,
38205            const OFFSET: isize,
38206        >(
38207            this: *mut core::ffi::c_void,
38208            eventhandler: *mut core::ffi::c_void,
38209            token: *mut i64,
38210        ) -> windows_core::HRESULT {
38211            unsafe {
38212                let this: &Identity =
38213                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
38214                ICoreWebView2_11_Impl::add_ContextMenuRequested(
38215                    this,
38216                    core::mem::transmute_copy(&eventhandler),
38217                    core::mem::transmute_copy(&token),
38218                )
38219                .into()
38220            }
38221        }
38222        unsafe extern "system" fn remove_ContextMenuRequested<
38223            Identity: ICoreWebView2_11_Impl,
38224            const OFFSET: isize,
38225        >(
38226            this: *mut core::ffi::c_void,
38227            token: i64,
38228        ) -> windows_core::HRESULT {
38229            unsafe {
38230                let this: &Identity =
38231                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
38232                ICoreWebView2_11_Impl::remove_ContextMenuRequested(
38233                    this,
38234                    core::mem::transmute_copy(&token),
38235                )
38236                .into()
38237            }
38238        }
38239        Self {
38240            base__: ICoreWebView2_10_Vtbl::new::<Identity, OFFSET>(),
38241            CallDevToolsProtocolMethodForSession: CallDevToolsProtocolMethodForSession::<
38242                Identity,
38243                OFFSET,
38244            >,
38245            add_ContextMenuRequested: add_ContextMenuRequested::<Identity, OFFSET>,
38246            remove_ContextMenuRequested: remove_ContextMenuRequested::<Identity, OFFSET>,
38247        }
38248    }
38249    pub fn matches(iid: &windows_core::GUID) -> bool {
38250        iid == &<ICoreWebView2_11 as windows_core::Interface>::IID
38251            || iid == &<ICoreWebView2 as windows_core::Interface>::IID
38252            || iid == &<ICoreWebView2_2 as windows_core::Interface>::IID
38253            || iid == &<ICoreWebView2_3 as windows_core::Interface>::IID
38254            || iid == &<ICoreWebView2_4 as windows_core::Interface>::IID
38255            || iid == &<ICoreWebView2_5 as windows_core::Interface>::IID
38256            || iid == &<ICoreWebView2_6 as windows_core::Interface>::IID
38257            || iid == &<ICoreWebView2_7 as windows_core::Interface>::IID
38258            || iid == &<ICoreWebView2_8 as windows_core::Interface>::IID
38259            || iid == &<ICoreWebView2_9 as windows_core::Interface>::IID
38260            || iid == &<ICoreWebView2_10 as windows_core::Interface>::IID
38261    }
38262}
38263impl windows_core::RuntimeName for ICoreWebView2_11 {}
38264windows_core::imp::define_interface!(
38265    ICoreWebView2_12,
38266    ICoreWebView2_12_Vtbl,
38267    0x35d69927_bcfa_4566_9349_6b3e0d154cac
38268);
38269impl core::ops::Deref for ICoreWebView2_12 {
38270    type Target = ICoreWebView2_11;
38271    fn deref(&self) -> &Self::Target {
38272        unsafe { core::mem::transmute(self) }
38273    }
38274}
38275windows_core::imp::interface_hierarchy!(
38276    ICoreWebView2_12,
38277    windows_core::IUnknown,
38278    ICoreWebView2,
38279    ICoreWebView2_2,
38280    ICoreWebView2_3,
38281    ICoreWebView2_4,
38282    ICoreWebView2_5,
38283    ICoreWebView2_6,
38284    ICoreWebView2_7,
38285    ICoreWebView2_8,
38286    ICoreWebView2_9,
38287    ICoreWebView2_10,
38288    ICoreWebView2_11
38289);
38290impl ICoreWebView2_12 {
38291    pub unsafe fn add_StatusBarTextChanged<P0>(
38292        &self,
38293        eventhandler: P0,
38294        token: *mut i64,
38295    ) -> windows_core::Result<()>
38296    where
38297        P0: windows_core::Param<ICoreWebView2StatusBarTextChangedEventHandler>,
38298    {
38299        unsafe {
38300            (windows_core::Interface::vtable(self).add_StatusBarTextChanged)(
38301                windows_core::Interface::as_raw(self),
38302                eventhandler.param().abi(),
38303                token as _,
38304            )
38305            .ok()
38306        }
38307    }
38308    pub unsafe fn remove_StatusBarTextChanged(&self, token: i64) -> windows_core::Result<()> {
38309        unsafe {
38310            (windows_core::Interface::vtable(self).remove_StatusBarTextChanged)(
38311                windows_core::Interface::as_raw(self),
38312                token,
38313            )
38314            .ok()
38315        }
38316    }
38317    pub unsafe fn StatusBarText(
38318        &self,
38319        value: *mut windows_core::PWSTR,
38320    ) -> windows_core::Result<()> {
38321        unsafe {
38322            (windows_core::Interface::vtable(self).StatusBarText)(
38323                windows_core::Interface::as_raw(self),
38324                value as _,
38325            )
38326            .ok()
38327        }
38328    }
38329}
38330#[repr(C)]
38331#[doc(hidden)]
38332pub struct ICoreWebView2_12_Vtbl {
38333    pub base__: ICoreWebView2_11_Vtbl,
38334    pub add_StatusBarTextChanged: unsafe extern "system" fn(
38335        *mut core::ffi::c_void,
38336        *mut core::ffi::c_void,
38337        *mut i64,
38338    ) -> windows_core::HRESULT,
38339    pub remove_StatusBarTextChanged:
38340        unsafe extern "system" fn(*mut core::ffi::c_void, i64) -> windows_core::HRESULT,
38341    pub StatusBarText: unsafe extern "system" fn(
38342        *mut core::ffi::c_void,
38343        *mut windows_core::PWSTR,
38344    ) -> windows_core::HRESULT,
38345}
38346pub trait ICoreWebView2_12_Impl: ICoreWebView2_11_Impl {
38347    fn add_StatusBarTextChanged(
38348        &self,
38349        eventhandler: windows_core::Ref<'_, ICoreWebView2StatusBarTextChangedEventHandler>,
38350        token: *mut i64,
38351    ) -> windows_core::Result<()>;
38352    fn remove_StatusBarTextChanged(&self, token: i64) -> windows_core::Result<()>;
38353    fn StatusBarText(&self, value: *mut windows_core::PWSTR) -> windows_core::Result<()>;
38354}
38355impl ICoreWebView2_12_Vtbl {
38356    pub const fn new<Identity: ICoreWebView2_12_Impl, const OFFSET: isize>() -> Self {
38357        unsafe extern "system" fn add_StatusBarTextChanged<
38358            Identity: ICoreWebView2_12_Impl,
38359            const OFFSET: isize,
38360        >(
38361            this: *mut core::ffi::c_void,
38362            eventhandler: *mut core::ffi::c_void,
38363            token: *mut i64,
38364        ) -> windows_core::HRESULT {
38365            unsafe {
38366                let this: &Identity =
38367                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
38368                ICoreWebView2_12_Impl::add_StatusBarTextChanged(
38369                    this,
38370                    core::mem::transmute_copy(&eventhandler),
38371                    core::mem::transmute_copy(&token),
38372                )
38373                .into()
38374            }
38375        }
38376        unsafe extern "system" fn remove_StatusBarTextChanged<
38377            Identity: ICoreWebView2_12_Impl,
38378            const OFFSET: isize,
38379        >(
38380            this: *mut core::ffi::c_void,
38381            token: i64,
38382        ) -> windows_core::HRESULT {
38383            unsafe {
38384                let this: &Identity =
38385                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
38386                ICoreWebView2_12_Impl::remove_StatusBarTextChanged(
38387                    this,
38388                    core::mem::transmute_copy(&token),
38389                )
38390                .into()
38391            }
38392        }
38393        unsafe extern "system" fn StatusBarText<
38394            Identity: ICoreWebView2_12_Impl,
38395            const OFFSET: isize,
38396        >(
38397            this: *mut core::ffi::c_void,
38398            value: *mut windows_core::PWSTR,
38399        ) -> windows_core::HRESULT {
38400            unsafe {
38401                let this: &Identity =
38402                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
38403                ICoreWebView2_12_Impl::StatusBarText(this, core::mem::transmute_copy(&value)).into()
38404            }
38405        }
38406        Self {
38407            base__: ICoreWebView2_11_Vtbl::new::<Identity, OFFSET>(),
38408            add_StatusBarTextChanged: add_StatusBarTextChanged::<Identity, OFFSET>,
38409            remove_StatusBarTextChanged: remove_StatusBarTextChanged::<Identity, OFFSET>,
38410            StatusBarText: StatusBarText::<Identity, OFFSET>,
38411        }
38412    }
38413    pub fn matches(iid: &windows_core::GUID) -> bool {
38414        iid == &<ICoreWebView2_12 as windows_core::Interface>::IID
38415            || iid == &<ICoreWebView2 as windows_core::Interface>::IID
38416            || iid == &<ICoreWebView2_2 as windows_core::Interface>::IID
38417            || iid == &<ICoreWebView2_3 as windows_core::Interface>::IID
38418            || iid == &<ICoreWebView2_4 as windows_core::Interface>::IID
38419            || iid == &<ICoreWebView2_5 as windows_core::Interface>::IID
38420            || iid == &<ICoreWebView2_6 as windows_core::Interface>::IID
38421            || iid == &<ICoreWebView2_7 as windows_core::Interface>::IID
38422            || iid == &<ICoreWebView2_8 as windows_core::Interface>::IID
38423            || iid == &<ICoreWebView2_9 as windows_core::Interface>::IID
38424            || iid == &<ICoreWebView2_10 as windows_core::Interface>::IID
38425            || iid == &<ICoreWebView2_11 as windows_core::Interface>::IID
38426    }
38427}
38428impl windows_core::RuntimeName for ICoreWebView2_12 {}
38429windows_core::imp::define_interface!(
38430    ICoreWebView2_13,
38431    ICoreWebView2_13_Vtbl,
38432    0xf75f09a8_667e_4983_88d6_c8773f315e84
38433);
38434impl core::ops::Deref for ICoreWebView2_13 {
38435    type Target = ICoreWebView2_12;
38436    fn deref(&self) -> &Self::Target {
38437        unsafe { core::mem::transmute(self) }
38438    }
38439}
38440windows_core::imp::interface_hierarchy!(
38441    ICoreWebView2_13,
38442    windows_core::IUnknown,
38443    ICoreWebView2,
38444    ICoreWebView2_2,
38445    ICoreWebView2_3,
38446    ICoreWebView2_4,
38447    ICoreWebView2_5,
38448    ICoreWebView2_6,
38449    ICoreWebView2_7,
38450    ICoreWebView2_8,
38451    ICoreWebView2_9,
38452    ICoreWebView2_10,
38453    ICoreWebView2_11,
38454    ICoreWebView2_12
38455);
38456impl ICoreWebView2_13 {
38457    pub unsafe fn Profile(&self) -> windows_core::Result<ICoreWebView2Profile> {
38458        unsafe {
38459            let mut result__ = core::mem::zeroed();
38460            (windows_core::Interface::vtable(self).Profile)(
38461                windows_core::Interface::as_raw(self),
38462                &mut result__,
38463            )
38464            .and_then(|| windows_core::Type::from_abi(result__))
38465        }
38466    }
38467}
38468#[repr(C)]
38469#[doc(hidden)]
38470pub struct ICoreWebView2_13_Vtbl {
38471    pub base__: ICoreWebView2_12_Vtbl,
38472    pub Profile: unsafe extern "system" fn(
38473        *mut core::ffi::c_void,
38474        *mut *mut core::ffi::c_void,
38475    ) -> windows_core::HRESULT,
38476}
38477pub trait ICoreWebView2_13_Impl: ICoreWebView2_12_Impl {
38478    fn Profile(&self) -> windows_core::Result<ICoreWebView2Profile>;
38479}
38480impl ICoreWebView2_13_Vtbl {
38481    pub const fn new<Identity: ICoreWebView2_13_Impl, const OFFSET: isize>() -> Self {
38482        unsafe extern "system" fn Profile<Identity: ICoreWebView2_13_Impl, const OFFSET: isize>(
38483            this: *mut core::ffi::c_void,
38484            value: *mut *mut core::ffi::c_void,
38485        ) -> windows_core::HRESULT {
38486            unsafe {
38487                let this: &Identity =
38488                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
38489                match ICoreWebView2_13_Impl::Profile(this) {
38490                    Ok(ok__) => {
38491                        value.write(core::mem::transmute(ok__));
38492                        windows_core::HRESULT(0)
38493                    }
38494                    Err(err) => err.into(),
38495                }
38496            }
38497        }
38498        Self {
38499            base__: ICoreWebView2_12_Vtbl::new::<Identity, OFFSET>(),
38500            Profile: Profile::<Identity, OFFSET>,
38501        }
38502    }
38503    pub fn matches(iid: &windows_core::GUID) -> bool {
38504        iid == &<ICoreWebView2_13 as windows_core::Interface>::IID
38505            || iid == &<ICoreWebView2 as windows_core::Interface>::IID
38506            || iid == &<ICoreWebView2_2 as windows_core::Interface>::IID
38507            || iid == &<ICoreWebView2_3 as windows_core::Interface>::IID
38508            || iid == &<ICoreWebView2_4 as windows_core::Interface>::IID
38509            || iid == &<ICoreWebView2_5 as windows_core::Interface>::IID
38510            || iid == &<ICoreWebView2_6 as windows_core::Interface>::IID
38511            || iid == &<ICoreWebView2_7 as windows_core::Interface>::IID
38512            || iid == &<ICoreWebView2_8 as windows_core::Interface>::IID
38513            || iid == &<ICoreWebView2_9 as windows_core::Interface>::IID
38514            || iid == &<ICoreWebView2_10 as windows_core::Interface>::IID
38515            || iid == &<ICoreWebView2_11 as windows_core::Interface>::IID
38516            || iid == &<ICoreWebView2_12 as windows_core::Interface>::IID
38517    }
38518}
38519impl windows_core::RuntimeName for ICoreWebView2_13 {}
38520windows_core::imp::define_interface!(
38521    ICoreWebView2_14,
38522    ICoreWebView2_14_Vtbl,
38523    0x6daa4f10_4a90_4753_8898_77c5df534165
38524);
38525impl core::ops::Deref for ICoreWebView2_14 {
38526    type Target = ICoreWebView2_13;
38527    fn deref(&self) -> &Self::Target {
38528        unsafe { core::mem::transmute(self) }
38529    }
38530}
38531windows_core::imp::interface_hierarchy!(
38532    ICoreWebView2_14,
38533    windows_core::IUnknown,
38534    ICoreWebView2,
38535    ICoreWebView2_2,
38536    ICoreWebView2_3,
38537    ICoreWebView2_4,
38538    ICoreWebView2_5,
38539    ICoreWebView2_6,
38540    ICoreWebView2_7,
38541    ICoreWebView2_8,
38542    ICoreWebView2_9,
38543    ICoreWebView2_10,
38544    ICoreWebView2_11,
38545    ICoreWebView2_12,
38546    ICoreWebView2_13
38547);
38548impl ICoreWebView2_14 {
38549    pub unsafe fn add_ServerCertificateErrorDetected<P0>(
38550        &self,
38551        eventhandler: P0,
38552        token: *mut i64,
38553    ) -> windows_core::Result<()>
38554    where
38555        P0: windows_core::Param<ICoreWebView2ServerCertificateErrorDetectedEventHandler>,
38556    {
38557        unsafe {
38558            (windows_core::Interface::vtable(self).add_ServerCertificateErrorDetected)(
38559                windows_core::Interface::as_raw(self),
38560                eventhandler.param().abi(),
38561                token as _,
38562            )
38563            .ok()
38564        }
38565    }
38566    pub unsafe fn remove_ServerCertificateErrorDetected(
38567        &self,
38568        token: i64,
38569    ) -> windows_core::Result<()> {
38570        unsafe {
38571            (windows_core::Interface::vtable(self).remove_ServerCertificateErrorDetected)(
38572                windows_core::Interface::as_raw(self),
38573                token,
38574            )
38575            .ok()
38576        }
38577    }
38578    pub unsafe fn ClearServerCertificateErrorActions<P0>(
38579        &self,
38580        handler: P0,
38581    ) -> windows_core::Result<()>
38582    where
38583        P0: windows_core::Param<ICoreWebView2ClearServerCertificateErrorActionsCompletedHandler>,
38584    {
38585        unsafe {
38586            (windows_core::Interface::vtable(self).ClearServerCertificateErrorActions)(
38587                windows_core::Interface::as_raw(self),
38588                handler.param().abi(),
38589            )
38590            .ok()
38591        }
38592    }
38593}
38594#[repr(C)]
38595#[doc(hidden)]
38596pub struct ICoreWebView2_14_Vtbl {
38597    pub base__: ICoreWebView2_13_Vtbl,
38598    pub add_ServerCertificateErrorDetected: unsafe extern "system" fn(
38599        *mut core::ffi::c_void,
38600        *mut core::ffi::c_void,
38601        *mut i64,
38602    ) -> windows_core::HRESULT,
38603    pub remove_ServerCertificateErrorDetected:
38604        unsafe extern "system" fn(*mut core::ffi::c_void, i64) -> windows_core::HRESULT,
38605    pub ClearServerCertificateErrorActions: unsafe extern "system" fn(
38606        *mut core::ffi::c_void,
38607        *mut core::ffi::c_void,
38608    ) -> windows_core::HRESULT,
38609}
38610pub trait ICoreWebView2_14_Impl: ICoreWebView2_13_Impl {
38611    fn add_ServerCertificateErrorDetected(
38612        &self,
38613        eventhandler: windows_core::Ref<
38614            '_,
38615            ICoreWebView2ServerCertificateErrorDetectedEventHandler,
38616        >,
38617        token: *mut i64,
38618    ) -> windows_core::Result<()>;
38619    fn remove_ServerCertificateErrorDetected(&self, token: i64) -> windows_core::Result<()>;
38620    fn ClearServerCertificateErrorActions(
38621        &self,
38622        handler: windows_core::Ref<
38623            '_,
38624            ICoreWebView2ClearServerCertificateErrorActionsCompletedHandler,
38625        >,
38626    ) -> windows_core::Result<()>;
38627}
38628impl ICoreWebView2_14_Vtbl {
38629    pub const fn new<Identity: ICoreWebView2_14_Impl, const OFFSET: isize>() -> Self {
38630        unsafe extern "system" fn add_ServerCertificateErrorDetected<
38631            Identity: ICoreWebView2_14_Impl,
38632            const OFFSET: isize,
38633        >(
38634            this: *mut core::ffi::c_void,
38635            eventhandler: *mut core::ffi::c_void,
38636            token: *mut i64,
38637        ) -> windows_core::HRESULT {
38638            unsafe {
38639                let this: &Identity =
38640                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
38641                ICoreWebView2_14_Impl::add_ServerCertificateErrorDetected(
38642                    this,
38643                    core::mem::transmute_copy(&eventhandler),
38644                    core::mem::transmute_copy(&token),
38645                )
38646                .into()
38647            }
38648        }
38649        unsafe extern "system" fn remove_ServerCertificateErrorDetected<
38650            Identity: ICoreWebView2_14_Impl,
38651            const OFFSET: isize,
38652        >(
38653            this: *mut core::ffi::c_void,
38654            token: i64,
38655        ) -> windows_core::HRESULT {
38656            unsafe {
38657                let this: &Identity =
38658                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
38659                ICoreWebView2_14_Impl::remove_ServerCertificateErrorDetected(
38660                    this,
38661                    core::mem::transmute_copy(&token),
38662                )
38663                .into()
38664            }
38665        }
38666        unsafe extern "system" fn ClearServerCertificateErrorActions<
38667            Identity: ICoreWebView2_14_Impl,
38668            const OFFSET: isize,
38669        >(
38670            this: *mut core::ffi::c_void,
38671            handler: *mut core::ffi::c_void,
38672        ) -> windows_core::HRESULT {
38673            unsafe {
38674                let this: &Identity =
38675                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
38676                ICoreWebView2_14_Impl::ClearServerCertificateErrorActions(
38677                    this,
38678                    core::mem::transmute_copy(&handler),
38679                )
38680                .into()
38681            }
38682        }
38683        Self {
38684            base__: ICoreWebView2_13_Vtbl::new::<Identity, OFFSET>(),
38685            add_ServerCertificateErrorDetected: add_ServerCertificateErrorDetected::<
38686                Identity,
38687                OFFSET,
38688            >,
38689            remove_ServerCertificateErrorDetected: remove_ServerCertificateErrorDetected::<
38690                Identity,
38691                OFFSET,
38692            >,
38693            ClearServerCertificateErrorActions: ClearServerCertificateErrorActions::<
38694                Identity,
38695                OFFSET,
38696            >,
38697        }
38698    }
38699    pub fn matches(iid: &windows_core::GUID) -> bool {
38700        iid == &<ICoreWebView2_14 as windows_core::Interface>::IID
38701            || iid == &<ICoreWebView2 as windows_core::Interface>::IID
38702            || iid == &<ICoreWebView2_2 as windows_core::Interface>::IID
38703            || iid == &<ICoreWebView2_3 as windows_core::Interface>::IID
38704            || iid == &<ICoreWebView2_4 as windows_core::Interface>::IID
38705            || iid == &<ICoreWebView2_5 as windows_core::Interface>::IID
38706            || iid == &<ICoreWebView2_6 as windows_core::Interface>::IID
38707            || iid == &<ICoreWebView2_7 as windows_core::Interface>::IID
38708            || iid == &<ICoreWebView2_8 as windows_core::Interface>::IID
38709            || iid == &<ICoreWebView2_9 as windows_core::Interface>::IID
38710            || iid == &<ICoreWebView2_10 as windows_core::Interface>::IID
38711            || iid == &<ICoreWebView2_11 as windows_core::Interface>::IID
38712            || iid == &<ICoreWebView2_12 as windows_core::Interface>::IID
38713            || iid == &<ICoreWebView2_13 as windows_core::Interface>::IID
38714    }
38715}
38716impl windows_core::RuntimeName for ICoreWebView2_14 {}
38717windows_core::imp::define_interface!(
38718    ICoreWebView2_15,
38719    ICoreWebView2_15_Vtbl,
38720    0x517b2d1d_7dae_4a66_a4f4_10352ffb9518
38721);
38722impl core::ops::Deref for ICoreWebView2_15 {
38723    type Target = ICoreWebView2_14;
38724    fn deref(&self) -> &Self::Target {
38725        unsafe { core::mem::transmute(self) }
38726    }
38727}
38728windows_core::imp::interface_hierarchy!(
38729    ICoreWebView2_15,
38730    windows_core::IUnknown,
38731    ICoreWebView2,
38732    ICoreWebView2_2,
38733    ICoreWebView2_3,
38734    ICoreWebView2_4,
38735    ICoreWebView2_5,
38736    ICoreWebView2_6,
38737    ICoreWebView2_7,
38738    ICoreWebView2_8,
38739    ICoreWebView2_9,
38740    ICoreWebView2_10,
38741    ICoreWebView2_11,
38742    ICoreWebView2_12,
38743    ICoreWebView2_13,
38744    ICoreWebView2_14
38745);
38746impl ICoreWebView2_15 {
38747    pub unsafe fn add_FaviconChanged<P0>(
38748        &self,
38749        eventhandler: P0,
38750        token: *mut i64,
38751    ) -> windows_core::Result<()>
38752    where
38753        P0: windows_core::Param<ICoreWebView2FaviconChangedEventHandler>,
38754    {
38755        unsafe {
38756            (windows_core::Interface::vtable(self).add_FaviconChanged)(
38757                windows_core::Interface::as_raw(self),
38758                eventhandler.param().abi(),
38759                token as _,
38760            )
38761            .ok()
38762        }
38763    }
38764    pub unsafe fn remove_FaviconChanged(&self, token: i64) -> windows_core::Result<()> {
38765        unsafe {
38766            (windows_core::Interface::vtable(self).remove_FaviconChanged)(
38767                windows_core::Interface::as_raw(self),
38768                token,
38769            )
38770            .ok()
38771        }
38772    }
38773    pub unsafe fn FaviconUri(&self, value: *mut windows_core::PWSTR) -> windows_core::Result<()> {
38774        unsafe {
38775            (windows_core::Interface::vtable(self).FaviconUri)(
38776                windows_core::Interface::as_raw(self),
38777                value as _,
38778            )
38779            .ok()
38780        }
38781    }
38782    pub unsafe fn GetFavicon<P1>(
38783        &self,
38784        format: COREWEBVIEW2_FAVICON_IMAGE_FORMAT,
38785        completedhandler: P1,
38786    ) -> windows_core::Result<()>
38787    where
38788        P1: windows_core::Param<ICoreWebView2GetFaviconCompletedHandler>,
38789    {
38790        unsafe {
38791            (windows_core::Interface::vtable(self).GetFavicon)(
38792                windows_core::Interface::as_raw(self),
38793                format,
38794                completedhandler.param().abi(),
38795            )
38796            .ok()
38797        }
38798    }
38799}
38800#[repr(C)]
38801#[doc(hidden)]
38802pub struct ICoreWebView2_15_Vtbl {
38803    pub base__: ICoreWebView2_14_Vtbl,
38804    pub add_FaviconChanged: unsafe extern "system" fn(
38805        *mut core::ffi::c_void,
38806        *mut core::ffi::c_void,
38807        *mut i64,
38808    ) -> windows_core::HRESULT,
38809    pub remove_FaviconChanged:
38810        unsafe extern "system" fn(*mut core::ffi::c_void, i64) -> windows_core::HRESULT,
38811    pub FaviconUri: unsafe extern "system" fn(
38812        *mut core::ffi::c_void,
38813        *mut windows_core::PWSTR,
38814    ) -> windows_core::HRESULT,
38815    pub GetFavicon: unsafe extern "system" fn(
38816        *mut core::ffi::c_void,
38817        COREWEBVIEW2_FAVICON_IMAGE_FORMAT,
38818        *mut core::ffi::c_void,
38819    ) -> windows_core::HRESULT,
38820}
38821pub trait ICoreWebView2_15_Impl: ICoreWebView2_14_Impl {
38822    fn add_FaviconChanged(
38823        &self,
38824        eventhandler: windows_core::Ref<'_, ICoreWebView2FaviconChangedEventHandler>,
38825        token: *mut i64,
38826    ) -> windows_core::Result<()>;
38827    fn remove_FaviconChanged(&self, token: i64) -> windows_core::Result<()>;
38828    fn FaviconUri(&self, value: *mut windows_core::PWSTR) -> windows_core::Result<()>;
38829    fn GetFavicon(
38830        &self,
38831        format: COREWEBVIEW2_FAVICON_IMAGE_FORMAT,
38832        completedhandler: windows_core::Ref<'_, ICoreWebView2GetFaviconCompletedHandler>,
38833    ) -> windows_core::Result<()>;
38834}
38835impl ICoreWebView2_15_Vtbl {
38836    pub const fn new<Identity: ICoreWebView2_15_Impl, const OFFSET: isize>() -> Self {
38837        unsafe extern "system" fn add_FaviconChanged<
38838            Identity: ICoreWebView2_15_Impl,
38839            const OFFSET: isize,
38840        >(
38841            this: *mut core::ffi::c_void,
38842            eventhandler: *mut core::ffi::c_void,
38843            token: *mut i64,
38844        ) -> windows_core::HRESULT {
38845            unsafe {
38846                let this: &Identity =
38847                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
38848                ICoreWebView2_15_Impl::add_FaviconChanged(
38849                    this,
38850                    core::mem::transmute_copy(&eventhandler),
38851                    core::mem::transmute_copy(&token),
38852                )
38853                .into()
38854            }
38855        }
38856        unsafe extern "system" fn remove_FaviconChanged<
38857            Identity: ICoreWebView2_15_Impl,
38858            const OFFSET: isize,
38859        >(
38860            this: *mut core::ffi::c_void,
38861            token: i64,
38862        ) -> windows_core::HRESULT {
38863            unsafe {
38864                let this: &Identity =
38865                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
38866                ICoreWebView2_15_Impl::remove_FaviconChanged(
38867                    this,
38868                    core::mem::transmute_copy(&token),
38869                )
38870                .into()
38871            }
38872        }
38873        unsafe extern "system" fn FaviconUri<
38874            Identity: ICoreWebView2_15_Impl,
38875            const OFFSET: isize,
38876        >(
38877            this: *mut core::ffi::c_void,
38878            value: *mut windows_core::PWSTR,
38879        ) -> windows_core::HRESULT {
38880            unsafe {
38881                let this: &Identity =
38882                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
38883                ICoreWebView2_15_Impl::FaviconUri(this, core::mem::transmute_copy(&value)).into()
38884            }
38885        }
38886        unsafe extern "system" fn GetFavicon<
38887            Identity: ICoreWebView2_15_Impl,
38888            const OFFSET: isize,
38889        >(
38890            this: *mut core::ffi::c_void,
38891            format: COREWEBVIEW2_FAVICON_IMAGE_FORMAT,
38892            completedhandler: *mut core::ffi::c_void,
38893        ) -> windows_core::HRESULT {
38894            unsafe {
38895                let this: &Identity =
38896                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
38897                ICoreWebView2_15_Impl::GetFavicon(
38898                    this,
38899                    core::mem::transmute_copy(&format),
38900                    core::mem::transmute_copy(&completedhandler),
38901                )
38902                .into()
38903            }
38904        }
38905        Self {
38906            base__: ICoreWebView2_14_Vtbl::new::<Identity, OFFSET>(),
38907            add_FaviconChanged: add_FaviconChanged::<Identity, OFFSET>,
38908            remove_FaviconChanged: remove_FaviconChanged::<Identity, OFFSET>,
38909            FaviconUri: FaviconUri::<Identity, OFFSET>,
38910            GetFavicon: GetFavicon::<Identity, OFFSET>,
38911        }
38912    }
38913    pub fn matches(iid: &windows_core::GUID) -> bool {
38914        iid == &<ICoreWebView2_15 as windows_core::Interface>::IID
38915            || iid == &<ICoreWebView2 as windows_core::Interface>::IID
38916            || iid == &<ICoreWebView2_2 as windows_core::Interface>::IID
38917            || iid == &<ICoreWebView2_3 as windows_core::Interface>::IID
38918            || iid == &<ICoreWebView2_4 as windows_core::Interface>::IID
38919            || iid == &<ICoreWebView2_5 as windows_core::Interface>::IID
38920            || iid == &<ICoreWebView2_6 as windows_core::Interface>::IID
38921            || iid == &<ICoreWebView2_7 as windows_core::Interface>::IID
38922            || iid == &<ICoreWebView2_8 as windows_core::Interface>::IID
38923            || iid == &<ICoreWebView2_9 as windows_core::Interface>::IID
38924            || iid == &<ICoreWebView2_10 as windows_core::Interface>::IID
38925            || iid == &<ICoreWebView2_11 as windows_core::Interface>::IID
38926            || iid == &<ICoreWebView2_12 as windows_core::Interface>::IID
38927            || iid == &<ICoreWebView2_13 as windows_core::Interface>::IID
38928            || iid == &<ICoreWebView2_14 as windows_core::Interface>::IID
38929    }
38930}
38931impl windows_core::RuntimeName for ICoreWebView2_15 {}
38932windows_core::imp::define_interface!(
38933    ICoreWebView2_16,
38934    ICoreWebView2_16_Vtbl,
38935    0x0eb34dc9_9f91_41e1_8639_95cd5943906b
38936);
38937impl core::ops::Deref for ICoreWebView2_16 {
38938    type Target = ICoreWebView2_15;
38939    fn deref(&self) -> &Self::Target {
38940        unsafe { core::mem::transmute(self) }
38941    }
38942}
38943windows_core::imp::interface_hierarchy!(
38944    ICoreWebView2_16,
38945    windows_core::IUnknown,
38946    ICoreWebView2,
38947    ICoreWebView2_2,
38948    ICoreWebView2_3,
38949    ICoreWebView2_4,
38950    ICoreWebView2_5,
38951    ICoreWebView2_6,
38952    ICoreWebView2_7,
38953    ICoreWebView2_8,
38954    ICoreWebView2_9,
38955    ICoreWebView2_10,
38956    ICoreWebView2_11,
38957    ICoreWebView2_12,
38958    ICoreWebView2_13,
38959    ICoreWebView2_14,
38960    ICoreWebView2_15
38961);
38962impl ICoreWebView2_16 {
38963    pub unsafe fn Print<P0, P1>(&self, printsettings: P0, handler: P1) -> windows_core::Result<()>
38964    where
38965        P0: windows_core::Param<ICoreWebView2PrintSettings>,
38966        P1: windows_core::Param<ICoreWebView2PrintCompletedHandler>,
38967    {
38968        unsafe {
38969            (windows_core::Interface::vtable(self).Print)(
38970                windows_core::Interface::as_raw(self),
38971                printsettings.param().abi(),
38972                handler.param().abi(),
38973            )
38974            .ok()
38975        }
38976    }
38977    pub unsafe fn ShowPrintUI(
38978        &self,
38979        printdialogkind: COREWEBVIEW2_PRINT_DIALOG_KIND,
38980    ) -> windows_core::Result<()> {
38981        unsafe {
38982            (windows_core::Interface::vtable(self).ShowPrintUI)(
38983                windows_core::Interface::as_raw(self),
38984                printdialogkind,
38985            )
38986            .ok()
38987        }
38988    }
38989    pub unsafe fn PrintToPdfStream<P0, P1>(
38990        &self,
38991        printsettings: P0,
38992        handler: P1,
38993    ) -> windows_core::Result<()>
38994    where
38995        P0: windows_core::Param<ICoreWebView2PrintSettings>,
38996        P1: windows_core::Param<ICoreWebView2PrintToPdfStreamCompletedHandler>,
38997    {
38998        unsafe {
38999            (windows_core::Interface::vtable(self).PrintToPdfStream)(
39000                windows_core::Interface::as_raw(self),
39001                printsettings.param().abi(),
39002                handler.param().abi(),
39003            )
39004            .ok()
39005        }
39006    }
39007}
39008#[repr(C)]
39009#[doc(hidden)]
39010pub struct ICoreWebView2_16_Vtbl {
39011    pub base__: ICoreWebView2_15_Vtbl,
39012    pub Print: unsafe extern "system" fn(
39013        *mut core::ffi::c_void,
39014        *mut core::ffi::c_void,
39015        *mut core::ffi::c_void,
39016    ) -> windows_core::HRESULT,
39017    pub ShowPrintUI: unsafe extern "system" fn(
39018        *mut core::ffi::c_void,
39019        COREWEBVIEW2_PRINT_DIALOG_KIND,
39020    ) -> windows_core::HRESULT,
39021    pub PrintToPdfStream: unsafe extern "system" fn(
39022        *mut core::ffi::c_void,
39023        *mut core::ffi::c_void,
39024        *mut core::ffi::c_void,
39025    ) -> windows_core::HRESULT,
39026}
39027pub trait ICoreWebView2_16_Impl: ICoreWebView2_15_Impl {
39028    fn Print(
39029        &self,
39030        printsettings: windows_core::Ref<'_, ICoreWebView2PrintSettings>,
39031        handler: windows_core::Ref<'_, ICoreWebView2PrintCompletedHandler>,
39032    ) -> windows_core::Result<()>;
39033    fn ShowPrintUI(
39034        &self,
39035        printdialogkind: COREWEBVIEW2_PRINT_DIALOG_KIND,
39036    ) -> windows_core::Result<()>;
39037    fn PrintToPdfStream(
39038        &self,
39039        printsettings: windows_core::Ref<'_, ICoreWebView2PrintSettings>,
39040        handler: windows_core::Ref<'_, ICoreWebView2PrintToPdfStreamCompletedHandler>,
39041    ) -> windows_core::Result<()>;
39042}
39043impl ICoreWebView2_16_Vtbl {
39044    pub const fn new<Identity: ICoreWebView2_16_Impl, const OFFSET: isize>() -> Self {
39045        unsafe extern "system" fn Print<Identity: ICoreWebView2_16_Impl, const OFFSET: isize>(
39046            this: *mut core::ffi::c_void,
39047            printsettings: *mut core::ffi::c_void,
39048            handler: *mut core::ffi::c_void,
39049        ) -> windows_core::HRESULT {
39050            unsafe {
39051                let this: &Identity =
39052                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
39053                ICoreWebView2_16_Impl::Print(
39054                    this,
39055                    core::mem::transmute_copy(&printsettings),
39056                    core::mem::transmute_copy(&handler),
39057                )
39058                .into()
39059            }
39060        }
39061        unsafe extern "system" fn ShowPrintUI<
39062            Identity: ICoreWebView2_16_Impl,
39063            const OFFSET: isize,
39064        >(
39065            this: *mut core::ffi::c_void,
39066            printdialogkind: COREWEBVIEW2_PRINT_DIALOG_KIND,
39067        ) -> windows_core::HRESULT {
39068            unsafe {
39069                let this: &Identity =
39070                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
39071                ICoreWebView2_16_Impl::ShowPrintUI(
39072                    this,
39073                    core::mem::transmute_copy(&printdialogkind),
39074                )
39075                .into()
39076            }
39077        }
39078        unsafe extern "system" fn PrintToPdfStream<
39079            Identity: ICoreWebView2_16_Impl,
39080            const OFFSET: isize,
39081        >(
39082            this: *mut core::ffi::c_void,
39083            printsettings: *mut core::ffi::c_void,
39084            handler: *mut core::ffi::c_void,
39085        ) -> windows_core::HRESULT {
39086            unsafe {
39087                let this: &Identity =
39088                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
39089                ICoreWebView2_16_Impl::PrintToPdfStream(
39090                    this,
39091                    core::mem::transmute_copy(&printsettings),
39092                    core::mem::transmute_copy(&handler),
39093                )
39094                .into()
39095            }
39096        }
39097        Self {
39098            base__: ICoreWebView2_15_Vtbl::new::<Identity, OFFSET>(),
39099            Print: Print::<Identity, OFFSET>,
39100            ShowPrintUI: ShowPrintUI::<Identity, OFFSET>,
39101            PrintToPdfStream: PrintToPdfStream::<Identity, OFFSET>,
39102        }
39103    }
39104    pub fn matches(iid: &windows_core::GUID) -> bool {
39105        iid == &<ICoreWebView2_16 as windows_core::Interface>::IID
39106            || iid == &<ICoreWebView2 as windows_core::Interface>::IID
39107            || iid == &<ICoreWebView2_2 as windows_core::Interface>::IID
39108            || iid == &<ICoreWebView2_3 as windows_core::Interface>::IID
39109            || iid == &<ICoreWebView2_4 as windows_core::Interface>::IID
39110            || iid == &<ICoreWebView2_5 as windows_core::Interface>::IID
39111            || iid == &<ICoreWebView2_6 as windows_core::Interface>::IID
39112            || iid == &<ICoreWebView2_7 as windows_core::Interface>::IID
39113            || iid == &<ICoreWebView2_8 as windows_core::Interface>::IID
39114            || iid == &<ICoreWebView2_9 as windows_core::Interface>::IID
39115            || iid == &<ICoreWebView2_10 as windows_core::Interface>::IID
39116            || iid == &<ICoreWebView2_11 as windows_core::Interface>::IID
39117            || iid == &<ICoreWebView2_12 as windows_core::Interface>::IID
39118            || iid == &<ICoreWebView2_13 as windows_core::Interface>::IID
39119            || iid == &<ICoreWebView2_14 as windows_core::Interface>::IID
39120            || iid == &<ICoreWebView2_15 as windows_core::Interface>::IID
39121    }
39122}
39123impl windows_core::RuntimeName for ICoreWebView2_16 {}
39124windows_core::imp::define_interface!(
39125    ICoreWebView2_17,
39126    ICoreWebView2_17_Vtbl,
39127    0x702e75d4_fd44_434d_9d70_1a68a6b1192a
39128);
39129impl core::ops::Deref for ICoreWebView2_17 {
39130    type Target = ICoreWebView2_16;
39131    fn deref(&self) -> &Self::Target {
39132        unsafe { core::mem::transmute(self) }
39133    }
39134}
39135windows_core::imp::interface_hierarchy!(
39136    ICoreWebView2_17,
39137    windows_core::IUnknown,
39138    ICoreWebView2,
39139    ICoreWebView2_2,
39140    ICoreWebView2_3,
39141    ICoreWebView2_4,
39142    ICoreWebView2_5,
39143    ICoreWebView2_6,
39144    ICoreWebView2_7,
39145    ICoreWebView2_8,
39146    ICoreWebView2_9,
39147    ICoreWebView2_10,
39148    ICoreWebView2_11,
39149    ICoreWebView2_12,
39150    ICoreWebView2_13,
39151    ICoreWebView2_14,
39152    ICoreWebView2_15,
39153    ICoreWebView2_16
39154);
39155impl ICoreWebView2_17 {
39156    pub unsafe fn PostSharedBufferToScript<P0, P2>(
39157        &self,
39158        sharedbuffer: P0,
39159        access: COREWEBVIEW2_SHARED_BUFFER_ACCESS,
39160        additionaldataasjson: P2,
39161    ) -> windows_core::Result<()>
39162    where
39163        P0: windows_core::Param<ICoreWebView2SharedBuffer>,
39164        P2: windows_core::Param<windows_core::PCWSTR>,
39165    {
39166        unsafe {
39167            (windows_core::Interface::vtable(self).PostSharedBufferToScript)(
39168                windows_core::Interface::as_raw(self),
39169                sharedbuffer.param().abi(),
39170                access,
39171                additionaldataasjson.param().abi(),
39172            )
39173            .ok()
39174        }
39175    }
39176}
39177#[repr(C)]
39178#[doc(hidden)]
39179pub struct ICoreWebView2_17_Vtbl {
39180    pub base__: ICoreWebView2_16_Vtbl,
39181    pub PostSharedBufferToScript: unsafe extern "system" fn(
39182        *mut core::ffi::c_void,
39183        *mut core::ffi::c_void,
39184        COREWEBVIEW2_SHARED_BUFFER_ACCESS,
39185        windows_core::PCWSTR,
39186    ) -> windows_core::HRESULT,
39187}
39188pub trait ICoreWebView2_17_Impl: ICoreWebView2_16_Impl {
39189    fn PostSharedBufferToScript(
39190        &self,
39191        sharedbuffer: windows_core::Ref<'_, ICoreWebView2SharedBuffer>,
39192        access: COREWEBVIEW2_SHARED_BUFFER_ACCESS,
39193        additionaldataasjson: &windows_core::PCWSTR,
39194    ) -> windows_core::Result<()>;
39195}
39196impl ICoreWebView2_17_Vtbl {
39197    pub const fn new<Identity: ICoreWebView2_17_Impl, const OFFSET: isize>() -> Self {
39198        unsafe extern "system" fn PostSharedBufferToScript<
39199            Identity: ICoreWebView2_17_Impl,
39200            const OFFSET: isize,
39201        >(
39202            this: *mut core::ffi::c_void,
39203            sharedbuffer: *mut core::ffi::c_void,
39204            access: COREWEBVIEW2_SHARED_BUFFER_ACCESS,
39205            additionaldataasjson: windows_core::PCWSTR,
39206        ) -> windows_core::HRESULT {
39207            unsafe {
39208                let this: &Identity =
39209                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
39210                ICoreWebView2_17_Impl::PostSharedBufferToScript(
39211                    this,
39212                    core::mem::transmute_copy(&sharedbuffer),
39213                    core::mem::transmute_copy(&access),
39214                    core::mem::transmute(&additionaldataasjson),
39215                )
39216                .into()
39217            }
39218        }
39219        Self {
39220            base__: ICoreWebView2_16_Vtbl::new::<Identity, OFFSET>(),
39221            PostSharedBufferToScript: PostSharedBufferToScript::<Identity, OFFSET>,
39222        }
39223    }
39224    pub fn matches(iid: &windows_core::GUID) -> bool {
39225        iid == &<ICoreWebView2_17 as windows_core::Interface>::IID
39226            || iid == &<ICoreWebView2 as windows_core::Interface>::IID
39227            || iid == &<ICoreWebView2_2 as windows_core::Interface>::IID
39228            || iid == &<ICoreWebView2_3 as windows_core::Interface>::IID
39229            || iid == &<ICoreWebView2_4 as windows_core::Interface>::IID
39230            || iid == &<ICoreWebView2_5 as windows_core::Interface>::IID
39231            || iid == &<ICoreWebView2_6 as windows_core::Interface>::IID
39232            || iid == &<ICoreWebView2_7 as windows_core::Interface>::IID
39233            || iid == &<ICoreWebView2_8 as windows_core::Interface>::IID
39234            || iid == &<ICoreWebView2_9 as windows_core::Interface>::IID
39235            || iid == &<ICoreWebView2_10 as windows_core::Interface>::IID
39236            || iid == &<ICoreWebView2_11 as windows_core::Interface>::IID
39237            || iid == &<ICoreWebView2_12 as windows_core::Interface>::IID
39238            || iid == &<ICoreWebView2_13 as windows_core::Interface>::IID
39239            || iid == &<ICoreWebView2_14 as windows_core::Interface>::IID
39240            || iid == &<ICoreWebView2_15 as windows_core::Interface>::IID
39241            || iid == &<ICoreWebView2_16 as windows_core::Interface>::IID
39242    }
39243}
39244impl windows_core::RuntimeName for ICoreWebView2_17 {}
39245windows_core::imp::define_interface!(
39246    ICoreWebView2_18,
39247    ICoreWebView2_18_Vtbl,
39248    0x7a626017_28be_49b2_b865_3ba2b3522d90
39249);
39250impl core::ops::Deref for ICoreWebView2_18 {
39251    type Target = ICoreWebView2_17;
39252    fn deref(&self) -> &Self::Target {
39253        unsafe { core::mem::transmute(self) }
39254    }
39255}
39256windows_core::imp::interface_hierarchy!(
39257    ICoreWebView2_18,
39258    windows_core::IUnknown,
39259    ICoreWebView2,
39260    ICoreWebView2_2,
39261    ICoreWebView2_3,
39262    ICoreWebView2_4,
39263    ICoreWebView2_5,
39264    ICoreWebView2_6,
39265    ICoreWebView2_7,
39266    ICoreWebView2_8,
39267    ICoreWebView2_9,
39268    ICoreWebView2_10,
39269    ICoreWebView2_11,
39270    ICoreWebView2_12,
39271    ICoreWebView2_13,
39272    ICoreWebView2_14,
39273    ICoreWebView2_15,
39274    ICoreWebView2_16,
39275    ICoreWebView2_17
39276);
39277impl ICoreWebView2_18 {
39278    pub unsafe fn add_LaunchingExternalUriScheme<P0>(
39279        &self,
39280        eventhandler: P0,
39281        token: *mut i64,
39282    ) -> windows_core::Result<()>
39283    where
39284        P0: windows_core::Param<ICoreWebView2LaunchingExternalUriSchemeEventHandler>,
39285    {
39286        unsafe {
39287            (windows_core::Interface::vtable(self).add_LaunchingExternalUriScheme)(
39288                windows_core::Interface::as_raw(self),
39289                eventhandler.param().abi(),
39290                token as _,
39291            )
39292            .ok()
39293        }
39294    }
39295    pub unsafe fn remove_LaunchingExternalUriScheme(&self, token: i64) -> windows_core::Result<()> {
39296        unsafe {
39297            (windows_core::Interface::vtable(self).remove_LaunchingExternalUriScheme)(
39298                windows_core::Interface::as_raw(self),
39299                token,
39300            )
39301            .ok()
39302        }
39303    }
39304}
39305#[repr(C)]
39306#[doc(hidden)]
39307pub struct ICoreWebView2_18_Vtbl {
39308    pub base__: ICoreWebView2_17_Vtbl,
39309    pub add_LaunchingExternalUriScheme: unsafe extern "system" fn(
39310        *mut core::ffi::c_void,
39311        *mut core::ffi::c_void,
39312        *mut i64,
39313    ) -> windows_core::HRESULT,
39314    pub remove_LaunchingExternalUriScheme:
39315        unsafe extern "system" fn(*mut core::ffi::c_void, i64) -> windows_core::HRESULT,
39316}
39317pub trait ICoreWebView2_18_Impl: ICoreWebView2_17_Impl {
39318    fn add_LaunchingExternalUriScheme(
39319        &self,
39320        eventhandler: windows_core::Ref<'_, ICoreWebView2LaunchingExternalUriSchemeEventHandler>,
39321        token: *mut i64,
39322    ) -> windows_core::Result<()>;
39323    fn remove_LaunchingExternalUriScheme(&self, token: i64) -> windows_core::Result<()>;
39324}
39325impl ICoreWebView2_18_Vtbl {
39326    pub const fn new<Identity: ICoreWebView2_18_Impl, const OFFSET: isize>() -> Self {
39327        unsafe extern "system" fn add_LaunchingExternalUriScheme<
39328            Identity: ICoreWebView2_18_Impl,
39329            const OFFSET: isize,
39330        >(
39331            this: *mut core::ffi::c_void,
39332            eventhandler: *mut core::ffi::c_void,
39333            token: *mut i64,
39334        ) -> windows_core::HRESULT {
39335            unsafe {
39336                let this: &Identity =
39337                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
39338                ICoreWebView2_18_Impl::add_LaunchingExternalUriScheme(
39339                    this,
39340                    core::mem::transmute_copy(&eventhandler),
39341                    core::mem::transmute_copy(&token),
39342                )
39343                .into()
39344            }
39345        }
39346        unsafe extern "system" fn remove_LaunchingExternalUriScheme<
39347            Identity: ICoreWebView2_18_Impl,
39348            const OFFSET: isize,
39349        >(
39350            this: *mut core::ffi::c_void,
39351            token: i64,
39352        ) -> windows_core::HRESULT {
39353            unsafe {
39354                let this: &Identity =
39355                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
39356                ICoreWebView2_18_Impl::remove_LaunchingExternalUriScheme(
39357                    this,
39358                    core::mem::transmute_copy(&token),
39359                )
39360                .into()
39361            }
39362        }
39363        Self {
39364            base__: ICoreWebView2_17_Vtbl::new::<Identity, OFFSET>(),
39365            add_LaunchingExternalUriScheme: add_LaunchingExternalUriScheme::<Identity, OFFSET>,
39366            remove_LaunchingExternalUriScheme: remove_LaunchingExternalUriScheme::<Identity, OFFSET>,
39367        }
39368    }
39369    pub fn matches(iid: &windows_core::GUID) -> bool {
39370        iid == &<ICoreWebView2_18 as windows_core::Interface>::IID
39371            || iid == &<ICoreWebView2 as windows_core::Interface>::IID
39372            || iid == &<ICoreWebView2_2 as windows_core::Interface>::IID
39373            || iid == &<ICoreWebView2_3 as windows_core::Interface>::IID
39374            || iid == &<ICoreWebView2_4 as windows_core::Interface>::IID
39375            || iid == &<ICoreWebView2_5 as windows_core::Interface>::IID
39376            || iid == &<ICoreWebView2_6 as windows_core::Interface>::IID
39377            || iid == &<ICoreWebView2_7 as windows_core::Interface>::IID
39378            || iid == &<ICoreWebView2_8 as windows_core::Interface>::IID
39379            || iid == &<ICoreWebView2_9 as windows_core::Interface>::IID
39380            || iid == &<ICoreWebView2_10 as windows_core::Interface>::IID
39381            || iid == &<ICoreWebView2_11 as windows_core::Interface>::IID
39382            || iid == &<ICoreWebView2_12 as windows_core::Interface>::IID
39383            || iid == &<ICoreWebView2_13 as windows_core::Interface>::IID
39384            || iid == &<ICoreWebView2_14 as windows_core::Interface>::IID
39385            || iid == &<ICoreWebView2_15 as windows_core::Interface>::IID
39386            || iid == &<ICoreWebView2_16 as windows_core::Interface>::IID
39387            || iid == &<ICoreWebView2_17 as windows_core::Interface>::IID
39388    }
39389}
39390impl windows_core::RuntimeName for ICoreWebView2_18 {}
39391windows_core::imp::define_interface!(
39392    ICoreWebView2_19,
39393    ICoreWebView2_19_Vtbl,
39394    0x6921f954_79b0_437f_a997_c85811897c68
39395);
39396impl core::ops::Deref for ICoreWebView2_19 {
39397    type Target = ICoreWebView2_18;
39398    fn deref(&self) -> &Self::Target {
39399        unsafe { core::mem::transmute(self) }
39400    }
39401}
39402windows_core::imp::interface_hierarchy!(
39403    ICoreWebView2_19,
39404    windows_core::IUnknown,
39405    ICoreWebView2,
39406    ICoreWebView2_2,
39407    ICoreWebView2_3,
39408    ICoreWebView2_4,
39409    ICoreWebView2_5,
39410    ICoreWebView2_6,
39411    ICoreWebView2_7,
39412    ICoreWebView2_8,
39413    ICoreWebView2_9,
39414    ICoreWebView2_10,
39415    ICoreWebView2_11,
39416    ICoreWebView2_12,
39417    ICoreWebView2_13,
39418    ICoreWebView2_14,
39419    ICoreWebView2_15,
39420    ICoreWebView2_16,
39421    ICoreWebView2_17,
39422    ICoreWebView2_18
39423);
39424impl ICoreWebView2_19 {
39425    pub unsafe fn MemoryUsageTargetLevel(
39426        &self,
39427        value: *mut COREWEBVIEW2_MEMORY_USAGE_TARGET_LEVEL,
39428    ) -> windows_core::Result<()> {
39429        unsafe {
39430            (windows_core::Interface::vtable(self).MemoryUsageTargetLevel)(
39431                windows_core::Interface::as_raw(self),
39432                value as _,
39433            )
39434            .ok()
39435        }
39436    }
39437    pub unsafe fn SetMemoryUsageTargetLevel(
39438        &self,
39439        value: COREWEBVIEW2_MEMORY_USAGE_TARGET_LEVEL,
39440    ) -> windows_core::Result<()> {
39441        unsafe {
39442            (windows_core::Interface::vtable(self).SetMemoryUsageTargetLevel)(
39443                windows_core::Interface::as_raw(self),
39444                value,
39445            )
39446            .ok()
39447        }
39448    }
39449}
39450#[repr(C)]
39451#[doc(hidden)]
39452pub struct ICoreWebView2_19_Vtbl {
39453    pub base__: ICoreWebView2_18_Vtbl,
39454    pub MemoryUsageTargetLevel: unsafe extern "system" fn(
39455        *mut core::ffi::c_void,
39456        *mut COREWEBVIEW2_MEMORY_USAGE_TARGET_LEVEL,
39457    ) -> windows_core::HRESULT,
39458    pub SetMemoryUsageTargetLevel: unsafe extern "system" fn(
39459        *mut core::ffi::c_void,
39460        COREWEBVIEW2_MEMORY_USAGE_TARGET_LEVEL,
39461    ) -> windows_core::HRESULT,
39462}
39463pub trait ICoreWebView2_19_Impl: ICoreWebView2_18_Impl {
39464    fn MemoryUsageTargetLevel(
39465        &self,
39466        value: *mut COREWEBVIEW2_MEMORY_USAGE_TARGET_LEVEL,
39467    ) -> windows_core::Result<()>;
39468    fn SetMemoryUsageTargetLevel(
39469        &self,
39470        value: COREWEBVIEW2_MEMORY_USAGE_TARGET_LEVEL,
39471    ) -> windows_core::Result<()>;
39472}
39473impl ICoreWebView2_19_Vtbl {
39474    pub const fn new<Identity: ICoreWebView2_19_Impl, const OFFSET: isize>() -> Self {
39475        unsafe extern "system" fn MemoryUsageTargetLevel<
39476            Identity: ICoreWebView2_19_Impl,
39477            const OFFSET: isize,
39478        >(
39479            this: *mut core::ffi::c_void,
39480            value: *mut COREWEBVIEW2_MEMORY_USAGE_TARGET_LEVEL,
39481        ) -> windows_core::HRESULT {
39482            unsafe {
39483                let this: &Identity =
39484                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
39485                ICoreWebView2_19_Impl::MemoryUsageTargetLevel(
39486                    this,
39487                    core::mem::transmute_copy(&value),
39488                )
39489                .into()
39490            }
39491        }
39492        unsafe extern "system" fn SetMemoryUsageTargetLevel<
39493            Identity: ICoreWebView2_19_Impl,
39494            const OFFSET: isize,
39495        >(
39496            this: *mut core::ffi::c_void,
39497            value: COREWEBVIEW2_MEMORY_USAGE_TARGET_LEVEL,
39498        ) -> windows_core::HRESULT {
39499            unsafe {
39500                let this: &Identity =
39501                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
39502                ICoreWebView2_19_Impl::SetMemoryUsageTargetLevel(
39503                    this,
39504                    core::mem::transmute_copy(&value),
39505                )
39506                .into()
39507            }
39508        }
39509        Self {
39510            base__: ICoreWebView2_18_Vtbl::new::<Identity, OFFSET>(),
39511            MemoryUsageTargetLevel: MemoryUsageTargetLevel::<Identity, OFFSET>,
39512            SetMemoryUsageTargetLevel: SetMemoryUsageTargetLevel::<Identity, OFFSET>,
39513        }
39514    }
39515    pub fn matches(iid: &windows_core::GUID) -> bool {
39516        iid == &<ICoreWebView2_19 as windows_core::Interface>::IID
39517            || iid == &<ICoreWebView2 as windows_core::Interface>::IID
39518            || iid == &<ICoreWebView2_2 as windows_core::Interface>::IID
39519            || iid == &<ICoreWebView2_3 as windows_core::Interface>::IID
39520            || iid == &<ICoreWebView2_4 as windows_core::Interface>::IID
39521            || iid == &<ICoreWebView2_5 as windows_core::Interface>::IID
39522            || iid == &<ICoreWebView2_6 as windows_core::Interface>::IID
39523            || iid == &<ICoreWebView2_7 as windows_core::Interface>::IID
39524            || iid == &<ICoreWebView2_8 as windows_core::Interface>::IID
39525            || iid == &<ICoreWebView2_9 as windows_core::Interface>::IID
39526            || iid == &<ICoreWebView2_10 as windows_core::Interface>::IID
39527            || iid == &<ICoreWebView2_11 as windows_core::Interface>::IID
39528            || iid == &<ICoreWebView2_12 as windows_core::Interface>::IID
39529            || iid == &<ICoreWebView2_13 as windows_core::Interface>::IID
39530            || iid == &<ICoreWebView2_14 as windows_core::Interface>::IID
39531            || iid == &<ICoreWebView2_15 as windows_core::Interface>::IID
39532            || iid == &<ICoreWebView2_16 as windows_core::Interface>::IID
39533            || iid == &<ICoreWebView2_17 as windows_core::Interface>::IID
39534            || iid == &<ICoreWebView2_18 as windows_core::Interface>::IID
39535    }
39536}
39537impl windows_core::RuntimeName for ICoreWebView2_19 {}
39538windows_core::imp::define_interface!(
39539    ICoreWebView2_2,
39540    ICoreWebView2_2_Vtbl,
39541    0x9e8f0cf8_e670_4b5e_b2bc_73e061e3184c
39542);
39543impl core::ops::Deref for ICoreWebView2_2 {
39544    type Target = ICoreWebView2;
39545    fn deref(&self) -> &Self::Target {
39546        unsafe { core::mem::transmute(self) }
39547    }
39548}
39549windows_core::imp::interface_hierarchy!(ICoreWebView2_2, windows_core::IUnknown, ICoreWebView2);
39550impl ICoreWebView2_2 {
39551    pub unsafe fn add_WebResourceResponseReceived<P0>(
39552        &self,
39553        eventhandler: P0,
39554        token: *mut i64,
39555    ) -> windows_core::Result<()>
39556    where
39557        P0: windows_core::Param<ICoreWebView2WebResourceResponseReceivedEventHandler>,
39558    {
39559        unsafe {
39560            (windows_core::Interface::vtable(self).add_WebResourceResponseReceived)(
39561                windows_core::Interface::as_raw(self),
39562                eventhandler.param().abi(),
39563                token as _,
39564            )
39565            .ok()
39566        }
39567    }
39568    pub unsafe fn remove_WebResourceResponseReceived(
39569        &self,
39570        token: i64,
39571    ) -> windows_core::Result<()> {
39572        unsafe {
39573            (windows_core::Interface::vtable(self).remove_WebResourceResponseReceived)(
39574                windows_core::Interface::as_raw(self),
39575                token,
39576            )
39577            .ok()
39578        }
39579    }
39580    pub unsafe fn NavigateWithWebResourceRequest<P0>(&self, request: P0) -> windows_core::Result<()>
39581    where
39582        P0: windows_core::Param<ICoreWebView2WebResourceRequest>,
39583    {
39584        unsafe {
39585            (windows_core::Interface::vtable(self).NavigateWithWebResourceRequest)(
39586                windows_core::Interface::as_raw(self),
39587                request.param().abi(),
39588            )
39589            .ok()
39590        }
39591    }
39592    pub unsafe fn add_DOMContentLoaded<P0>(
39593        &self,
39594        eventhandler: P0,
39595        token: *mut i64,
39596    ) -> windows_core::Result<()>
39597    where
39598        P0: windows_core::Param<ICoreWebView2DOMContentLoadedEventHandler>,
39599    {
39600        unsafe {
39601            (windows_core::Interface::vtable(self).add_DOMContentLoaded)(
39602                windows_core::Interface::as_raw(self),
39603                eventhandler.param().abi(),
39604                token as _,
39605            )
39606            .ok()
39607        }
39608    }
39609    pub unsafe fn remove_DOMContentLoaded(&self, token: i64) -> windows_core::Result<()> {
39610        unsafe {
39611            (windows_core::Interface::vtable(self).remove_DOMContentLoaded)(
39612                windows_core::Interface::as_raw(self),
39613                token,
39614            )
39615            .ok()
39616        }
39617    }
39618    pub unsafe fn CookieManager(&self) -> windows_core::Result<ICoreWebView2CookieManager> {
39619        unsafe {
39620            let mut result__ = core::mem::zeroed();
39621            (windows_core::Interface::vtable(self).CookieManager)(
39622                windows_core::Interface::as_raw(self),
39623                &mut result__,
39624            )
39625            .and_then(|| windows_core::Type::from_abi(result__))
39626        }
39627    }
39628    pub unsafe fn Environment(&self) -> windows_core::Result<ICoreWebView2Environment> {
39629        unsafe {
39630            let mut result__ = core::mem::zeroed();
39631            (windows_core::Interface::vtable(self).Environment)(
39632                windows_core::Interface::as_raw(self),
39633                &mut result__,
39634            )
39635            .and_then(|| windows_core::Type::from_abi(result__))
39636        }
39637    }
39638}
39639#[repr(C)]
39640#[doc(hidden)]
39641pub struct ICoreWebView2_2_Vtbl {
39642    pub base__: ICoreWebView2_Vtbl,
39643    pub add_WebResourceResponseReceived: unsafe extern "system" fn(
39644        *mut core::ffi::c_void,
39645        *mut core::ffi::c_void,
39646        *mut i64,
39647    ) -> windows_core::HRESULT,
39648    pub remove_WebResourceResponseReceived:
39649        unsafe extern "system" fn(*mut core::ffi::c_void, i64) -> windows_core::HRESULT,
39650    pub NavigateWithWebResourceRequest: unsafe extern "system" fn(
39651        *mut core::ffi::c_void,
39652        *mut core::ffi::c_void,
39653    ) -> windows_core::HRESULT,
39654    pub add_DOMContentLoaded: unsafe extern "system" fn(
39655        *mut core::ffi::c_void,
39656        *mut core::ffi::c_void,
39657        *mut i64,
39658    ) -> windows_core::HRESULT,
39659    pub remove_DOMContentLoaded:
39660        unsafe extern "system" fn(*mut core::ffi::c_void, i64) -> windows_core::HRESULT,
39661    pub CookieManager: unsafe extern "system" fn(
39662        *mut core::ffi::c_void,
39663        *mut *mut core::ffi::c_void,
39664    ) -> windows_core::HRESULT,
39665    pub Environment: unsafe extern "system" fn(
39666        *mut core::ffi::c_void,
39667        *mut *mut core::ffi::c_void,
39668    ) -> windows_core::HRESULT,
39669}
39670pub trait ICoreWebView2_2_Impl: ICoreWebView2_Impl {
39671    fn add_WebResourceResponseReceived(
39672        &self,
39673        eventhandler: windows_core::Ref<'_, ICoreWebView2WebResourceResponseReceivedEventHandler>,
39674        token: *mut i64,
39675    ) -> windows_core::Result<()>;
39676    fn remove_WebResourceResponseReceived(&self, token: i64) -> windows_core::Result<()>;
39677    fn NavigateWithWebResourceRequest(
39678        &self,
39679        request: windows_core::Ref<'_, ICoreWebView2WebResourceRequest>,
39680    ) -> windows_core::Result<()>;
39681    fn add_DOMContentLoaded(
39682        &self,
39683        eventhandler: windows_core::Ref<'_, ICoreWebView2DOMContentLoadedEventHandler>,
39684        token: *mut i64,
39685    ) -> windows_core::Result<()>;
39686    fn remove_DOMContentLoaded(&self, token: i64) -> windows_core::Result<()>;
39687    fn CookieManager(&self) -> windows_core::Result<ICoreWebView2CookieManager>;
39688    fn Environment(&self) -> windows_core::Result<ICoreWebView2Environment>;
39689}
39690impl ICoreWebView2_2_Vtbl {
39691    pub const fn new<Identity: ICoreWebView2_2_Impl, const OFFSET: isize>() -> Self {
39692        unsafe extern "system" fn add_WebResourceResponseReceived<
39693            Identity: ICoreWebView2_2_Impl,
39694            const OFFSET: isize,
39695        >(
39696            this: *mut core::ffi::c_void,
39697            eventhandler: *mut core::ffi::c_void,
39698            token: *mut i64,
39699        ) -> windows_core::HRESULT {
39700            unsafe {
39701                let this: &Identity =
39702                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
39703                ICoreWebView2_2_Impl::add_WebResourceResponseReceived(
39704                    this,
39705                    core::mem::transmute_copy(&eventhandler),
39706                    core::mem::transmute_copy(&token),
39707                )
39708                .into()
39709            }
39710        }
39711        unsafe extern "system" fn remove_WebResourceResponseReceived<
39712            Identity: ICoreWebView2_2_Impl,
39713            const OFFSET: isize,
39714        >(
39715            this: *mut core::ffi::c_void,
39716            token: i64,
39717        ) -> windows_core::HRESULT {
39718            unsafe {
39719                let this: &Identity =
39720                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
39721                ICoreWebView2_2_Impl::remove_WebResourceResponseReceived(
39722                    this,
39723                    core::mem::transmute_copy(&token),
39724                )
39725                .into()
39726            }
39727        }
39728        unsafe extern "system" fn NavigateWithWebResourceRequest<
39729            Identity: ICoreWebView2_2_Impl,
39730            const OFFSET: isize,
39731        >(
39732            this: *mut core::ffi::c_void,
39733            request: *mut core::ffi::c_void,
39734        ) -> windows_core::HRESULT {
39735            unsafe {
39736                let this: &Identity =
39737                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
39738                ICoreWebView2_2_Impl::NavigateWithWebResourceRequest(
39739                    this,
39740                    core::mem::transmute_copy(&request),
39741                )
39742                .into()
39743            }
39744        }
39745        unsafe extern "system" fn add_DOMContentLoaded<
39746            Identity: ICoreWebView2_2_Impl,
39747            const OFFSET: isize,
39748        >(
39749            this: *mut core::ffi::c_void,
39750            eventhandler: *mut core::ffi::c_void,
39751            token: *mut i64,
39752        ) -> windows_core::HRESULT {
39753            unsafe {
39754                let this: &Identity =
39755                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
39756                ICoreWebView2_2_Impl::add_DOMContentLoaded(
39757                    this,
39758                    core::mem::transmute_copy(&eventhandler),
39759                    core::mem::transmute_copy(&token),
39760                )
39761                .into()
39762            }
39763        }
39764        unsafe extern "system" fn remove_DOMContentLoaded<
39765            Identity: ICoreWebView2_2_Impl,
39766            const OFFSET: isize,
39767        >(
39768            this: *mut core::ffi::c_void,
39769            token: i64,
39770        ) -> windows_core::HRESULT {
39771            unsafe {
39772                let this: &Identity =
39773                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
39774                ICoreWebView2_2_Impl::remove_DOMContentLoaded(
39775                    this,
39776                    core::mem::transmute_copy(&token),
39777                )
39778                .into()
39779            }
39780        }
39781        unsafe extern "system" fn CookieManager<
39782            Identity: ICoreWebView2_2_Impl,
39783            const OFFSET: isize,
39784        >(
39785            this: *mut core::ffi::c_void,
39786            cookiemanager: *mut *mut core::ffi::c_void,
39787        ) -> windows_core::HRESULT {
39788            unsafe {
39789                let this: &Identity =
39790                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
39791                match ICoreWebView2_2_Impl::CookieManager(this) {
39792                    Ok(ok__) => {
39793                        cookiemanager.write(core::mem::transmute(ok__));
39794                        windows_core::HRESULT(0)
39795                    }
39796                    Err(err) => err.into(),
39797                }
39798            }
39799        }
39800        unsafe extern "system" fn Environment<
39801            Identity: ICoreWebView2_2_Impl,
39802            const OFFSET: isize,
39803        >(
39804            this: *mut core::ffi::c_void,
39805            environment: *mut *mut core::ffi::c_void,
39806        ) -> windows_core::HRESULT {
39807            unsafe {
39808                let this: &Identity =
39809                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
39810                match ICoreWebView2_2_Impl::Environment(this) {
39811                    Ok(ok__) => {
39812                        environment.write(core::mem::transmute(ok__));
39813                        windows_core::HRESULT(0)
39814                    }
39815                    Err(err) => err.into(),
39816                }
39817            }
39818        }
39819        Self {
39820            base__: ICoreWebView2_Vtbl::new::<Identity, OFFSET>(),
39821            add_WebResourceResponseReceived: add_WebResourceResponseReceived::<Identity, OFFSET>,
39822            remove_WebResourceResponseReceived: remove_WebResourceResponseReceived::<
39823                Identity,
39824                OFFSET,
39825            >,
39826            NavigateWithWebResourceRequest: NavigateWithWebResourceRequest::<Identity, OFFSET>,
39827            add_DOMContentLoaded: add_DOMContentLoaded::<Identity, OFFSET>,
39828            remove_DOMContentLoaded: remove_DOMContentLoaded::<Identity, OFFSET>,
39829            CookieManager: CookieManager::<Identity, OFFSET>,
39830            Environment: Environment::<Identity, OFFSET>,
39831        }
39832    }
39833    pub fn matches(iid: &windows_core::GUID) -> bool {
39834        iid == &<ICoreWebView2_2 as windows_core::Interface>::IID
39835            || iid == &<ICoreWebView2 as windows_core::Interface>::IID
39836    }
39837}
39838impl windows_core::RuntimeName for ICoreWebView2_2 {}
39839windows_core::imp::define_interface!(
39840    ICoreWebView2_20,
39841    ICoreWebView2_20_Vtbl,
39842    0xb4bc1926_7305_11ee_b962_0242ac120002
39843);
39844impl core::ops::Deref for ICoreWebView2_20 {
39845    type Target = ICoreWebView2_19;
39846    fn deref(&self) -> &Self::Target {
39847        unsafe { core::mem::transmute(self) }
39848    }
39849}
39850windows_core::imp::interface_hierarchy!(
39851    ICoreWebView2_20,
39852    windows_core::IUnknown,
39853    ICoreWebView2,
39854    ICoreWebView2_2,
39855    ICoreWebView2_3,
39856    ICoreWebView2_4,
39857    ICoreWebView2_5,
39858    ICoreWebView2_6,
39859    ICoreWebView2_7,
39860    ICoreWebView2_8,
39861    ICoreWebView2_9,
39862    ICoreWebView2_10,
39863    ICoreWebView2_11,
39864    ICoreWebView2_12,
39865    ICoreWebView2_13,
39866    ICoreWebView2_14,
39867    ICoreWebView2_15,
39868    ICoreWebView2_16,
39869    ICoreWebView2_17,
39870    ICoreWebView2_18,
39871    ICoreWebView2_19
39872);
39873impl ICoreWebView2_20 {
39874    pub unsafe fn FrameId(&self, value: *mut u32) -> windows_core::Result<()> {
39875        unsafe {
39876            (windows_core::Interface::vtable(self).FrameId)(
39877                windows_core::Interface::as_raw(self),
39878                value as _,
39879            )
39880            .ok()
39881        }
39882    }
39883}
39884#[repr(C)]
39885#[doc(hidden)]
39886pub struct ICoreWebView2_20_Vtbl {
39887    pub base__: ICoreWebView2_19_Vtbl,
39888    pub FrameId:
39889        unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
39890}
39891pub trait ICoreWebView2_20_Impl: ICoreWebView2_19_Impl {
39892    fn FrameId(&self, value: *mut u32) -> windows_core::Result<()>;
39893}
39894impl ICoreWebView2_20_Vtbl {
39895    pub const fn new<Identity: ICoreWebView2_20_Impl, const OFFSET: isize>() -> Self {
39896        unsafe extern "system" fn FrameId<Identity: ICoreWebView2_20_Impl, const OFFSET: isize>(
39897            this: *mut core::ffi::c_void,
39898            value: *mut u32,
39899        ) -> windows_core::HRESULT {
39900            unsafe {
39901                let this: &Identity =
39902                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
39903                ICoreWebView2_20_Impl::FrameId(this, core::mem::transmute_copy(&value)).into()
39904            }
39905        }
39906        Self {
39907            base__: ICoreWebView2_19_Vtbl::new::<Identity, OFFSET>(),
39908            FrameId: FrameId::<Identity, OFFSET>,
39909        }
39910    }
39911    pub fn matches(iid: &windows_core::GUID) -> bool {
39912        iid == &<ICoreWebView2_20 as windows_core::Interface>::IID
39913            || iid == &<ICoreWebView2 as windows_core::Interface>::IID
39914            || iid == &<ICoreWebView2_2 as windows_core::Interface>::IID
39915            || iid == &<ICoreWebView2_3 as windows_core::Interface>::IID
39916            || iid == &<ICoreWebView2_4 as windows_core::Interface>::IID
39917            || iid == &<ICoreWebView2_5 as windows_core::Interface>::IID
39918            || iid == &<ICoreWebView2_6 as windows_core::Interface>::IID
39919            || iid == &<ICoreWebView2_7 as windows_core::Interface>::IID
39920            || iid == &<ICoreWebView2_8 as windows_core::Interface>::IID
39921            || iid == &<ICoreWebView2_9 as windows_core::Interface>::IID
39922            || iid == &<ICoreWebView2_10 as windows_core::Interface>::IID
39923            || iid == &<ICoreWebView2_11 as windows_core::Interface>::IID
39924            || iid == &<ICoreWebView2_12 as windows_core::Interface>::IID
39925            || iid == &<ICoreWebView2_13 as windows_core::Interface>::IID
39926            || iid == &<ICoreWebView2_14 as windows_core::Interface>::IID
39927            || iid == &<ICoreWebView2_15 as windows_core::Interface>::IID
39928            || iid == &<ICoreWebView2_16 as windows_core::Interface>::IID
39929            || iid == &<ICoreWebView2_17 as windows_core::Interface>::IID
39930            || iid == &<ICoreWebView2_18 as windows_core::Interface>::IID
39931            || iid == &<ICoreWebView2_19 as windows_core::Interface>::IID
39932    }
39933}
39934impl windows_core::RuntimeName for ICoreWebView2_20 {}
39935windows_core::imp::define_interface!(
39936    ICoreWebView2_21,
39937    ICoreWebView2_21_Vtbl,
39938    0xc4980dea_587b_43b9_8143_3ef3bf552d95
39939);
39940impl core::ops::Deref for ICoreWebView2_21 {
39941    type Target = ICoreWebView2_20;
39942    fn deref(&self) -> &Self::Target {
39943        unsafe { core::mem::transmute(self) }
39944    }
39945}
39946windows_core::imp::interface_hierarchy!(
39947    ICoreWebView2_21,
39948    windows_core::IUnknown,
39949    ICoreWebView2,
39950    ICoreWebView2_2,
39951    ICoreWebView2_3,
39952    ICoreWebView2_4,
39953    ICoreWebView2_5,
39954    ICoreWebView2_6,
39955    ICoreWebView2_7,
39956    ICoreWebView2_8,
39957    ICoreWebView2_9,
39958    ICoreWebView2_10,
39959    ICoreWebView2_11,
39960    ICoreWebView2_12,
39961    ICoreWebView2_13,
39962    ICoreWebView2_14,
39963    ICoreWebView2_15,
39964    ICoreWebView2_16,
39965    ICoreWebView2_17,
39966    ICoreWebView2_18,
39967    ICoreWebView2_19,
39968    ICoreWebView2_20
39969);
39970impl ICoreWebView2_21 {
39971    pub unsafe fn ExecuteScriptWithResult<P0, P1>(
39972        &self,
39973        javascript: P0,
39974        handler: P1,
39975    ) -> windows_core::Result<()>
39976    where
39977        P0: windows_core::Param<windows_core::PCWSTR>,
39978        P1: windows_core::Param<ICoreWebView2ExecuteScriptWithResultCompletedHandler>,
39979    {
39980        unsafe {
39981            (windows_core::Interface::vtable(self).ExecuteScriptWithResult)(
39982                windows_core::Interface::as_raw(self),
39983                javascript.param().abi(),
39984                handler.param().abi(),
39985            )
39986            .ok()
39987        }
39988    }
39989}
39990#[repr(C)]
39991#[doc(hidden)]
39992pub struct ICoreWebView2_21_Vtbl {
39993    pub base__: ICoreWebView2_20_Vtbl,
39994    pub ExecuteScriptWithResult: unsafe extern "system" fn(
39995        *mut core::ffi::c_void,
39996        windows_core::PCWSTR,
39997        *mut core::ffi::c_void,
39998    ) -> windows_core::HRESULT,
39999}
40000pub trait ICoreWebView2_21_Impl: ICoreWebView2_20_Impl {
40001    fn ExecuteScriptWithResult(
40002        &self,
40003        javascript: &windows_core::PCWSTR,
40004        handler: windows_core::Ref<'_, ICoreWebView2ExecuteScriptWithResultCompletedHandler>,
40005    ) -> windows_core::Result<()>;
40006}
40007impl ICoreWebView2_21_Vtbl {
40008    pub const fn new<Identity: ICoreWebView2_21_Impl, const OFFSET: isize>() -> Self {
40009        unsafe extern "system" fn ExecuteScriptWithResult<
40010            Identity: ICoreWebView2_21_Impl,
40011            const OFFSET: isize,
40012        >(
40013            this: *mut core::ffi::c_void,
40014            javascript: windows_core::PCWSTR,
40015            handler: *mut core::ffi::c_void,
40016        ) -> windows_core::HRESULT {
40017            unsafe {
40018                let this: &Identity =
40019                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
40020                ICoreWebView2_21_Impl::ExecuteScriptWithResult(
40021                    this,
40022                    core::mem::transmute(&javascript),
40023                    core::mem::transmute_copy(&handler),
40024                )
40025                .into()
40026            }
40027        }
40028        Self {
40029            base__: ICoreWebView2_20_Vtbl::new::<Identity, OFFSET>(),
40030            ExecuteScriptWithResult: ExecuteScriptWithResult::<Identity, OFFSET>,
40031        }
40032    }
40033    pub fn matches(iid: &windows_core::GUID) -> bool {
40034        iid == &<ICoreWebView2_21 as windows_core::Interface>::IID
40035            || iid == &<ICoreWebView2 as windows_core::Interface>::IID
40036            || iid == &<ICoreWebView2_2 as windows_core::Interface>::IID
40037            || iid == &<ICoreWebView2_3 as windows_core::Interface>::IID
40038            || iid == &<ICoreWebView2_4 as windows_core::Interface>::IID
40039            || iid == &<ICoreWebView2_5 as windows_core::Interface>::IID
40040            || iid == &<ICoreWebView2_6 as windows_core::Interface>::IID
40041            || iid == &<ICoreWebView2_7 as windows_core::Interface>::IID
40042            || iid == &<ICoreWebView2_8 as windows_core::Interface>::IID
40043            || iid == &<ICoreWebView2_9 as windows_core::Interface>::IID
40044            || iid == &<ICoreWebView2_10 as windows_core::Interface>::IID
40045            || iid == &<ICoreWebView2_11 as windows_core::Interface>::IID
40046            || iid == &<ICoreWebView2_12 as windows_core::Interface>::IID
40047            || iid == &<ICoreWebView2_13 as windows_core::Interface>::IID
40048            || iid == &<ICoreWebView2_14 as windows_core::Interface>::IID
40049            || iid == &<ICoreWebView2_15 as windows_core::Interface>::IID
40050            || iid == &<ICoreWebView2_16 as windows_core::Interface>::IID
40051            || iid == &<ICoreWebView2_17 as windows_core::Interface>::IID
40052            || iid == &<ICoreWebView2_18 as windows_core::Interface>::IID
40053            || iid == &<ICoreWebView2_19 as windows_core::Interface>::IID
40054            || iid == &<ICoreWebView2_20 as windows_core::Interface>::IID
40055    }
40056}
40057impl windows_core::RuntimeName for ICoreWebView2_21 {}
40058windows_core::imp::define_interface!(
40059    ICoreWebView2_22,
40060    ICoreWebView2_22_Vtbl,
40061    0xdb75dfc7_a857_4632_a398_6969dde26c0a
40062);
40063impl core::ops::Deref for ICoreWebView2_22 {
40064    type Target = ICoreWebView2_21;
40065    fn deref(&self) -> &Self::Target {
40066        unsafe { core::mem::transmute(self) }
40067    }
40068}
40069windows_core::imp::interface_hierarchy!(
40070    ICoreWebView2_22,
40071    windows_core::IUnknown,
40072    ICoreWebView2,
40073    ICoreWebView2_2,
40074    ICoreWebView2_3,
40075    ICoreWebView2_4,
40076    ICoreWebView2_5,
40077    ICoreWebView2_6,
40078    ICoreWebView2_7,
40079    ICoreWebView2_8,
40080    ICoreWebView2_9,
40081    ICoreWebView2_10,
40082    ICoreWebView2_11,
40083    ICoreWebView2_12,
40084    ICoreWebView2_13,
40085    ICoreWebView2_14,
40086    ICoreWebView2_15,
40087    ICoreWebView2_16,
40088    ICoreWebView2_17,
40089    ICoreWebView2_18,
40090    ICoreWebView2_19,
40091    ICoreWebView2_20,
40092    ICoreWebView2_21
40093);
40094impl ICoreWebView2_22 {
40095    pub unsafe fn AddWebResourceRequestedFilterWithRequestSourceKinds<P0>(
40096        &self,
40097        uri: P0,
40098        resourcecontext: COREWEBVIEW2_WEB_RESOURCE_CONTEXT,
40099        requestsourcekinds: COREWEBVIEW2_WEB_RESOURCE_REQUEST_SOURCE_KINDS,
40100    ) -> windows_core::Result<()>
40101    where
40102        P0: windows_core::Param<windows_core::PCWSTR>,
40103    {
40104        unsafe {
40105            (windows_core::Interface::vtable(self)
40106                .AddWebResourceRequestedFilterWithRequestSourceKinds)(
40107                windows_core::Interface::as_raw(self),
40108                uri.param().abi(),
40109                resourcecontext,
40110                requestsourcekinds,
40111            )
40112            .ok()
40113        }
40114    }
40115    pub unsafe fn RemoveWebResourceRequestedFilterWithRequestSourceKinds<P0>(
40116        &self,
40117        uri: P0,
40118        resourcecontext: COREWEBVIEW2_WEB_RESOURCE_CONTEXT,
40119        requestsourcekinds: COREWEBVIEW2_WEB_RESOURCE_REQUEST_SOURCE_KINDS,
40120    ) -> windows_core::Result<()>
40121    where
40122        P0: windows_core::Param<windows_core::PCWSTR>,
40123    {
40124        unsafe {
40125            (windows_core::Interface::vtable(self)
40126                .RemoveWebResourceRequestedFilterWithRequestSourceKinds)(
40127                windows_core::Interface::as_raw(self),
40128                uri.param().abi(),
40129                resourcecontext,
40130                requestsourcekinds,
40131            )
40132            .ok()
40133        }
40134    }
40135}
40136#[repr(C)]
40137#[doc(hidden)]
40138pub struct ICoreWebView2_22_Vtbl {
40139    pub base__: ICoreWebView2_21_Vtbl,
40140    pub AddWebResourceRequestedFilterWithRequestSourceKinds:
40141        unsafe extern "system" fn(
40142            *mut core::ffi::c_void,
40143            windows_core::PCWSTR,
40144            COREWEBVIEW2_WEB_RESOURCE_CONTEXT,
40145            COREWEBVIEW2_WEB_RESOURCE_REQUEST_SOURCE_KINDS,
40146        ) -> windows_core::HRESULT,
40147    pub RemoveWebResourceRequestedFilterWithRequestSourceKinds:
40148        unsafe extern "system" fn(
40149            *mut core::ffi::c_void,
40150            windows_core::PCWSTR,
40151            COREWEBVIEW2_WEB_RESOURCE_CONTEXT,
40152            COREWEBVIEW2_WEB_RESOURCE_REQUEST_SOURCE_KINDS,
40153        ) -> windows_core::HRESULT,
40154}
40155pub trait ICoreWebView2_22_Impl: ICoreWebView2_21_Impl {
40156    fn AddWebResourceRequestedFilterWithRequestSourceKinds(
40157        &self,
40158        uri: &windows_core::PCWSTR,
40159        resourcecontext: COREWEBVIEW2_WEB_RESOURCE_CONTEXT,
40160        requestsourcekinds: COREWEBVIEW2_WEB_RESOURCE_REQUEST_SOURCE_KINDS,
40161    ) -> windows_core::Result<()>;
40162    fn RemoveWebResourceRequestedFilterWithRequestSourceKinds(
40163        &self,
40164        uri: &windows_core::PCWSTR,
40165        resourcecontext: COREWEBVIEW2_WEB_RESOURCE_CONTEXT,
40166        requestsourcekinds: COREWEBVIEW2_WEB_RESOURCE_REQUEST_SOURCE_KINDS,
40167    ) -> windows_core::Result<()>;
40168}
40169impl ICoreWebView2_22_Vtbl {
40170    pub const fn new<Identity: ICoreWebView2_22_Impl, const OFFSET: isize>() -> Self {
40171        unsafe extern "system" fn AddWebResourceRequestedFilterWithRequestSourceKinds<
40172            Identity: ICoreWebView2_22_Impl,
40173            const OFFSET: isize,
40174        >(
40175            this: *mut core::ffi::c_void,
40176            uri: windows_core::PCWSTR,
40177            resourcecontext: COREWEBVIEW2_WEB_RESOURCE_CONTEXT,
40178            requestsourcekinds: COREWEBVIEW2_WEB_RESOURCE_REQUEST_SOURCE_KINDS,
40179        ) -> windows_core::HRESULT {
40180            unsafe {
40181                let this: &Identity =
40182                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
40183                ICoreWebView2_22_Impl::AddWebResourceRequestedFilterWithRequestSourceKinds(
40184                    this,
40185                    core::mem::transmute(&uri),
40186                    core::mem::transmute_copy(&resourcecontext),
40187                    core::mem::transmute_copy(&requestsourcekinds),
40188                )
40189                .into()
40190            }
40191        }
40192        unsafe extern "system" fn RemoveWebResourceRequestedFilterWithRequestSourceKinds<
40193            Identity: ICoreWebView2_22_Impl,
40194            const OFFSET: isize,
40195        >(
40196            this: *mut core::ffi::c_void,
40197            uri: windows_core::PCWSTR,
40198            resourcecontext: COREWEBVIEW2_WEB_RESOURCE_CONTEXT,
40199            requestsourcekinds: COREWEBVIEW2_WEB_RESOURCE_REQUEST_SOURCE_KINDS,
40200        ) -> windows_core::HRESULT {
40201            unsafe {
40202                let this: &Identity =
40203                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
40204                ICoreWebView2_22_Impl::RemoveWebResourceRequestedFilterWithRequestSourceKinds(
40205                    this,
40206                    core::mem::transmute(&uri),
40207                    core::mem::transmute_copy(&resourcecontext),
40208                    core::mem::transmute_copy(&requestsourcekinds),
40209                )
40210                .into()
40211            }
40212        }
40213        Self {
40214            base__: ICoreWebView2_21_Vtbl::new::<Identity, OFFSET>(),
40215            AddWebResourceRequestedFilterWithRequestSourceKinds:
40216                AddWebResourceRequestedFilterWithRequestSourceKinds::<Identity, OFFSET>,
40217            RemoveWebResourceRequestedFilterWithRequestSourceKinds:
40218                RemoveWebResourceRequestedFilterWithRequestSourceKinds::<Identity, OFFSET>,
40219        }
40220    }
40221    pub fn matches(iid: &windows_core::GUID) -> bool {
40222        iid == &<ICoreWebView2_22 as windows_core::Interface>::IID
40223            || iid == &<ICoreWebView2 as windows_core::Interface>::IID
40224            || iid == &<ICoreWebView2_2 as windows_core::Interface>::IID
40225            || iid == &<ICoreWebView2_3 as windows_core::Interface>::IID
40226            || iid == &<ICoreWebView2_4 as windows_core::Interface>::IID
40227            || iid == &<ICoreWebView2_5 as windows_core::Interface>::IID
40228            || iid == &<ICoreWebView2_6 as windows_core::Interface>::IID
40229            || iid == &<ICoreWebView2_7 as windows_core::Interface>::IID
40230            || iid == &<ICoreWebView2_8 as windows_core::Interface>::IID
40231            || iid == &<ICoreWebView2_9 as windows_core::Interface>::IID
40232            || iid == &<ICoreWebView2_10 as windows_core::Interface>::IID
40233            || iid == &<ICoreWebView2_11 as windows_core::Interface>::IID
40234            || iid == &<ICoreWebView2_12 as windows_core::Interface>::IID
40235            || iid == &<ICoreWebView2_13 as windows_core::Interface>::IID
40236            || iid == &<ICoreWebView2_14 as windows_core::Interface>::IID
40237            || iid == &<ICoreWebView2_15 as windows_core::Interface>::IID
40238            || iid == &<ICoreWebView2_16 as windows_core::Interface>::IID
40239            || iid == &<ICoreWebView2_17 as windows_core::Interface>::IID
40240            || iid == &<ICoreWebView2_18 as windows_core::Interface>::IID
40241            || iid == &<ICoreWebView2_19 as windows_core::Interface>::IID
40242            || iid == &<ICoreWebView2_20 as windows_core::Interface>::IID
40243            || iid == &<ICoreWebView2_21 as windows_core::Interface>::IID
40244    }
40245}
40246impl windows_core::RuntimeName for ICoreWebView2_22 {}
40247windows_core::imp::define_interface!(
40248    ICoreWebView2_23,
40249    ICoreWebView2_23_Vtbl,
40250    0x508f0db5_90c4_5872_90a7_267a91377502
40251);
40252impl core::ops::Deref for ICoreWebView2_23 {
40253    type Target = ICoreWebView2_22;
40254    fn deref(&self) -> &Self::Target {
40255        unsafe { core::mem::transmute(self) }
40256    }
40257}
40258windows_core::imp::interface_hierarchy!(
40259    ICoreWebView2_23,
40260    windows_core::IUnknown,
40261    ICoreWebView2,
40262    ICoreWebView2_2,
40263    ICoreWebView2_3,
40264    ICoreWebView2_4,
40265    ICoreWebView2_5,
40266    ICoreWebView2_6,
40267    ICoreWebView2_7,
40268    ICoreWebView2_8,
40269    ICoreWebView2_9,
40270    ICoreWebView2_10,
40271    ICoreWebView2_11,
40272    ICoreWebView2_12,
40273    ICoreWebView2_13,
40274    ICoreWebView2_14,
40275    ICoreWebView2_15,
40276    ICoreWebView2_16,
40277    ICoreWebView2_17,
40278    ICoreWebView2_18,
40279    ICoreWebView2_19,
40280    ICoreWebView2_20,
40281    ICoreWebView2_21,
40282    ICoreWebView2_22
40283);
40284impl ICoreWebView2_23 {
40285    pub unsafe fn PostWebMessageAsJsonWithAdditionalObjects<P0, P1>(
40286        &self,
40287        webmessageasjson: P0,
40288        additionalobjects: P1,
40289    ) -> windows_core::Result<()>
40290    where
40291        P0: windows_core::Param<windows_core::PCWSTR>,
40292        P1: windows_core::Param<ICoreWebView2ObjectCollectionView>,
40293    {
40294        unsafe {
40295            (windows_core::Interface::vtable(self).PostWebMessageAsJsonWithAdditionalObjects)(
40296                windows_core::Interface::as_raw(self),
40297                webmessageasjson.param().abi(),
40298                additionalobjects.param().abi(),
40299            )
40300            .ok()
40301        }
40302    }
40303}
40304#[repr(C)]
40305#[doc(hidden)]
40306pub struct ICoreWebView2_23_Vtbl {
40307    pub base__: ICoreWebView2_22_Vtbl,
40308    pub PostWebMessageAsJsonWithAdditionalObjects:
40309        unsafe extern "system" fn(
40310            *mut core::ffi::c_void,
40311            windows_core::PCWSTR,
40312            *mut core::ffi::c_void,
40313        ) -> windows_core::HRESULT,
40314}
40315pub trait ICoreWebView2_23_Impl: ICoreWebView2_22_Impl {
40316    fn PostWebMessageAsJsonWithAdditionalObjects(
40317        &self,
40318        webmessageasjson: &windows_core::PCWSTR,
40319        additionalobjects: windows_core::Ref<'_, ICoreWebView2ObjectCollectionView>,
40320    ) -> windows_core::Result<()>;
40321}
40322impl ICoreWebView2_23_Vtbl {
40323    pub const fn new<Identity: ICoreWebView2_23_Impl, const OFFSET: isize>() -> Self {
40324        unsafe extern "system" fn PostWebMessageAsJsonWithAdditionalObjects<
40325            Identity: ICoreWebView2_23_Impl,
40326            const OFFSET: isize,
40327        >(
40328            this: *mut core::ffi::c_void,
40329            webmessageasjson: windows_core::PCWSTR,
40330            additionalobjects: *mut core::ffi::c_void,
40331        ) -> windows_core::HRESULT {
40332            unsafe {
40333                let this: &Identity =
40334                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
40335                ICoreWebView2_23_Impl::PostWebMessageAsJsonWithAdditionalObjects(
40336                    this,
40337                    core::mem::transmute(&webmessageasjson),
40338                    core::mem::transmute_copy(&additionalobjects),
40339                )
40340                .into()
40341            }
40342        }
40343        Self {
40344            base__: ICoreWebView2_22_Vtbl::new::<Identity, OFFSET>(),
40345            PostWebMessageAsJsonWithAdditionalObjects: PostWebMessageAsJsonWithAdditionalObjects::<
40346                Identity,
40347                OFFSET,
40348            >,
40349        }
40350    }
40351    pub fn matches(iid: &windows_core::GUID) -> bool {
40352        iid == &<ICoreWebView2_23 as windows_core::Interface>::IID
40353            || iid == &<ICoreWebView2 as windows_core::Interface>::IID
40354            || iid == &<ICoreWebView2_2 as windows_core::Interface>::IID
40355            || iid == &<ICoreWebView2_3 as windows_core::Interface>::IID
40356            || iid == &<ICoreWebView2_4 as windows_core::Interface>::IID
40357            || iid == &<ICoreWebView2_5 as windows_core::Interface>::IID
40358            || iid == &<ICoreWebView2_6 as windows_core::Interface>::IID
40359            || iid == &<ICoreWebView2_7 as windows_core::Interface>::IID
40360            || iid == &<ICoreWebView2_8 as windows_core::Interface>::IID
40361            || iid == &<ICoreWebView2_9 as windows_core::Interface>::IID
40362            || iid == &<ICoreWebView2_10 as windows_core::Interface>::IID
40363            || iid == &<ICoreWebView2_11 as windows_core::Interface>::IID
40364            || iid == &<ICoreWebView2_12 as windows_core::Interface>::IID
40365            || iid == &<ICoreWebView2_13 as windows_core::Interface>::IID
40366            || iid == &<ICoreWebView2_14 as windows_core::Interface>::IID
40367            || iid == &<ICoreWebView2_15 as windows_core::Interface>::IID
40368            || iid == &<ICoreWebView2_16 as windows_core::Interface>::IID
40369            || iid == &<ICoreWebView2_17 as windows_core::Interface>::IID
40370            || iid == &<ICoreWebView2_18 as windows_core::Interface>::IID
40371            || iid == &<ICoreWebView2_19 as windows_core::Interface>::IID
40372            || iid == &<ICoreWebView2_20 as windows_core::Interface>::IID
40373            || iid == &<ICoreWebView2_21 as windows_core::Interface>::IID
40374            || iid == &<ICoreWebView2_22 as windows_core::Interface>::IID
40375    }
40376}
40377impl windows_core::RuntimeName for ICoreWebView2_23 {}
40378windows_core::imp::define_interface!(
40379    ICoreWebView2_24,
40380    ICoreWebView2_24_Vtbl,
40381    0x39a7ad55_4287_5cc1_88a1_c6f458593824
40382);
40383impl core::ops::Deref for ICoreWebView2_24 {
40384    type Target = ICoreWebView2_23;
40385    fn deref(&self) -> &Self::Target {
40386        unsafe { core::mem::transmute(self) }
40387    }
40388}
40389windows_core::imp::interface_hierarchy!(
40390    ICoreWebView2_24,
40391    windows_core::IUnknown,
40392    ICoreWebView2,
40393    ICoreWebView2_2,
40394    ICoreWebView2_3,
40395    ICoreWebView2_4,
40396    ICoreWebView2_5,
40397    ICoreWebView2_6,
40398    ICoreWebView2_7,
40399    ICoreWebView2_8,
40400    ICoreWebView2_9,
40401    ICoreWebView2_10,
40402    ICoreWebView2_11,
40403    ICoreWebView2_12,
40404    ICoreWebView2_13,
40405    ICoreWebView2_14,
40406    ICoreWebView2_15,
40407    ICoreWebView2_16,
40408    ICoreWebView2_17,
40409    ICoreWebView2_18,
40410    ICoreWebView2_19,
40411    ICoreWebView2_20,
40412    ICoreWebView2_21,
40413    ICoreWebView2_22,
40414    ICoreWebView2_23
40415);
40416impl ICoreWebView2_24 {
40417    pub unsafe fn add_NotificationReceived<P0>(
40418        &self,
40419        eventhandler: P0,
40420        token: *mut i64,
40421    ) -> windows_core::Result<()>
40422    where
40423        P0: windows_core::Param<ICoreWebView2NotificationReceivedEventHandler>,
40424    {
40425        unsafe {
40426            (windows_core::Interface::vtable(self).add_NotificationReceived)(
40427                windows_core::Interface::as_raw(self),
40428                eventhandler.param().abi(),
40429                token as _,
40430            )
40431            .ok()
40432        }
40433    }
40434    pub unsafe fn remove_NotificationReceived(&self, token: i64) -> windows_core::Result<()> {
40435        unsafe {
40436            (windows_core::Interface::vtable(self).remove_NotificationReceived)(
40437                windows_core::Interface::as_raw(self),
40438                token,
40439            )
40440            .ok()
40441        }
40442    }
40443}
40444#[repr(C)]
40445#[doc(hidden)]
40446pub struct ICoreWebView2_24_Vtbl {
40447    pub base__: ICoreWebView2_23_Vtbl,
40448    pub add_NotificationReceived: unsafe extern "system" fn(
40449        *mut core::ffi::c_void,
40450        *mut core::ffi::c_void,
40451        *mut i64,
40452    ) -> windows_core::HRESULT,
40453    pub remove_NotificationReceived:
40454        unsafe extern "system" fn(*mut core::ffi::c_void, i64) -> windows_core::HRESULT,
40455}
40456pub trait ICoreWebView2_24_Impl: ICoreWebView2_23_Impl {
40457    fn add_NotificationReceived(
40458        &self,
40459        eventhandler: windows_core::Ref<'_, ICoreWebView2NotificationReceivedEventHandler>,
40460        token: *mut i64,
40461    ) -> windows_core::Result<()>;
40462    fn remove_NotificationReceived(&self, token: i64) -> windows_core::Result<()>;
40463}
40464impl ICoreWebView2_24_Vtbl {
40465    pub const fn new<Identity: ICoreWebView2_24_Impl, const OFFSET: isize>() -> Self {
40466        unsafe extern "system" fn add_NotificationReceived<
40467            Identity: ICoreWebView2_24_Impl,
40468            const OFFSET: isize,
40469        >(
40470            this: *mut core::ffi::c_void,
40471            eventhandler: *mut core::ffi::c_void,
40472            token: *mut i64,
40473        ) -> windows_core::HRESULT {
40474            unsafe {
40475                let this: &Identity =
40476                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
40477                ICoreWebView2_24_Impl::add_NotificationReceived(
40478                    this,
40479                    core::mem::transmute_copy(&eventhandler),
40480                    core::mem::transmute_copy(&token),
40481                )
40482                .into()
40483            }
40484        }
40485        unsafe extern "system" fn remove_NotificationReceived<
40486            Identity: ICoreWebView2_24_Impl,
40487            const OFFSET: isize,
40488        >(
40489            this: *mut core::ffi::c_void,
40490            token: i64,
40491        ) -> windows_core::HRESULT {
40492            unsafe {
40493                let this: &Identity =
40494                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
40495                ICoreWebView2_24_Impl::remove_NotificationReceived(
40496                    this,
40497                    core::mem::transmute_copy(&token),
40498                )
40499                .into()
40500            }
40501        }
40502        Self {
40503            base__: ICoreWebView2_23_Vtbl::new::<Identity, OFFSET>(),
40504            add_NotificationReceived: add_NotificationReceived::<Identity, OFFSET>,
40505            remove_NotificationReceived: remove_NotificationReceived::<Identity, OFFSET>,
40506        }
40507    }
40508    pub fn matches(iid: &windows_core::GUID) -> bool {
40509        iid == &<ICoreWebView2_24 as windows_core::Interface>::IID
40510            || iid == &<ICoreWebView2 as windows_core::Interface>::IID
40511            || iid == &<ICoreWebView2_2 as windows_core::Interface>::IID
40512            || iid == &<ICoreWebView2_3 as windows_core::Interface>::IID
40513            || iid == &<ICoreWebView2_4 as windows_core::Interface>::IID
40514            || iid == &<ICoreWebView2_5 as windows_core::Interface>::IID
40515            || iid == &<ICoreWebView2_6 as windows_core::Interface>::IID
40516            || iid == &<ICoreWebView2_7 as windows_core::Interface>::IID
40517            || iid == &<ICoreWebView2_8 as windows_core::Interface>::IID
40518            || iid == &<ICoreWebView2_9 as windows_core::Interface>::IID
40519            || iid == &<ICoreWebView2_10 as windows_core::Interface>::IID
40520            || iid == &<ICoreWebView2_11 as windows_core::Interface>::IID
40521            || iid == &<ICoreWebView2_12 as windows_core::Interface>::IID
40522            || iid == &<ICoreWebView2_13 as windows_core::Interface>::IID
40523            || iid == &<ICoreWebView2_14 as windows_core::Interface>::IID
40524            || iid == &<ICoreWebView2_15 as windows_core::Interface>::IID
40525            || iid == &<ICoreWebView2_16 as windows_core::Interface>::IID
40526            || iid == &<ICoreWebView2_17 as windows_core::Interface>::IID
40527            || iid == &<ICoreWebView2_18 as windows_core::Interface>::IID
40528            || iid == &<ICoreWebView2_19 as windows_core::Interface>::IID
40529            || iid == &<ICoreWebView2_20 as windows_core::Interface>::IID
40530            || iid == &<ICoreWebView2_21 as windows_core::Interface>::IID
40531            || iid == &<ICoreWebView2_22 as windows_core::Interface>::IID
40532            || iid == &<ICoreWebView2_23 as windows_core::Interface>::IID
40533    }
40534}
40535impl windows_core::RuntimeName for ICoreWebView2_24 {}
40536windows_core::imp::define_interface!(
40537    ICoreWebView2_25,
40538    ICoreWebView2_25_Vtbl,
40539    0xb5a86092_df50_5b4f_a17b_6c8f8b40b771
40540);
40541impl core::ops::Deref for ICoreWebView2_25 {
40542    type Target = ICoreWebView2_24;
40543    fn deref(&self) -> &Self::Target {
40544        unsafe { core::mem::transmute(self) }
40545    }
40546}
40547windows_core::imp::interface_hierarchy!(
40548    ICoreWebView2_25,
40549    windows_core::IUnknown,
40550    ICoreWebView2,
40551    ICoreWebView2_2,
40552    ICoreWebView2_3,
40553    ICoreWebView2_4,
40554    ICoreWebView2_5,
40555    ICoreWebView2_6,
40556    ICoreWebView2_7,
40557    ICoreWebView2_8,
40558    ICoreWebView2_9,
40559    ICoreWebView2_10,
40560    ICoreWebView2_11,
40561    ICoreWebView2_12,
40562    ICoreWebView2_13,
40563    ICoreWebView2_14,
40564    ICoreWebView2_15,
40565    ICoreWebView2_16,
40566    ICoreWebView2_17,
40567    ICoreWebView2_18,
40568    ICoreWebView2_19,
40569    ICoreWebView2_20,
40570    ICoreWebView2_21,
40571    ICoreWebView2_22,
40572    ICoreWebView2_23,
40573    ICoreWebView2_24
40574);
40575impl ICoreWebView2_25 {
40576    pub unsafe fn add_SaveAsUIShowing<P0>(
40577        &self,
40578        eventhandler: P0,
40579        token: *mut i64,
40580    ) -> windows_core::Result<()>
40581    where
40582        P0: windows_core::Param<ICoreWebView2SaveAsUIShowingEventHandler>,
40583    {
40584        unsafe {
40585            (windows_core::Interface::vtable(self).add_SaveAsUIShowing)(
40586                windows_core::Interface::as_raw(self),
40587                eventhandler.param().abi(),
40588                token as _,
40589            )
40590            .ok()
40591        }
40592    }
40593    pub unsafe fn remove_SaveAsUIShowing(&self, token: i64) -> windows_core::Result<()> {
40594        unsafe {
40595            (windows_core::Interface::vtable(self).remove_SaveAsUIShowing)(
40596                windows_core::Interface::as_raw(self),
40597                token,
40598            )
40599            .ok()
40600        }
40601    }
40602    pub unsafe fn ShowSaveAsUI<P0>(&self, handler: P0) -> windows_core::Result<()>
40603    where
40604        P0: windows_core::Param<ICoreWebView2ShowSaveAsUICompletedHandler>,
40605    {
40606        unsafe {
40607            (windows_core::Interface::vtable(self).ShowSaveAsUI)(
40608                windows_core::Interface::as_raw(self),
40609                handler.param().abi(),
40610            )
40611            .ok()
40612        }
40613    }
40614}
40615#[repr(C)]
40616#[doc(hidden)]
40617pub struct ICoreWebView2_25_Vtbl {
40618    pub base__: ICoreWebView2_24_Vtbl,
40619    pub add_SaveAsUIShowing: unsafe extern "system" fn(
40620        *mut core::ffi::c_void,
40621        *mut core::ffi::c_void,
40622        *mut i64,
40623    ) -> windows_core::HRESULT,
40624    pub remove_SaveAsUIShowing:
40625        unsafe extern "system" fn(*mut core::ffi::c_void, i64) -> windows_core::HRESULT,
40626    pub ShowSaveAsUI: unsafe extern "system" fn(
40627        *mut core::ffi::c_void,
40628        *mut core::ffi::c_void,
40629    ) -> windows_core::HRESULT,
40630}
40631pub trait ICoreWebView2_25_Impl: ICoreWebView2_24_Impl {
40632    fn add_SaveAsUIShowing(
40633        &self,
40634        eventhandler: windows_core::Ref<'_, ICoreWebView2SaveAsUIShowingEventHandler>,
40635        token: *mut i64,
40636    ) -> windows_core::Result<()>;
40637    fn remove_SaveAsUIShowing(&self, token: i64) -> windows_core::Result<()>;
40638    fn ShowSaveAsUI(
40639        &self,
40640        handler: windows_core::Ref<'_, ICoreWebView2ShowSaveAsUICompletedHandler>,
40641    ) -> windows_core::Result<()>;
40642}
40643impl ICoreWebView2_25_Vtbl {
40644    pub const fn new<Identity: ICoreWebView2_25_Impl, const OFFSET: isize>() -> Self {
40645        unsafe extern "system" fn add_SaveAsUIShowing<
40646            Identity: ICoreWebView2_25_Impl,
40647            const OFFSET: isize,
40648        >(
40649            this: *mut core::ffi::c_void,
40650            eventhandler: *mut core::ffi::c_void,
40651            token: *mut i64,
40652        ) -> windows_core::HRESULT {
40653            unsafe {
40654                let this: &Identity =
40655                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
40656                ICoreWebView2_25_Impl::add_SaveAsUIShowing(
40657                    this,
40658                    core::mem::transmute_copy(&eventhandler),
40659                    core::mem::transmute_copy(&token),
40660                )
40661                .into()
40662            }
40663        }
40664        unsafe extern "system" fn remove_SaveAsUIShowing<
40665            Identity: ICoreWebView2_25_Impl,
40666            const OFFSET: isize,
40667        >(
40668            this: *mut core::ffi::c_void,
40669            token: i64,
40670        ) -> windows_core::HRESULT {
40671            unsafe {
40672                let this: &Identity =
40673                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
40674                ICoreWebView2_25_Impl::remove_SaveAsUIShowing(
40675                    this,
40676                    core::mem::transmute_copy(&token),
40677                )
40678                .into()
40679            }
40680        }
40681        unsafe extern "system" fn ShowSaveAsUI<
40682            Identity: ICoreWebView2_25_Impl,
40683            const OFFSET: isize,
40684        >(
40685            this: *mut core::ffi::c_void,
40686            handler: *mut core::ffi::c_void,
40687        ) -> windows_core::HRESULT {
40688            unsafe {
40689                let this: &Identity =
40690                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
40691                ICoreWebView2_25_Impl::ShowSaveAsUI(this, core::mem::transmute_copy(&handler))
40692                    .into()
40693            }
40694        }
40695        Self {
40696            base__: ICoreWebView2_24_Vtbl::new::<Identity, OFFSET>(),
40697            add_SaveAsUIShowing: add_SaveAsUIShowing::<Identity, OFFSET>,
40698            remove_SaveAsUIShowing: remove_SaveAsUIShowing::<Identity, OFFSET>,
40699            ShowSaveAsUI: ShowSaveAsUI::<Identity, OFFSET>,
40700        }
40701    }
40702    pub fn matches(iid: &windows_core::GUID) -> bool {
40703        iid == &<ICoreWebView2_25 as windows_core::Interface>::IID
40704            || iid == &<ICoreWebView2 as windows_core::Interface>::IID
40705            || iid == &<ICoreWebView2_2 as windows_core::Interface>::IID
40706            || iid == &<ICoreWebView2_3 as windows_core::Interface>::IID
40707            || iid == &<ICoreWebView2_4 as windows_core::Interface>::IID
40708            || iid == &<ICoreWebView2_5 as windows_core::Interface>::IID
40709            || iid == &<ICoreWebView2_6 as windows_core::Interface>::IID
40710            || iid == &<ICoreWebView2_7 as windows_core::Interface>::IID
40711            || iid == &<ICoreWebView2_8 as windows_core::Interface>::IID
40712            || iid == &<ICoreWebView2_9 as windows_core::Interface>::IID
40713            || iid == &<ICoreWebView2_10 as windows_core::Interface>::IID
40714            || iid == &<ICoreWebView2_11 as windows_core::Interface>::IID
40715            || iid == &<ICoreWebView2_12 as windows_core::Interface>::IID
40716            || iid == &<ICoreWebView2_13 as windows_core::Interface>::IID
40717            || iid == &<ICoreWebView2_14 as windows_core::Interface>::IID
40718            || iid == &<ICoreWebView2_15 as windows_core::Interface>::IID
40719            || iid == &<ICoreWebView2_16 as windows_core::Interface>::IID
40720            || iid == &<ICoreWebView2_17 as windows_core::Interface>::IID
40721            || iid == &<ICoreWebView2_18 as windows_core::Interface>::IID
40722            || iid == &<ICoreWebView2_19 as windows_core::Interface>::IID
40723            || iid == &<ICoreWebView2_20 as windows_core::Interface>::IID
40724            || iid == &<ICoreWebView2_21 as windows_core::Interface>::IID
40725            || iid == &<ICoreWebView2_22 as windows_core::Interface>::IID
40726            || iid == &<ICoreWebView2_23 as windows_core::Interface>::IID
40727            || iid == &<ICoreWebView2_24 as windows_core::Interface>::IID
40728    }
40729}
40730impl windows_core::RuntimeName for ICoreWebView2_25 {}
40731windows_core::imp::define_interface!(
40732    ICoreWebView2_26,
40733    ICoreWebView2_26_Vtbl,
40734    0x806268b8_f897_5685_88e5_c45fca0b1a48
40735);
40736impl core::ops::Deref for ICoreWebView2_26 {
40737    type Target = ICoreWebView2_25;
40738    fn deref(&self) -> &Self::Target {
40739        unsafe { core::mem::transmute(self) }
40740    }
40741}
40742windows_core::imp::interface_hierarchy!(
40743    ICoreWebView2_26,
40744    windows_core::IUnknown,
40745    ICoreWebView2,
40746    ICoreWebView2_2,
40747    ICoreWebView2_3,
40748    ICoreWebView2_4,
40749    ICoreWebView2_5,
40750    ICoreWebView2_6,
40751    ICoreWebView2_7,
40752    ICoreWebView2_8,
40753    ICoreWebView2_9,
40754    ICoreWebView2_10,
40755    ICoreWebView2_11,
40756    ICoreWebView2_12,
40757    ICoreWebView2_13,
40758    ICoreWebView2_14,
40759    ICoreWebView2_15,
40760    ICoreWebView2_16,
40761    ICoreWebView2_17,
40762    ICoreWebView2_18,
40763    ICoreWebView2_19,
40764    ICoreWebView2_20,
40765    ICoreWebView2_21,
40766    ICoreWebView2_22,
40767    ICoreWebView2_23,
40768    ICoreWebView2_24,
40769    ICoreWebView2_25
40770);
40771impl ICoreWebView2_26 {
40772    pub unsafe fn add_SaveFileSecurityCheckStarting<P0>(
40773        &self,
40774        eventhandler: P0,
40775        token: *mut i64,
40776    ) -> windows_core::Result<()>
40777    where
40778        P0: windows_core::Param<ICoreWebView2SaveFileSecurityCheckStartingEventHandler>,
40779    {
40780        unsafe {
40781            (windows_core::Interface::vtable(self).add_SaveFileSecurityCheckStarting)(
40782                windows_core::Interface::as_raw(self),
40783                eventhandler.param().abi(),
40784                token as _,
40785            )
40786            .ok()
40787        }
40788    }
40789    pub unsafe fn remove_SaveFileSecurityCheckStarting(
40790        &self,
40791        token: i64,
40792    ) -> windows_core::Result<()> {
40793        unsafe {
40794            (windows_core::Interface::vtable(self).remove_SaveFileSecurityCheckStarting)(
40795                windows_core::Interface::as_raw(self),
40796                token,
40797            )
40798            .ok()
40799        }
40800    }
40801}
40802#[repr(C)]
40803#[doc(hidden)]
40804pub struct ICoreWebView2_26_Vtbl {
40805    pub base__: ICoreWebView2_25_Vtbl,
40806    pub add_SaveFileSecurityCheckStarting: unsafe extern "system" fn(
40807        *mut core::ffi::c_void,
40808        *mut core::ffi::c_void,
40809        *mut i64,
40810    ) -> windows_core::HRESULT,
40811    pub remove_SaveFileSecurityCheckStarting:
40812        unsafe extern "system" fn(*mut core::ffi::c_void, i64) -> windows_core::HRESULT,
40813}
40814pub trait ICoreWebView2_26_Impl: ICoreWebView2_25_Impl {
40815    fn add_SaveFileSecurityCheckStarting(
40816        &self,
40817        eventhandler: windows_core::Ref<'_, ICoreWebView2SaveFileSecurityCheckStartingEventHandler>,
40818        token: *mut i64,
40819    ) -> windows_core::Result<()>;
40820    fn remove_SaveFileSecurityCheckStarting(&self, token: i64) -> windows_core::Result<()>;
40821}
40822impl ICoreWebView2_26_Vtbl {
40823    pub const fn new<Identity: ICoreWebView2_26_Impl, const OFFSET: isize>() -> Self {
40824        unsafe extern "system" fn add_SaveFileSecurityCheckStarting<
40825            Identity: ICoreWebView2_26_Impl,
40826            const OFFSET: isize,
40827        >(
40828            this: *mut core::ffi::c_void,
40829            eventhandler: *mut core::ffi::c_void,
40830            token: *mut i64,
40831        ) -> windows_core::HRESULT {
40832            unsafe {
40833                let this: &Identity =
40834                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
40835                ICoreWebView2_26_Impl::add_SaveFileSecurityCheckStarting(
40836                    this,
40837                    core::mem::transmute_copy(&eventhandler),
40838                    core::mem::transmute_copy(&token),
40839                )
40840                .into()
40841            }
40842        }
40843        unsafe extern "system" fn remove_SaveFileSecurityCheckStarting<
40844            Identity: ICoreWebView2_26_Impl,
40845            const OFFSET: isize,
40846        >(
40847            this: *mut core::ffi::c_void,
40848            token: i64,
40849        ) -> windows_core::HRESULT {
40850            unsafe {
40851                let this: &Identity =
40852                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
40853                ICoreWebView2_26_Impl::remove_SaveFileSecurityCheckStarting(
40854                    this,
40855                    core::mem::transmute_copy(&token),
40856                )
40857                .into()
40858            }
40859        }
40860        Self {
40861            base__: ICoreWebView2_25_Vtbl::new::<Identity, OFFSET>(),
40862            add_SaveFileSecurityCheckStarting: add_SaveFileSecurityCheckStarting::<Identity, OFFSET>,
40863            remove_SaveFileSecurityCheckStarting: remove_SaveFileSecurityCheckStarting::<
40864                Identity,
40865                OFFSET,
40866            >,
40867        }
40868    }
40869    pub fn matches(iid: &windows_core::GUID) -> bool {
40870        iid == &<ICoreWebView2_26 as windows_core::Interface>::IID
40871            || iid == &<ICoreWebView2 as windows_core::Interface>::IID
40872            || iid == &<ICoreWebView2_2 as windows_core::Interface>::IID
40873            || iid == &<ICoreWebView2_3 as windows_core::Interface>::IID
40874            || iid == &<ICoreWebView2_4 as windows_core::Interface>::IID
40875            || iid == &<ICoreWebView2_5 as windows_core::Interface>::IID
40876            || iid == &<ICoreWebView2_6 as windows_core::Interface>::IID
40877            || iid == &<ICoreWebView2_7 as windows_core::Interface>::IID
40878            || iid == &<ICoreWebView2_8 as windows_core::Interface>::IID
40879            || iid == &<ICoreWebView2_9 as windows_core::Interface>::IID
40880            || iid == &<ICoreWebView2_10 as windows_core::Interface>::IID
40881            || iid == &<ICoreWebView2_11 as windows_core::Interface>::IID
40882            || iid == &<ICoreWebView2_12 as windows_core::Interface>::IID
40883            || iid == &<ICoreWebView2_13 as windows_core::Interface>::IID
40884            || iid == &<ICoreWebView2_14 as windows_core::Interface>::IID
40885            || iid == &<ICoreWebView2_15 as windows_core::Interface>::IID
40886            || iid == &<ICoreWebView2_16 as windows_core::Interface>::IID
40887            || iid == &<ICoreWebView2_17 as windows_core::Interface>::IID
40888            || iid == &<ICoreWebView2_18 as windows_core::Interface>::IID
40889            || iid == &<ICoreWebView2_19 as windows_core::Interface>::IID
40890            || iid == &<ICoreWebView2_20 as windows_core::Interface>::IID
40891            || iid == &<ICoreWebView2_21 as windows_core::Interface>::IID
40892            || iid == &<ICoreWebView2_22 as windows_core::Interface>::IID
40893            || iid == &<ICoreWebView2_23 as windows_core::Interface>::IID
40894            || iid == &<ICoreWebView2_24 as windows_core::Interface>::IID
40895            || iid == &<ICoreWebView2_25 as windows_core::Interface>::IID
40896    }
40897}
40898impl windows_core::RuntimeName for ICoreWebView2_26 {}
40899windows_core::imp::define_interface!(
40900    ICoreWebView2_27,
40901    ICoreWebView2_27_Vtbl,
40902    0x00fbe33b_8c07_517c_aa23_0ddd4b5f6fa0
40903);
40904impl core::ops::Deref for ICoreWebView2_27 {
40905    type Target = ICoreWebView2_26;
40906    fn deref(&self) -> &Self::Target {
40907        unsafe { core::mem::transmute(self) }
40908    }
40909}
40910windows_core::imp::interface_hierarchy!(
40911    ICoreWebView2_27,
40912    windows_core::IUnknown,
40913    ICoreWebView2,
40914    ICoreWebView2_2,
40915    ICoreWebView2_3,
40916    ICoreWebView2_4,
40917    ICoreWebView2_5,
40918    ICoreWebView2_6,
40919    ICoreWebView2_7,
40920    ICoreWebView2_8,
40921    ICoreWebView2_9,
40922    ICoreWebView2_10,
40923    ICoreWebView2_11,
40924    ICoreWebView2_12,
40925    ICoreWebView2_13,
40926    ICoreWebView2_14,
40927    ICoreWebView2_15,
40928    ICoreWebView2_16,
40929    ICoreWebView2_17,
40930    ICoreWebView2_18,
40931    ICoreWebView2_19,
40932    ICoreWebView2_20,
40933    ICoreWebView2_21,
40934    ICoreWebView2_22,
40935    ICoreWebView2_23,
40936    ICoreWebView2_24,
40937    ICoreWebView2_25,
40938    ICoreWebView2_26
40939);
40940impl ICoreWebView2_27 {
40941    pub unsafe fn add_ScreenCaptureStarting<P0>(
40942        &self,
40943        eventhandler: P0,
40944        token: *mut i64,
40945    ) -> windows_core::Result<()>
40946    where
40947        P0: windows_core::Param<ICoreWebView2ScreenCaptureStartingEventHandler>,
40948    {
40949        unsafe {
40950            (windows_core::Interface::vtable(self).add_ScreenCaptureStarting)(
40951                windows_core::Interface::as_raw(self),
40952                eventhandler.param().abi(),
40953                token as _,
40954            )
40955            .ok()
40956        }
40957    }
40958    pub unsafe fn remove_ScreenCaptureStarting(&self, token: i64) -> windows_core::Result<()> {
40959        unsafe {
40960            (windows_core::Interface::vtable(self).remove_ScreenCaptureStarting)(
40961                windows_core::Interface::as_raw(self),
40962                token,
40963            )
40964            .ok()
40965        }
40966    }
40967}
40968#[repr(C)]
40969#[doc(hidden)]
40970pub struct ICoreWebView2_27_Vtbl {
40971    pub base__: ICoreWebView2_26_Vtbl,
40972    pub add_ScreenCaptureStarting: unsafe extern "system" fn(
40973        *mut core::ffi::c_void,
40974        *mut core::ffi::c_void,
40975        *mut i64,
40976    ) -> windows_core::HRESULT,
40977    pub remove_ScreenCaptureStarting:
40978        unsafe extern "system" fn(*mut core::ffi::c_void, i64) -> windows_core::HRESULT,
40979}
40980pub trait ICoreWebView2_27_Impl: ICoreWebView2_26_Impl {
40981    fn add_ScreenCaptureStarting(
40982        &self,
40983        eventhandler: windows_core::Ref<'_, ICoreWebView2ScreenCaptureStartingEventHandler>,
40984        token: *mut i64,
40985    ) -> windows_core::Result<()>;
40986    fn remove_ScreenCaptureStarting(&self, token: i64) -> windows_core::Result<()>;
40987}
40988impl ICoreWebView2_27_Vtbl {
40989    pub const fn new<Identity: ICoreWebView2_27_Impl, const OFFSET: isize>() -> Self {
40990        unsafe extern "system" fn add_ScreenCaptureStarting<
40991            Identity: ICoreWebView2_27_Impl,
40992            const OFFSET: isize,
40993        >(
40994            this: *mut core::ffi::c_void,
40995            eventhandler: *mut core::ffi::c_void,
40996            token: *mut i64,
40997        ) -> windows_core::HRESULT {
40998            unsafe {
40999                let this: &Identity =
41000                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
41001                ICoreWebView2_27_Impl::add_ScreenCaptureStarting(
41002                    this,
41003                    core::mem::transmute_copy(&eventhandler),
41004                    core::mem::transmute_copy(&token),
41005                )
41006                .into()
41007            }
41008        }
41009        unsafe extern "system" fn remove_ScreenCaptureStarting<
41010            Identity: ICoreWebView2_27_Impl,
41011            const OFFSET: isize,
41012        >(
41013            this: *mut core::ffi::c_void,
41014            token: i64,
41015        ) -> windows_core::HRESULT {
41016            unsafe {
41017                let this: &Identity =
41018                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
41019                ICoreWebView2_27_Impl::remove_ScreenCaptureStarting(
41020                    this,
41021                    core::mem::transmute_copy(&token),
41022                )
41023                .into()
41024            }
41025        }
41026        Self {
41027            base__: ICoreWebView2_26_Vtbl::new::<Identity, OFFSET>(),
41028            add_ScreenCaptureStarting: add_ScreenCaptureStarting::<Identity, OFFSET>,
41029            remove_ScreenCaptureStarting: remove_ScreenCaptureStarting::<Identity, OFFSET>,
41030        }
41031    }
41032    pub fn matches(iid: &windows_core::GUID) -> bool {
41033        iid == &<ICoreWebView2_27 as windows_core::Interface>::IID
41034            || iid == &<ICoreWebView2 as windows_core::Interface>::IID
41035            || iid == &<ICoreWebView2_2 as windows_core::Interface>::IID
41036            || iid == &<ICoreWebView2_3 as windows_core::Interface>::IID
41037            || iid == &<ICoreWebView2_4 as windows_core::Interface>::IID
41038            || iid == &<ICoreWebView2_5 as windows_core::Interface>::IID
41039            || iid == &<ICoreWebView2_6 as windows_core::Interface>::IID
41040            || iid == &<ICoreWebView2_7 as windows_core::Interface>::IID
41041            || iid == &<ICoreWebView2_8 as windows_core::Interface>::IID
41042            || iid == &<ICoreWebView2_9 as windows_core::Interface>::IID
41043            || iid == &<ICoreWebView2_10 as windows_core::Interface>::IID
41044            || iid == &<ICoreWebView2_11 as windows_core::Interface>::IID
41045            || iid == &<ICoreWebView2_12 as windows_core::Interface>::IID
41046            || iid == &<ICoreWebView2_13 as windows_core::Interface>::IID
41047            || iid == &<ICoreWebView2_14 as windows_core::Interface>::IID
41048            || iid == &<ICoreWebView2_15 as windows_core::Interface>::IID
41049            || iid == &<ICoreWebView2_16 as windows_core::Interface>::IID
41050            || iid == &<ICoreWebView2_17 as windows_core::Interface>::IID
41051            || iid == &<ICoreWebView2_18 as windows_core::Interface>::IID
41052            || iid == &<ICoreWebView2_19 as windows_core::Interface>::IID
41053            || iid == &<ICoreWebView2_20 as windows_core::Interface>::IID
41054            || iid == &<ICoreWebView2_21 as windows_core::Interface>::IID
41055            || iid == &<ICoreWebView2_22 as windows_core::Interface>::IID
41056            || iid == &<ICoreWebView2_23 as windows_core::Interface>::IID
41057            || iid == &<ICoreWebView2_24 as windows_core::Interface>::IID
41058            || iid == &<ICoreWebView2_25 as windows_core::Interface>::IID
41059            || iid == &<ICoreWebView2_26 as windows_core::Interface>::IID
41060    }
41061}
41062impl windows_core::RuntimeName for ICoreWebView2_27 {}
41063windows_core::imp::define_interface!(
41064    ICoreWebView2_3,
41065    ICoreWebView2_3_Vtbl,
41066    0xa0d6df20_3b92_416d_aa0c_437a9c727857
41067);
41068impl core::ops::Deref for ICoreWebView2_3 {
41069    type Target = ICoreWebView2_2;
41070    fn deref(&self) -> &Self::Target {
41071        unsafe { core::mem::transmute(self) }
41072    }
41073}
41074windows_core::imp::interface_hierarchy!(
41075    ICoreWebView2_3,
41076    windows_core::IUnknown,
41077    ICoreWebView2,
41078    ICoreWebView2_2
41079);
41080impl ICoreWebView2_3 {
41081    pub unsafe fn TrySuspend<P0>(&self, handler: P0) -> windows_core::Result<()>
41082    where
41083        P0: windows_core::Param<ICoreWebView2TrySuspendCompletedHandler>,
41084    {
41085        unsafe {
41086            (windows_core::Interface::vtable(self).TrySuspend)(
41087                windows_core::Interface::as_raw(self),
41088                handler.param().abi(),
41089            )
41090            .ok()
41091        }
41092    }
41093    pub unsafe fn Resume(&self) -> windows_core::Result<()> {
41094        unsafe {
41095            (windows_core::Interface::vtable(self).Resume)(windows_core::Interface::as_raw(self))
41096                .ok()
41097        }
41098    }
41099    pub unsafe fn IsSuspended(
41100        &self,
41101        issuspended: *mut windows_core::BOOL,
41102    ) -> windows_core::Result<()> {
41103        unsafe {
41104            (windows_core::Interface::vtable(self).IsSuspended)(
41105                windows_core::Interface::as_raw(self),
41106                issuspended as _,
41107            )
41108            .ok()
41109        }
41110    }
41111    pub unsafe fn SetVirtualHostNameToFolderMapping<P0, P1>(
41112        &self,
41113        hostname: P0,
41114        folderpath: P1,
41115        accesskind: COREWEBVIEW2_HOST_RESOURCE_ACCESS_KIND,
41116    ) -> windows_core::Result<()>
41117    where
41118        P0: windows_core::Param<windows_core::PCWSTR>,
41119        P1: windows_core::Param<windows_core::PCWSTR>,
41120    {
41121        unsafe {
41122            (windows_core::Interface::vtable(self).SetVirtualHostNameToFolderMapping)(
41123                windows_core::Interface::as_raw(self),
41124                hostname.param().abi(),
41125                folderpath.param().abi(),
41126                accesskind,
41127            )
41128            .ok()
41129        }
41130    }
41131    pub unsafe fn ClearVirtualHostNameToFolderMapping<P0>(
41132        &self,
41133        hostname: P0,
41134    ) -> windows_core::Result<()>
41135    where
41136        P0: windows_core::Param<windows_core::PCWSTR>,
41137    {
41138        unsafe {
41139            (windows_core::Interface::vtable(self).ClearVirtualHostNameToFolderMapping)(
41140                windows_core::Interface::as_raw(self),
41141                hostname.param().abi(),
41142            )
41143            .ok()
41144        }
41145    }
41146}
41147#[repr(C)]
41148#[doc(hidden)]
41149pub struct ICoreWebView2_3_Vtbl {
41150    pub base__: ICoreWebView2_2_Vtbl,
41151    pub TrySuspend: unsafe extern "system" fn(
41152        *mut core::ffi::c_void,
41153        *mut core::ffi::c_void,
41154    ) -> windows_core::HRESULT,
41155    pub Resume: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
41156    pub IsSuspended: unsafe extern "system" fn(
41157        *mut core::ffi::c_void,
41158        *mut windows_core::BOOL,
41159    ) -> windows_core::HRESULT,
41160    pub SetVirtualHostNameToFolderMapping: unsafe extern "system" fn(
41161        *mut core::ffi::c_void,
41162        windows_core::PCWSTR,
41163        windows_core::PCWSTR,
41164        COREWEBVIEW2_HOST_RESOURCE_ACCESS_KIND,
41165    ) -> windows_core::HRESULT,
41166    pub ClearVirtualHostNameToFolderMapping: unsafe extern "system" fn(
41167        *mut core::ffi::c_void,
41168        windows_core::PCWSTR,
41169    )
41170        -> windows_core::HRESULT,
41171}
41172pub trait ICoreWebView2_3_Impl: ICoreWebView2_2_Impl {
41173    fn TrySuspend(
41174        &self,
41175        handler: windows_core::Ref<'_, ICoreWebView2TrySuspendCompletedHandler>,
41176    ) -> windows_core::Result<()>;
41177    fn Resume(&self) -> windows_core::Result<()>;
41178    fn IsSuspended(&self, issuspended: *mut windows_core::BOOL) -> windows_core::Result<()>;
41179    fn SetVirtualHostNameToFolderMapping(
41180        &self,
41181        hostname: &windows_core::PCWSTR,
41182        folderpath: &windows_core::PCWSTR,
41183        accesskind: COREWEBVIEW2_HOST_RESOURCE_ACCESS_KIND,
41184    ) -> windows_core::Result<()>;
41185    fn ClearVirtualHostNameToFolderMapping(
41186        &self,
41187        hostname: &windows_core::PCWSTR,
41188    ) -> windows_core::Result<()>;
41189}
41190impl ICoreWebView2_3_Vtbl {
41191    pub const fn new<Identity: ICoreWebView2_3_Impl, const OFFSET: isize>() -> Self {
41192        unsafe extern "system" fn TrySuspend<
41193            Identity: ICoreWebView2_3_Impl,
41194            const OFFSET: isize,
41195        >(
41196            this: *mut core::ffi::c_void,
41197            handler: *mut core::ffi::c_void,
41198        ) -> windows_core::HRESULT {
41199            unsafe {
41200                let this: &Identity =
41201                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
41202                ICoreWebView2_3_Impl::TrySuspend(this, core::mem::transmute_copy(&handler)).into()
41203            }
41204        }
41205        unsafe extern "system" fn Resume<Identity: ICoreWebView2_3_Impl, const OFFSET: isize>(
41206            this: *mut core::ffi::c_void,
41207        ) -> windows_core::HRESULT {
41208            unsafe {
41209                let this: &Identity =
41210                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
41211                ICoreWebView2_3_Impl::Resume(this).into()
41212            }
41213        }
41214        unsafe extern "system" fn IsSuspended<
41215            Identity: ICoreWebView2_3_Impl,
41216            const OFFSET: isize,
41217        >(
41218            this: *mut core::ffi::c_void,
41219            issuspended: *mut windows_core::BOOL,
41220        ) -> windows_core::HRESULT {
41221            unsafe {
41222                let this: &Identity =
41223                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
41224                ICoreWebView2_3_Impl::IsSuspended(this, core::mem::transmute_copy(&issuspended))
41225                    .into()
41226            }
41227        }
41228        unsafe extern "system" fn SetVirtualHostNameToFolderMapping<
41229            Identity: ICoreWebView2_3_Impl,
41230            const OFFSET: isize,
41231        >(
41232            this: *mut core::ffi::c_void,
41233            hostname: windows_core::PCWSTR,
41234            folderpath: windows_core::PCWSTR,
41235            accesskind: COREWEBVIEW2_HOST_RESOURCE_ACCESS_KIND,
41236        ) -> windows_core::HRESULT {
41237            unsafe {
41238                let this: &Identity =
41239                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
41240                ICoreWebView2_3_Impl::SetVirtualHostNameToFolderMapping(
41241                    this,
41242                    core::mem::transmute(&hostname),
41243                    core::mem::transmute(&folderpath),
41244                    core::mem::transmute_copy(&accesskind),
41245                )
41246                .into()
41247            }
41248        }
41249        unsafe extern "system" fn ClearVirtualHostNameToFolderMapping<
41250            Identity: ICoreWebView2_3_Impl,
41251            const OFFSET: isize,
41252        >(
41253            this: *mut core::ffi::c_void,
41254            hostname: windows_core::PCWSTR,
41255        ) -> windows_core::HRESULT {
41256            unsafe {
41257                let this: &Identity =
41258                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
41259                ICoreWebView2_3_Impl::ClearVirtualHostNameToFolderMapping(
41260                    this,
41261                    core::mem::transmute(&hostname),
41262                )
41263                .into()
41264            }
41265        }
41266        Self {
41267            base__: ICoreWebView2_2_Vtbl::new::<Identity, OFFSET>(),
41268            TrySuspend: TrySuspend::<Identity, OFFSET>,
41269            Resume: Resume::<Identity, OFFSET>,
41270            IsSuspended: IsSuspended::<Identity, OFFSET>,
41271            SetVirtualHostNameToFolderMapping: SetVirtualHostNameToFolderMapping::<Identity, OFFSET>,
41272            ClearVirtualHostNameToFolderMapping: ClearVirtualHostNameToFolderMapping::<
41273                Identity,
41274                OFFSET,
41275            >,
41276        }
41277    }
41278    pub fn matches(iid: &windows_core::GUID) -> bool {
41279        iid == &<ICoreWebView2_3 as windows_core::Interface>::IID
41280            || iid == &<ICoreWebView2 as windows_core::Interface>::IID
41281            || iid == &<ICoreWebView2_2 as windows_core::Interface>::IID
41282    }
41283}
41284impl windows_core::RuntimeName for ICoreWebView2_3 {}
41285windows_core::imp::define_interface!(
41286    ICoreWebView2_4,
41287    ICoreWebView2_4_Vtbl,
41288    0x20d02d59_6df2_42dc_bd06_f98a694b1302
41289);
41290impl core::ops::Deref for ICoreWebView2_4 {
41291    type Target = ICoreWebView2_3;
41292    fn deref(&self) -> &Self::Target {
41293        unsafe { core::mem::transmute(self) }
41294    }
41295}
41296windows_core::imp::interface_hierarchy!(
41297    ICoreWebView2_4,
41298    windows_core::IUnknown,
41299    ICoreWebView2,
41300    ICoreWebView2_2,
41301    ICoreWebView2_3
41302);
41303impl ICoreWebView2_4 {
41304    pub unsafe fn add_FrameCreated<P0>(
41305        &self,
41306        eventhandler: P0,
41307        token: *mut i64,
41308    ) -> windows_core::Result<()>
41309    where
41310        P0: windows_core::Param<ICoreWebView2FrameCreatedEventHandler>,
41311    {
41312        unsafe {
41313            (windows_core::Interface::vtable(self).add_FrameCreated)(
41314                windows_core::Interface::as_raw(self),
41315                eventhandler.param().abi(),
41316                token as _,
41317            )
41318            .ok()
41319        }
41320    }
41321    pub unsafe fn remove_FrameCreated(&self, token: i64) -> windows_core::Result<()> {
41322        unsafe {
41323            (windows_core::Interface::vtable(self).remove_FrameCreated)(
41324                windows_core::Interface::as_raw(self),
41325                token,
41326            )
41327            .ok()
41328        }
41329    }
41330    pub unsafe fn add_DownloadStarting<P0>(
41331        &self,
41332        eventhandler: P0,
41333        token: *mut i64,
41334    ) -> windows_core::Result<()>
41335    where
41336        P0: windows_core::Param<ICoreWebView2DownloadStartingEventHandler>,
41337    {
41338        unsafe {
41339            (windows_core::Interface::vtable(self).add_DownloadStarting)(
41340                windows_core::Interface::as_raw(self),
41341                eventhandler.param().abi(),
41342                token as _,
41343            )
41344            .ok()
41345        }
41346    }
41347    pub unsafe fn remove_DownloadStarting(&self, token: i64) -> windows_core::Result<()> {
41348        unsafe {
41349            (windows_core::Interface::vtable(self).remove_DownloadStarting)(
41350                windows_core::Interface::as_raw(self),
41351                token,
41352            )
41353            .ok()
41354        }
41355    }
41356}
41357#[repr(C)]
41358#[doc(hidden)]
41359pub struct ICoreWebView2_4_Vtbl {
41360    pub base__: ICoreWebView2_3_Vtbl,
41361    pub add_FrameCreated: unsafe extern "system" fn(
41362        *mut core::ffi::c_void,
41363        *mut core::ffi::c_void,
41364        *mut i64,
41365    ) -> windows_core::HRESULT,
41366    pub remove_FrameCreated:
41367        unsafe extern "system" fn(*mut core::ffi::c_void, i64) -> windows_core::HRESULT,
41368    pub add_DownloadStarting: unsafe extern "system" fn(
41369        *mut core::ffi::c_void,
41370        *mut core::ffi::c_void,
41371        *mut i64,
41372    ) -> windows_core::HRESULT,
41373    pub remove_DownloadStarting:
41374        unsafe extern "system" fn(*mut core::ffi::c_void, i64) -> windows_core::HRESULT,
41375}
41376pub trait ICoreWebView2_4_Impl: ICoreWebView2_3_Impl {
41377    fn add_FrameCreated(
41378        &self,
41379        eventhandler: windows_core::Ref<'_, ICoreWebView2FrameCreatedEventHandler>,
41380        token: *mut i64,
41381    ) -> windows_core::Result<()>;
41382    fn remove_FrameCreated(&self, token: i64) -> windows_core::Result<()>;
41383    fn add_DownloadStarting(
41384        &self,
41385        eventhandler: windows_core::Ref<'_, ICoreWebView2DownloadStartingEventHandler>,
41386        token: *mut i64,
41387    ) -> windows_core::Result<()>;
41388    fn remove_DownloadStarting(&self, token: i64) -> windows_core::Result<()>;
41389}
41390impl ICoreWebView2_4_Vtbl {
41391    pub const fn new<Identity: ICoreWebView2_4_Impl, const OFFSET: isize>() -> Self {
41392        unsafe extern "system" fn add_FrameCreated<
41393            Identity: ICoreWebView2_4_Impl,
41394            const OFFSET: isize,
41395        >(
41396            this: *mut core::ffi::c_void,
41397            eventhandler: *mut core::ffi::c_void,
41398            token: *mut i64,
41399        ) -> windows_core::HRESULT {
41400            unsafe {
41401                let this: &Identity =
41402                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
41403                ICoreWebView2_4_Impl::add_FrameCreated(
41404                    this,
41405                    core::mem::transmute_copy(&eventhandler),
41406                    core::mem::transmute_copy(&token),
41407                )
41408                .into()
41409            }
41410        }
41411        unsafe extern "system" fn remove_FrameCreated<
41412            Identity: ICoreWebView2_4_Impl,
41413            const OFFSET: isize,
41414        >(
41415            this: *mut core::ffi::c_void,
41416            token: i64,
41417        ) -> windows_core::HRESULT {
41418            unsafe {
41419                let this: &Identity =
41420                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
41421                ICoreWebView2_4_Impl::remove_FrameCreated(this, core::mem::transmute_copy(&token))
41422                    .into()
41423            }
41424        }
41425        unsafe extern "system" fn add_DownloadStarting<
41426            Identity: ICoreWebView2_4_Impl,
41427            const OFFSET: isize,
41428        >(
41429            this: *mut core::ffi::c_void,
41430            eventhandler: *mut core::ffi::c_void,
41431            token: *mut i64,
41432        ) -> windows_core::HRESULT {
41433            unsafe {
41434                let this: &Identity =
41435                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
41436                ICoreWebView2_4_Impl::add_DownloadStarting(
41437                    this,
41438                    core::mem::transmute_copy(&eventhandler),
41439                    core::mem::transmute_copy(&token),
41440                )
41441                .into()
41442            }
41443        }
41444        unsafe extern "system" fn remove_DownloadStarting<
41445            Identity: ICoreWebView2_4_Impl,
41446            const OFFSET: isize,
41447        >(
41448            this: *mut core::ffi::c_void,
41449            token: i64,
41450        ) -> windows_core::HRESULT {
41451            unsafe {
41452                let this: &Identity =
41453                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
41454                ICoreWebView2_4_Impl::remove_DownloadStarting(
41455                    this,
41456                    core::mem::transmute_copy(&token),
41457                )
41458                .into()
41459            }
41460        }
41461        Self {
41462            base__: ICoreWebView2_3_Vtbl::new::<Identity, OFFSET>(),
41463            add_FrameCreated: add_FrameCreated::<Identity, OFFSET>,
41464            remove_FrameCreated: remove_FrameCreated::<Identity, OFFSET>,
41465            add_DownloadStarting: add_DownloadStarting::<Identity, OFFSET>,
41466            remove_DownloadStarting: remove_DownloadStarting::<Identity, OFFSET>,
41467        }
41468    }
41469    pub fn matches(iid: &windows_core::GUID) -> bool {
41470        iid == &<ICoreWebView2_4 as windows_core::Interface>::IID
41471            || iid == &<ICoreWebView2 as windows_core::Interface>::IID
41472            || iid == &<ICoreWebView2_2 as windows_core::Interface>::IID
41473            || iid == &<ICoreWebView2_3 as windows_core::Interface>::IID
41474    }
41475}
41476impl windows_core::RuntimeName for ICoreWebView2_4 {}
41477windows_core::imp::define_interface!(
41478    ICoreWebView2_5,
41479    ICoreWebView2_5_Vtbl,
41480    0xbedb11b8_d63c_11eb_b8bc_0242ac130003
41481);
41482impl core::ops::Deref for ICoreWebView2_5 {
41483    type Target = ICoreWebView2_4;
41484    fn deref(&self) -> &Self::Target {
41485        unsafe { core::mem::transmute(self) }
41486    }
41487}
41488windows_core::imp::interface_hierarchy!(
41489    ICoreWebView2_5,
41490    windows_core::IUnknown,
41491    ICoreWebView2,
41492    ICoreWebView2_2,
41493    ICoreWebView2_3,
41494    ICoreWebView2_4
41495);
41496impl ICoreWebView2_5 {
41497    pub unsafe fn add_ClientCertificateRequested<P0>(
41498        &self,
41499        eventhandler: P0,
41500        token: *mut i64,
41501    ) -> windows_core::Result<()>
41502    where
41503        P0: windows_core::Param<ICoreWebView2ClientCertificateRequestedEventHandler>,
41504    {
41505        unsafe {
41506            (windows_core::Interface::vtable(self).add_ClientCertificateRequested)(
41507                windows_core::Interface::as_raw(self),
41508                eventhandler.param().abi(),
41509                token as _,
41510            )
41511            .ok()
41512        }
41513    }
41514    pub unsafe fn remove_ClientCertificateRequested(&self, token: i64) -> windows_core::Result<()> {
41515        unsafe {
41516            (windows_core::Interface::vtable(self).remove_ClientCertificateRequested)(
41517                windows_core::Interface::as_raw(self),
41518                token,
41519            )
41520            .ok()
41521        }
41522    }
41523}
41524#[repr(C)]
41525#[doc(hidden)]
41526pub struct ICoreWebView2_5_Vtbl {
41527    pub base__: ICoreWebView2_4_Vtbl,
41528    pub add_ClientCertificateRequested: unsafe extern "system" fn(
41529        *mut core::ffi::c_void,
41530        *mut core::ffi::c_void,
41531        *mut i64,
41532    ) -> windows_core::HRESULT,
41533    pub remove_ClientCertificateRequested:
41534        unsafe extern "system" fn(*mut core::ffi::c_void, i64) -> windows_core::HRESULT,
41535}
41536pub trait ICoreWebView2_5_Impl: ICoreWebView2_4_Impl {
41537    fn add_ClientCertificateRequested(
41538        &self,
41539        eventhandler: windows_core::Ref<'_, ICoreWebView2ClientCertificateRequestedEventHandler>,
41540        token: *mut i64,
41541    ) -> windows_core::Result<()>;
41542    fn remove_ClientCertificateRequested(&self, token: i64) -> windows_core::Result<()>;
41543}
41544impl ICoreWebView2_5_Vtbl {
41545    pub const fn new<Identity: ICoreWebView2_5_Impl, const OFFSET: isize>() -> Self {
41546        unsafe extern "system" fn add_ClientCertificateRequested<
41547            Identity: ICoreWebView2_5_Impl,
41548            const OFFSET: isize,
41549        >(
41550            this: *mut core::ffi::c_void,
41551            eventhandler: *mut core::ffi::c_void,
41552            token: *mut i64,
41553        ) -> windows_core::HRESULT {
41554            unsafe {
41555                let this: &Identity =
41556                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
41557                ICoreWebView2_5_Impl::add_ClientCertificateRequested(
41558                    this,
41559                    core::mem::transmute_copy(&eventhandler),
41560                    core::mem::transmute_copy(&token),
41561                )
41562                .into()
41563            }
41564        }
41565        unsafe extern "system" fn remove_ClientCertificateRequested<
41566            Identity: ICoreWebView2_5_Impl,
41567            const OFFSET: isize,
41568        >(
41569            this: *mut core::ffi::c_void,
41570            token: i64,
41571        ) -> windows_core::HRESULT {
41572            unsafe {
41573                let this: &Identity =
41574                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
41575                ICoreWebView2_5_Impl::remove_ClientCertificateRequested(
41576                    this,
41577                    core::mem::transmute_copy(&token),
41578                )
41579                .into()
41580            }
41581        }
41582        Self {
41583            base__: ICoreWebView2_4_Vtbl::new::<Identity, OFFSET>(),
41584            add_ClientCertificateRequested: add_ClientCertificateRequested::<Identity, OFFSET>,
41585            remove_ClientCertificateRequested: remove_ClientCertificateRequested::<Identity, OFFSET>,
41586        }
41587    }
41588    pub fn matches(iid: &windows_core::GUID) -> bool {
41589        iid == &<ICoreWebView2_5 as windows_core::Interface>::IID
41590            || iid == &<ICoreWebView2 as windows_core::Interface>::IID
41591            || iid == &<ICoreWebView2_2 as windows_core::Interface>::IID
41592            || iid == &<ICoreWebView2_3 as windows_core::Interface>::IID
41593            || iid == &<ICoreWebView2_4 as windows_core::Interface>::IID
41594    }
41595}
41596impl windows_core::RuntimeName for ICoreWebView2_5 {}
41597windows_core::imp::define_interface!(
41598    ICoreWebView2_6,
41599    ICoreWebView2_6_Vtbl,
41600    0x499aadac_d92c_4589_8a75_111bfc167795
41601);
41602impl core::ops::Deref for ICoreWebView2_6 {
41603    type Target = ICoreWebView2_5;
41604    fn deref(&self) -> &Self::Target {
41605        unsafe { core::mem::transmute(self) }
41606    }
41607}
41608windows_core::imp::interface_hierarchy!(
41609    ICoreWebView2_6,
41610    windows_core::IUnknown,
41611    ICoreWebView2,
41612    ICoreWebView2_2,
41613    ICoreWebView2_3,
41614    ICoreWebView2_4,
41615    ICoreWebView2_5
41616);
41617impl ICoreWebView2_6 {
41618    pub unsafe fn OpenTaskManagerWindow(&self) -> windows_core::Result<()> {
41619        unsafe {
41620            (windows_core::Interface::vtable(self).OpenTaskManagerWindow)(
41621                windows_core::Interface::as_raw(self),
41622            )
41623            .ok()
41624        }
41625    }
41626}
41627#[repr(C)]
41628#[doc(hidden)]
41629pub struct ICoreWebView2_6_Vtbl {
41630    pub base__: ICoreWebView2_5_Vtbl,
41631    pub OpenTaskManagerWindow:
41632        unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
41633}
41634pub trait ICoreWebView2_6_Impl: ICoreWebView2_5_Impl {
41635    fn OpenTaskManagerWindow(&self) -> windows_core::Result<()>;
41636}
41637impl ICoreWebView2_6_Vtbl {
41638    pub const fn new<Identity: ICoreWebView2_6_Impl, const OFFSET: isize>() -> Self {
41639        unsafe extern "system" fn OpenTaskManagerWindow<
41640            Identity: ICoreWebView2_6_Impl,
41641            const OFFSET: isize,
41642        >(
41643            this: *mut core::ffi::c_void,
41644        ) -> windows_core::HRESULT {
41645            unsafe {
41646                let this: &Identity =
41647                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
41648                ICoreWebView2_6_Impl::OpenTaskManagerWindow(this).into()
41649            }
41650        }
41651        Self {
41652            base__: ICoreWebView2_5_Vtbl::new::<Identity, OFFSET>(),
41653            OpenTaskManagerWindow: OpenTaskManagerWindow::<Identity, OFFSET>,
41654        }
41655    }
41656    pub fn matches(iid: &windows_core::GUID) -> bool {
41657        iid == &<ICoreWebView2_6 as windows_core::Interface>::IID
41658            || iid == &<ICoreWebView2 as windows_core::Interface>::IID
41659            || iid == &<ICoreWebView2_2 as windows_core::Interface>::IID
41660            || iid == &<ICoreWebView2_3 as windows_core::Interface>::IID
41661            || iid == &<ICoreWebView2_4 as windows_core::Interface>::IID
41662            || iid == &<ICoreWebView2_5 as windows_core::Interface>::IID
41663    }
41664}
41665impl windows_core::RuntimeName for ICoreWebView2_6 {}
41666windows_core::imp::define_interface!(
41667    ICoreWebView2_7,
41668    ICoreWebView2_7_Vtbl,
41669    0x79c24d83_09a3_45ae_9418_487f32a58740
41670);
41671impl core::ops::Deref for ICoreWebView2_7 {
41672    type Target = ICoreWebView2_6;
41673    fn deref(&self) -> &Self::Target {
41674        unsafe { core::mem::transmute(self) }
41675    }
41676}
41677windows_core::imp::interface_hierarchy!(
41678    ICoreWebView2_7,
41679    windows_core::IUnknown,
41680    ICoreWebView2,
41681    ICoreWebView2_2,
41682    ICoreWebView2_3,
41683    ICoreWebView2_4,
41684    ICoreWebView2_5,
41685    ICoreWebView2_6
41686);
41687impl ICoreWebView2_7 {
41688    pub unsafe fn PrintToPdf<P0, P1, P2>(
41689        &self,
41690        resultfilepath: P0,
41691        printsettings: P1,
41692        handler: P2,
41693    ) -> windows_core::Result<()>
41694    where
41695        P0: windows_core::Param<windows_core::PCWSTR>,
41696        P1: windows_core::Param<ICoreWebView2PrintSettings>,
41697        P2: windows_core::Param<ICoreWebView2PrintToPdfCompletedHandler>,
41698    {
41699        unsafe {
41700            (windows_core::Interface::vtable(self).PrintToPdf)(
41701                windows_core::Interface::as_raw(self),
41702                resultfilepath.param().abi(),
41703                printsettings.param().abi(),
41704                handler.param().abi(),
41705            )
41706            .ok()
41707        }
41708    }
41709}
41710#[repr(C)]
41711#[doc(hidden)]
41712pub struct ICoreWebView2_7_Vtbl {
41713    pub base__: ICoreWebView2_6_Vtbl,
41714    pub PrintToPdf: unsafe extern "system" fn(
41715        *mut core::ffi::c_void,
41716        windows_core::PCWSTR,
41717        *mut core::ffi::c_void,
41718        *mut core::ffi::c_void,
41719    ) -> windows_core::HRESULT,
41720}
41721pub trait ICoreWebView2_7_Impl: ICoreWebView2_6_Impl {
41722    fn PrintToPdf(
41723        &self,
41724        resultfilepath: &windows_core::PCWSTR,
41725        printsettings: windows_core::Ref<'_, ICoreWebView2PrintSettings>,
41726        handler: windows_core::Ref<'_, ICoreWebView2PrintToPdfCompletedHandler>,
41727    ) -> windows_core::Result<()>;
41728}
41729impl ICoreWebView2_7_Vtbl {
41730    pub const fn new<Identity: ICoreWebView2_7_Impl, const OFFSET: isize>() -> Self {
41731        unsafe extern "system" fn PrintToPdf<
41732            Identity: ICoreWebView2_7_Impl,
41733            const OFFSET: isize,
41734        >(
41735            this: *mut core::ffi::c_void,
41736            resultfilepath: windows_core::PCWSTR,
41737            printsettings: *mut core::ffi::c_void,
41738            handler: *mut core::ffi::c_void,
41739        ) -> windows_core::HRESULT {
41740            unsafe {
41741                let this: &Identity =
41742                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
41743                ICoreWebView2_7_Impl::PrintToPdf(
41744                    this,
41745                    core::mem::transmute(&resultfilepath),
41746                    core::mem::transmute_copy(&printsettings),
41747                    core::mem::transmute_copy(&handler),
41748                )
41749                .into()
41750            }
41751        }
41752        Self {
41753            base__: ICoreWebView2_6_Vtbl::new::<Identity, OFFSET>(),
41754            PrintToPdf: PrintToPdf::<Identity, OFFSET>,
41755        }
41756    }
41757    pub fn matches(iid: &windows_core::GUID) -> bool {
41758        iid == &<ICoreWebView2_7 as windows_core::Interface>::IID
41759            || iid == &<ICoreWebView2 as windows_core::Interface>::IID
41760            || iid == &<ICoreWebView2_2 as windows_core::Interface>::IID
41761            || iid == &<ICoreWebView2_3 as windows_core::Interface>::IID
41762            || iid == &<ICoreWebView2_4 as windows_core::Interface>::IID
41763            || iid == &<ICoreWebView2_5 as windows_core::Interface>::IID
41764            || iid == &<ICoreWebView2_6 as windows_core::Interface>::IID
41765    }
41766}
41767impl windows_core::RuntimeName for ICoreWebView2_7 {}
41768windows_core::imp::define_interface!(
41769    ICoreWebView2_8,
41770    ICoreWebView2_8_Vtbl,
41771    0xe9632730_6e1e_43ab_b7b8_7b2c9e62e094
41772);
41773impl core::ops::Deref for ICoreWebView2_8 {
41774    type Target = ICoreWebView2_7;
41775    fn deref(&self) -> &Self::Target {
41776        unsafe { core::mem::transmute(self) }
41777    }
41778}
41779windows_core::imp::interface_hierarchy!(
41780    ICoreWebView2_8,
41781    windows_core::IUnknown,
41782    ICoreWebView2,
41783    ICoreWebView2_2,
41784    ICoreWebView2_3,
41785    ICoreWebView2_4,
41786    ICoreWebView2_5,
41787    ICoreWebView2_6,
41788    ICoreWebView2_7
41789);
41790impl ICoreWebView2_8 {
41791    pub unsafe fn add_IsMutedChanged<P0>(
41792        &self,
41793        eventhandler: P0,
41794        token: *mut i64,
41795    ) -> windows_core::Result<()>
41796    where
41797        P0: windows_core::Param<ICoreWebView2IsMutedChangedEventHandler>,
41798    {
41799        unsafe {
41800            (windows_core::Interface::vtable(self).add_IsMutedChanged)(
41801                windows_core::Interface::as_raw(self),
41802                eventhandler.param().abi(),
41803                token as _,
41804            )
41805            .ok()
41806        }
41807    }
41808    pub unsafe fn remove_IsMutedChanged(&self, token: i64) -> windows_core::Result<()> {
41809        unsafe {
41810            (windows_core::Interface::vtable(self).remove_IsMutedChanged)(
41811                windows_core::Interface::as_raw(self),
41812                token,
41813            )
41814            .ok()
41815        }
41816    }
41817    pub unsafe fn IsMuted(&self, value: *mut windows_core::BOOL) -> windows_core::Result<()> {
41818        unsafe {
41819            (windows_core::Interface::vtable(self).IsMuted)(
41820                windows_core::Interface::as_raw(self),
41821                value as _,
41822            )
41823            .ok()
41824        }
41825    }
41826    pub unsafe fn SetIsMuted(&self, value: bool) -> windows_core::Result<()> {
41827        unsafe {
41828            (windows_core::Interface::vtable(self).SetIsMuted)(
41829                windows_core::Interface::as_raw(self),
41830                value.into(),
41831            )
41832            .ok()
41833        }
41834    }
41835    pub unsafe fn add_IsDocumentPlayingAudioChanged<P0>(
41836        &self,
41837        eventhandler: P0,
41838        token: *mut i64,
41839    ) -> windows_core::Result<()>
41840    where
41841        P0: windows_core::Param<ICoreWebView2IsDocumentPlayingAudioChangedEventHandler>,
41842    {
41843        unsafe {
41844            (windows_core::Interface::vtable(self).add_IsDocumentPlayingAudioChanged)(
41845                windows_core::Interface::as_raw(self),
41846                eventhandler.param().abi(),
41847                token as _,
41848            )
41849            .ok()
41850        }
41851    }
41852    pub unsafe fn remove_IsDocumentPlayingAudioChanged(
41853        &self,
41854        token: i64,
41855    ) -> windows_core::Result<()> {
41856        unsafe {
41857            (windows_core::Interface::vtable(self).remove_IsDocumentPlayingAudioChanged)(
41858                windows_core::Interface::as_raw(self),
41859                token,
41860            )
41861            .ok()
41862        }
41863    }
41864    pub unsafe fn IsDocumentPlayingAudio(
41865        &self,
41866        value: *mut windows_core::BOOL,
41867    ) -> windows_core::Result<()> {
41868        unsafe {
41869            (windows_core::Interface::vtable(self).IsDocumentPlayingAudio)(
41870                windows_core::Interface::as_raw(self),
41871                value as _,
41872            )
41873            .ok()
41874        }
41875    }
41876}
41877#[repr(C)]
41878#[doc(hidden)]
41879pub struct ICoreWebView2_8_Vtbl {
41880    pub base__: ICoreWebView2_7_Vtbl,
41881    pub add_IsMutedChanged: unsafe extern "system" fn(
41882        *mut core::ffi::c_void,
41883        *mut core::ffi::c_void,
41884        *mut i64,
41885    ) -> windows_core::HRESULT,
41886    pub remove_IsMutedChanged:
41887        unsafe extern "system" fn(*mut core::ffi::c_void, i64) -> windows_core::HRESULT,
41888    pub IsMuted: unsafe extern "system" fn(
41889        *mut core::ffi::c_void,
41890        *mut windows_core::BOOL,
41891    ) -> windows_core::HRESULT,
41892    pub SetIsMuted: unsafe extern "system" fn(
41893        *mut core::ffi::c_void,
41894        windows_core::BOOL,
41895    ) -> windows_core::HRESULT,
41896    pub add_IsDocumentPlayingAudioChanged: unsafe extern "system" fn(
41897        *mut core::ffi::c_void,
41898        *mut core::ffi::c_void,
41899        *mut i64,
41900    ) -> windows_core::HRESULT,
41901    pub remove_IsDocumentPlayingAudioChanged:
41902        unsafe extern "system" fn(*mut core::ffi::c_void, i64) -> windows_core::HRESULT,
41903    pub IsDocumentPlayingAudio: unsafe extern "system" fn(
41904        *mut core::ffi::c_void,
41905        *mut windows_core::BOOL,
41906    ) -> windows_core::HRESULT,
41907}
41908pub trait ICoreWebView2_8_Impl: ICoreWebView2_7_Impl {
41909    fn add_IsMutedChanged(
41910        &self,
41911        eventhandler: windows_core::Ref<'_, ICoreWebView2IsMutedChangedEventHandler>,
41912        token: *mut i64,
41913    ) -> windows_core::Result<()>;
41914    fn remove_IsMutedChanged(&self, token: i64) -> windows_core::Result<()>;
41915    fn IsMuted(&self, value: *mut windows_core::BOOL) -> windows_core::Result<()>;
41916    fn SetIsMuted(&self, value: windows_core::BOOL) -> windows_core::Result<()>;
41917    fn add_IsDocumentPlayingAudioChanged(
41918        &self,
41919        eventhandler: windows_core::Ref<'_, ICoreWebView2IsDocumentPlayingAudioChangedEventHandler>,
41920        token: *mut i64,
41921    ) -> windows_core::Result<()>;
41922    fn remove_IsDocumentPlayingAudioChanged(&self, token: i64) -> windows_core::Result<()>;
41923    fn IsDocumentPlayingAudio(&self, value: *mut windows_core::BOOL) -> windows_core::Result<()>;
41924}
41925impl ICoreWebView2_8_Vtbl {
41926    pub const fn new<Identity: ICoreWebView2_8_Impl, const OFFSET: isize>() -> Self {
41927        unsafe extern "system" fn add_IsMutedChanged<
41928            Identity: ICoreWebView2_8_Impl,
41929            const OFFSET: isize,
41930        >(
41931            this: *mut core::ffi::c_void,
41932            eventhandler: *mut core::ffi::c_void,
41933            token: *mut i64,
41934        ) -> windows_core::HRESULT {
41935            unsafe {
41936                let this: &Identity =
41937                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
41938                ICoreWebView2_8_Impl::add_IsMutedChanged(
41939                    this,
41940                    core::mem::transmute_copy(&eventhandler),
41941                    core::mem::transmute_copy(&token),
41942                )
41943                .into()
41944            }
41945        }
41946        unsafe extern "system" fn remove_IsMutedChanged<
41947            Identity: ICoreWebView2_8_Impl,
41948            const OFFSET: isize,
41949        >(
41950            this: *mut core::ffi::c_void,
41951            token: i64,
41952        ) -> windows_core::HRESULT {
41953            unsafe {
41954                let this: &Identity =
41955                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
41956                ICoreWebView2_8_Impl::remove_IsMutedChanged(this, core::mem::transmute_copy(&token))
41957                    .into()
41958            }
41959        }
41960        unsafe extern "system" fn IsMuted<Identity: ICoreWebView2_8_Impl, const OFFSET: isize>(
41961            this: *mut core::ffi::c_void,
41962            value: *mut windows_core::BOOL,
41963        ) -> windows_core::HRESULT {
41964            unsafe {
41965                let this: &Identity =
41966                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
41967                ICoreWebView2_8_Impl::IsMuted(this, core::mem::transmute_copy(&value)).into()
41968            }
41969        }
41970        unsafe extern "system" fn SetIsMuted<
41971            Identity: ICoreWebView2_8_Impl,
41972            const OFFSET: isize,
41973        >(
41974            this: *mut core::ffi::c_void,
41975            value: windows_core::BOOL,
41976        ) -> windows_core::HRESULT {
41977            unsafe {
41978                let this: &Identity =
41979                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
41980                ICoreWebView2_8_Impl::SetIsMuted(this, core::mem::transmute_copy(&value)).into()
41981            }
41982        }
41983        unsafe extern "system" fn add_IsDocumentPlayingAudioChanged<
41984            Identity: ICoreWebView2_8_Impl,
41985            const OFFSET: isize,
41986        >(
41987            this: *mut core::ffi::c_void,
41988            eventhandler: *mut core::ffi::c_void,
41989            token: *mut i64,
41990        ) -> windows_core::HRESULT {
41991            unsafe {
41992                let this: &Identity =
41993                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
41994                ICoreWebView2_8_Impl::add_IsDocumentPlayingAudioChanged(
41995                    this,
41996                    core::mem::transmute_copy(&eventhandler),
41997                    core::mem::transmute_copy(&token),
41998                )
41999                .into()
42000            }
42001        }
42002        unsafe extern "system" fn remove_IsDocumentPlayingAudioChanged<
42003            Identity: ICoreWebView2_8_Impl,
42004            const OFFSET: isize,
42005        >(
42006            this: *mut core::ffi::c_void,
42007            token: i64,
42008        ) -> windows_core::HRESULT {
42009            unsafe {
42010                let this: &Identity =
42011                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
42012                ICoreWebView2_8_Impl::remove_IsDocumentPlayingAudioChanged(
42013                    this,
42014                    core::mem::transmute_copy(&token),
42015                )
42016                .into()
42017            }
42018        }
42019        unsafe extern "system" fn IsDocumentPlayingAudio<
42020            Identity: ICoreWebView2_8_Impl,
42021            const OFFSET: isize,
42022        >(
42023            this: *mut core::ffi::c_void,
42024            value: *mut windows_core::BOOL,
42025        ) -> windows_core::HRESULT {
42026            unsafe {
42027                let this: &Identity =
42028                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
42029                ICoreWebView2_8_Impl::IsDocumentPlayingAudio(
42030                    this,
42031                    core::mem::transmute_copy(&value),
42032                )
42033                .into()
42034            }
42035        }
42036        Self {
42037            base__: ICoreWebView2_7_Vtbl::new::<Identity, OFFSET>(),
42038            add_IsMutedChanged: add_IsMutedChanged::<Identity, OFFSET>,
42039            remove_IsMutedChanged: remove_IsMutedChanged::<Identity, OFFSET>,
42040            IsMuted: IsMuted::<Identity, OFFSET>,
42041            SetIsMuted: SetIsMuted::<Identity, OFFSET>,
42042            add_IsDocumentPlayingAudioChanged: add_IsDocumentPlayingAudioChanged::<Identity, OFFSET>,
42043            remove_IsDocumentPlayingAudioChanged: remove_IsDocumentPlayingAudioChanged::<
42044                Identity,
42045                OFFSET,
42046            >,
42047            IsDocumentPlayingAudio: IsDocumentPlayingAudio::<Identity, OFFSET>,
42048        }
42049    }
42050    pub fn matches(iid: &windows_core::GUID) -> bool {
42051        iid == &<ICoreWebView2_8 as windows_core::Interface>::IID
42052            || iid == &<ICoreWebView2 as windows_core::Interface>::IID
42053            || iid == &<ICoreWebView2_2 as windows_core::Interface>::IID
42054            || iid == &<ICoreWebView2_3 as windows_core::Interface>::IID
42055            || iid == &<ICoreWebView2_4 as windows_core::Interface>::IID
42056            || iid == &<ICoreWebView2_5 as windows_core::Interface>::IID
42057            || iid == &<ICoreWebView2_6 as windows_core::Interface>::IID
42058            || iid == &<ICoreWebView2_7 as windows_core::Interface>::IID
42059    }
42060}
42061impl windows_core::RuntimeName for ICoreWebView2_8 {}
42062windows_core::imp::define_interface!(
42063    ICoreWebView2_9,
42064    ICoreWebView2_9_Vtbl,
42065    0x4d7b2eab_9fdc_468d_b998_a9260b5ed651
42066);
42067impl core::ops::Deref for ICoreWebView2_9 {
42068    type Target = ICoreWebView2_8;
42069    fn deref(&self) -> &Self::Target {
42070        unsafe { core::mem::transmute(self) }
42071    }
42072}
42073windows_core::imp::interface_hierarchy!(
42074    ICoreWebView2_9,
42075    windows_core::IUnknown,
42076    ICoreWebView2,
42077    ICoreWebView2_2,
42078    ICoreWebView2_3,
42079    ICoreWebView2_4,
42080    ICoreWebView2_5,
42081    ICoreWebView2_6,
42082    ICoreWebView2_7,
42083    ICoreWebView2_8
42084);
42085impl ICoreWebView2_9 {
42086    pub unsafe fn add_IsDefaultDownloadDialogOpenChanged<P0>(
42087        &self,
42088        handler: P0,
42089        token: *mut i64,
42090    ) -> windows_core::Result<()>
42091    where
42092        P0: windows_core::Param<ICoreWebView2IsDefaultDownloadDialogOpenChangedEventHandler>,
42093    {
42094        unsafe {
42095            (windows_core::Interface::vtable(self).add_IsDefaultDownloadDialogOpenChanged)(
42096                windows_core::Interface::as_raw(self),
42097                handler.param().abi(),
42098                token as _,
42099            )
42100            .ok()
42101        }
42102    }
42103    pub unsafe fn remove_IsDefaultDownloadDialogOpenChanged(
42104        &self,
42105        token: i64,
42106    ) -> windows_core::Result<()> {
42107        unsafe {
42108            (windows_core::Interface::vtable(self).remove_IsDefaultDownloadDialogOpenChanged)(
42109                windows_core::Interface::as_raw(self),
42110                token,
42111            )
42112            .ok()
42113        }
42114    }
42115    pub unsafe fn IsDefaultDownloadDialogOpen(
42116        &self,
42117        value: *mut windows_core::BOOL,
42118    ) -> windows_core::Result<()> {
42119        unsafe {
42120            (windows_core::Interface::vtable(self).IsDefaultDownloadDialogOpen)(
42121                windows_core::Interface::as_raw(self),
42122                value as _,
42123            )
42124            .ok()
42125        }
42126    }
42127    pub unsafe fn OpenDefaultDownloadDialog(&self) -> windows_core::Result<()> {
42128        unsafe {
42129            (windows_core::Interface::vtable(self).OpenDefaultDownloadDialog)(
42130                windows_core::Interface::as_raw(self),
42131            )
42132            .ok()
42133        }
42134    }
42135    pub unsafe fn CloseDefaultDownloadDialog(&self) -> windows_core::Result<()> {
42136        unsafe {
42137            (windows_core::Interface::vtable(self).CloseDefaultDownloadDialog)(
42138                windows_core::Interface::as_raw(self),
42139            )
42140            .ok()
42141        }
42142    }
42143    pub unsafe fn DefaultDownloadDialogCornerAlignment(
42144        &self,
42145        value: *mut COREWEBVIEW2_DEFAULT_DOWNLOAD_DIALOG_CORNER_ALIGNMENT,
42146    ) -> windows_core::Result<()> {
42147        unsafe {
42148            (windows_core::Interface::vtable(self).DefaultDownloadDialogCornerAlignment)(
42149                windows_core::Interface::as_raw(self),
42150                value as _,
42151            )
42152            .ok()
42153        }
42154    }
42155    pub unsafe fn SetDefaultDownloadDialogCornerAlignment(
42156        &self,
42157        value: COREWEBVIEW2_DEFAULT_DOWNLOAD_DIALOG_CORNER_ALIGNMENT,
42158    ) -> windows_core::Result<()> {
42159        unsafe {
42160            (windows_core::Interface::vtable(self).SetDefaultDownloadDialogCornerAlignment)(
42161                windows_core::Interface::as_raw(self),
42162                value,
42163            )
42164            .ok()
42165        }
42166    }
42167    pub unsafe fn DefaultDownloadDialogMargin(
42168        &self,
42169        value: *mut windows::Win32::Foundation::POINT,
42170    ) -> windows_core::Result<()> {
42171        unsafe {
42172            (windows_core::Interface::vtable(self).DefaultDownloadDialogMargin)(
42173                windows_core::Interface::as_raw(self),
42174                value as _,
42175            )
42176            .ok()
42177        }
42178    }
42179    pub unsafe fn SetDefaultDownloadDialogMargin(
42180        &self,
42181        value: windows::Win32::Foundation::POINT,
42182    ) -> windows_core::Result<()> {
42183        unsafe {
42184            (windows_core::Interface::vtable(self).SetDefaultDownloadDialogMargin)(
42185                windows_core::Interface::as_raw(self),
42186                core::mem::transmute(value),
42187            )
42188            .ok()
42189        }
42190    }
42191}
42192#[repr(C)]
42193#[doc(hidden)]
42194pub struct ICoreWebView2_9_Vtbl {
42195    pub base__: ICoreWebView2_8_Vtbl,
42196    pub add_IsDefaultDownloadDialogOpenChanged: unsafe extern "system" fn(
42197        *mut core::ffi::c_void,
42198        *mut core::ffi::c_void,
42199        *mut i64,
42200    )
42201        -> windows_core::HRESULT,
42202    pub remove_IsDefaultDownloadDialogOpenChanged:
42203        unsafe extern "system" fn(*mut core::ffi::c_void, i64) -> windows_core::HRESULT,
42204    pub IsDefaultDownloadDialogOpen: unsafe extern "system" fn(
42205        *mut core::ffi::c_void,
42206        *mut windows_core::BOOL,
42207    ) -> windows_core::HRESULT,
42208    pub OpenDefaultDownloadDialog:
42209        unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
42210    pub CloseDefaultDownloadDialog:
42211        unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
42212    pub DefaultDownloadDialogCornerAlignment: unsafe extern "system" fn(
42213        *mut core::ffi::c_void,
42214        *mut COREWEBVIEW2_DEFAULT_DOWNLOAD_DIALOG_CORNER_ALIGNMENT,
42215    )
42216        -> windows_core::HRESULT,
42217    pub SetDefaultDownloadDialogCornerAlignment: unsafe extern "system" fn(
42218        *mut core::ffi::c_void,
42219        COREWEBVIEW2_DEFAULT_DOWNLOAD_DIALOG_CORNER_ALIGNMENT,
42220    )
42221        -> windows_core::HRESULT,
42222    pub DefaultDownloadDialogMargin: unsafe extern "system" fn(
42223        *mut core::ffi::c_void,
42224        *mut windows::Win32::Foundation::POINT,
42225    ) -> windows_core::HRESULT,
42226    pub SetDefaultDownloadDialogMargin: unsafe extern "system" fn(
42227        *mut core::ffi::c_void,
42228        windows::Win32::Foundation::POINT,
42229    ) -> windows_core::HRESULT,
42230}
42231pub trait ICoreWebView2_9_Impl: ICoreWebView2_8_Impl {
42232    fn add_IsDefaultDownloadDialogOpenChanged(
42233        &self,
42234        handler: windows_core::Ref<'_, ICoreWebView2IsDefaultDownloadDialogOpenChangedEventHandler>,
42235        token: *mut i64,
42236    ) -> windows_core::Result<()>;
42237    fn remove_IsDefaultDownloadDialogOpenChanged(&self, token: i64) -> windows_core::Result<()>;
42238    fn IsDefaultDownloadDialogOpen(
42239        &self,
42240        value: *mut windows_core::BOOL,
42241    ) -> windows_core::Result<()>;
42242    fn OpenDefaultDownloadDialog(&self) -> windows_core::Result<()>;
42243    fn CloseDefaultDownloadDialog(&self) -> windows_core::Result<()>;
42244    fn DefaultDownloadDialogCornerAlignment(
42245        &self,
42246        value: *mut COREWEBVIEW2_DEFAULT_DOWNLOAD_DIALOG_CORNER_ALIGNMENT,
42247    ) -> windows_core::Result<()>;
42248    fn SetDefaultDownloadDialogCornerAlignment(
42249        &self,
42250        value: COREWEBVIEW2_DEFAULT_DOWNLOAD_DIALOG_CORNER_ALIGNMENT,
42251    ) -> windows_core::Result<()>;
42252    fn DefaultDownloadDialogMargin(
42253        &self,
42254        value: *mut windows::Win32::Foundation::POINT,
42255    ) -> windows_core::Result<()>;
42256    fn SetDefaultDownloadDialogMargin(
42257        &self,
42258        value: &windows::Win32::Foundation::POINT,
42259    ) -> windows_core::Result<()>;
42260}
42261impl ICoreWebView2_9_Vtbl {
42262    pub const fn new<Identity: ICoreWebView2_9_Impl, const OFFSET: isize>() -> Self {
42263        unsafe extern "system" fn add_IsDefaultDownloadDialogOpenChanged<
42264            Identity: ICoreWebView2_9_Impl,
42265            const OFFSET: isize,
42266        >(
42267            this: *mut core::ffi::c_void,
42268            handler: *mut core::ffi::c_void,
42269            token: *mut i64,
42270        ) -> windows_core::HRESULT {
42271            unsafe {
42272                let this: &Identity =
42273                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
42274                ICoreWebView2_9_Impl::add_IsDefaultDownloadDialogOpenChanged(
42275                    this,
42276                    core::mem::transmute_copy(&handler),
42277                    core::mem::transmute_copy(&token),
42278                )
42279                .into()
42280            }
42281        }
42282        unsafe extern "system" fn remove_IsDefaultDownloadDialogOpenChanged<
42283            Identity: ICoreWebView2_9_Impl,
42284            const OFFSET: isize,
42285        >(
42286            this: *mut core::ffi::c_void,
42287            token: i64,
42288        ) -> windows_core::HRESULT {
42289            unsafe {
42290                let this: &Identity =
42291                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
42292                ICoreWebView2_9_Impl::remove_IsDefaultDownloadDialogOpenChanged(
42293                    this,
42294                    core::mem::transmute_copy(&token),
42295                )
42296                .into()
42297            }
42298        }
42299        unsafe extern "system" fn IsDefaultDownloadDialogOpen<
42300            Identity: ICoreWebView2_9_Impl,
42301            const OFFSET: isize,
42302        >(
42303            this: *mut core::ffi::c_void,
42304            value: *mut windows_core::BOOL,
42305        ) -> windows_core::HRESULT {
42306            unsafe {
42307                let this: &Identity =
42308                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
42309                ICoreWebView2_9_Impl::IsDefaultDownloadDialogOpen(
42310                    this,
42311                    core::mem::transmute_copy(&value),
42312                )
42313                .into()
42314            }
42315        }
42316        unsafe extern "system" fn OpenDefaultDownloadDialog<
42317            Identity: ICoreWebView2_9_Impl,
42318            const OFFSET: isize,
42319        >(
42320            this: *mut core::ffi::c_void,
42321        ) -> windows_core::HRESULT {
42322            unsafe {
42323                let this: &Identity =
42324                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
42325                ICoreWebView2_9_Impl::OpenDefaultDownloadDialog(this).into()
42326            }
42327        }
42328        unsafe extern "system" fn CloseDefaultDownloadDialog<
42329            Identity: ICoreWebView2_9_Impl,
42330            const OFFSET: isize,
42331        >(
42332            this: *mut core::ffi::c_void,
42333        ) -> windows_core::HRESULT {
42334            unsafe {
42335                let this: &Identity =
42336                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
42337                ICoreWebView2_9_Impl::CloseDefaultDownloadDialog(this).into()
42338            }
42339        }
42340        unsafe extern "system" fn DefaultDownloadDialogCornerAlignment<
42341            Identity: ICoreWebView2_9_Impl,
42342            const OFFSET: isize,
42343        >(
42344            this: *mut core::ffi::c_void,
42345            value: *mut COREWEBVIEW2_DEFAULT_DOWNLOAD_DIALOG_CORNER_ALIGNMENT,
42346        ) -> windows_core::HRESULT {
42347            unsafe {
42348                let this: &Identity =
42349                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
42350                ICoreWebView2_9_Impl::DefaultDownloadDialogCornerAlignment(
42351                    this,
42352                    core::mem::transmute_copy(&value),
42353                )
42354                .into()
42355            }
42356        }
42357        unsafe extern "system" fn SetDefaultDownloadDialogCornerAlignment<
42358            Identity: ICoreWebView2_9_Impl,
42359            const OFFSET: isize,
42360        >(
42361            this: *mut core::ffi::c_void,
42362            value: COREWEBVIEW2_DEFAULT_DOWNLOAD_DIALOG_CORNER_ALIGNMENT,
42363        ) -> windows_core::HRESULT {
42364            unsafe {
42365                let this: &Identity =
42366                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
42367                ICoreWebView2_9_Impl::SetDefaultDownloadDialogCornerAlignment(
42368                    this,
42369                    core::mem::transmute_copy(&value),
42370                )
42371                .into()
42372            }
42373        }
42374        unsafe extern "system" fn DefaultDownloadDialogMargin<
42375            Identity: ICoreWebView2_9_Impl,
42376            const OFFSET: isize,
42377        >(
42378            this: *mut core::ffi::c_void,
42379            value: *mut windows::Win32::Foundation::POINT,
42380        ) -> windows_core::HRESULT {
42381            unsafe {
42382                let this: &Identity =
42383                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
42384                ICoreWebView2_9_Impl::DefaultDownloadDialogMargin(
42385                    this,
42386                    core::mem::transmute_copy(&value),
42387                )
42388                .into()
42389            }
42390        }
42391        unsafe extern "system" fn SetDefaultDownloadDialogMargin<
42392            Identity: ICoreWebView2_9_Impl,
42393            const OFFSET: isize,
42394        >(
42395            this: *mut core::ffi::c_void,
42396            value: windows::Win32::Foundation::POINT,
42397        ) -> windows_core::HRESULT {
42398            unsafe {
42399                let this: &Identity =
42400                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
42401                ICoreWebView2_9_Impl::SetDefaultDownloadDialogMargin(
42402                    this,
42403                    core::mem::transmute(&value),
42404                )
42405                .into()
42406            }
42407        }
42408        Self {
42409            base__: ICoreWebView2_8_Vtbl::new::<Identity, OFFSET>(),
42410            add_IsDefaultDownloadDialogOpenChanged: add_IsDefaultDownloadDialogOpenChanged::<
42411                Identity,
42412                OFFSET,
42413            >,
42414            remove_IsDefaultDownloadDialogOpenChanged: remove_IsDefaultDownloadDialogOpenChanged::<
42415                Identity,
42416                OFFSET,
42417            >,
42418            IsDefaultDownloadDialogOpen: IsDefaultDownloadDialogOpen::<Identity, OFFSET>,
42419            OpenDefaultDownloadDialog: OpenDefaultDownloadDialog::<Identity, OFFSET>,
42420            CloseDefaultDownloadDialog: CloseDefaultDownloadDialog::<Identity, OFFSET>,
42421            DefaultDownloadDialogCornerAlignment: DefaultDownloadDialogCornerAlignment::<
42422                Identity,
42423                OFFSET,
42424            >,
42425            SetDefaultDownloadDialogCornerAlignment: SetDefaultDownloadDialogCornerAlignment::<
42426                Identity,
42427                OFFSET,
42428            >,
42429            DefaultDownloadDialogMargin: DefaultDownloadDialogMargin::<Identity, OFFSET>,
42430            SetDefaultDownloadDialogMargin: SetDefaultDownloadDialogMargin::<Identity, OFFSET>,
42431        }
42432    }
42433    pub fn matches(iid: &windows_core::GUID) -> bool {
42434        iid == &<ICoreWebView2_9 as windows_core::Interface>::IID
42435            || iid == &<ICoreWebView2 as windows_core::Interface>::IID
42436            || iid == &<ICoreWebView2_2 as windows_core::Interface>::IID
42437            || iid == &<ICoreWebView2_3 as windows_core::Interface>::IID
42438            || iid == &<ICoreWebView2_4 as windows_core::Interface>::IID
42439            || iid == &<ICoreWebView2_5 as windows_core::Interface>::IID
42440            || iid == &<ICoreWebView2_6 as windows_core::Interface>::IID
42441            || iid == &<ICoreWebView2_7 as windows_core::Interface>::IID
42442            || iid == &<ICoreWebView2_8 as windows_core::Interface>::IID
42443    }
42444}
42445impl windows_core::RuntimeName for ICoreWebView2_9 {}