Skip to main content

webview2/
bindings.rs

1// Bindings generated by `windows-bindgen` 0.66.0
2
3#![allow(
4    non_snake_case,
5    non_upper_case_globals,
6    non_camel_case_types,
7    dead_code,
8    clippy::all
9)]
10
11#[repr(transparent)]
12#[derive(Clone, Copy, Debug, Default, Eq, PartialEq)]
13pub struct COREWEBVIEW2_BOUNDS_MODE(pub i32);
14pub const COREWEBVIEW2_BOUNDS_MODE_USE_RASTERIZATION_SCALE: COREWEBVIEW2_BOUNDS_MODE =
15    COREWEBVIEW2_BOUNDS_MODE(1i32);
16pub const COREWEBVIEW2_BOUNDS_MODE_USE_RAW_PIXELS: COREWEBVIEW2_BOUNDS_MODE =
17    COREWEBVIEW2_BOUNDS_MODE(0i32);
18#[repr(transparent)]
19#[derive(Clone, Copy, Debug, Default, Eq, PartialEq)]
20pub struct COREWEBVIEW2_CAPTURE_PREVIEW_IMAGE_FORMAT(pub i32);
21pub const COREWEBVIEW2_CAPTURE_PREVIEW_IMAGE_FORMAT_JPEG:
22    COREWEBVIEW2_CAPTURE_PREVIEW_IMAGE_FORMAT = COREWEBVIEW2_CAPTURE_PREVIEW_IMAGE_FORMAT(1i32);
23pub const COREWEBVIEW2_CAPTURE_PREVIEW_IMAGE_FORMAT_PNG: COREWEBVIEW2_CAPTURE_PREVIEW_IMAGE_FORMAT =
24    COREWEBVIEW2_CAPTURE_PREVIEW_IMAGE_FORMAT(0i32);
25#[repr(C)]
26#[derive(Clone, Copy, Debug, Default, PartialEq)]
27pub struct COREWEBVIEW2_COLOR {
28    pub A: u8,
29    pub R: u8,
30    pub G: u8,
31    pub B: u8,
32}
33#[repr(transparent)]
34#[derive(Clone, Copy, Debug, Default, Eq, PartialEq)]
35pub struct COREWEBVIEW2_COOKIE_SAME_SITE_KIND(pub i32);
36pub const COREWEBVIEW2_COOKIE_SAME_SITE_KIND_LAX: COREWEBVIEW2_COOKIE_SAME_SITE_KIND =
37    COREWEBVIEW2_COOKIE_SAME_SITE_KIND(1i32);
38pub const COREWEBVIEW2_COOKIE_SAME_SITE_KIND_NONE: COREWEBVIEW2_COOKIE_SAME_SITE_KIND =
39    COREWEBVIEW2_COOKIE_SAME_SITE_KIND(0i32);
40pub const COREWEBVIEW2_COOKIE_SAME_SITE_KIND_STRICT: COREWEBVIEW2_COOKIE_SAME_SITE_KIND =
41    COREWEBVIEW2_COOKIE_SAME_SITE_KIND(2i32);
42#[repr(transparent)]
43#[derive(Clone, Copy, Debug, Default, Eq, PartialEq)]
44pub struct COREWEBVIEW2_HOST_RESOURCE_ACCESS_KIND(pub i32);
45pub const COREWEBVIEW2_HOST_RESOURCE_ACCESS_KIND_ALLOW: COREWEBVIEW2_HOST_RESOURCE_ACCESS_KIND =
46    COREWEBVIEW2_HOST_RESOURCE_ACCESS_KIND(1i32);
47pub const COREWEBVIEW2_HOST_RESOURCE_ACCESS_KIND_DENY: COREWEBVIEW2_HOST_RESOURCE_ACCESS_KIND =
48    COREWEBVIEW2_HOST_RESOURCE_ACCESS_KIND(0i32);
49pub const COREWEBVIEW2_HOST_RESOURCE_ACCESS_KIND_DENY_CORS: COREWEBVIEW2_HOST_RESOURCE_ACCESS_KIND =
50    COREWEBVIEW2_HOST_RESOURCE_ACCESS_KIND(2i32);
51#[repr(transparent)]
52#[derive(Clone, Copy, Debug, Default, Eq, PartialEq)]
53pub struct COREWEBVIEW2_KEY_EVENT_KIND(pub i32);
54pub const COREWEBVIEW2_KEY_EVENT_KIND_KEY_DOWN: COREWEBVIEW2_KEY_EVENT_KIND =
55    COREWEBVIEW2_KEY_EVENT_KIND(0i32);
56pub const COREWEBVIEW2_KEY_EVENT_KIND_KEY_UP: COREWEBVIEW2_KEY_EVENT_KIND =
57    COREWEBVIEW2_KEY_EVENT_KIND(1i32);
58pub const COREWEBVIEW2_KEY_EVENT_KIND_SYSTEM_KEY_DOWN: COREWEBVIEW2_KEY_EVENT_KIND =
59    COREWEBVIEW2_KEY_EVENT_KIND(2i32);
60pub const COREWEBVIEW2_KEY_EVENT_KIND_SYSTEM_KEY_UP: COREWEBVIEW2_KEY_EVENT_KIND =
61    COREWEBVIEW2_KEY_EVENT_KIND(3i32);
62#[repr(transparent)]
63#[derive(Clone, Copy, Debug, Default, Eq, PartialEq)]
64pub struct COREWEBVIEW2_MOUSE_EVENT_KIND(pub i32);
65pub const COREWEBVIEW2_MOUSE_EVENT_KIND_HORIZONTAL_WHEEL: COREWEBVIEW2_MOUSE_EVENT_KIND =
66    COREWEBVIEW2_MOUSE_EVENT_KIND(526i32);
67pub const COREWEBVIEW2_MOUSE_EVENT_KIND_LEAVE: COREWEBVIEW2_MOUSE_EVENT_KIND =
68    COREWEBVIEW2_MOUSE_EVENT_KIND(675i32);
69pub const COREWEBVIEW2_MOUSE_EVENT_KIND_LEFT_BUTTON_DOUBLE_CLICK: COREWEBVIEW2_MOUSE_EVENT_KIND =
70    COREWEBVIEW2_MOUSE_EVENT_KIND(515i32);
71pub const COREWEBVIEW2_MOUSE_EVENT_KIND_LEFT_BUTTON_DOWN: COREWEBVIEW2_MOUSE_EVENT_KIND =
72    COREWEBVIEW2_MOUSE_EVENT_KIND(513i32);
73pub const COREWEBVIEW2_MOUSE_EVENT_KIND_LEFT_BUTTON_UP: COREWEBVIEW2_MOUSE_EVENT_KIND =
74    COREWEBVIEW2_MOUSE_EVENT_KIND(514i32);
75pub const COREWEBVIEW2_MOUSE_EVENT_KIND_MIDDLE_BUTTON_DOUBLE_CLICK: COREWEBVIEW2_MOUSE_EVENT_KIND =
76    COREWEBVIEW2_MOUSE_EVENT_KIND(521i32);
77pub const COREWEBVIEW2_MOUSE_EVENT_KIND_MIDDLE_BUTTON_DOWN: COREWEBVIEW2_MOUSE_EVENT_KIND =
78    COREWEBVIEW2_MOUSE_EVENT_KIND(519i32);
79pub const COREWEBVIEW2_MOUSE_EVENT_KIND_MIDDLE_BUTTON_UP: COREWEBVIEW2_MOUSE_EVENT_KIND =
80    COREWEBVIEW2_MOUSE_EVENT_KIND(520i32);
81pub const COREWEBVIEW2_MOUSE_EVENT_KIND_MOVE: COREWEBVIEW2_MOUSE_EVENT_KIND =
82    COREWEBVIEW2_MOUSE_EVENT_KIND(512i32);
83pub const COREWEBVIEW2_MOUSE_EVENT_KIND_RIGHT_BUTTON_DOUBLE_CLICK: COREWEBVIEW2_MOUSE_EVENT_KIND =
84    COREWEBVIEW2_MOUSE_EVENT_KIND(518i32);
85pub const COREWEBVIEW2_MOUSE_EVENT_KIND_RIGHT_BUTTON_DOWN: COREWEBVIEW2_MOUSE_EVENT_KIND =
86    COREWEBVIEW2_MOUSE_EVENT_KIND(516i32);
87pub const COREWEBVIEW2_MOUSE_EVENT_KIND_RIGHT_BUTTON_UP: COREWEBVIEW2_MOUSE_EVENT_KIND =
88    COREWEBVIEW2_MOUSE_EVENT_KIND(517i32);
89pub const COREWEBVIEW2_MOUSE_EVENT_KIND_WHEEL: COREWEBVIEW2_MOUSE_EVENT_KIND =
90    COREWEBVIEW2_MOUSE_EVENT_KIND(522i32);
91pub const COREWEBVIEW2_MOUSE_EVENT_KIND_X_BUTTON_DOUBLE_CLICK: COREWEBVIEW2_MOUSE_EVENT_KIND =
92    COREWEBVIEW2_MOUSE_EVENT_KIND(525i32);
93pub const COREWEBVIEW2_MOUSE_EVENT_KIND_X_BUTTON_DOWN: COREWEBVIEW2_MOUSE_EVENT_KIND =
94    COREWEBVIEW2_MOUSE_EVENT_KIND(523i32);
95pub const COREWEBVIEW2_MOUSE_EVENT_KIND_X_BUTTON_UP: COREWEBVIEW2_MOUSE_EVENT_KIND =
96    COREWEBVIEW2_MOUSE_EVENT_KIND(524i32);
97#[repr(transparent)]
98#[derive(Clone, Copy, Debug, Default, Eq, PartialEq)]
99pub struct COREWEBVIEW2_MOUSE_EVENT_VIRTUAL_KEYS(pub i32);
100impl COREWEBVIEW2_MOUSE_EVENT_VIRTUAL_KEYS {
101    pub const fn contains(&self, other: Self) -> bool {
102        self.0 & other.0 == other.0
103    }
104}
105impl core::ops::BitOr for COREWEBVIEW2_MOUSE_EVENT_VIRTUAL_KEYS {
106    type Output = Self;
107    fn bitor(self, other: Self) -> Self {
108        Self(self.0 | other.0)
109    }
110}
111impl core::ops::BitAnd for COREWEBVIEW2_MOUSE_EVENT_VIRTUAL_KEYS {
112    type Output = Self;
113    fn bitand(self, other: Self) -> Self {
114        Self(self.0 & other.0)
115    }
116}
117impl core::ops::BitOrAssign for COREWEBVIEW2_MOUSE_EVENT_VIRTUAL_KEYS {
118    fn bitor_assign(&mut self, other: Self) {
119        self.0.bitor_assign(other.0)
120    }
121}
122impl core::ops::BitAndAssign for COREWEBVIEW2_MOUSE_EVENT_VIRTUAL_KEYS {
123    fn bitand_assign(&mut self, other: Self) {
124        self.0.bitand_assign(other.0)
125    }
126}
127impl core::ops::Not for COREWEBVIEW2_MOUSE_EVENT_VIRTUAL_KEYS {
128    type Output = Self;
129    fn not(self) -> Self {
130        Self(self.0.not())
131    }
132}
133pub const COREWEBVIEW2_MOUSE_EVENT_VIRTUAL_KEYS_CONTROL: COREWEBVIEW2_MOUSE_EVENT_VIRTUAL_KEYS =
134    COREWEBVIEW2_MOUSE_EVENT_VIRTUAL_KEYS(8i32);
135pub const COREWEBVIEW2_MOUSE_EVENT_VIRTUAL_KEYS_LEFT_BUTTON: COREWEBVIEW2_MOUSE_EVENT_VIRTUAL_KEYS =
136    COREWEBVIEW2_MOUSE_EVENT_VIRTUAL_KEYS(1i32);
137pub const COREWEBVIEW2_MOUSE_EVENT_VIRTUAL_KEYS_MIDDLE_BUTTON:
138    COREWEBVIEW2_MOUSE_EVENT_VIRTUAL_KEYS = COREWEBVIEW2_MOUSE_EVENT_VIRTUAL_KEYS(16i32);
139pub const COREWEBVIEW2_MOUSE_EVENT_VIRTUAL_KEYS_NONE: COREWEBVIEW2_MOUSE_EVENT_VIRTUAL_KEYS =
140    COREWEBVIEW2_MOUSE_EVENT_VIRTUAL_KEYS(0i32);
141pub const COREWEBVIEW2_MOUSE_EVENT_VIRTUAL_KEYS_RIGHT_BUTTON:
142    COREWEBVIEW2_MOUSE_EVENT_VIRTUAL_KEYS = COREWEBVIEW2_MOUSE_EVENT_VIRTUAL_KEYS(2i32);
143pub const COREWEBVIEW2_MOUSE_EVENT_VIRTUAL_KEYS_SHIFT: COREWEBVIEW2_MOUSE_EVENT_VIRTUAL_KEYS =
144    COREWEBVIEW2_MOUSE_EVENT_VIRTUAL_KEYS(4i32);
145pub const COREWEBVIEW2_MOUSE_EVENT_VIRTUAL_KEYS_X_BUTTON1: COREWEBVIEW2_MOUSE_EVENT_VIRTUAL_KEYS =
146    COREWEBVIEW2_MOUSE_EVENT_VIRTUAL_KEYS(32i32);
147pub const COREWEBVIEW2_MOUSE_EVENT_VIRTUAL_KEYS_X_BUTTON2: COREWEBVIEW2_MOUSE_EVENT_VIRTUAL_KEYS =
148    COREWEBVIEW2_MOUSE_EVENT_VIRTUAL_KEYS(64i32);
149#[repr(transparent)]
150#[derive(Clone, Copy, Debug, Default, Eq, PartialEq)]
151pub struct COREWEBVIEW2_MOVE_FOCUS_REASON(pub i32);
152pub const COREWEBVIEW2_MOVE_FOCUS_REASON_NEXT: COREWEBVIEW2_MOVE_FOCUS_REASON =
153    COREWEBVIEW2_MOVE_FOCUS_REASON(1i32);
154pub const COREWEBVIEW2_MOVE_FOCUS_REASON_PREVIOUS: COREWEBVIEW2_MOVE_FOCUS_REASON =
155    COREWEBVIEW2_MOVE_FOCUS_REASON(2i32);
156pub const COREWEBVIEW2_MOVE_FOCUS_REASON_PROGRAMMATIC: COREWEBVIEW2_MOVE_FOCUS_REASON =
157    COREWEBVIEW2_MOVE_FOCUS_REASON(0i32);
158#[repr(transparent)]
159#[derive(Clone, Copy, Debug, Default, Eq, PartialEq)]
160pub struct COREWEBVIEW2_PERMISSION_KIND(pub i32);
161pub const COREWEBVIEW2_PERMISSION_KIND_CAMERA: COREWEBVIEW2_PERMISSION_KIND =
162    COREWEBVIEW2_PERMISSION_KIND(2i32);
163pub const COREWEBVIEW2_PERMISSION_KIND_CLIPBOARD_READ: COREWEBVIEW2_PERMISSION_KIND =
164    COREWEBVIEW2_PERMISSION_KIND(6i32);
165pub const COREWEBVIEW2_PERMISSION_KIND_GEOLOCATION: COREWEBVIEW2_PERMISSION_KIND =
166    COREWEBVIEW2_PERMISSION_KIND(3i32);
167pub const COREWEBVIEW2_PERMISSION_KIND_MICROPHONE: COREWEBVIEW2_PERMISSION_KIND =
168    COREWEBVIEW2_PERMISSION_KIND(1i32);
169pub const COREWEBVIEW2_PERMISSION_KIND_NOTIFICATIONS: COREWEBVIEW2_PERMISSION_KIND =
170    COREWEBVIEW2_PERMISSION_KIND(4i32);
171pub const COREWEBVIEW2_PERMISSION_KIND_OTHER_SENSORS: COREWEBVIEW2_PERMISSION_KIND =
172    COREWEBVIEW2_PERMISSION_KIND(5i32);
173pub const COREWEBVIEW2_PERMISSION_KIND_UNKNOWN_PERMISSION: COREWEBVIEW2_PERMISSION_KIND =
174    COREWEBVIEW2_PERMISSION_KIND(0i32);
175#[repr(transparent)]
176#[derive(Clone, Copy, Debug, Default, Eq, PartialEq)]
177pub struct COREWEBVIEW2_PERMISSION_STATE(pub i32);
178pub const COREWEBVIEW2_PERMISSION_STATE_ALLOW: COREWEBVIEW2_PERMISSION_STATE =
179    COREWEBVIEW2_PERMISSION_STATE(1i32);
180pub const COREWEBVIEW2_PERMISSION_STATE_DEFAULT: COREWEBVIEW2_PERMISSION_STATE =
181    COREWEBVIEW2_PERMISSION_STATE(0i32);
182pub const COREWEBVIEW2_PERMISSION_STATE_DENY: COREWEBVIEW2_PERMISSION_STATE =
183    COREWEBVIEW2_PERMISSION_STATE(2i32);
184#[repr(C)]
185#[derive(Clone, Copy, Debug, Default, PartialEq)]
186pub struct COREWEBVIEW2_PHYSICAL_KEY_STATUS {
187    pub RepeatCount: u32,
188    pub ScanCode: u32,
189    pub IsExtendedKey: windows_core::BOOL,
190    pub IsMenuKeyDown: windows_core::BOOL,
191    pub WasKeyDown: windows_core::BOOL,
192    pub IsKeyReleased: windows_core::BOOL,
193}
194#[repr(transparent)]
195#[derive(Clone, Copy, Debug, Default, Eq, PartialEq)]
196pub struct COREWEBVIEW2_POINTER_EVENT_KIND(pub i32);
197pub const COREWEBVIEW2_POINTER_EVENT_KIND_ACTIVATE: COREWEBVIEW2_POINTER_EVENT_KIND =
198    COREWEBVIEW2_POINTER_EVENT_KIND(587i32);
199pub const COREWEBVIEW2_POINTER_EVENT_KIND_DOWN: COREWEBVIEW2_POINTER_EVENT_KIND =
200    COREWEBVIEW2_POINTER_EVENT_KIND(582i32);
201pub const COREWEBVIEW2_POINTER_EVENT_KIND_ENTER: COREWEBVIEW2_POINTER_EVENT_KIND =
202    COREWEBVIEW2_POINTER_EVENT_KIND(585i32);
203pub const COREWEBVIEW2_POINTER_EVENT_KIND_LEAVE: COREWEBVIEW2_POINTER_EVENT_KIND =
204    COREWEBVIEW2_POINTER_EVENT_KIND(586i32);
205pub const COREWEBVIEW2_POINTER_EVENT_KIND_UP: COREWEBVIEW2_POINTER_EVENT_KIND =
206    COREWEBVIEW2_POINTER_EVENT_KIND(583i32);
207pub const COREWEBVIEW2_POINTER_EVENT_KIND_UPDATE: COREWEBVIEW2_POINTER_EVENT_KIND =
208    COREWEBVIEW2_POINTER_EVENT_KIND(581i32);
209#[repr(transparent)]
210#[derive(Clone, Copy, Debug, Default, Eq, PartialEq)]
211pub struct COREWEBVIEW2_PROCESS_FAILED_KIND(pub i32);
212pub const COREWEBVIEW2_PROCESS_FAILED_KIND_BROWSER_PROCESS_EXITED:
213    COREWEBVIEW2_PROCESS_FAILED_KIND = COREWEBVIEW2_PROCESS_FAILED_KIND(0i32);
214pub const COREWEBVIEW2_PROCESS_FAILED_KIND_FRAME_RENDER_PROCESS_EXITED:
215    COREWEBVIEW2_PROCESS_FAILED_KIND = COREWEBVIEW2_PROCESS_FAILED_KIND(3i32);
216pub const COREWEBVIEW2_PROCESS_FAILED_KIND_GPU_PROCESS_EXITED: COREWEBVIEW2_PROCESS_FAILED_KIND =
217    COREWEBVIEW2_PROCESS_FAILED_KIND(6i32);
218pub const COREWEBVIEW2_PROCESS_FAILED_KIND_PPAPI_BROKER_PROCESS_EXITED:
219    COREWEBVIEW2_PROCESS_FAILED_KIND = COREWEBVIEW2_PROCESS_FAILED_KIND(8i32);
220pub const COREWEBVIEW2_PROCESS_FAILED_KIND_PPAPI_PLUGIN_PROCESS_EXITED:
221    COREWEBVIEW2_PROCESS_FAILED_KIND = COREWEBVIEW2_PROCESS_FAILED_KIND(7i32);
222pub const COREWEBVIEW2_PROCESS_FAILED_KIND_RENDER_PROCESS_EXITED: COREWEBVIEW2_PROCESS_FAILED_KIND =
223    COREWEBVIEW2_PROCESS_FAILED_KIND(1i32);
224pub const COREWEBVIEW2_PROCESS_FAILED_KIND_RENDER_PROCESS_UNRESPONSIVE:
225    COREWEBVIEW2_PROCESS_FAILED_KIND = COREWEBVIEW2_PROCESS_FAILED_KIND(2i32);
226pub const COREWEBVIEW2_PROCESS_FAILED_KIND_SANDBOX_HELPER_PROCESS_EXITED:
227    COREWEBVIEW2_PROCESS_FAILED_KIND = COREWEBVIEW2_PROCESS_FAILED_KIND(5i32);
228pub const COREWEBVIEW2_PROCESS_FAILED_KIND_UNKNOWN_PROCESS_EXITED:
229    COREWEBVIEW2_PROCESS_FAILED_KIND = COREWEBVIEW2_PROCESS_FAILED_KIND(9i32);
230pub const COREWEBVIEW2_PROCESS_FAILED_KIND_UTILITY_PROCESS_EXITED:
231    COREWEBVIEW2_PROCESS_FAILED_KIND = COREWEBVIEW2_PROCESS_FAILED_KIND(4i32);
232#[repr(transparent)]
233#[derive(Clone, Copy, Debug, Default, Eq, PartialEq)]
234pub struct COREWEBVIEW2_PROCESS_FAILED_REASON(pub i32);
235pub const COREWEBVIEW2_PROCESS_FAILED_REASON_CRASHED: COREWEBVIEW2_PROCESS_FAILED_REASON =
236    COREWEBVIEW2_PROCESS_FAILED_REASON(3i32);
237pub const COREWEBVIEW2_PROCESS_FAILED_REASON_LAUNCH_FAILED: COREWEBVIEW2_PROCESS_FAILED_REASON =
238    COREWEBVIEW2_PROCESS_FAILED_REASON(4i32);
239pub const COREWEBVIEW2_PROCESS_FAILED_REASON_OUT_OF_MEMORY: COREWEBVIEW2_PROCESS_FAILED_REASON =
240    COREWEBVIEW2_PROCESS_FAILED_REASON(5i32);
241pub const COREWEBVIEW2_PROCESS_FAILED_REASON_TERMINATED: COREWEBVIEW2_PROCESS_FAILED_REASON =
242    COREWEBVIEW2_PROCESS_FAILED_REASON(2i32);
243pub const COREWEBVIEW2_PROCESS_FAILED_REASON_UNEXPECTED: COREWEBVIEW2_PROCESS_FAILED_REASON =
244    COREWEBVIEW2_PROCESS_FAILED_REASON(0i32);
245pub const COREWEBVIEW2_PROCESS_FAILED_REASON_UNRESPONSIVE: COREWEBVIEW2_PROCESS_FAILED_REASON =
246    COREWEBVIEW2_PROCESS_FAILED_REASON(1i32);
247#[repr(transparent)]
248#[derive(Clone, Copy, Debug, Default, Eq, PartialEq)]
249pub struct COREWEBVIEW2_SCRIPT_DIALOG_KIND(pub i32);
250pub const COREWEBVIEW2_SCRIPT_DIALOG_KIND_ALERT: COREWEBVIEW2_SCRIPT_DIALOG_KIND =
251    COREWEBVIEW2_SCRIPT_DIALOG_KIND(0i32);
252pub const COREWEBVIEW2_SCRIPT_DIALOG_KIND_BEFOREUNLOAD: COREWEBVIEW2_SCRIPT_DIALOG_KIND =
253    COREWEBVIEW2_SCRIPT_DIALOG_KIND(3i32);
254pub const COREWEBVIEW2_SCRIPT_DIALOG_KIND_CONFIRM: COREWEBVIEW2_SCRIPT_DIALOG_KIND =
255    COREWEBVIEW2_SCRIPT_DIALOG_KIND(1i32);
256pub const COREWEBVIEW2_SCRIPT_DIALOG_KIND_PROMPT: COREWEBVIEW2_SCRIPT_DIALOG_KIND =
257    COREWEBVIEW2_SCRIPT_DIALOG_KIND(2i32);
258#[repr(transparent)]
259#[derive(Clone, Copy, Debug, Default, Eq, PartialEq)]
260pub struct COREWEBVIEW2_WEB_ERROR_STATUS(pub i32);
261pub const COREWEBVIEW2_WEB_ERROR_STATUS_CANNOT_CONNECT: COREWEBVIEW2_WEB_ERROR_STATUS =
262    COREWEBVIEW2_WEB_ERROR_STATUS(12i32);
263pub const COREWEBVIEW2_WEB_ERROR_STATUS_CERTIFICATE_COMMON_NAME_IS_INCORRECT:
264    COREWEBVIEW2_WEB_ERROR_STATUS = COREWEBVIEW2_WEB_ERROR_STATUS(1i32);
265pub const COREWEBVIEW2_WEB_ERROR_STATUS_CERTIFICATE_EXPIRED: COREWEBVIEW2_WEB_ERROR_STATUS =
266    COREWEBVIEW2_WEB_ERROR_STATUS(2i32);
267pub const COREWEBVIEW2_WEB_ERROR_STATUS_CERTIFICATE_IS_INVALID: COREWEBVIEW2_WEB_ERROR_STATUS =
268    COREWEBVIEW2_WEB_ERROR_STATUS(5i32);
269pub const COREWEBVIEW2_WEB_ERROR_STATUS_CERTIFICATE_REVOKED: COREWEBVIEW2_WEB_ERROR_STATUS =
270    COREWEBVIEW2_WEB_ERROR_STATUS(4i32);
271pub const COREWEBVIEW2_WEB_ERROR_STATUS_CLIENT_CERTIFICATE_CONTAINS_ERRORS:
272    COREWEBVIEW2_WEB_ERROR_STATUS = COREWEBVIEW2_WEB_ERROR_STATUS(3i32);
273pub const COREWEBVIEW2_WEB_ERROR_STATUS_CONNECTION_ABORTED: COREWEBVIEW2_WEB_ERROR_STATUS =
274    COREWEBVIEW2_WEB_ERROR_STATUS(9i32);
275pub const COREWEBVIEW2_WEB_ERROR_STATUS_CONNECTION_RESET: COREWEBVIEW2_WEB_ERROR_STATUS =
276    COREWEBVIEW2_WEB_ERROR_STATUS(10i32);
277pub const COREWEBVIEW2_WEB_ERROR_STATUS_DISCONNECTED: COREWEBVIEW2_WEB_ERROR_STATUS =
278    COREWEBVIEW2_WEB_ERROR_STATUS(11i32);
279pub const COREWEBVIEW2_WEB_ERROR_STATUS_ERROR_HTTP_INVALID_SERVER_RESPONSE:
280    COREWEBVIEW2_WEB_ERROR_STATUS = COREWEBVIEW2_WEB_ERROR_STATUS(8i32);
281pub const COREWEBVIEW2_WEB_ERROR_STATUS_HOST_NAME_NOT_RESOLVED: COREWEBVIEW2_WEB_ERROR_STATUS =
282    COREWEBVIEW2_WEB_ERROR_STATUS(13i32);
283pub const COREWEBVIEW2_WEB_ERROR_STATUS_OPERATION_CANCELED: COREWEBVIEW2_WEB_ERROR_STATUS =
284    COREWEBVIEW2_WEB_ERROR_STATUS(14i32);
285pub const COREWEBVIEW2_WEB_ERROR_STATUS_REDIRECT_FAILED: COREWEBVIEW2_WEB_ERROR_STATUS =
286    COREWEBVIEW2_WEB_ERROR_STATUS(15i32);
287pub const COREWEBVIEW2_WEB_ERROR_STATUS_SERVER_UNREACHABLE: COREWEBVIEW2_WEB_ERROR_STATUS =
288    COREWEBVIEW2_WEB_ERROR_STATUS(6i32);
289pub const COREWEBVIEW2_WEB_ERROR_STATUS_TIMEOUT: COREWEBVIEW2_WEB_ERROR_STATUS =
290    COREWEBVIEW2_WEB_ERROR_STATUS(7i32);
291pub const COREWEBVIEW2_WEB_ERROR_STATUS_UNEXPECTED_ERROR: COREWEBVIEW2_WEB_ERROR_STATUS =
292    COREWEBVIEW2_WEB_ERROR_STATUS(16i32);
293pub const COREWEBVIEW2_WEB_ERROR_STATUS_UNKNOWN: COREWEBVIEW2_WEB_ERROR_STATUS =
294    COREWEBVIEW2_WEB_ERROR_STATUS(0i32);
295#[repr(transparent)]
296#[derive(Clone, Copy, Debug, Default, Eq, PartialEq)]
297pub struct COREWEBVIEW2_WEB_RESOURCE_CONTEXT(pub i32);
298pub const COREWEBVIEW2_WEB_RESOURCE_CONTEXT_ALL: COREWEBVIEW2_WEB_RESOURCE_CONTEXT =
299    COREWEBVIEW2_WEB_RESOURCE_CONTEXT(0i32);
300pub const COREWEBVIEW2_WEB_RESOURCE_CONTEXT_CSP_VIOLATION_REPORT:
301    COREWEBVIEW2_WEB_RESOURCE_CONTEXT = COREWEBVIEW2_WEB_RESOURCE_CONTEXT(15i32);
302pub const COREWEBVIEW2_WEB_RESOURCE_CONTEXT_DOCUMENT: COREWEBVIEW2_WEB_RESOURCE_CONTEXT =
303    COREWEBVIEW2_WEB_RESOURCE_CONTEXT(1i32);
304pub const COREWEBVIEW2_WEB_RESOURCE_CONTEXT_EVENT_SOURCE: COREWEBVIEW2_WEB_RESOURCE_CONTEXT =
305    COREWEBVIEW2_WEB_RESOURCE_CONTEXT(10i32);
306pub const COREWEBVIEW2_WEB_RESOURCE_CONTEXT_FETCH: COREWEBVIEW2_WEB_RESOURCE_CONTEXT =
307    COREWEBVIEW2_WEB_RESOURCE_CONTEXT(8i32);
308pub const COREWEBVIEW2_WEB_RESOURCE_CONTEXT_FONT: COREWEBVIEW2_WEB_RESOURCE_CONTEXT =
309    COREWEBVIEW2_WEB_RESOURCE_CONTEXT(5i32);
310pub const COREWEBVIEW2_WEB_RESOURCE_CONTEXT_IMAGE: COREWEBVIEW2_WEB_RESOURCE_CONTEXT =
311    COREWEBVIEW2_WEB_RESOURCE_CONTEXT(3i32);
312pub const COREWEBVIEW2_WEB_RESOURCE_CONTEXT_MANIFEST: COREWEBVIEW2_WEB_RESOURCE_CONTEXT =
313    COREWEBVIEW2_WEB_RESOURCE_CONTEXT(12i32);
314pub const COREWEBVIEW2_WEB_RESOURCE_CONTEXT_MEDIA: COREWEBVIEW2_WEB_RESOURCE_CONTEXT =
315    COREWEBVIEW2_WEB_RESOURCE_CONTEXT(4i32);
316pub const COREWEBVIEW2_WEB_RESOURCE_CONTEXT_OTHER: COREWEBVIEW2_WEB_RESOURCE_CONTEXT =
317    COREWEBVIEW2_WEB_RESOURCE_CONTEXT(16i32);
318pub const COREWEBVIEW2_WEB_RESOURCE_CONTEXT_PING: COREWEBVIEW2_WEB_RESOURCE_CONTEXT =
319    COREWEBVIEW2_WEB_RESOURCE_CONTEXT(14i32);
320pub const COREWEBVIEW2_WEB_RESOURCE_CONTEXT_SCRIPT: COREWEBVIEW2_WEB_RESOURCE_CONTEXT =
321    COREWEBVIEW2_WEB_RESOURCE_CONTEXT(6i32);
322pub const COREWEBVIEW2_WEB_RESOURCE_CONTEXT_SIGNED_EXCHANGE: COREWEBVIEW2_WEB_RESOURCE_CONTEXT =
323    COREWEBVIEW2_WEB_RESOURCE_CONTEXT(13i32);
324pub const COREWEBVIEW2_WEB_RESOURCE_CONTEXT_STYLESHEET: COREWEBVIEW2_WEB_RESOURCE_CONTEXT =
325    COREWEBVIEW2_WEB_RESOURCE_CONTEXT(2i32);
326pub const COREWEBVIEW2_WEB_RESOURCE_CONTEXT_TEXT_TRACK: COREWEBVIEW2_WEB_RESOURCE_CONTEXT =
327    COREWEBVIEW2_WEB_RESOURCE_CONTEXT(9i32);
328pub const COREWEBVIEW2_WEB_RESOURCE_CONTEXT_WEBSOCKET: COREWEBVIEW2_WEB_RESOURCE_CONTEXT =
329    COREWEBVIEW2_WEB_RESOURCE_CONTEXT(11i32);
330pub const COREWEBVIEW2_WEB_RESOURCE_CONTEXT_XML_HTTP_REQUEST: COREWEBVIEW2_WEB_RESOURCE_CONTEXT =
331    COREWEBVIEW2_WEB_RESOURCE_CONTEXT(7i32);
332windows_core::imp::define_interface!(
333    ICoreWebView2,
334    ICoreWebView2_Vtbl,
335    0x76eceacb_0462_4d94_ac83_423a6793775e
336);
337windows_core::imp::interface_hierarchy!(ICoreWebView2, windows_core::IUnknown);
338impl ICoreWebView2 {
339    pub unsafe fn Settings(&self) -> windows_core::Result<ICoreWebView2Settings> {
340        unsafe {
341            let mut result__ = core::mem::zeroed();
342            (windows_core::Interface::vtable(self).Settings)(
343                windows_core::Interface::as_raw(self),
344                &mut result__,
345            )
346            .and_then(|| windows_core::Type::from_abi(result__))
347        }
348    }
349    pub unsafe fn Source(&self) -> windows_core::Result<windows_core::PWSTR> {
350        unsafe {
351            let mut result__ = core::mem::zeroed();
352            (windows_core::Interface::vtable(self).Source)(
353                windows_core::Interface::as_raw(self),
354                &mut result__,
355            )
356            .map(|| result__)
357        }
358    }
359    pub unsafe fn Navigate<P0>(&self, uri: P0) -> windows_core::Result<()>
360    where
361        P0: windows_core::Param<windows_core::PCWSTR>,
362    {
363        unsafe {
364            (windows_core::Interface::vtable(self).Navigate)(
365                windows_core::Interface::as_raw(self),
366                uri.param().abi(),
367            )
368            .ok()
369        }
370    }
371    pub unsafe fn NavigateToString<P0>(&self, htmlcontent: P0) -> windows_core::Result<()>
372    where
373        P0: windows_core::Param<windows_core::PCWSTR>,
374    {
375        unsafe {
376            (windows_core::Interface::vtable(self).NavigateToString)(
377                windows_core::Interface::as_raw(self),
378                htmlcontent.param().abi(),
379            )
380            .ok()
381        }
382    }
383    pub unsafe fn NavigationStarting<P0>(&self, eventhandler: P0) -> windows_core::Result<i64>
384    where
385        P0: windows_core::Param<ICoreWebView2NavigationStartingEventHandler>,
386    {
387        unsafe {
388            let mut result__ = core::mem::zeroed();
389            (windows_core::Interface::vtable(self).NavigationStarting)(
390                windows_core::Interface::as_raw(self),
391                eventhandler.param().abi(),
392                &mut result__,
393            )
394            .map(|| result__)
395        }
396    }
397    pub unsafe fn RemoveNavigationStarting(&self, token: i64) -> windows_core::Result<()> {
398        unsafe {
399            (windows_core::Interface::vtable(self).RemoveNavigationStarting)(
400                windows_core::Interface::as_raw(self),
401                token,
402            )
403            .ok()
404        }
405    }
406    pub unsafe fn ContentLoading<P0>(&self, eventhandler: P0) -> windows_core::Result<i64>
407    where
408        P0: windows_core::Param<ICoreWebView2ContentLoadingEventHandler>,
409    {
410        unsafe {
411            let mut result__ = core::mem::zeroed();
412            (windows_core::Interface::vtable(self).ContentLoading)(
413                windows_core::Interface::as_raw(self),
414                eventhandler.param().abi(),
415                &mut result__,
416            )
417            .map(|| result__)
418        }
419    }
420    pub unsafe fn RemoveContentLoading(&self, token: i64) -> windows_core::Result<()> {
421        unsafe {
422            (windows_core::Interface::vtable(self).RemoveContentLoading)(
423                windows_core::Interface::as_raw(self),
424                token,
425            )
426            .ok()
427        }
428    }
429    pub unsafe fn SourceChanged<P0>(&self, eventhandler: P0) -> windows_core::Result<i64>
430    where
431        P0: windows_core::Param<ICoreWebView2SourceChangedEventHandler>,
432    {
433        unsafe {
434            let mut result__ = core::mem::zeroed();
435            (windows_core::Interface::vtable(self).SourceChanged)(
436                windows_core::Interface::as_raw(self),
437                eventhandler.param().abi(),
438                &mut result__,
439            )
440            .map(|| result__)
441        }
442    }
443    pub unsafe fn RemoveSourceChanged(&self, token: i64) -> windows_core::Result<()> {
444        unsafe {
445            (windows_core::Interface::vtable(self).RemoveSourceChanged)(
446                windows_core::Interface::as_raw(self),
447                token,
448            )
449            .ok()
450        }
451    }
452    pub unsafe fn HistoryChanged<P0>(&self, eventhandler: P0) -> windows_core::Result<i64>
453    where
454        P0: windows_core::Param<ICoreWebView2HistoryChangedEventHandler>,
455    {
456        unsafe {
457            let mut result__ = core::mem::zeroed();
458            (windows_core::Interface::vtable(self).HistoryChanged)(
459                windows_core::Interface::as_raw(self),
460                eventhandler.param().abi(),
461                &mut result__,
462            )
463            .map(|| result__)
464        }
465    }
466    pub unsafe fn RemoveHistoryChanged(&self, token: i64) -> windows_core::Result<()> {
467        unsafe {
468            (windows_core::Interface::vtable(self).RemoveHistoryChanged)(
469                windows_core::Interface::as_raw(self),
470                token,
471            )
472            .ok()
473        }
474    }
475    pub unsafe fn NavigationCompleted<P0>(&self, eventhandler: P0) -> windows_core::Result<i64>
476    where
477        P0: windows_core::Param<ICoreWebView2NavigationCompletedEventHandler>,
478    {
479        unsafe {
480            let mut result__ = core::mem::zeroed();
481            (windows_core::Interface::vtable(self).NavigationCompleted)(
482                windows_core::Interface::as_raw(self),
483                eventhandler.param().abi(),
484                &mut result__,
485            )
486            .map(|| result__)
487        }
488    }
489    pub unsafe fn RemoveNavigationCompleted(&self, token: i64) -> windows_core::Result<()> {
490        unsafe {
491            (windows_core::Interface::vtable(self).RemoveNavigationCompleted)(
492                windows_core::Interface::as_raw(self),
493                token,
494            )
495            .ok()
496        }
497    }
498    pub unsafe fn FrameNavigationStarting<P0>(&self, eventhandler: P0) -> windows_core::Result<i64>
499    where
500        P0: windows_core::Param<ICoreWebView2NavigationStartingEventHandler>,
501    {
502        unsafe {
503            let mut result__ = core::mem::zeroed();
504            (windows_core::Interface::vtable(self).FrameNavigationStarting)(
505                windows_core::Interface::as_raw(self),
506                eventhandler.param().abi(),
507                &mut result__,
508            )
509            .map(|| result__)
510        }
511    }
512    pub unsafe fn RemoveFrameNavigationStarting(&self, token: i64) -> windows_core::Result<()> {
513        unsafe {
514            (windows_core::Interface::vtable(self).RemoveFrameNavigationStarting)(
515                windows_core::Interface::as_raw(self),
516                token,
517            )
518            .ok()
519        }
520    }
521    pub unsafe fn FrameNavigationCompleted<P0>(&self, eventhandler: P0) -> windows_core::Result<i64>
522    where
523        P0: windows_core::Param<ICoreWebView2NavigationCompletedEventHandler>,
524    {
525        unsafe {
526            let mut result__ = core::mem::zeroed();
527            (windows_core::Interface::vtable(self).FrameNavigationCompleted)(
528                windows_core::Interface::as_raw(self),
529                eventhandler.param().abi(),
530                &mut result__,
531            )
532            .map(|| result__)
533        }
534    }
535    pub unsafe fn RemoveFrameNavigationCompleted(&self, token: i64) -> windows_core::Result<()> {
536        unsafe {
537            (windows_core::Interface::vtable(self).RemoveFrameNavigationCompleted)(
538                windows_core::Interface::as_raw(self),
539                token,
540            )
541            .ok()
542        }
543    }
544    pub unsafe fn ScriptDialogOpening<P0>(&self, eventhandler: P0) -> windows_core::Result<i64>
545    where
546        P0: windows_core::Param<ICoreWebView2ScriptDialogOpeningEventHandler>,
547    {
548        unsafe {
549            let mut result__ = core::mem::zeroed();
550            (windows_core::Interface::vtable(self).ScriptDialogOpening)(
551                windows_core::Interface::as_raw(self),
552                eventhandler.param().abi(),
553                &mut result__,
554            )
555            .map(|| result__)
556        }
557    }
558    pub unsafe fn RemoveScriptDialogOpening(&self, token: i64) -> windows_core::Result<()> {
559        unsafe {
560            (windows_core::Interface::vtable(self).RemoveScriptDialogOpening)(
561                windows_core::Interface::as_raw(self),
562                token,
563            )
564            .ok()
565        }
566    }
567    pub unsafe fn PermissionRequested<P0>(&self, eventhandler: P0) -> windows_core::Result<i64>
568    where
569        P0: windows_core::Param<ICoreWebView2PermissionRequestedEventHandler>,
570    {
571        unsafe {
572            let mut result__ = core::mem::zeroed();
573            (windows_core::Interface::vtable(self).PermissionRequested)(
574                windows_core::Interface::as_raw(self),
575                eventhandler.param().abi(),
576                &mut result__,
577            )
578            .map(|| result__)
579        }
580    }
581    pub unsafe fn RemovePermissionRequested(&self, token: i64) -> windows_core::Result<()> {
582        unsafe {
583            (windows_core::Interface::vtable(self).RemovePermissionRequested)(
584                windows_core::Interface::as_raw(self),
585                token,
586            )
587            .ok()
588        }
589    }
590    pub unsafe fn ProcessFailed<P0>(&self, eventhandler: P0) -> windows_core::Result<i64>
591    where
592        P0: windows_core::Param<ICoreWebView2ProcessFailedEventHandler>,
593    {
594        unsafe {
595            let mut result__ = core::mem::zeroed();
596            (windows_core::Interface::vtable(self).ProcessFailed)(
597                windows_core::Interface::as_raw(self),
598                eventhandler.param().abi(),
599                &mut result__,
600            )
601            .map(|| result__)
602        }
603    }
604    pub unsafe fn RemoveProcessFailed(&self, token: i64) -> windows_core::Result<()> {
605        unsafe {
606            (windows_core::Interface::vtable(self).RemoveProcessFailed)(
607                windows_core::Interface::as_raw(self),
608                token,
609            )
610            .ok()
611        }
612    }
613    pub unsafe fn AddScriptToExecuteOnDocumentCreated<P0, P1>(
614        &self,
615        javascript: P0,
616        handler: P1,
617    ) -> windows_core::Result<()>
618    where
619        P0: windows_core::Param<windows_core::PCWSTR>,
620        P1: windows_core::Param<ICoreWebView2AddScriptToExecuteOnDocumentCreatedCompletedHandler>,
621    {
622        unsafe {
623            (windows_core::Interface::vtable(self).AddScriptToExecuteOnDocumentCreated)(
624                windows_core::Interface::as_raw(self),
625                javascript.param().abi(),
626                handler.param().abi(),
627            )
628            .ok()
629        }
630    }
631    pub unsafe fn RemoveScriptToExecuteOnDocumentCreated<P0>(
632        &self,
633        id: P0,
634    ) -> windows_core::Result<()>
635    where
636        P0: windows_core::Param<windows_core::PCWSTR>,
637    {
638        unsafe {
639            (windows_core::Interface::vtable(self).RemoveScriptToExecuteOnDocumentCreated)(
640                windows_core::Interface::as_raw(self),
641                id.param().abi(),
642            )
643            .ok()
644        }
645    }
646    pub unsafe fn ExecuteScript<P0, P1>(
647        &self,
648        javascript: P0,
649        handler: P1,
650    ) -> windows_core::Result<()>
651    where
652        P0: windows_core::Param<windows_core::PCWSTR>,
653        P1: windows_core::Param<ICoreWebView2ExecuteScriptCompletedHandler>,
654    {
655        unsafe {
656            (windows_core::Interface::vtable(self).ExecuteScript)(
657                windows_core::Interface::as_raw(self),
658                javascript.param().abi(),
659                handler.param().abi(),
660            )
661            .ok()
662        }
663    }
664    pub unsafe fn CapturePreview<P1, P2>(
665        &self,
666        imageformat: COREWEBVIEW2_CAPTURE_PREVIEW_IMAGE_FORMAT,
667        imagestream: P1,
668        handler: P2,
669    ) -> windows_core::Result<()>
670    where
671        P1: windows_core::Param<windows::Win32::System::Com::IStream>,
672        P2: windows_core::Param<ICoreWebView2CapturePreviewCompletedHandler>,
673    {
674        unsafe {
675            (windows_core::Interface::vtable(self).CapturePreview)(
676                windows_core::Interface::as_raw(self),
677                imageformat,
678                imagestream.param().abi(),
679                handler.param().abi(),
680            )
681            .ok()
682        }
683    }
684    pub unsafe fn Reload(&self) -> windows_core::Result<()> {
685        unsafe {
686            (windows_core::Interface::vtable(self).Reload)(windows_core::Interface::as_raw(self))
687                .ok()
688        }
689    }
690    pub unsafe fn PostWebMessageAsJson<P0>(&self, webmessageasjson: P0) -> windows_core::Result<()>
691    where
692        P0: windows_core::Param<windows_core::PCWSTR>,
693    {
694        unsafe {
695            (windows_core::Interface::vtable(self).PostWebMessageAsJson)(
696                windows_core::Interface::as_raw(self),
697                webmessageasjson.param().abi(),
698            )
699            .ok()
700        }
701    }
702    pub unsafe fn PostWebMessageAsString<P0>(
703        &self,
704        webmessageasstring: P0,
705    ) -> windows_core::Result<()>
706    where
707        P0: windows_core::Param<windows_core::PCWSTR>,
708    {
709        unsafe {
710            (windows_core::Interface::vtable(self).PostWebMessageAsString)(
711                windows_core::Interface::as_raw(self),
712                webmessageasstring.param().abi(),
713            )
714            .ok()
715        }
716    }
717    pub unsafe fn WebMessageReceived<P0>(&self, handler: P0) -> windows_core::Result<i64>
718    where
719        P0: windows_core::Param<ICoreWebView2WebMessageReceivedEventHandler>,
720    {
721        unsafe {
722            let mut result__ = core::mem::zeroed();
723            (windows_core::Interface::vtable(self).WebMessageReceived)(
724                windows_core::Interface::as_raw(self),
725                handler.param().abi(),
726                &mut result__,
727            )
728            .map(|| result__)
729        }
730    }
731    pub unsafe fn RemoveWebMessageReceived(&self, token: i64) -> windows_core::Result<()> {
732        unsafe {
733            (windows_core::Interface::vtable(self).RemoveWebMessageReceived)(
734                windows_core::Interface::as_raw(self),
735                token,
736            )
737            .ok()
738        }
739    }
740    pub unsafe fn CallDevToolsProtocolMethod<P0, P1, P2>(
741        &self,
742        methodname: P0,
743        parametersasjson: P1,
744        handler: P2,
745    ) -> windows_core::Result<()>
746    where
747        P0: windows_core::Param<windows_core::PCWSTR>,
748        P1: windows_core::Param<windows_core::PCWSTR>,
749        P2: windows_core::Param<ICoreWebView2CallDevToolsProtocolMethodCompletedHandler>,
750    {
751        unsafe {
752            (windows_core::Interface::vtable(self).CallDevToolsProtocolMethod)(
753                windows_core::Interface::as_raw(self),
754                methodname.param().abi(),
755                parametersasjson.param().abi(),
756                handler.param().abi(),
757            )
758            .ok()
759        }
760    }
761    pub unsafe fn BrowserProcessId(&self) -> windows_core::Result<u32> {
762        unsafe {
763            let mut result__ = core::mem::zeroed();
764            (windows_core::Interface::vtable(self).BrowserProcessId)(
765                windows_core::Interface::as_raw(self),
766                &mut result__,
767            )
768            .map(|| result__)
769        }
770    }
771    pub unsafe fn CanGoBack(&self) -> windows_core::Result<windows_core::BOOL> {
772        unsafe {
773            let mut result__ = core::mem::zeroed();
774            (windows_core::Interface::vtable(self).CanGoBack)(
775                windows_core::Interface::as_raw(self),
776                &mut result__,
777            )
778            .map(|| result__)
779        }
780    }
781    pub unsafe fn CanGoForward(&self) -> windows_core::Result<windows_core::BOOL> {
782        unsafe {
783            let mut result__ = core::mem::zeroed();
784            (windows_core::Interface::vtable(self).CanGoForward)(
785                windows_core::Interface::as_raw(self),
786                &mut result__,
787            )
788            .map(|| result__)
789        }
790    }
791    pub unsafe fn GoBack(&self) -> windows_core::Result<()> {
792        unsafe {
793            (windows_core::Interface::vtable(self).GoBack)(windows_core::Interface::as_raw(self))
794                .ok()
795        }
796    }
797    pub unsafe fn GoForward(&self) -> windows_core::Result<()> {
798        unsafe {
799            (windows_core::Interface::vtable(self).GoForward)(windows_core::Interface::as_raw(self))
800                .ok()
801        }
802    }
803    pub unsafe fn GetDevToolsProtocolEventReceiver<P0>(
804        &self,
805        eventname: P0,
806    ) -> windows_core::Result<ICoreWebView2DevToolsProtocolEventReceiver>
807    where
808        P0: windows_core::Param<windows_core::PCWSTR>,
809    {
810        unsafe {
811            let mut result__ = core::mem::zeroed();
812            (windows_core::Interface::vtable(self).GetDevToolsProtocolEventReceiver)(
813                windows_core::Interface::as_raw(self),
814                eventname.param().abi(),
815                &mut result__,
816            )
817            .and_then(|| windows_core::Type::from_abi(result__))
818        }
819    }
820    pub unsafe fn Stop(&self) -> windows_core::Result<()> {
821        unsafe {
822            (windows_core::Interface::vtable(self).Stop)(windows_core::Interface::as_raw(self)).ok()
823        }
824    }
825    pub unsafe fn NewWindowRequested<P0>(&self, eventhandler: P0) -> windows_core::Result<i64>
826    where
827        P0: windows_core::Param<ICoreWebView2NewWindowRequestedEventHandler>,
828    {
829        unsafe {
830            let mut result__ = core::mem::zeroed();
831            (windows_core::Interface::vtable(self).NewWindowRequested)(
832                windows_core::Interface::as_raw(self),
833                eventhandler.param().abi(),
834                &mut result__,
835            )
836            .map(|| result__)
837        }
838    }
839    pub unsafe fn RemoveNewWindowRequested(&self, token: i64) -> windows_core::Result<()> {
840        unsafe {
841            (windows_core::Interface::vtable(self).RemoveNewWindowRequested)(
842                windows_core::Interface::as_raw(self),
843                token,
844            )
845            .ok()
846        }
847    }
848    pub unsafe fn DocumentTitleChanged<P0>(&self, eventhandler: P0) -> windows_core::Result<i64>
849    where
850        P0: windows_core::Param<ICoreWebView2DocumentTitleChangedEventHandler>,
851    {
852        unsafe {
853            let mut result__ = core::mem::zeroed();
854            (windows_core::Interface::vtable(self).DocumentTitleChanged)(
855                windows_core::Interface::as_raw(self),
856                eventhandler.param().abi(),
857                &mut result__,
858            )
859            .map(|| result__)
860        }
861    }
862    pub unsafe fn RemoveDocumentTitleChanged(&self, token: i64) -> windows_core::Result<()> {
863        unsafe {
864            (windows_core::Interface::vtable(self).RemoveDocumentTitleChanged)(
865                windows_core::Interface::as_raw(self),
866                token,
867            )
868            .ok()
869        }
870    }
871    pub unsafe fn DocumentTitle(&self) -> windows_core::Result<windows_core::PWSTR> {
872        unsafe {
873            let mut result__ = core::mem::zeroed();
874            (windows_core::Interface::vtable(self).DocumentTitle)(
875                windows_core::Interface::as_raw(self),
876                &mut result__,
877            )
878            .map(|| result__)
879        }
880    }
881    pub unsafe fn AddHostObjectToScript<P0>(
882        &self,
883        name: P0,
884        object: *mut windows::Win32::System::Variant::VARIANT,
885    ) -> windows_core::Result<()>
886    where
887        P0: windows_core::Param<windows_core::PCWSTR>,
888    {
889        unsafe {
890            (windows_core::Interface::vtable(self).AddHostObjectToScript)(
891                windows_core::Interface::as_raw(self),
892                name.param().abi(),
893                core::mem::transmute(object),
894            )
895            .ok()
896        }
897    }
898    pub unsafe fn RemoveHostObjectFromScript<P0>(&self, name: P0) -> windows_core::Result<()>
899    where
900        P0: windows_core::Param<windows_core::PCWSTR>,
901    {
902        unsafe {
903            (windows_core::Interface::vtable(self).RemoveHostObjectFromScript)(
904                windows_core::Interface::as_raw(self),
905                name.param().abi(),
906            )
907            .ok()
908        }
909    }
910    pub unsafe fn OpenDevToolsWindow(&self) -> windows_core::Result<()> {
911        unsafe {
912            (windows_core::Interface::vtable(self).OpenDevToolsWindow)(
913                windows_core::Interface::as_raw(self),
914            )
915            .ok()
916        }
917    }
918    pub unsafe fn ContainsFullScreenElementChanged<P0>(
919        &self,
920        eventhandler: P0,
921    ) -> windows_core::Result<i64>
922    where
923        P0: windows_core::Param<ICoreWebView2ContainsFullScreenElementChangedEventHandler>,
924    {
925        unsafe {
926            let mut result__ = core::mem::zeroed();
927            (windows_core::Interface::vtable(self).ContainsFullScreenElementChanged)(
928                windows_core::Interface::as_raw(self),
929                eventhandler.param().abi(),
930                &mut result__,
931            )
932            .map(|| result__)
933        }
934    }
935    pub unsafe fn RemoveContainsFullScreenElementChanged(
936        &self,
937        token: i64,
938    ) -> windows_core::Result<()> {
939        unsafe {
940            (windows_core::Interface::vtable(self).RemoveContainsFullScreenElementChanged)(
941                windows_core::Interface::as_raw(self),
942                token,
943            )
944            .ok()
945        }
946    }
947    pub unsafe fn ContainsFullScreenElement(&self) -> windows_core::Result<windows_core::BOOL> {
948        unsafe {
949            let mut result__ = core::mem::zeroed();
950            (windows_core::Interface::vtable(self).ContainsFullScreenElement)(
951                windows_core::Interface::as_raw(self),
952                &mut result__,
953            )
954            .map(|| result__)
955        }
956    }
957    pub unsafe fn WebResourceRequested<P0>(&self, eventhandler: P0) -> windows_core::Result<i64>
958    where
959        P0: windows_core::Param<ICoreWebView2WebResourceRequestedEventHandler>,
960    {
961        unsafe {
962            let mut result__ = core::mem::zeroed();
963            (windows_core::Interface::vtable(self).WebResourceRequested)(
964                windows_core::Interface::as_raw(self),
965                eventhandler.param().abi(),
966                &mut result__,
967            )
968            .map(|| result__)
969        }
970    }
971    pub unsafe fn RemoveWebResourceRequested(&self, token: i64) -> windows_core::Result<()> {
972        unsafe {
973            (windows_core::Interface::vtable(self).RemoveWebResourceRequested)(
974                windows_core::Interface::as_raw(self),
975                token,
976            )
977            .ok()
978        }
979    }
980    pub unsafe fn AddWebResourceRequestedFilter<P0>(
981        &self,
982        uri: P0,
983        resourcecontext: COREWEBVIEW2_WEB_RESOURCE_CONTEXT,
984    ) -> windows_core::Result<()>
985    where
986        P0: windows_core::Param<windows_core::PCWSTR>,
987    {
988        unsafe {
989            (windows_core::Interface::vtable(self).AddWebResourceRequestedFilter)(
990                windows_core::Interface::as_raw(self),
991                uri.param().abi(),
992                resourcecontext,
993            )
994            .ok()
995        }
996    }
997    pub unsafe fn RemoveWebResourceRequestedFilter<P0>(
998        &self,
999        uri: P0,
1000        resourcecontext: COREWEBVIEW2_WEB_RESOURCE_CONTEXT,
1001    ) -> windows_core::Result<()>
1002    where
1003        P0: windows_core::Param<windows_core::PCWSTR>,
1004    {
1005        unsafe {
1006            (windows_core::Interface::vtable(self).RemoveWebResourceRequestedFilter)(
1007                windows_core::Interface::as_raw(self),
1008                uri.param().abi(),
1009                resourcecontext,
1010            )
1011            .ok()
1012        }
1013    }
1014    pub unsafe fn WindowCloseRequested<P0>(&self, eventhandler: P0) -> windows_core::Result<i64>
1015    where
1016        P0: windows_core::Param<ICoreWebView2WindowCloseRequestedEventHandler>,
1017    {
1018        unsafe {
1019            let mut result__ = core::mem::zeroed();
1020            (windows_core::Interface::vtable(self).WindowCloseRequested)(
1021                windows_core::Interface::as_raw(self),
1022                eventhandler.param().abi(),
1023                &mut result__,
1024            )
1025            .map(|| result__)
1026        }
1027    }
1028    pub unsafe fn RemoveWindowCloseRequested(&self, token: i64) -> windows_core::Result<()> {
1029        unsafe {
1030            (windows_core::Interface::vtable(self).RemoveWindowCloseRequested)(
1031                windows_core::Interface::as_raw(self),
1032                token,
1033            )
1034            .ok()
1035        }
1036    }
1037}
1038#[repr(C)]
1039#[doc(hidden)]
1040pub struct ICoreWebView2_Vtbl {
1041    pub base__: windows_core::IUnknown_Vtbl,
1042    pub Settings: unsafe extern "system" fn(
1043        *mut core::ffi::c_void,
1044        *mut *mut core::ffi::c_void,
1045    ) -> windows_core::HRESULT,
1046    pub Source: unsafe extern "system" fn(
1047        *mut core::ffi::c_void,
1048        *mut windows_core::PWSTR,
1049    ) -> windows_core::HRESULT,
1050    pub Navigate: unsafe extern "system" fn(
1051        *mut core::ffi::c_void,
1052        windows_core::PCWSTR,
1053    ) -> windows_core::HRESULT,
1054    pub NavigateToString: unsafe extern "system" fn(
1055        *mut core::ffi::c_void,
1056        windows_core::PCWSTR,
1057    ) -> windows_core::HRESULT,
1058    pub NavigationStarting: unsafe extern "system" fn(
1059        *mut core::ffi::c_void,
1060        *mut core::ffi::c_void,
1061        *mut i64,
1062    ) -> windows_core::HRESULT,
1063    pub RemoveNavigationStarting:
1064        unsafe extern "system" fn(*mut core::ffi::c_void, i64) -> windows_core::HRESULT,
1065    pub ContentLoading: unsafe extern "system" fn(
1066        *mut core::ffi::c_void,
1067        *mut core::ffi::c_void,
1068        *mut i64,
1069    ) -> windows_core::HRESULT,
1070    pub RemoveContentLoading:
1071        unsafe extern "system" fn(*mut core::ffi::c_void, i64) -> windows_core::HRESULT,
1072    pub SourceChanged: unsafe extern "system" fn(
1073        *mut core::ffi::c_void,
1074        *mut core::ffi::c_void,
1075        *mut i64,
1076    ) -> windows_core::HRESULT,
1077    pub RemoveSourceChanged:
1078        unsafe extern "system" fn(*mut core::ffi::c_void, i64) -> windows_core::HRESULT,
1079    pub HistoryChanged: unsafe extern "system" fn(
1080        *mut core::ffi::c_void,
1081        *mut core::ffi::c_void,
1082        *mut i64,
1083    ) -> windows_core::HRESULT,
1084    pub RemoveHistoryChanged:
1085        unsafe extern "system" fn(*mut core::ffi::c_void, i64) -> windows_core::HRESULT,
1086    pub NavigationCompleted: unsafe extern "system" fn(
1087        *mut core::ffi::c_void,
1088        *mut core::ffi::c_void,
1089        *mut i64,
1090    ) -> windows_core::HRESULT,
1091    pub RemoveNavigationCompleted:
1092        unsafe extern "system" fn(*mut core::ffi::c_void, i64) -> windows_core::HRESULT,
1093    pub FrameNavigationStarting: unsafe extern "system" fn(
1094        *mut core::ffi::c_void,
1095        *mut core::ffi::c_void,
1096        *mut i64,
1097    ) -> windows_core::HRESULT,
1098    pub RemoveFrameNavigationStarting:
1099        unsafe extern "system" fn(*mut core::ffi::c_void, i64) -> windows_core::HRESULT,
1100    pub FrameNavigationCompleted: unsafe extern "system" fn(
1101        *mut core::ffi::c_void,
1102        *mut core::ffi::c_void,
1103        *mut i64,
1104    ) -> windows_core::HRESULT,
1105    pub RemoveFrameNavigationCompleted:
1106        unsafe extern "system" fn(*mut core::ffi::c_void, i64) -> windows_core::HRESULT,
1107    pub ScriptDialogOpening: unsafe extern "system" fn(
1108        *mut core::ffi::c_void,
1109        *mut core::ffi::c_void,
1110        *mut i64,
1111    ) -> windows_core::HRESULT,
1112    pub RemoveScriptDialogOpening:
1113        unsafe extern "system" fn(*mut core::ffi::c_void, i64) -> windows_core::HRESULT,
1114    pub PermissionRequested: unsafe extern "system" fn(
1115        *mut core::ffi::c_void,
1116        *mut core::ffi::c_void,
1117        *mut i64,
1118    ) -> windows_core::HRESULT,
1119    pub RemovePermissionRequested:
1120        unsafe extern "system" fn(*mut core::ffi::c_void, i64) -> windows_core::HRESULT,
1121    pub ProcessFailed: unsafe extern "system" fn(
1122        *mut core::ffi::c_void,
1123        *mut core::ffi::c_void,
1124        *mut i64,
1125    ) -> windows_core::HRESULT,
1126    pub RemoveProcessFailed:
1127        unsafe extern "system" fn(*mut core::ffi::c_void, i64) -> windows_core::HRESULT,
1128    pub AddScriptToExecuteOnDocumentCreated: unsafe extern "system" fn(
1129        *mut core::ffi::c_void,
1130        windows_core::PCWSTR,
1131        *mut core::ffi::c_void,
1132    )
1133        -> windows_core::HRESULT,
1134    pub RemoveScriptToExecuteOnDocumentCreated: unsafe extern "system" fn(
1135        *mut core::ffi::c_void,
1136        windows_core::PCWSTR,
1137    )
1138        -> windows_core::HRESULT,
1139    pub ExecuteScript: unsafe extern "system" fn(
1140        *mut core::ffi::c_void,
1141        windows_core::PCWSTR,
1142        *mut core::ffi::c_void,
1143    ) -> windows_core::HRESULT,
1144    pub CapturePreview: unsafe extern "system" fn(
1145        *mut core::ffi::c_void,
1146        COREWEBVIEW2_CAPTURE_PREVIEW_IMAGE_FORMAT,
1147        *mut core::ffi::c_void,
1148        *mut core::ffi::c_void,
1149    ) -> windows_core::HRESULT,
1150    pub Reload: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
1151    pub PostWebMessageAsJson: unsafe extern "system" fn(
1152        *mut core::ffi::c_void,
1153        windows_core::PCWSTR,
1154    ) -> windows_core::HRESULT,
1155    pub PostWebMessageAsString: unsafe extern "system" fn(
1156        *mut core::ffi::c_void,
1157        windows_core::PCWSTR,
1158    ) -> windows_core::HRESULT,
1159    pub WebMessageReceived: unsafe extern "system" fn(
1160        *mut core::ffi::c_void,
1161        *mut core::ffi::c_void,
1162        *mut i64,
1163    ) -> windows_core::HRESULT,
1164    pub RemoveWebMessageReceived:
1165        unsafe extern "system" fn(*mut core::ffi::c_void, i64) -> windows_core::HRESULT,
1166    pub CallDevToolsProtocolMethod: unsafe extern "system" fn(
1167        *mut core::ffi::c_void,
1168        windows_core::PCWSTR,
1169        windows_core::PCWSTR,
1170        *mut core::ffi::c_void,
1171    ) -> windows_core::HRESULT,
1172    pub BrowserProcessId:
1173        unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
1174    pub CanGoBack: unsafe extern "system" fn(
1175        *mut core::ffi::c_void,
1176        *mut windows_core::BOOL,
1177    ) -> windows_core::HRESULT,
1178    pub CanGoForward: unsafe extern "system" fn(
1179        *mut core::ffi::c_void,
1180        *mut windows_core::BOOL,
1181    ) -> windows_core::HRESULT,
1182    pub GoBack: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
1183    pub GoForward: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
1184    pub GetDevToolsProtocolEventReceiver: unsafe extern "system" fn(
1185        *mut core::ffi::c_void,
1186        windows_core::PCWSTR,
1187        *mut *mut core::ffi::c_void,
1188    ) -> windows_core::HRESULT,
1189    pub Stop: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
1190    pub NewWindowRequested: unsafe extern "system" fn(
1191        *mut core::ffi::c_void,
1192        *mut core::ffi::c_void,
1193        *mut i64,
1194    ) -> windows_core::HRESULT,
1195    pub RemoveNewWindowRequested:
1196        unsafe extern "system" fn(*mut core::ffi::c_void, i64) -> windows_core::HRESULT,
1197    pub DocumentTitleChanged: unsafe extern "system" fn(
1198        *mut core::ffi::c_void,
1199        *mut core::ffi::c_void,
1200        *mut i64,
1201    ) -> windows_core::HRESULT,
1202    pub RemoveDocumentTitleChanged:
1203        unsafe extern "system" fn(*mut core::ffi::c_void, i64) -> windows_core::HRESULT,
1204    pub DocumentTitle: unsafe extern "system" fn(
1205        *mut core::ffi::c_void,
1206        *mut windows_core::PWSTR,
1207    ) -> windows_core::HRESULT,
1208    pub AddHostObjectToScript: unsafe extern "system" fn(
1209        *mut core::ffi::c_void,
1210        windows_core::PCWSTR,
1211        *mut windows::Win32::System::Variant::VARIANT,
1212    ) -> windows_core::HRESULT,
1213    pub RemoveHostObjectFromScript: unsafe extern "system" fn(
1214        *mut core::ffi::c_void,
1215        windows_core::PCWSTR,
1216    ) -> windows_core::HRESULT,
1217    pub OpenDevToolsWindow:
1218        unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
1219    pub ContainsFullScreenElementChanged: unsafe extern "system" fn(
1220        *mut core::ffi::c_void,
1221        *mut core::ffi::c_void,
1222        *mut i64,
1223    ) -> windows_core::HRESULT,
1224    pub RemoveContainsFullScreenElementChanged:
1225        unsafe extern "system" fn(*mut core::ffi::c_void, i64) -> windows_core::HRESULT,
1226    pub ContainsFullScreenElement: unsafe extern "system" fn(
1227        *mut core::ffi::c_void,
1228        *mut windows_core::BOOL,
1229    ) -> windows_core::HRESULT,
1230    pub WebResourceRequested: unsafe extern "system" fn(
1231        *mut core::ffi::c_void,
1232        *mut core::ffi::c_void,
1233        *mut i64,
1234    ) -> windows_core::HRESULT,
1235    pub RemoveWebResourceRequested:
1236        unsafe extern "system" fn(*mut core::ffi::c_void, i64) -> windows_core::HRESULT,
1237    pub AddWebResourceRequestedFilter: unsafe extern "system" fn(
1238        *mut core::ffi::c_void,
1239        windows_core::PCWSTR,
1240        COREWEBVIEW2_WEB_RESOURCE_CONTEXT,
1241    ) -> windows_core::HRESULT,
1242    pub RemoveWebResourceRequestedFilter: unsafe extern "system" fn(
1243        *mut core::ffi::c_void,
1244        windows_core::PCWSTR,
1245        COREWEBVIEW2_WEB_RESOURCE_CONTEXT,
1246    ) -> windows_core::HRESULT,
1247    pub WindowCloseRequested: unsafe extern "system" fn(
1248        *mut core::ffi::c_void,
1249        *mut core::ffi::c_void,
1250        *mut i64,
1251    ) -> windows_core::HRESULT,
1252    pub RemoveWindowCloseRequested:
1253        unsafe extern "system" fn(*mut core::ffi::c_void, i64) -> windows_core::HRESULT,
1254}
1255pub trait ICoreWebView2_Impl: windows_core::IUnknownImpl {
1256    fn Settings(&self) -> windows_core::Result<ICoreWebView2Settings>;
1257    fn Source(&self) -> windows_core::Result<windows_core::PWSTR>;
1258    fn Navigate(&self, uri: &windows_core::PCWSTR) -> windows_core::Result<()>;
1259    fn NavigateToString(&self, htmlcontent: &windows_core::PCWSTR) -> windows_core::Result<()>;
1260    fn NavigationStarting(
1261        &self,
1262        eventhandler: windows_core::Ref<ICoreWebView2NavigationStartingEventHandler>,
1263    ) -> windows_core::Result<i64>;
1264    fn RemoveNavigationStarting(&self, token: i64) -> windows_core::Result<()>;
1265    fn ContentLoading(
1266        &self,
1267        eventhandler: windows_core::Ref<ICoreWebView2ContentLoadingEventHandler>,
1268    ) -> windows_core::Result<i64>;
1269    fn RemoveContentLoading(&self, token: i64) -> windows_core::Result<()>;
1270    fn SourceChanged(
1271        &self,
1272        eventhandler: windows_core::Ref<ICoreWebView2SourceChangedEventHandler>,
1273    ) -> windows_core::Result<i64>;
1274    fn RemoveSourceChanged(&self, token: i64) -> windows_core::Result<()>;
1275    fn HistoryChanged(
1276        &self,
1277        eventhandler: windows_core::Ref<ICoreWebView2HistoryChangedEventHandler>,
1278    ) -> windows_core::Result<i64>;
1279    fn RemoveHistoryChanged(&self, token: i64) -> windows_core::Result<()>;
1280    fn NavigationCompleted(
1281        &self,
1282        eventhandler: windows_core::Ref<ICoreWebView2NavigationCompletedEventHandler>,
1283    ) -> windows_core::Result<i64>;
1284    fn RemoveNavigationCompleted(&self, token: i64) -> windows_core::Result<()>;
1285    fn FrameNavigationStarting(
1286        &self,
1287        eventhandler: windows_core::Ref<ICoreWebView2NavigationStartingEventHandler>,
1288    ) -> windows_core::Result<i64>;
1289    fn RemoveFrameNavigationStarting(&self, token: i64) -> windows_core::Result<()>;
1290    fn FrameNavigationCompleted(
1291        &self,
1292        eventhandler: windows_core::Ref<ICoreWebView2NavigationCompletedEventHandler>,
1293    ) -> windows_core::Result<i64>;
1294    fn RemoveFrameNavigationCompleted(&self, token: i64) -> windows_core::Result<()>;
1295    fn ScriptDialogOpening(
1296        &self,
1297        eventhandler: windows_core::Ref<ICoreWebView2ScriptDialogOpeningEventHandler>,
1298    ) -> windows_core::Result<i64>;
1299    fn RemoveScriptDialogOpening(&self, token: i64) -> windows_core::Result<()>;
1300    fn PermissionRequested(
1301        &self,
1302        eventhandler: windows_core::Ref<ICoreWebView2PermissionRequestedEventHandler>,
1303    ) -> windows_core::Result<i64>;
1304    fn RemovePermissionRequested(&self, token: i64) -> windows_core::Result<()>;
1305    fn ProcessFailed(
1306        &self,
1307        eventhandler: windows_core::Ref<ICoreWebView2ProcessFailedEventHandler>,
1308    ) -> windows_core::Result<i64>;
1309    fn RemoveProcessFailed(&self, token: i64) -> windows_core::Result<()>;
1310    fn AddScriptToExecuteOnDocumentCreated(
1311        &self,
1312        javascript: &windows_core::PCWSTR,
1313        handler: windows_core::Ref<
1314            ICoreWebView2AddScriptToExecuteOnDocumentCreatedCompletedHandler,
1315        >,
1316    ) -> windows_core::Result<()>;
1317    fn RemoveScriptToExecuteOnDocumentCreated(
1318        &self,
1319        id: &windows_core::PCWSTR,
1320    ) -> windows_core::Result<()>;
1321    fn ExecuteScript(
1322        &self,
1323        javascript: &windows_core::PCWSTR,
1324        handler: windows_core::Ref<ICoreWebView2ExecuteScriptCompletedHandler>,
1325    ) -> windows_core::Result<()>;
1326    fn CapturePreview(
1327        &self,
1328        imageformat: COREWEBVIEW2_CAPTURE_PREVIEW_IMAGE_FORMAT,
1329        imagestream: windows_core::Ref<windows::Win32::System::Com::IStream>,
1330        handler: windows_core::Ref<ICoreWebView2CapturePreviewCompletedHandler>,
1331    ) -> windows_core::Result<()>;
1332    fn Reload(&self) -> windows_core::Result<()>;
1333    fn PostWebMessageAsJson(
1334        &self,
1335        webmessageasjson: &windows_core::PCWSTR,
1336    ) -> windows_core::Result<()>;
1337    fn PostWebMessageAsString(
1338        &self,
1339        webmessageasstring: &windows_core::PCWSTR,
1340    ) -> windows_core::Result<()>;
1341    fn WebMessageReceived(
1342        &self,
1343        handler: windows_core::Ref<ICoreWebView2WebMessageReceivedEventHandler>,
1344    ) -> windows_core::Result<i64>;
1345    fn RemoveWebMessageReceived(&self, token: i64) -> windows_core::Result<()>;
1346    fn CallDevToolsProtocolMethod(
1347        &self,
1348        methodname: &windows_core::PCWSTR,
1349        parametersasjson: &windows_core::PCWSTR,
1350        handler: windows_core::Ref<ICoreWebView2CallDevToolsProtocolMethodCompletedHandler>,
1351    ) -> windows_core::Result<()>;
1352    fn BrowserProcessId(&self) -> windows_core::Result<u32>;
1353    fn CanGoBack(&self) -> windows_core::Result<windows_core::BOOL>;
1354    fn CanGoForward(&self) -> windows_core::Result<windows_core::BOOL>;
1355    fn GoBack(&self) -> windows_core::Result<()>;
1356    fn GoForward(&self) -> windows_core::Result<()>;
1357    fn GetDevToolsProtocolEventReceiver(
1358        &self,
1359        eventname: &windows_core::PCWSTR,
1360    ) -> windows_core::Result<ICoreWebView2DevToolsProtocolEventReceiver>;
1361    fn Stop(&self) -> windows_core::Result<()>;
1362    fn NewWindowRequested(
1363        &self,
1364        eventhandler: windows_core::Ref<ICoreWebView2NewWindowRequestedEventHandler>,
1365    ) -> windows_core::Result<i64>;
1366    fn RemoveNewWindowRequested(&self, token: i64) -> windows_core::Result<()>;
1367    fn DocumentTitleChanged(
1368        &self,
1369        eventhandler: windows_core::Ref<ICoreWebView2DocumentTitleChangedEventHandler>,
1370    ) -> windows_core::Result<i64>;
1371    fn RemoveDocumentTitleChanged(&self, token: i64) -> windows_core::Result<()>;
1372    fn DocumentTitle(&self) -> windows_core::Result<windows_core::PWSTR>;
1373    fn AddHostObjectToScript(
1374        &self,
1375        name: &windows_core::PCWSTR,
1376        object: *mut windows::Win32::System::Variant::VARIANT,
1377    ) -> windows_core::Result<()>;
1378    fn RemoveHostObjectFromScript(&self, name: &windows_core::PCWSTR) -> windows_core::Result<()>;
1379    fn OpenDevToolsWindow(&self) -> windows_core::Result<()>;
1380    fn ContainsFullScreenElementChanged(
1381        &self,
1382        eventhandler: windows_core::Ref<ICoreWebView2ContainsFullScreenElementChangedEventHandler>,
1383    ) -> windows_core::Result<i64>;
1384    fn RemoveContainsFullScreenElementChanged(&self, token: i64) -> windows_core::Result<()>;
1385    fn ContainsFullScreenElement(&self) -> windows_core::Result<windows_core::BOOL>;
1386    fn WebResourceRequested(
1387        &self,
1388        eventhandler: windows_core::Ref<ICoreWebView2WebResourceRequestedEventHandler>,
1389    ) -> windows_core::Result<i64>;
1390    fn RemoveWebResourceRequested(&self, token: i64) -> windows_core::Result<()>;
1391    fn AddWebResourceRequestedFilter(
1392        &self,
1393        uri: &windows_core::PCWSTR,
1394        resourcecontext: COREWEBVIEW2_WEB_RESOURCE_CONTEXT,
1395    ) -> windows_core::Result<()>;
1396    fn RemoveWebResourceRequestedFilter(
1397        &self,
1398        uri: &windows_core::PCWSTR,
1399        resourcecontext: COREWEBVIEW2_WEB_RESOURCE_CONTEXT,
1400    ) -> windows_core::Result<()>;
1401    fn WindowCloseRequested(
1402        &self,
1403        eventhandler: windows_core::Ref<ICoreWebView2WindowCloseRequestedEventHandler>,
1404    ) -> windows_core::Result<i64>;
1405    fn RemoveWindowCloseRequested(&self, token: i64) -> windows_core::Result<()>;
1406}
1407impl ICoreWebView2_Vtbl {
1408    pub const fn new<Identity: ICoreWebView2_Impl, const OFFSET: isize>() -> Self {
1409        unsafe extern "system" fn Settings<Identity: ICoreWebView2_Impl, const OFFSET: isize>(
1410            this: *mut core::ffi::c_void,
1411            settings: *mut *mut core::ffi::c_void,
1412        ) -> windows_core::HRESULT {
1413            unsafe {
1414                let this: &Identity =
1415                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
1416                match ICoreWebView2_Impl::Settings(this) {
1417                    Ok(ok__) => {
1418                        settings.write(core::mem::transmute(ok__));
1419                        windows_core::HRESULT(0)
1420                    }
1421                    Err(err) => err.into(),
1422                }
1423            }
1424        }
1425        unsafe extern "system" fn Source<Identity: ICoreWebView2_Impl, const OFFSET: isize>(
1426            this: *mut core::ffi::c_void,
1427            uri: *mut windows_core::PWSTR,
1428        ) -> windows_core::HRESULT {
1429            unsafe {
1430                let this: &Identity =
1431                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
1432                match ICoreWebView2_Impl::Source(this) {
1433                    Ok(ok__) => {
1434                        uri.write(core::mem::transmute(ok__));
1435                        windows_core::HRESULT(0)
1436                    }
1437                    Err(err) => err.into(),
1438                }
1439            }
1440        }
1441        unsafe extern "system" fn Navigate<Identity: ICoreWebView2_Impl, const OFFSET: isize>(
1442            this: *mut core::ffi::c_void,
1443            uri: windows_core::PCWSTR,
1444        ) -> windows_core::HRESULT {
1445            unsafe {
1446                let this: &Identity =
1447                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
1448                ICoreWebView2_Impl::Navigate(this, core::mem::transmute(&uri)).into()
1449            }
1450        }
1451        unsafe extern "system" fn NavigateToString<
1452            Identity: ICoreWebView2_Impl,
1453            const OFFSET: isize,
1454        >(
1455            this: *mut core::ffi::c_void,
1456            htmlcontent: windows_core::PCWSTR,
1457        ) -> windows_core::HRESULT {
1458            unsafe {
1459                let this: &Identity =
1460                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
1461                ICoreWebView2_Impl::NavigateToString(this, core::mem::transmute(&htmlcontent))
1462                    .into()
1463            }
1464        }
1465        unsafe extern "system" fn NavigationStarting<
1466            Identity: ICoreWebView2_Impl,
1467            const OFFSET: isize,
1468        >(
1469            this: *mut core::ffi::c_void,
1470            eventhandler: *mut core::ffi::c_void,
1471            token: *mut i64,
1472        ) -> windows_core::HRESULT {
1473            unsafe {
1474                let this: &Identity =
1475                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
1476                match ICoreWebView2_Impl::NavigationStarting(
1477                    this,
1478                    core::mem::transmute_copy(&eventhandler),
1479                ) {
1480                    Ok(ok__) => {
1481                        token.write(core::mem::transmute(ok__));
1482                        windows_core::HRESULT(0)
1483                    }
1484                    Err(err) => err.into(),
1485                }
1486            }
1487        }
1488        unsafe extern "system" fn RemoveNavigationStarting<
1489            Identity: ICoreWebView2_Impl,
1490            const OFFSET: isize,
1491        >(
1492            this: *mut core::ffi::c_void,
1493            token: i64,
1494        ) -> windows_core::HRESULT {
1495            unsafe {
1496                let this: &Identity =
1497                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
1498                ICoreWebView2_Impl::RemoveNavigationStarting(
1499                    this,
1500                    core::mem::transmute_copy(&token),
1501                )
1502                .into()
1503            }
1504        }
1505        unsafe extern "system" fn ContentLoading<
1506            Identity: ICoreWebView2_Impl,
1507            const OFFSET: isize,
1508        >(
1509            this: *mut core::ffi::c_void,
1510            eventhandler: *mut core::ffi::c_void,
1511            token: *mut i64,
1512        ) -> windows_core::HRESULT {
1513            unsafe {
1514                let this: &Identity =
1515                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
1516                match ICoreWebView2_Impl::ContentLoading(
1517                    this,
1518                    core::mem::transmute_copy(&eventhandler),
1519                ) {
1520                    Ok(ok__) => {
1521                        token.write(core::mem::transmute(ok__));
1522                        windows_core::HRESULT(0)
1523                    }
1524                    Err(err) => err.into(),
1525                }
1526            }
1527        }
1528        unsafe extern "system" fn RemoveContentLoading<
1529            Identity: ICoreWebView2_Impl,
1530            const OFFSET: isize,
1531        >(
1532            this: *mut core::ffi::c_void,
1533            token: i64,
1534        ) -> windows_core::HRESULT {
1535            unsafe {
1536                let this: &Identity =
1537                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
1538                ICoreWebView2_Impl::RemoveContentLoading(this, core::mem::transmute_copy(&token))
1539                    .into()
1540            }
1541        }
1542        unsafe extern "system" fn SourceChanged<
1543            Identity: ICoreWebView2_Impl,
1544            const OFFSET: isize,
1545        >(
1546            this: *mut core::ffi::c_void,
1547            eventhandler: *mut core::ffi::c_void,
1548            token: *mut i64,
1549        ) -> windows_core::HRESULT {
1550            unsafe {
1551                let this: &Identity =
1552                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
1553                match ICoreWebView2_Impl::SourceChanged(
1554                    this,
1555                    core::mem::transmute_copy(&eventhandler),
1556                ) {
1557                    Ok(ok__) => {
1558                        token.write(core::mem::transmute(ok__));
1559                        windows_core::HRESULT(0)
1560                    }
1561                    Err(err) => err.into(),
1562                }
1563            }
1564        }
1565        unsafe extern "system" fn RemoveSourceChanged<
1566            Identity: ICoreWebView2_Impl,
1567            const OFFSET: isize,
1568        >(
1569            this: *mut core::ffi::c_void,
1570            token: i64,
1571        ) -> windows_core::HRESULT {
1572            unsafe {
1573                let this: &Identity =
1574                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
1575                ICoreWebView2_Impl::RemoveSourceChanged(this, core::mem::transmute_copy(&token))
1576                    .into()
1577            }
1578        }
1579        unsafe extern "system" fn HistoryChanged<
1580            Identity: ICoreWebView2_Impl,
1581            const OFFSET: isize,
1582        >(
1583            this: *mut core::ffi::c_void,
1584            eventhandler: *mut core::ffi::c_void,
1585            token: *mut i64,
1586        ) -> windows_core::HRESULT {
1587            unsafe {
1588                let this: &Identity =
1589                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
1590                match ICoreWebView2_Impl::HistoryChanged(
1591                    this,
1592                    core::mem::transmute_copy(&eventhandler),
1593                ) {
1594                    Ok(ok__) => {
1595                        token.write(core::mem::transmute(ok__));
1596                        windows_core::HRESULT(0)
1597                    }
1598                    Err(err) => err.into(),
1599                }
1600            }
1601        }
1602        unsafe extern "system" fn RemoveHistoryChanged<
1603            Identity: ICoreWebView2_Impl,
1604            const OFFSET: isize,
1605        >(
1606            this: *mut core::ffi::c_void,
1607            token: i64,
1608        ) -> windows_core::HRESULT {
1609            unsafe {
1610                let this: &Identity =
1611                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
1612                ICoreWebView2_Impl::RemoveHistoryChanged(this, core::mem::transmute_copy(&token))
1613                    .into()
1614            }
1615        }
1616        unsafe extern "system" fn NavigationCompleted<
1617            Identity: ICoreWebView2_Impl,
1618            const OFFSET: isize,
1619        >(
1620            this: *mut core::ffi::c_void,
1621            eventhandler: *mut core::ffi::c_void,
1622            token: *mut i64,
1623        ) -> windows_core::HRESULT {
1624            unsafe {
1625                let this: &Identity =
1626                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
1627                match ICoreWebView2_Impl::NavigationCompleted(
1628                    this,
1629                    core::mem::transmute_copy(&eventhandler),
1630                ) {
1631                    Ok(ok__) => {
1632                        token.write(core::mem::transmute(ok__));
1633                        windows_core::HRESULT(0)
1634                    }
1635                    Err(err) => err.into(),
1636                }
1637            }
1638        }
1639        unsafe extern "system" fn RemoveNavigationCompleted<
1640            Identity: ICoreWebView2_Impl,
1641            const OFFSET: isize,
1642        >(
1643            this: *mut core::ffi::c_void,
1644            token: i64,
1645        ) -> windows_core::HRESULT {
1646            unsafe {
1647                let this: &Identity =
1648                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
1649                ICoreWebView2_Impl::RemoveNavigationCompleted(
1650                    this,
1651                    core::mem::transmute_copy(&token),
1652                )
1653                .into()
1654            }
1655        }
1656        unsafe extern "system" fn FrameNavigationStarting<
1657            Identity: ICoreWebView2_Impl,
1658            const OFFSET: isize,
1659        >(
1660            this: *mut core::ffi::c_void,
1661            eventhandler: *mut core::ffi::c_void,
1662            token: *mut i64,
1663        ) -> windows_core::HRESULT {
1664            unsafe {
1665                let this: &Identity =
1666                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
1667                match ICoreWebView2_Impl::FrameNavigationStarting(
1668                    this,
1669                    core::mem::transmute_copy(&eventhandler),
1670                ) {
1671                    Ok(ok__) => {
1672                        token.write(core::mem::transmute(ok__));
1673                        windows_core::HRESULT(0)
1674                    }
1675                    Err(err) => err.into(),
1676                }
1677            }
1678        }
1679        unsafe extern "system" fn RemoveFrameNavigationStarting<
1680            Identity: ICoreWebView2_Impl,
1681            const OFFSET: isize,
1682        >(
1683            this: *mut core::ffi::c_void,
1684            token: i64,
1685        ) -> windows_core::HRESULT {
1686            unsafe {
1687                let this: &Identity =
1688                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
1689                ICoreWebView2_Impl::RemoveFrameNavigationStarting(
1690                    this,
1691                    core::mem::transmute_copy(&token),
1692                )
1693                .into()
1694            }
1695        }
1696        unsafe extern "system" fn FrameNavigationCompleted<
1697            Identity: ICoreWebView2_Impl,
1698            const OFFSET: isize,
1699        >(
1700            this: *mut core::ffi::c_void,
1701            eventhandler: *mut core::ffi::c_void,
1702            token: *mut i64,
1703        ) -> windows_core::HRESULT {
1704            unsafe {
1705                let this: &Identity =
1706                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
1707                match ICoreWebView2_Impl::FrameNavigationCompleted(
1708                    this,
1709                    core::mem::transmute_copy(&eventhandler),
1710                ) {
1711                    Ok(ok__) => {
1712                        token.write(core::mem::transmute(ok__));
1713                        windows_core::HRESULT(0)
1714                    }
1715                    Err(err) => err.into(),
1716                }
1717            }
1718        }
1719        unsafe extern "system" fn RemoveFrameNavigationCompleted<
1720            Identity: ICoreWebView2_Impl,
1721            const OFFSET: isize,
1722        >(
1723            this: *mut core::ffi::c_void,
1724            token: i64,
1725        ) -> windows_core::HRESULT {
1726            unsafe {
1727                let this: &Identity =
1728                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
1729                ICoreWebView2_Impl::RemoveFrameNavigationCompleted(
1730                    this,
1731                    core::mem::transmute_copy(&token),
1732                )
1733                .into()
1734            }
1735        }
1736        unsafe extern "system" fn ScriptDialogOpening<
1737            Identity: ICoreWebView2_Impl,
1738            const OFFSET: isize,
1739        >(
1740            this: *mut core::ffi::c_void,
1741            eventhandler: *mut core::ffi::c_void,
1742            token: *mut i64,
1743        ) -> windows_core::HRESULT {
1744            unsafe {
1745                let this: &Identity =
1746                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
1747                match ICoreWebView2_Impl::ScriptDialogOpening(
1748                    this,
1749                    core::mem::transmute_copy(&eventhandler),
1750                ) {
1751                    Ok(ok__) => {
1752                        token.write(core::mem::transmute(ok__));
1753                        windows_core::HRESULT(0)
1754                    }
1755                    Err(err) => err.into(),
1756                }
1757            }
1758        }
1759        unsafe extern "system" fn RemoveScriptDialogOpening<
1760            Identity: ICoreWebView2_Impl,
1761            const OFFSET: isize,
1762        >(
1763            this: *mut core::ffi::c_void,
1764            token: i64,
1765        ) -> windows_core::HRESULT {
1766            unsafe {
1767                let this: &Identity =
1768                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
1769                ICoreWebView2_Impl::RemoveScriptDialogOpening(
1770                    this,
1771                    core::mem::transmute_copy(&token),
1772                )
1773                .into()
1774            }
1775        }
1776        unsafe extern "system" fn PermissionRequested<
1777            Identity: ICoreWebView2_Impl,
1778            const OFFSET: isize,
1779        >(
1780            this: *mut core::ffi::c_void,
1781            eventhandler: *mut core::ffi::c_void,
1782            token: *mut i64,
1783        ) -> windows_core::HRESULT {
1784            unsafe {
1785                let this: &Identity =
1786                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
1787                match ICoreWebView2_Impl::PermissionRequested(
1788                    this,
1789                    core::mem::transmute_copy(&eventhandler),
1790                ) {
1791                    Ok(ok__) => {
1792                        token.write(core::mem::transmute(ok__));
1793                        windows_core::HRESULT(0)
1794                    }
1795                    Err(err) => err.into(),
1796                }
1797            }
1798        }
1799        unsafe extern "system" fn RemovePermissionRequested<
1800            Identity: ICoreWebView2_Impl,
1801            const OFFSET: isize,
1802        >(
1803            this: *mut core::ffi::c_void,
1804            token: i64,
1805        ) -> windows_core::HRESULT {
1806            unsafe {
1807                let this: &Identity =
1808                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
1809                ICoreWebView2_Impl::RemovePermissionRequested(
1810                    this,
1811                    core::mem::transmute_copy(&token),
1812                )
1813                .into()
1814            }
1815        }
1816        unsafe extern "system" fn ProcessFailed<
1817            Identity: ICoreWebView2_Impl,
1818            const OFFSET: isize,
1819        >(
1820            this: *mut core::ffi::c_void,
1821            eventhandler: *mut core::ffi::c_void,
1822            token: *mut i64,
1823        ) -> windows_core::HRESULT {
1824            unsafe {
1825                let this: &Identity =
1826                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
1827                match ICoreWebView2_Impl::ProcessFailed(
1828                    this,
1829                    core::mem::transmute_copy(&eventhandler),
1830                ) {
1831                    Ok(ok__) => {
1832                        token.write(core::mem::transmute(ok__));
1833                        windows_core::HRESULT(0)
1834                    }
1835                    Err(err) => err.into(),
1836                }
1837            }
1838        }
1839        unsafe extern "system" fn RemoveProcessFailed<
1840            Identity: ICoreWebView2_Impl,
1841            const OFFSET: isize,
1842        >(
1843            this: *mut core::ffi::c_void,
1844            token: i64,
1845        ) -> windows_core::HRESULT {
1846            unsafe {
1847                let this: &Identity =
1848                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
1849                ICoreWebView2_Impl::RemoveProcessFailed(this, core::mem::transmute_copy(&token))
1850                    .into()
1851            }
1852        }
1853        unsafe extern "system" fn AddScriptToExecuteOnDocumentCreated<
1854            Identity: ICoreWebView2_Impl,
1855            const OFFSET: isize,
1856        >(
1857            this: *mut core::ffi::c_void,
1858            javascript: windows_core::PCWSTR,
1859            handler: *mut core::ffi::c_void,
1860        ) -> windows_core::HRESULT {
1861            unsafe {
1862                let this: &Identity =
1863                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
1864                ICoreWebView2_Impl::AddScriptToExecuteOnDocumentCreated(
1865                    this,
1866                    core::mem::transmute(&javascript),
1867                    core::mem::transmute_copy(&handler),
1868                )
1869                .into()
1870            }
1871        }
1872        unsafe extern "system" fn RemoveScriptToExecuteOnDocumentCreated<
1873            Identity: ICoreWebView2_Impl,
1874            const OFFSET: isize,
1875        >(
1876            this: *mut core::ffi::c_void,
1877            id: windows_core::PCWSTR,
1878        ) -> windows_core::HRESULT {
1879            unsafe {
1880                let this: &Identity =
1881                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
1882                ICoreWebView2_Impl::RemoveScriptToExecuteOnDocumentCreated(
1883                    this,
1884                    core::mem::transmute(&id),
1885                )
1886                .into()
1887            }
1888        }
1889        unsafe extern "system" fn ExecuteScript<
1890            Identity: ICoreWebView2_Impl,
1891            const OFFSET: isize,
1892        >(
1893            this: *mut core::ffi::c_void,
1894            javascript: windows_core::PCWSTR,
1895            handler: *mut core::ffi::c_void,
1896        ) -> windows_core::HRESULT {
1897            unsafe {
1898                let this: &Identity =
1899                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
1900                ICoreWebView2_Impl::ExecuteScript(
1901                    this,
1902                    core::mem::transmute(&javascript),
1903                    core::mem::transmute_copy(&handler),
1904                )
1905                .into()
1906            }
1907        }
1908        unsafe extern "system" fn CapturePreview<
1909            Identity: ICoreWebView2_Impl,
1910            const OFFSET: isize,
1911        >(
1912            this: *mut core::ffi::c_void,
1913            imageformat: COREWEBVIEW2_CAPTURE_PREVIEW_IMAGE_FORMAT,
1914            imagestream: *mut core::ffi::c_void,
1915            handler: *mut core::ffi::c_void,
1916        ) -> windows_core::HRESULT {
1917            unsafe {
1918                let this: &Identity =
1919                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
1920                ICoreWebView2_Impl::CapturePreview(
1921                    this,
1922                    core::mem::transmute_copy(&imageformat),
1923                    core::mem::transmute_copy(&imagestream),
1924                    core::mem::transmute_copy(&handler),
1925                )
1926                .into()
1927            }
1928        }
1929        unsafe extern "system" fn Reload<Identity: ICoreWebView2_Impl, const OFFSET: isize>(
1930            this: *mut core::ffi::c_void,
1931        ) -> windows_core::HRESULT {
1932            unsafe {
1933                let this: &Identity =
1934                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
1935                ICoreWebView2_Impl::Reload(this).into()
1936            }
1937        }
1938        unsafe extern "system" fn PostWebMessageAsJson<
1939            Identity: ICoreWebView2_Impl,
1940            const OFFSET: isize,
1941        >(
1942            this: *mut core::ffi::c_void,
1943            webmessageasjson: windows_core::PCWSTR,
1944        ) -> windows_core::HRESULT {
1945            unsafe {
1946                let this: &Identity =
1947                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
1948                ICoreWebView2_Impl::PostWebMessageAsJson(
1949                    this,
1950                    core::mem::transmute(&webmessageasjson),
1951                )
1952                .into()
1953            }
1954        }
1955        unsafe extern "system" fn PostWebMessageAsString<
1956            Identity: ICoreWebView2_Impl,
1957            const OFFSET: isize,
1958        >(
1959            this: *mut core::ffi::c_void,
1960            webmessageasstring: windows_core::PCWSTR,
1961        ) -> windows_core::HRESULT {
1962            unsafe {
1963                let this: &Identity =
1964                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
1965                ICoreWebView2_Impl::PostWebMessageAsString(
1966                    this,
1967                    core::mem::transmute(&webmessageasstring),
1968                )
1969                .into()
1970            }
1971        }
1972        unsafe extern "system" fn WebMessageReceived<
1973            Identity: ICoreWebView2_Impl,
1974            const OFFSET: isize,
1975        >(
1976            this: *mut core::ffi::c_void,
1977            handler: *mut core::ffi::c_void,
1978            token: *mut i64,
1979        ) -> windows_core::HRESULT {
1980            unsafe {
1981                let this: &Identity =
1982                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
1983                match ICoreWebView2_Impl::WebMessageReceived(
1984                    this,
1985                    core::mem::transmute_copy(&handler),
1986                ) {
1987                    Ok(ok__) => {
1988                        token.write(core::mem::transmute(ok__));
1989                        windows_core::HRESULT(0)
1990                    }
1991                    Err(err) => err.into(),
1992                }
1993            }
1994        }
1995        unsafe extern "system" fn RemoveWebMessageReceived<
1996            Identity: ICoreWebView2_Impl,
1997            const OFFSET: isize,
1998        >(
1999            this: *mut core::ffi::c_void,
2000            token: i64,
2001        ) -> windows_core::HRESULT {
2002            unsafe {
2003                let this: &Identity =
2004                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
2005                ICoreWebView2_Impl::RemoveWebMessageReceived(
2006                    this,
2007                    core::mem::transmute_copy(&token),
2008                )
2009                .into()
2010            }
2011        }
2012        unsafe extern "system" fn CallDevToolsProtocolMethod<
2013            Identity: ICoreWebView2_Impl,
2014            const OFFSET: isize,
2015        >(
2016            this: *mut core::ffi::c_void,
2017            methodname: windows_core::PCWSTR,
2018            parametersasjson: windows_core::PCWSTR,
2019            handler: *mut core::ffi::c_void,
2020        ) -> windows_core::HRESULT {
2021            unsafe {
2022                let this: &Identity =
2023                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
2024                ICoreWebView2_Impl::CallDevToolsProtocolMethod(
2025                    this,
2026                    core::mem::transmute(&methodname),
2027                    core::mem::transmute(&parametersasjson),
2028                    core::mem::transmute_copy(&handler),
2029                )
2030                .into()
2031            }
2032        }
2033        unsafe extern "system" fn BrowserProcessId<
2034            Identity: ICoreWebView2_Impl,
2035            const OFFSET: isize,
2036        >(
2037            this: *mut core::ffi::c_void,
2038            value: *mut u32,
2039        ) -> windows_core::HRESULT {
2040            unsafe {
2041                let this: &Identity =
2042                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
2043                match ICoreWebView2_Impl::BrowserProcessId(this) {
2044                    Ok(ok__) => {
2045                        value.write(core::mem::transmute(ok__));
2046                        windows_core::HRESULT(0)
2047                    }
2048                    Err(err) => err.into(),
2049                }
2050            }
2051        }
2052        unsafe extern "system" fn CanGoBack<Identity: ICoreWebView2_Impl, const OFFSET: isize>(
2053            this: *mut core::ffi::c_void,
2054            cangoback: *mut windows_core::BOOL,
2055        ) -> windows_core::HRESULT {
2056            unsafe {
2057                let this: &Identity =
2058                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
2059                match ICoreWebView2_Impl::CanGoBack(this) {
2060                    Ok(ok__) => {
2061                        cangoback.write(core::mem::transmute(ok__));
2062                        windows_core::HRESULT(0)
2063                    }
2064                    Err(err) => err.into(),
2065                }
2066            }
2067        }
2068        unsafe extern "system" fn CanGoForward<
2069            Identity: ICoreWebView2_Impl,
2070            const OFFSET: isize,
2071        >(
2072            this: *mut core::ffi::c_void,
2073            cangoforward: *mut windows_core::BOOL,
2074        ) -> windows_core::HRESULT {
2075            unsafe {
2076                let this: &Identity =
2077                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
2078                match ICoreWebView2_Impl::CanGoForward(this) {
2079                    Ok(ok__) => {
2080                        cangoforward.write(core::mem::transmute(ok__));
2081                        windows_core::HRESULT(0)
2082                    }
2083                    Err(err) => err.into(),
2084                }
2085            }
2086        }
2087        unsafe extern "system" fn GoBack<Identity: ICoreWebView2_Impl, const OFFSET: isize>(
2088            this: *mut core::ffi::c_void,
2089        ) -> windows_core::HRESULT {
2090            unsafe {
2091                let this: &Identity =
2092                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
2093                ICoreWebView2_Impl::GoBack(this).into()
2094            }
2095        }
2096        unsafe extern "system" fn GoForward<Identity: ICoreWebView2_Impl, const OFFSET: isize>(
2097            this: *mut core::ffi::c_void,
2098        ) -> windows_core::HRESULT {
2099            unsafe {
2100                let this: &Identity =
2101                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
2102                ICoreWebView2_Impl::GoForward(this).into()
2103            }
2104        }
2105        unsafe extern "system" fn GetDevToolsProtocolEventReceiver<
2106            Identity: ICoreWebView2_Impl,
2107            const OFFSET: isize,
2108        >(
2109            this: *mut core::ffi::c_void,
2110            eventname: windows_core::PCWSTR,
2111            receiver: *mut *mut core::ffi::c_void,
2112        ) -> windows_core::HRESULT {
2113            unsafe {
2114                let this: &Identity =
2115                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
2116                match ICoreWebView2_Impl::GetDevToolsProtocolEventReceiver(
2117                    this,
2118                    core::mem::transmute(&eventname),
2119                ) {
2120                    Ok(ok__) => {
2121                        receiver.write(core::mem::transmute(ok__));
2122                        windows_core::HRESULT(0)
2123                    }
2124                    Err(err) => err.into(),
2125                }
2126            }
2127        }
2128        unsafe extern "system" fn Stop<Identity: ICoreWebView2_Impl, const OFFSET: isize>(
2129            this: *mut core::ffi::c_void,
2130        ) -> windows_core::HRESULT {
2131            unsafe {
2132                let this: &Identity =
2133                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
2134                ICoreWebView2_Impl::Stop(this).into()
2135            }
2136        }
2137        unsafe extern "system" fn NewWindowRequested<
2138            Identity: ICoreWebView2_Impl,
2139            const OFFSET: isize,
2140        >(
2141            this: *mut core::ffi::c_void,
2142            eventhandler: *mut core::ffi::c_void,
2143            token: *mut i64,
2144        ) -> windows_core::HRESULT {
2145            unsafe {
2146                let this: &Identity =
2147                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
2148                match ICoreWebView2_Impl::NewWindowRequested(
2149                    this,
2150                    core::mem::transmute_copy(&eventhandler),
2151                ) {
2152                    Ok(ok__) => {
2153                        token.write(core::mem::transmute(ok__));
2154                        windows_core::HRESULT(0)
2155                    }
2156                    Err(err) => err.into(),
2157                }
2158            }
2159        }
2160        unsafe extern "system" fn RemoveNewWindowRequested<
2161            Identity: ICoreWebView2_Impl,
2162            const OFFSET: isize,
2163        >(
2164            this: *mut core::ffi::c_void,
2165            token: i64,
2166        ) -> windows_core::HRESULT {
2167            unsafe {
2168                let this: &Identity =
2169                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
2170                ICoreWebView2_Impl::RemoveNewWindowRequested(
2171                    this,
2172                    core::mem::transmute_copy(&token),
2173                )
2174                .into()
2175            }
2176        }
2177        unsafe extern "system" fn DocumentTitleChanged<
2178            Identity: ICoreWebView2_Impl,
2179            const OFFSET: isize,
2180        >(
2181            this: *mut core::ffi::c_void,
2182            eventhandler: *mut core::ffi::c_void,
2183            token: *mut i64,
2184        ) -> windows_core::HRESULT {
2185            unsafe {
2186                let this: &Identity =
2187                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
2188                match ICoreWebView2_Impl::DocumentTitleChanged(
2189                    this,
2190                    core::mem::transmute_copy(&eventhandler),
2191                ) {
2192                    Ok(ok__) => {
2193                        token.write(core::mem::transmute(ok__));
2194                        windows_core::HRESULT(0)
2195                    }
2196                    Err(err) => err.into(),
2197                }
2198            }
2199        }
2200        unsafe extern "system" fn RemoveDocumentTitleChanged<
2201            Identity: ICoreWebView2_Impl,
2202            const OFFSET: isize,
2203        >(
2204            this: *mut core::ffi::c_void,
2205            token: i64,
2206        ) -> windows_core::HRESULT {
2207            unsafe {
2208                let this: &Identity =
2209                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
2210                ICoreWebView2_Impl::RemoveDocumentTitleChanged(
2211                    this,
2212                    core::mem::transmute_copy(&token),
2213                )
2214                .into()
2215            }
2216        }
2217        unsafe extern "system" fn DocumentTitle<
2218            Identity: ICoreWebView2_Impl,
2219            const OFFSET: isize,
2220        >(
2221            this: *mut core::ffi::c_void,
2222            title: *mut windows_core::PWSTR,
2223        ) -> windows_core::HRESULT {
2224            unsafe {
2225                let this: &Identity =
2226                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
2227                match ICoreWebView2_Impl::DocumentTitle(this) {
2228                    Ok(ok__) => {
2229                        title.write(core::mem::transmute(ok__));
2230                        windows_core::HRESULT(0)
2231                    }
2232                    Err(err) => err.into(),
2233                }
2234            }
2235        }
2236        unsafe extern "system" fn AddHostObjectToScript<
2237            Identity: ICoreWebView2_Impl,
2238            const OFFSET: isize,
2239        >(
2240            this: *mut core::ffi::c_void,
2241            name: windows_core::PCWSTR,
2242            object: *mut windows::Win32::System::Variant::VARIANT,
2243        ) -> windows_core::HRESULT {
2244            unsafe {
2245                let this: &Identity =
2246                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
2247                ICoreWebView2_Impl::AddHostObjectToScript(
2248                    this,
2249                    core::mem::transmute(&name),
2250                    core::mem::transmute_copy(&object),
2251                )
2252                .into()
2253            }
2254        }
2255        unsafe extern "system" fn RemoveHostObjectFromScript<
2256            Identity: ICoreWebView2_Impl,
2257            const OFFSET: isize,
2258        >(
2259            this: *mut core::ffi::c_void,
2260            name: windows_core::PCWSTR,
2261        ) -> windows_core::HRESULT {
2262            unsafe {
2263                let this: &Identity =
2264                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
2265                ICoreWebView2_Impl::RemoveHostObjectFromScript(this, core::mem::transmute(&name))
2266                    .into()
2267            }
2268        }
2269        unsafe extern "system" fn OpenDevToolsWindow<
2270            Identity: ICoreWebView2_Impl,
2271            const OFFSET: isize,
2272        >(
2273            this: *mut core::ffi::c_void,
2274        ) -> windows_core::HRESULT {
2275            unsafe {
2276                let this: &Identity =
2277                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
2278                ICoreWebView2_Impl::OpenDevToolsWindow(this).into()
2279            }
2280        }
2281        unsafe extern "system" fn ContainsFullScreenElementChanged<
2282            Identity: ICoreWebView2_Impl,
2283            const OFFSET: isize,
2284        >(
2285            this: *mut core::ffi::c_void,
2286            eventhandler: *mut core::ffi::c_void,
2287            token: *mut i64,
2288        ) -> windows_core::HRESULT {
2289            unsafe {
2290                let this: &Identity =
2291                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
2292                match ICoreWebView2_Impl::ContainsFullScreenElementChanged(
2293                    this,
2294                    core::mem::transmute_copy(&eventhandler),
2295                ) {
2296                    Ok(ok__) => {
2297                        token.write(core::mem::transmute(ok__));
2298                        windows_core::HRESULT(0)
2299                    }
2300                    Err(err) => err.into(),
2301                }
2302            }
2303        }
2304        unsafe extern "system" fn RemoveContainsFullScreenElementChanged<
2305            Identity: ICoreWebView2_Impl,
2306            const OFFSET: isize,
2307        >(
2308            this: *mut core::ffi::c_void,
2309            token: i64,
2310        ) -> windows_core::HRESULT {
2311            unsafe {
2312                let this: &Identity =
2313                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
2314                ICoreWebView2_Impl::RemoveContainsFullScreenElementChanged(
2315                    this,
2316                    core::mem::transmute_copy(&token),
2317                )
2318                .into()
2319            }
2320        }
2321        unsafe extern "system" fn ContainsFullScreenElement<
2322            Identity: ICoreWebView2_Impl,
2323            const OFFSET: isize,
2324        >(
2325            this: *mut core::ffi::c_void,
2326            containsfullscreenelement: *mut windows_core::BOOL,
2327        ) -> windows_core::HRESULT {
2328            unsafe {
2329                let this: &Identity =
2330                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
2331                match ICoreWebView2_Impl::ContainsFullScreenElement(this) {
2332                    Ok(ok__) => {
2333                        containsfullscreenelement.write(core::mem::transmute(ok__));
2334                        windows_core::HRESULT(0)
2335                    }
2336                    Err(err) => err.into(),
2337                }
2338            }
2339        }
2340        unsafe extern "system" fn WebResourceRequested<
2341            Identity: ICoreWebView2_Impl,
2342            const OFFSET: isize,
2343        >(
2344            this: *mut core::ffi::c_void,
2345            eventhandler: *mut core::ffi::c_void,
2346            token: *mut i64,
2347        ) -> windows_core::HRESULT {
2348            unsafe {
2349                let this: &Identity =
2350                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
2351                match ICoreWebView2_Impl::WebResourceRequested(
2352                    this,
2353                    core::mem::transmute_copy(&eventhandler),
2354                ) {
2355                    Ok(ok__) => {
2356                        token.write(core::mem::transmute(ok__));
2357                        windows_core::HRESULT(0)
2358                    }
2359                    Err(err) => err.into(),
2360                }
2361            }
2362        }
2363        unsafe extern "system" fn RemoveWebResourceRequested<
2364            Identity: ICoreWebView2_Impl,
2365            const OFFSET: isize,
2366        >(
2367            this: *mut core::ffi::c_void,
2368            token: i64,
2369        ) -> windows_core::HRESULT {
2370            unsafe {
2371                let this: &Identity =
2372                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
2373                ICoreWebView2_Impl::RemoveWebResourceRequested(
2374                    this,
2375                    core::mem::transmute_copy(&token),
2376                )
2377                .into()
2378            }
2379        }
2380        unsafe extern "system" fn AddWebResourceRequestedFilter<
2381            Identity: ICoreWebView2_Impl,
2382            const OFFSET: isize,
2383        >(
2384            this: *mut core::ffi::c_void,
2385            uri: windows_core::PCWSTR,
2386            resourcecontext: COREWEBVIEW2_WEB_RESOURCE_CONTEXT,
2387        ) -> windows_core::HRESULT {
2388            unsafe {
2389                let this: &Identity =
2390                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
2391                ICoreWebView2_Impl::AddWebResourceRequestedFilter(
2392                    this,
2393                    core::mem::transmute(&uri),
2394                    core::mem::transmute_copy(&resourcecontext),
2395                )
2396                .into()
2397            }
2398        }
2399        unsafe extern "system" fn RemoveWebResourceRequestedFilter<
2400            Identity: ICoreWebView2_Impl,
2401            const OFFSET: isize,
2402        >(
2403            this: *mut core::ffi::c_void,
2404            uri: windows_core::PCWSTR,
2405            resourcecontext: COREWEBVIEW2_WEB_RESOURCE_CONTEXT,
2406        ) -> windows_core::HRESULT {
2407            unsafe {
2408                let this: &Identity =
2409                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
2410                ICoreWebView2_Impl::RemoveWebResourceRequestedFilter(
2411                    this,
2412                    core::mem::transmute(&uri),
2413                    core::mem::transmute_copy(&resourcecontext),
2414                )
2415                .into()
2416            }
2417        }
2418        unsafe extern "system" fn WindowCloseRequested<
2419            Identity: ICoreWebView2_Impl,
2420            const OFFSET: isize,
2421        >(
2422            this: *mut core::ffi::c_void,
2423            eventhandler: *mut core::ffi::c_void,
2424            token: *mut i64,
2425        ) -> windows_core::HRESULT {
2426            unsafe {
2427                let this: &Identity =
2428                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
2429                match ICoreWebView2_Impl::WindowCloseRequested(
2430                    this,
2431                    core::mem::transmute_copy(&eventhandler),
2432                ) {
2433                    Ok(ok__) => {
2434                        token.write(core::mem::transmute(ok__));
2435                        windows_core::HRESULT(0)
2436                    }
2437                    Err(err) => err.into(),
2438                }
2439            }
2440        }
2441        unsafe extern "system" fn RemoveWindowCloseRequested<
2442            Identity: ICoreWebView2_Impl,
2443            const OFFSET: isize,
2444        >(
2445            this: *mut core::ffi::c_void,
2446            token: i64,
2447        ) -> windows_core::HRESULT {
2448            unsafe {
2449                let this: &Identity =
2450                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
2451                ICoreWebView2_Impl::RemoveWindowCloseRequested(
2452                    this,
2453                    core::mem::transmute_copy(&token),
2454                )
2455                .into()
2456            }
2457        }
2458        Self {
2459            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
2460            Settings: Settings::<Identity, OFFSET>,
2461            Source: Source::<Identity, OFFSET>,
2462            Navigate: Navigate::<Identity, OFFSET>,
2463            NavigateToString: NavigateToString::<Identity, OFFSET>,
2464            NavigationStarting: NavigationStarting::<Identity, OFFSET>,
2465            RemoveNavigationStarting: RemoveNavigationStarting::<Identity, OFFSET>,
2466            ContentLoading: ContentLoading::<Identity, OFFSET>,
2467            RemoveContentLoading: RemoveContentLoading::<Identity, OFFSET>,
2468            SourceChanged: SourceChanged::<Identity, OFFSET>,
2469            RemoveSourceChanged: RemoveSourceChanged::<Identity, OFFSET>,
2470            HistoryChanged: HistoryChanged::<Identity, OFFSET>,
2471            RemoveHistoryChanged: RemoveHistoryChanged::<Identity, OFFSET>,
2472            NavigationCompleted: NavigationCompleted::<Identity, OFFSET>,
2473            RemoveNavigationCompleted: RemoveNavigationCompleted::<Identity, OFFSET>,
2474            FrameNavigationStarting: FrameNavigationStarting::<Identity, OFFSET>,
2475            RemoveFrameNavigationStarting: RemoveFrameNavigationStarting::<Identity, OFFSET>,
2476            FrameNavigationCompleted: FrameNavigationCompleted::<Identity, OFFSET>,
2477            RemoveFrameNavigationCompleted: RemoveFrameNavigationCompleted::<Identity, OFFSET>,
2478            ScriptDialogOpening: ScriptDialogOpening::<Identity, OFFSET>,
2479            RemoveScriptDialogOpening: RemoveScriptDialogOpening::<Identity, OFFSET>,
2480            PermissionRequested: PermissionRequested::<Identity, OFFSET>,
2481            RemovePermissionRequested: RemovePermissionRequested::<Identity, OFFSET>,
2482            ProcessFailed: ProcessFailed::<Identity, OFFSET>,
2483            RemoveProcessFailed: RemoveProcessFailed::<Identity, OFFSET>,
2484            AddScriptToExecuteOnDocumentCreated: AddScriptToExecuteOnDocumentCreated::<
2485                Identity,
2486                OFFSET,
2487            >,
2488            RemoveScriptToExecuteOnDocumentCreated: RemoveScriptToExecuteOnDocumentCreated::<
2489                Identity,
2490                OFFSET,
2491            >,
2492            ExecuteScript: ExecuteScript::<Identity, OFFSET>,
2493            CapturePreview: CapturePreview::<Identity, OFFSET>,
2494            Reload: Reload::<Identity, OFFSET>,
2495            PostWebMessageAsJson: PostWebMessageAsJson::<Identity, OFFSET>,
2496            PostWebMessageAsString: PostWebMessageAsString::<Identity, OFFSET>,
2497            WebMessageReceived: WebMessageReceived::<Identity, OFFSET>,
2498            RemoveWebMessageReceived: RemoveWebMessageReceived::<Identity, OFFSET>,
2499            CallDevToolsProtocolMethod: CallDevToolsProtocolMethod::<Identity, OFFSET>,
2500            BrowserProcessId: BrowserProcessId::<Identity, OFFSET>,
2501            CanGoBack: CanGoBack::<Identity, OFFSET>,
2502            CanGoForward: CanGoForward::<Identity, OFFSET>,
2503            GoBack: GoBack::<Identity, OFFSET>,
2504            GoForward: GoForward::<Identity, OFFSET>,
2505            GetDevToolsProtocolEventReceiver: GetDevToolsProtocolEventReceiver::<Identity, OFFSET>,
2506            Stop: Stop::<Identity, OFFSET>,
2507            NewWindowRequested: NewWindowRequested::<Identity, OFFSET>,
2508            RemoveNewWindowRequested: RemoveNewWindowRequested::<Identity, OFFSET>,
2509            DocumentTitleChanged: DocumentTitleChanged::<Identity, OFFSET>,
2510            RemoveDocumentTitleChanged: RemoveDocumentTitleChanged::<Identity, OFFSET>,
2511            DocumentTitle: DocumentTitle::<Identity, OFFSET>,
2512            AddHostObjectToScript: AddHostObjectToScript::<Identity, OFFSET>,
2513            RemoveHostObjectFromScript: RemoveHostObjectFromScript::<Identity, OFFSET>,
2514            OpenDevToolsWindow: OpenDevToolsWindow::<Identity, OFFSET>,
2515            ContainsFullScreenElementChanged: ContainsFullScreenElementChanged::<Identity, OFFSET>,
2516            RemoveContainsFullScreenElementChanged: RemoveContainsFullScreenElementChanged::<
2517                Identity,
2518                OFFSET,
2519            >,
2520            ContainsFullScreenElement: ContainsFullScreenElement::<Identity, OFFSET>,
2521            WebResourceRequested: WebResourceRequested::<Identity, OFFSET>,
2522            RemoveWebResourceRequested: RemoveWebResourceRequested::<Identity, OFFSET>,
2523            AddWebResourceRequestedFilter: AddWebResourceRequestedFilter::<Identity, OFFSET>,
2524            RemoveWebResourceRequestedFilter: RemoveWebResourceRequestedFilter::<Identity, OFFSET>,
2525            WindowCloseRequested: WindowCloseRequested::<Identity, OFFSET>,
2526            RemoveWindowCloseRequested: RemoveWindowCloseRequested::<Identity, OFFSET>,
2527        }
2528    }
2529    pub fn matches(iid: &windows_core::GUID) -> bool {
2530        iid == &<ICoreWebView2 as windows_core::Interface>::IID
2531    }
2532}
2533impl windows_core::RuntimeName for ICoreWebView2 {}
2534windows_core::imp::define_interface!(
2535    ICoreWebView2AcceleratorKeyPressedEventArgs,
2536    ICoreWebView2AcceleratorKeyPressedEventArgs_Vtbl,
2537    0x9f760f8a_fb79_42be_9990_7b56900fa9c7
2538);
2539windows_core::imp::interface_hierarchy!(
2540    ICoreWebView2AcceleratorKeyPressedEventArgs,
2541    windows_core::IUnknown
2542);
2543impl ICoreWebView2AcceleratorKeyPressedEventArgs {
2544    pub unsafe fn KeyEventKind(&self) -> windows_core::Result<COREWEBVIEW2_KEY_EVENT_KIND> {
2545        unsafe {
2546            let mut result__ = core::mem::zeroed();
2547            (windows_core::Interface::vtable(self).KeyEventKind)(
2548                windows_core::Interface::as_raw(self),
2549                &mut result__,
2550            )
2551            .map(|| result__)
2552        }
2553    }
2554    pub unsafe fn VirtualKey(&self) -> windows_core::Result<u32> {
2555        unsafe {
2556            let mut result__ = core::mem::zeroed();
2557            (windows_core::Interface::vtable(self).VirtualKey)(
2558                windows_core::Interface::as_raw(self),
2559                &mut result__,
2560            )
2561            .map(|| result__)
2562        }
2563    }
2564    pub unsafe fn KeyEventLParam(&self) -> windows_core::Result<i32> {
2565        unsafe {
2566            let mut result__ = core::mem::zeroed();
2567            (windows_core::Interface::vtable(self).KeyEventLParam)(
2568                windows_core::Interface::as_raw(self),
2569                &mut result__,
2570            )
2571            .map(|| result__)
2572        }
2573    }
2574    pub unsafe fn PhysicalKeyStatus(
2575        &self,
2576        physicalkeystatus: *mut COREWEBVIEW2_PHYSICAL_KEY_STATUS,
2577    ) -> windows_core::Result<()> {
2578        unsafe {
2579            (windows_core::Interface::vtable(self).PhysicalKeyStatus)(
2580                windows_core::Interface::as_raw(self),
2581                physicalkeystatus as _,
2582            )
2583            .ok()
2584        }
2585    }
2586    pub unsafe fn Handled(&self) -> windows_core::Result<windows_core::BOOL> {
2587        unsafe {
2588            let mut result__ = core::mem::zeroed();
2589            (windows_core::Interface::vtable(self).Handled)(
2590                windows_core::Interface::as_raw(self),
2591                &mut result__,
2592            )
2593            .map(|| result__)
2594        }
2595    }
2596    pub unsafe fn SetHandled(&self, handled: bool) -> windows_core::Result<()> {
2597        unsafe {
2598            (windows_core::Interface::vtable(self).SetHandled)(
2599                windows_core::Interface::as_raw(self),
2600                handled.into(),
2601            )
2602            .ok()
2603        }
2604    }
2605}
2606#[repr(C)]
2607#[doc(hidden)]
2608pub struct ICoreWebView2AcceleratorKeyPressedEventArgs_Vtbl {
2609    pub base__: windows_core::IUnknown_Vtbl,
2610    pub KeyEventKind: unsafe extern "system" fn(
2611        *mut core::ffi::c_void,
2612        *mut COREWEBVIEW2_KEY_EVENT_KIND,
2613    ) -> windows_core::HRESULT,
2614    pub VirtualKey:
2615        unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
2616    pub KeyEventLParam:
2617        unsafe extern "system" fn(*mut core::ffi::c_void, *mut i32) -> windows_core::HRESULT,
2618    pub PhysicalKeyStatus: unsafe extern "system" fn(
2619        *mut core::ffi::c_void,
2620        *mut COREWEBVIEW2_PHYSICAL_KEY_STATUS,
2621    ) -> windows_core::HRESULT,
2622    pub Handled: unsafe extern "system" fn(
2623        *mut core::ffi::c_void,
2624        *mut windows_core::BOOL,
2625    ) -> windows_core::HRESULT,
2626    pub SetHandled: unsafe extern "system" fn(
2627        *mut core::ffi::c_void,
2628        windows_core::BOOL,
2629    ) -> windows_core::HRESULT,
2630}
2631pub trait ICoreWebView2AcceleratorKeyPressedEventArgs_Impl: windows_core::IUnknownImpl {
2632    fn KeyEventKind(&self) -> windows_core::Result<COREWEBVIEW2_KEY_EVENT_KIND>;
2633    fn VirtualKey(&self) -> windows_core::Result<u32>;
2634    fn KeyEventLParam(&self) -> windows_core::Result<i32>;
2635    fn PhysicalKeyStatus(
2636        &self,
2637        physicalkeystatus: *mut COREWEBVIEW2_PHYSICAL_KEY_STATUS,
2638    ) -> windows_core::Result<()>;
2639    fn Handled(&self) -> windows_core::Result<windows_core::BOOL>;
2640    fn SetHandled(&self, handled: windows_core::BOOL) -> windows_core::Result<()>;
2641}
2642impl ICoreWebView2AcceleratorKeyPressedEventArgs_Vtbl {
2643    pub const fn new<
2644        Identity: ICoreWebView2AcceleratorKeyPressedEventArgs_Impl,
2645        const OFFSET: isize,
2646    >() -> Self {
2647        unsafe extern "system" fn KeyEventKind<
2648            Identity: ICoreWebView2AcceleratorKeyPressedEventArgs_Impl,
2649            const OFFSET: isize,
2650        >(
2651            this: *mut core::ffi::c_void,
2652            keyeventkind: *mut COREWEBVIEW2_KEY_EVENT_KIND,
2653        ) -> windows_core::HRESULT {
2654            unsafe {
2655                let this: &Identity =
2656                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
2657                match ICoreWebView2AcceleratorKeyPressedEventArgs_Impl::KeyEventKind(this) {
2658                    Ok(ok__) => {
2659                        keyeventkind.write(core::mem::transmute(ok__));
2660                        windows_core::HRESULT(0)
2661                    }
2662                    Err(err) => err.into(),
2663                }
2664            }
2665        }
2666        unsafe extern "system" fn VirtualKey<
2667            Identity: ICoreWebView2AcceleratorKeyPressedEventArgs_Impl,
2668            const OFFSET: isize,
2669        >(
2670            this: *mut core::ffi::c_void,
2671            virtualkey: *mut u32,
2672        ) -> windows_core::HRESULT {
2673            unsafe {
2674                let this: &Identity =
2675                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
2676                match ICoreWebView2AcceleratorKeyPressedEventArgs_Impl::VirtualKey(this) {
2677                    Ok(ok__) => {
2678                        virtualkey.write(core::mem::transmute(ok__));
2679                        windows_core::HRESULT(0)
2680                    }
2681                    Err(err) => err.into(),
2682                }
2683            }
2684        }
2685        unsafe extern "system" fn KeyEventLParam<
2686            Identity: ICoreWebView2AcceleratorKeyPressedEventArgs_Impl,
2687            const OFFSET: isize,
2688        >(
2689            this: *mut core::ffi::c_void,
2690            lparam: *mut i32,
2691        ) -> windows_core::HRESULT {
2692            unsafe {
2693                let this: &Identity =
2694                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
2695                match ICoreWebView2AcceleratorKeyPressedEventArgs_Impl::KeyEventLParam(this) {
2696                    Ok(ok__) => {
2697                        lparam.write(core::mem::transmute(ok__));
2698                        windows_core::HRESULT(0)
2699                    }
2700                    Err(err) => err.into(),
2701                }
2702            }
2703        }
2704        unsafe extern "system" fn PhysicalKeyStatus<
2705            Identity: ICoreWebView2AcceleratorKeyPressedEventArgs_Impl,
2706            const OFFSET: isize,
2707        >(
2708            this: *mut core::ffi::c_void,
2709            physicalkeystatus: *mut COREWEBVIEW2_PHYSICAL_KEY_STATUS,
2710        ) -> windows_core::HRESULT {
2711            unsafe {
2712                let this: &Identity =
2713                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
2714                ICoreWebView2AcceleratorKeyPressedEventArgs_Impl::PhysicalKeyStatus(
2715                    this,
2716                    core::mem::transmute_copy(&physicalkeystatus),
2717                )
2718                .into()
2719            }
2720        }
2721        unsafe extern "system" fn Handled<
2722            Identity: ICoreWebView2AcceleratorKeyPressedEventArgs_Impl,
2723            const OFFSET: isize,
2724        >(
2725            this: *mut core::ffi::c_void,
2726            handled: *mut windows_core::BOOL,
2727        ) -> windows_core::HRESULT {
2728            unsafe {
2729                let this: &Identity =
2730                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
2731                match ICoreWebView2AcceleratorKeyPressedEventArgs_Impl::Handled(this) {
2732                    Ok(ok__) => {
2733                        handled.write(core::mem::transmute(ok__));
2734                        windows_core::HRESULT(0)
2735                    }
2736                    Err(err) => err.into(),
2737                }
2738            }
2739        }
2740        unsafe extern "system" fn SetHandled<
2741            Identity: ICoreWebView2AcceleratorKeyPressedEventArgs_Impl,
2742            const OFFSET: isize,
2743        >(
2744            this: *mut core::ffi::c_void,
2745            handled: windows_core::BOOL,
2746        ) -> windows_core::HRESULT {
2747            unsafe {
2748                let this: &Identity =
2749                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
2750                ICoreWebView2AcceleratorKeyPressedEventArgs_Impl::SetHandled(
2751                    this,
2752                    core::mem::transmute_copy(&handled),
2753                )
2754                .into()
2755            }
2756        }
2757        Self {
2758            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
2759            KeyEventKind: KeyEventKind::<Identity, OFFSET>,
2760            VirtualKey: VirtualKey::<Identity, OFFSET>,
2761            KeyEventLParam: KeyEventLParam::<Identity, OFFSET>,
2762            PhysicalKeyStatus: PhysicalKeyStatus::<Identity, OFFSET>,
2763            Handled: Handled::<Identity, OFFSET>,
2764            SetHandled: SetHandled::<Identity, OFFSET>,
2765        }
2766    }
2767    pub fn matches(iid: &windows_core::GUID) -> bool {
2768        iid == &<ICoreWebView2AcceleratorKeyPressedEventArgs as windows_core::Interface>::IID
2769    }
2770}
2771impl windows_core::RuntimeName for ICoreWebView2AcceleratorKeyPressedEventArgs {}
2772windows_core::imp::define_interface!(
2773    ICoreWebView2AcceleratorKeyPressedEventHandler,
2774    ICoreWebView2AcceleratorKeyPressedEventHandler_Vtbl,
2775    0xb29c7e28_fa79_41a8_8e44_65811c76dcb2
2776);
2777windows_core::imp::interface_hierarchy!(
2778    ICoreWebView2AcceleratorKeyPressedEventHandler,
2779    windows_core::IUnknown
2780);
2781impl ICoreWebView2AcceleratorKeyPressedEventHandler {
2782    pub unsafe fn Invoke<P0, P1>(&self, sender: P0, args: P1) -> windows_core::Result<()>
2783    where
2784        P0: windows_core::Param<ICoreWebView2Controller>,
2785        P1: windows_core::Param<ICoreWebView2AcceleratorKeyPressedEventArgs>,
2786    {
2787        unsafe {
2788            (windows_core::Interface::vtable(self).Invoke)(
2789                windows_core::Interface::as_raw(self),
2790                sender.param().abi(),
2791                args.param().abi(),
2792            )
2793            .ok()
2794        }
2795    }
2796}
2797#[repr(C)]
2798#[doc(hidden)]
2799pub struct ICoreWebView2AcceleratorKeyPressedEventHandler_Vtbl {
2800    pub base__: windows_core::IUnknown_Vtbl,
2801    pub Invoke: unsafe extern "system" fn(
2802        *mut core::ffi::c_void,
2803        *mut core::ffi::c_void,
2804        *mut core::ffi::c_void,
2805    ) -> windows_core::HRESULT,
2806}
2807pub trait ICoreWebView2AcceleratorKeyPressedEventHandler_Impl: windows_core::IUnknownImpl {
2808    fn Invoke(
2809        &self,
2810        sender: windows_core::Ref<ICoreWebView2Controller>,
2811        args: windows_core::Ref<ICoreWebView2AcceleratorKeyPressedEventArgs>,
2812    ) -> windows_core::Result<()>;
2813}
2814impl ICoreWebView2AcceleratorKeyPressedEventHandler_Vtbl {
2815    pub const fn new<
2816        Identity: ICoreWebView2AcceleratorKeyPressedEventHandler_Impl,
2817        const OFFSET: isize,
2818    >() -> Self {
2819        unsafe extern "system" fn Invoke<
2820            Identity: ICoreWebView2AcceleratorKeyPressedEventHandler_Impl,
2821            const OFFSET: isize,
2822        >(
2823            this: *mut core::ffi::c_void,
2824            sender: *mut core::ffi::c_void,
2825            args: *mut core::ffi::c_void,
2826        ) -> windows_core::HRESULT {
2827            unsafe {
2828                let this: &Identity =
2829                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
2830                ICoreWebView2AcceleratorKeyPressedEventHandler_Impl::Invoke(
2831                    this,
2832                    core::mem::transmute_copy(&sender),
2833                    core::mem::transmute_copy(&args),
2834                )
2835                .into()
2836            }
2837        }
2838        Self {
2839            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
2840            Invoke: Invoke::<Identity, OFFSET>,
2841        }
2842    }
2843    pub fn matches(iid: &windows_core::GUID) -> bool {
2844        iid == &<ICoreWebView2AcceleratorKeyPressedEventHandler as windows_core::Interface>::IID
2845    }
2846}
2847impl windows_core::RuntimeName for ICoreWebView2AcceleratorKeyPressedEventHandler {}
2848windows_core::imp::define_interface!(
2849    ICoreWebView2AddScriptToExecuteOnDocumentCreatedCompletedHandler,
2850    ICoreWebView2AddScriptToExecuteOnDocumentCreatedCompletedHandler_Vtbl,
2851    0xb99369f3_9b11_47b5_bc6f_8e7895fcea17
2852);
2853windows_core::imp::interface_hierarchy!(
2854    ICoreWebView2AddScriptToExecuteOnDocumentCreatedCompletedHandler,
2855    windows_core::IUnknown
2856);
2857impl ICoreWebView2AddScriptToExecuteOnDocumentCreatedCompletedHandler {
2858    pub unsafe fn Invoke<P1>(
2859        &self,
2860        errorcode: windows_core::HRESULT,
2861        id: P1,
2862    ) -> windows_core::Result<()>
2863    where
2864        P1: windows_core::Param<windows_core::PCWSTR>,
2865    {
2866        unsafe {
2867            (windows_core::Interface::vtable(self).Invoke)(
2868                windows_core::Interface::as_raw(self),
2869                errorcode,
2870                id.param().abi(),
2871            )
2872            .ok()
2873        }
2874    }
2875}
2876#[repr(C)]
2877#[doc(hidden)]
2878pub struct ICoreWebView2AddScriptToExecuteOnDocumentCreatedCompletedHandler_Vtbl {
2879    pub base__: windows_core::IUnknown_Vtbl,
2880    pub Invoke: unsafe extern "system" fn(
2881        *mut core::ffi::c_void,
2882        windows_core::HRESULT,
2883        windows_core::PCWSTR,
2884    ) -> windows_core::HRESULT,
2885}
2886pub trait ICoreWebView2AddScriptToExecuteOnDocumentCreatedCompletedHandler_Impl:
2887    windows_core::IUnknownImpl
2888{
2889    fn Invoke(
2890        &self,
2891        errorcode: windows_core::HRESULT,
2892        id: &windows_core::PCWSTR,
2893    ) -> windows_core::Result<()>;
2894}
2895impl ICoreWebView2AddScriptToExecuteOnDocumentCreatedCompletedHandler_Vtbl {
2896    pub const fn new<
2897        Identity: ICoreWebView2AddScriptToExecuteOnDocumentCreatedCompletedHandler_Impl,
2898        const OFFSET: isize,
2899    >() -> Self {
2900        unsafe extern "system" fn Invoke<
2901            Identity: ICoreWebView2AddScriptToExecuteOnDocumentCreatedCompletedHandler_Impl,
2902            const OFFSET: isize,
2903        >(
2904            this: *mut core::ffi::c_void,
2905            errorcode: windows_core::HRESULT,
2906            id: windows_core::PCWSTR,
2907        ) -> windows_core::HRESULT {
2908            unsafe {
2909                let this: &Identity =
2910                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
2911                ICoreWebView2AddScriptToExecuteOnDocumentCreatedCompletedHandler_Impl::Invoke(
2912                    this,
2913                    core::mem::transmute_copy(&errorcode),
2914                    core::mem::transmute(&id),
2915                )
2916                .into()
2917            }
2918        }
2919        Self {
2920            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
2921            Invoke: Invoke::<Identity, OFFSET>,
2922        }
2923    }
2924    pub fn matches(iid: &windows_core::GUID) -> bool {
2925        iid == & < ICoreWebView2AddScriptToExecuteOnDocumentCreatedCompletedHandler as windows_core::Interface >::IID
2926    }
2927}
2928impl windows_core::RuntimeName
2929    for ICoreWebView2AddScriptToExecuteOnDocumentCreatedCompletedHandler
2930{
2931}
2932windows_core::imp::define_interface!(
2933    ICoreWebView2CallDevToolsProtocolMethodCompletedHandler,
2934    ICoreWebView2CallDevToolsProtocolMethodCompletedHandler_Vtbl,
2935    0x5c4889f0_5ef6_4c5a_952c_d8f1b92d0574
2936);
2937windows_core::imp::interface_hierarchy!(
2938    ICoreWebView2CallDevToolsProtocolMethodCompletedHandler,
2939    windows_core::IUnknown
2940);
2941impl ICoreWebView2CallDevToolsProtocolMethodCompletedHandler {
2942    pub unsafe fn Invoke<P1>(
2943        &self,
2944        errorcode: windows_core::HRESULT,
2945        returnobjectasjson: P1,
2946    ) -> windows_core::Result<()>
2947    where
2948        P1: windows_core::Param<windows_core::PCWSTR>,
2949    {
2950        unsafe {
2951            (windows_core::Interface::vtable(self).Invoke)(
2952                windows_core::Interface::as_raw(self),
2953                errorcode,
2954                returnobjectasjson.param().abi(),
2955            )
2956            .ok()
2957        }
2958    }
2959}
2960#[repr(C)]
2961#[doc(hidden)]
2962pub struct ICoreWebView2CallDevToolsProtocolMethodCompletedHandler_Vtbl {
2963    pub base__: windows_core::IUnknown_Vtbl,
2964    pub Invoke: unsafe extern "system" fn(
2965        *mut core::ffi::c_void,
2966        windows_core::HRESULT,
2967        windows_core::PCWSTR,
2968    ) -> windows_core::HRESULT,
2969}
2970pub trait ICoreWebView2CallDevToolsProtocolMethodCompletedHandler_Impl:
2971    windows_core::IUnknownImpl
2972{
2973    fn Invoke(
2974        &self,
2975        errorcode: windows_core::HRESULT,
2976        returnobjectasjson: &windows_core::PCWSTR,
2977    ) -> windows_core::Result<()>;
2978}
2979impl ICoreWebView2CallDevToolsProtocolMethodCompletedHandler_Vtbl {
2980    pub const fn new<
2981        Identity: ICoreWebView2CallDevToolsProtocolMethodCompletedHandler_Impl,
2982        const OFFSET: isize,
2983    >() -> Self {
2984        unsafe extern "system" fn Invoke<
2985            Identity: ICoreWebView2CallDevToolsProtocolMethodCompletedHandler_Impl,
2986            const OFFSET: isize,
2987        >(
2988            this: *mut core::ffi::c_void,
2989            errorcode: windows_core::HRESULT,
2990            returnobjectasjson: windows_core::PCWSTR,
2991        ) -> windows_core::HRESULT {
2992            unsafe {
2993                let this: &Identity =
2994                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
2995                ICoreWebView2CallDevToolsProtocolMethodCompletedHandler_Impl::Invoke(
2996                    this,
2997                    core::mem::transmute_copy(&errorcode),
2998                    core::mem::transmute(&returnobjectasjson),
2999                )
3000                .into()
3001            }
3002        }
3003        Self {
3004            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
3005            Invoke: Invoke::<Identity, OFFSET>,
3006        }
3007    }
3008    pub fn matches(iid: &windows_core::GUID) -> bool {
3009        iid == & < ICoreWebView2CallDevToolsProtocolMethodCompletedHandler as windows_core::Interface >::IID
3010    }
3011}
3012impl windows_core::RuntimeName for ICoreWebView2CallDevToolsProtocolMethodCompletedHandler {}
3013windows_core::imp::define_interface!(
3014    ICoreWebView2CapturePreviewCompletedHandler,
3015    ICoreWebView2CapturePreviewCompletedHandler_Vtbl,
3016    0x697e05e9_3d8f_45fa_96f4_8ffe1ededaf5
3017);
3018windows_core::imp::interface_hierarchy!(
3019    ICoreWebView2CapturePreviewCompletedHandler,
3020    windows_core::IUnknown
3021);
3022impl ICoreWebView2CapturePreviewCompletedHandler {
3023    pub unsafe fn Invoke(&self, errorcode: windows_core::HRESULT) -> windows_core::Result<()> {
3024        unsafe {
3025            (windows_core::Interface::vtable(self).Invoke)(
3026                windows_core::Interface::as_raw(self),
3027                errorcode,
3028            )
3029            .ok()
3030        }
3031    }
3032}
3033#[repr(C)]
3034#[doc(hidden)]
3035pub struct ICoreWebView2CapturePreviewCompletedHandler_Vtbl {
3036    pub base__: windows_core::IUnknown_Vtbl,
3037    pub Invoke: unsafe extern "system" fn(
3038        *mut core::ffi::c_void,
3039        windows_core::HRESULT,
3040    ) -> windows_core::HRESULT,
3041}
3042pub trait ICoreWebView2CapturePreviewCompletedHandler_Impl: windows_core::IUnknownImpl {
3043    fn Invoke(&self, errorcode: windows_core::HRESULT) -> windows_core::Result<()>;
3044}
3045impl ICoreWebView2CapturePreviewCompletedHandler_Vtbl {
3046    pub const fn new<
3047        Identity: ICoreWebView2CapturePreviewCompletedHandler_Impl,
3048        const OFFSET: isize,
3049    >() -> Self {
3050        unsafe extern "system" fn Invoke<
3051            Identity: ICoreWebView2CapturePreviewCompletedHandler_Impl,
3052            const OFFSET: isize,
3053        >(
3054            this: *mut core::ffi::c_void,
3055            errorcode: windows_core::HRESULT,
3056        ) -> windows_core::HRESULT {
3057            unsafe {
3058                let this: &Identity =
3059                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
3060                ICoreWebView2CapturePreviewCompletedHandler_Impl::Invoke(
3061                    this,
3062                    core::mem::transmute_copy(&errorcode),
3063                )
3064                .into()
3065            }
3066        }
3067        Self {
3068            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
3069            Invoke: Invoke::<Identity, OFFSET>,
3070        }
3071    }
3072    pub fn matches(iid: &windows_core::GUID) -> bool {
3073        iid == &<ICoreWebView2CapturePreviewCompletedHandler as windows_core::Interface>::IID
3074    }
3075}
3076impl windows_core::RuntimeName for ICoreWebView2CapturePreviewCompletedHandler {}
3077windows_core::imp::define_interface!(
3078    ICoreWebView2CompositionController,
3079    ICoreWebView2CompositionController_Vtbl,
3080    0x3df9b733_b9ae_4a15_86b4_eb9ee9826469
3081);
3082windows_core::imp::interface_hierarchy!(ICoreWebView2CompositionController, windows_core::IUnknown);
3083impl ICoreWebView2CompositionController {
3084    pub unsafe fn RootVisualTarget(&self) -> windows_core::Result<windows_core::IUnknown> {
3085        unsafe {
3086            let mut result__ = core::mem::zeroed();
3087            (windows_core::Interface::vtable(self).RootVisualTarget)(
3088                windows_core::Interface::as_raw(self),
3089                &mut result__,
3090            )
3091            .and_then(|| windows_core::Type::from_abi(result__))
3092        }
3093    }
3094    pub unsafe fn SetRootVisualTarget<P0>(&self, target: P0) -> windows_core::Result<()>
3095    where
3096        P0: windows_core::Param<windows_core::IUnknown>,
3097    {
3098        unsafe {
3099            (windows_core::Interface::vtable(self).SetRootVisualTarget)(
3100                windows_core::Interface::as_raw(self),
3101                target.param().abi(),
3102            )
3103            .ok()
3104        }
3105    }
3106    pub unsafe fn SendMouseInput(
3107        &self,
3108        eventkind: COREWEBVIEW2_MOUSE_EVENT_KIND,
3109        virtualkeys: COREWEBVIEW2_MOUSE_EVENT_VIRTUAL_KEYS,
3110        mousedata: u32,
3111        point: windows::Win32::Foundation::POINT,
3112    ) -> windows_core::Result<()> {
3113        unsafe {
3114            (windows_core::Interface::vtable(self).SendMouseInput)(
3115                windows_core::Interface::as_raw(self),
3116                eventkind,
3117                virtualkeys,
3118                mousedata,
3119                core::mem::transmute(point),
3120            )
3121            .ok()
3122        }
3123    }
3124    pub unsafe fn SendPointerInput<P1>(
3125        &self,
3126        eventkind: COREWEBVIEW2_POINTER_EVENT_KIND,
3127        pointerinfo: P1,
3128    ) -> windows_core::Result<()>
3129    where
3130        P1: windows_core::Param<ICoreWebView2PointerInfo>,
3131    {
3132        unsafe {
3133            (windows_core::Interface::vtable(self).SendPointerInput)(
3134                windows_core::Interface::as_raw(self),
3135                eventkind,
3136                pointerinfo.param().abi(),
3137            )
3138            .ok()
3139        }
3140    }
3141    pub unsafe fn Cursor(
3142        &self,
3143    ) -> windows_core::Result<windows::Win32::UI::WindowsAndMessaging::HCURSOR> {
3144        unsafe {
3145            let mut result__ = core::mem::zeroed();
3146            (windows_core::Interface::vtable(self).Cursor)(
3147                windows_core::Interface::as_raw(self),
3148                &mut result__,
3149            )
3150            .map(|| result__)
3151        }
3152    }
3153    pub unsafe fn SystemCursorId(&self) -> windows_core::Result<u32> {
3154        unsafe {
3155            let mut result__ = core::mem::zeroed();
3156            (windows_core::Interface::vtable(self).SystemCursorId)(
3157                windows_core::Interface::as_raw(self),
3158                &mut result__,
3159            )
3160            .map(|| result__)
3161        }
3162    }
3163    pub unsafe fn CursorChanged<P0>(&self, eventhandler: P0) -> windows_core::Result<i64>
3164    where
3165        P0: windows_core::Param<ICoreWebView2CursorChangedEventHandler>,
3166    {
3167        unsafe {
3168            let mut result__ = core::mem::zeroed();
3169            (windows_core::Interface::vtable(self).CursorChanged)(
3170                windows_core::Interface::as_raw(self),
3171                eventhandler.param().abi(),
3172                &mut result__,
3173            )
3174            .map(|| result__)
3175        }
3176    }
3177    pub unsafe fn RemoveCursorChanged(&self, token: i64) -> windows_core::Result<()> {
3178        unsafe {
3179            (windows_core::Interface::vtable(self).RemoveCursorChanged)(
3180                windows_core::Interface::as_raw(self),
3181                token,
3182            )
3183            .ok()
3184        }
3185    }
3186}
3187#[repr(C)]
3188#[doc(hidden)]
3189pub struct ICoreWebView2CompositionController_Vtbl {
3190    pub base__: windows_core::IUnknown_Vtbl,
3191    pub RootVisualTarget: unsafe extern "system" fn(
3192        *mut core::ffi::c_void,
3193        *mut *mut core::ffi::c_void,
3194    ) -> windows_core::HRESULT,
3195    pub SetRootVisualTarget: unsafe extern "system" fn(
3196        *mut core::ffi::c_void,
3197        *mut core::ffi::c_void,
3198    ) -> windows_core::HRESULT,
3199    pub SendMouseInput: unsafe extern "system" fn(
3200        *mut core::ffi::c_void,
3201        COREWEBVIEW2_MOUSE_EVENT_KIND,
3202        COREWEBVIEW2_MOUSE_EVENT_VIRTUAL_KEYS,
3203        u32,
3204        windows::Win32::Foundation::POINT,
3205    ) -> windows_core::HRESULT,
3206    pub SendPointerInput: unsafe extern "system" fn(
3207        *mut core::ffi::c_void,
3208        COREWEBVIEW2_POINTER_EVENT_KIND,
3209        *mut core::ffi::c_void,
3210    ) -> windows_core::HRESULT,
3211    pub Cursor: unsafe extern "system" fn(
3212        *mut core::ffi::c_void,
3213        *mut windows::Win32::UI::WindowsAndMessaging::HCURSOR,
3214    ) -> windows_core::HRESULT,
3215    pub SystemCursorId:
3216        unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
3217    pub CursorChanged: unsafe extern "system" fn(
3218        *mut core::ffi::c_void,
3219        *mut core::ffi::c_void,
3220        *mut i64,
3221    ) -> windows_core::HRESULT,
3222    pub RemoveCursorChanged:
3223        unsafe extern "system" fn(*mut core::ffi::c_void, i64) -> windows_core::HRESULT,
3224}
3225pub trait ICoreWebView2CompositionController_Impl: windows_core::IUnknownImpl {
3226    fn RootVisualTarget(&self) -> windows_core::Result<windows_core::IUnknown>;
3227    fn SetRootVisualTarget(
3228        &self,
3229        target: windows_core::Ref<windows_core::IUnknown>,
3230    ) -> windows_core::Result<()>;
3231    fn SendMouseInput(
3232        &self,
3233        eventkind: COREWEBVIEW2_MOUSE_EVENT_KIND,
3234        virtualkeys: COREWEBVIEW2_MOUSE_EVENT_VIRTUAL_KEYS,
3235        mousedata: u32,
3236        point: &windows::Win32::Foundation::POINT,
3237    ) -> windows_core::Result<()>;
3238    fn SendPointerInput(
3239        &self,
3240        eventkind: COREWEBVIEW2_POINTER_EVENT_KIND,
3241        pointerinfo: windows_core::Ref<ICoreWebView2PointerInfo>,
3242    ) -> windows_core::Result<()>;
3243    fn Cursor(&self) -> windows_core::Result<windows::Win32::UI::WindowsAndMessaging::HCURSOR>;
3244    fn SystemCursorId(&self) -> windows_core::Result<u32>;
3245    fn CursorChanged(
3246        &self,
3247        eventhandler: windows_core::Ref<ICoreWebView2CursorChangedEventHandler>,
3248    ) -> windows_core::Result<i64>;
3249    fn RemoveCursorChanged(&self, token: i64) -> windows_core::Result<()>;
3250}
3251impl ICoreWebView2CompositionController_Vtbl {
3252    pub const fn new<Identity: ICoreWebView2CompositionController_Impl, const OFFSET: isize>(
3253    ) -> Self {
3254        unsafe extern "system" fn RootVisualTarget<
3255            Identity: ICoreWebView2CompositionController_Impl,
3256            const OFFSET: isize,
3257        >(
3258            this: *mut core::ffi::c_void,
3259            target: *mut *mut core::ffi::c_void,
3260        ) -> windows_core::HRESULT {
3261            unsafe {
3262                let this: &Identity =
3263                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
3264                match ICoreWebView2CompositionController_Impl::RootVisualTarget(this) {
3265                    Ok(ok__) => {
3266                        target.write(core::mem::transmute(ok__));
3267                        windows_core::HRESULT(0)
3268                    }
3269                    Err(err) => err.into(),
3270                }
3271            }
3272        }
3273        unsafe extern "system" fn SetRootVisualTarget<
3274            Identity: ICoreWebView2CompositionController_Impl,
3275            const OFFSET: isize,
3276        >(
3277            this: *mut core::ffi::c_void,
3278            target: *mut core::ffi::c_void,
3279        ) -> windows_core::HRESULT {
3280            unsafe {
3281                let this: &Identity =
3282                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
3283                ICoreWebView2CompositionController_Impl::SetRootVisualTarget(
3284                    this,
3285                    core::mem::transmute_copy(&target),
3286                )
3287                .into()
3288            }
3289        }
3290        unsafe extern "system" fn SendMouseInput<
3291            Identity: ICoreWebView2CompositionController_Impl,
3292            const OFFSET: isize,
3293        >(
3294            this: *mut core::ffi::c_void,
3295            eventkind: COREWEBVIEW2_MOUSE_EVENT_KIND,
3296            virtualkeys: COREWEBVIEW2_MOUSE_EVENT_VIRTUAL_KEYS,
3297            mousedata: u32,
3298            point: windows::Win32::Foundation::POINT,
3299        ) -> windows_core::HRESULT {
3300            unsafe {
3301                let this: &Identity =
3302                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
3303                ICoreWebView2CompositionController_Impl::SendMouseInput(
3304                    this,
3305                    core::mem::transmute_copy(&eventkind),
3306                    core::mem::transmute_copy(&virtualkeys),
3307                    core::mem::transmute_copy(&mousedata),
3308                    core::mem::transmute(&point),
3309                )
3310                .into()
3311            }
3312        }
3313        unsafe extern "system" fn SendPointerInput<
3314            Identity: ICoreWebView2CompositionController_Impl,
3315            const OFFSET: isize,
3316        >(
3317            this: *mut core::ffi::c_void,
3318            eventkind: COREWEBVIEW2_POINTER_EVENT_KIND,
3319            pointerinfo: *mut core::ffi::c_void,
3320        ) -> windows_core::HRESULT {
3321            unsafe {
3322                let this: &Identity =
3323                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
3324                ICoreWebView2CompositionController_Impl::SendPointerInput(
3325                    this,
3326                    core::mem::transmute_copy(&eventkind),
3327                    core::mem::transmute_copy(&pointerinfo),
3328                )
3329                .into()
3330            }
3331        }
3332        unsafe extern "system" fn Cursor<
3333            Identity: ICoreWebView2CompositionController_Impl,
3334            const OFFSET: isize,
3335        >(
3336            this: *mut core::ffi::c_void,
3337            cursor: *mut windows::Win32::UI::WindowsAndMessaging::HCURSOR,
3338        ) -> windows_core::HRESULT {
3339            unsafe {
3340                let this: &Identity =
3341                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
3342                match ICoreWebView2CompositionController_Impl::Cursor(this) {
3343                    Ok(ok__) => {
3344                        cursor.write(core::mem::transmute(ok__));
3345                        windows_core::HRESULT(0)
3346                    }
3347                    Err(err) => err.into(),
3348                }
3349            }
3350        }
3351        unsafe extern "system" fn SystemCursorId<
3352            Identity: ICoreWebView2CompositionController_Impl,
3353            const OFFSET: isize,
3354        >(
3355            this: *mut core::ffi::c_void,
3356            systemcursorid: *mut u32,
3357        ) -> windows_core::HRESULT {
3358            unsafe {
3359                let this: &Identity =
3360                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
3361                match ICoreWebView2CompositionController_Impl::SystemCursorId(this) {
3362                    Ok(ok__) => {
3363                        systemcursorid.write(core::mem::transmute(ok__));
3364                        windows_core::HRESULT(0)
3365                    }
3366                    Err(err) => err.into(),
3367                }
3368            }
3369        }
3370        unsafe extern "system" fn CursorChanged<
3371            Identity: ICoreWebView2CompositionController_Impl,
3372            const OFFSET: isize,
3373        >(
3374            this: *mut core::ffi::c_void,
3375            eventhandler: *mut core::ffi::c_void,
3376            token: *mut i64,
3377        ) -> windows_core::HRESULT {
3378            unsafe {
3379                let this: &Identity =
3380                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
3381                match ICoreWebView2CompositionController_Impl::CursorChanged(
3382                    this,
3383                    core::mem::transmute_copy(&eventhandler),
3384                ) {
3385                    Ok(ok__) => {
3386                        token.write(core::mem::transmute(ok__));
3387                        windows_core::HRESULT(0)
3388                    }
3389                    Err(err) => err.into(),
3390                }
3391            }
3392        }
3393        unsafe extern "system" fn RemoveCursorChanged<
3394            Identity: ICoreWebView2CompositionController_Impl,
3395            const OFFSET: isize,
3396        >(
3397            this: *mut core::ffi::c_void,
3398            token: i64,
3399        ) -> windows_core::HRESULT {
3400            unsafe {
3401                let this: &Identity =
3402                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
3403                ICoreWebView2CompositionController_Impl::RemoveCursorChanged(
3404                    this,
3405                    core::mem::transmute_copy(&token),
3406                )
3407                .into()
3408            }
3409        }
3410        Self {
3411            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
3412            RootVisualTarget: RootVisualTarget::<Identity, OFFSET>,
3413            SetRootVisualTarget: SetRootVisualTarget::<Identity, OFFSET>,
3414            SendMouseInput: SendMouseInput::<Identity, OFFSET>,
3415            SendPointerInput: SendPointerInput::<Identity, OFFSET>,
3416            Cursor: Cursor::<Identity, OFFSET>,
3417            SystemCursorId: SystemCursorId::<Identity, OFFSET>,
3418            CursorChanged: CursorChanged::<Identity, OFFSET>,
3419            RemoveCursorChanged: RemoveCursorChanged::<Identity, OFFSET>,
3420        }
3421    }
3422    pub fn matches(iid: &windows_core::GUID) -> bool {
3423        iid == &<ICoreWebView2CompositionController as windows_core::Interface>::IID
3424    }
3425}
3426impl windows_core::RuntimeName for ICoreWebView2CompositionController {}
3427windows_core::imp::define_interface!(
3428    ICoreWebView2CompositionController2,
3429    ICoreWebView2CompositionController2_Vtbl,
3430    0x0b6a3d24_49cb_4806_ba20_b5e0734a7b26
3431);
3432impl core::ops::Deref for ICoreWebView2CompositionController2 {
3433    type Target = ICoreWebView2CompositionController;
3434    fn deref(&self) -> &Self::Target {
3435        unsafe { core::mem::transmute(self) }
3436    }
3437}
3438windows_core::imp::interface_hierarchy!(
3439    ICoreWebView2CompositionController2,
3440    windows_core::IUnknown,
3441    ICoreWebView2CompositionController
3442);
3443impl ICoreWebView2CompositionController2 {
3444    pub unsafe fn UIAProvider(&self) -> windows_core::Result<windows_core::IUnknown> {
3445        unsafe {
3446            let mut result__ = core::mem::zeroed();
3447            (windows_core::Interface::vtable(self).UIAProvider)(
3448                windows_core::Interface::as_raw(self),
3449                &mut result__,
3450            )
3451            .and_then(|| windows_core::Type::from_abi(result__))
3452        }
3453    }
3454}
3455#[repr(C)]
3456#[doc(hidden)]
3457pub struct ICoreWebView2CompositionController2_Vtbl {
3458    pub base__: ICoreWebView2CompositionController_Vtbl,
3459    pub UIAProvider: unsafe extern "system" fn(
3460        *mut core::ffi::c_void,
3461        *mut *mut core::ffi::c_void,
3462    ) -> windows_core::HRESULT,
3463}
3464pub trait ICoreWebView2CompositionController2_Impl:
3465    ICoreWebView2CompositionController_Impl
3466{
3467    fn UIAProvider(&self) -> windows_core::Result<windows_core::IUnknown>;
3468}
3469impl ICoreWebView2CompositionController2_Vtbl {
3470    pub const fn new<Identity: ICoreWebView2CompositionController2_Impl, const OFFSET: isize>(
3471    ) -> Self {
3472        unsafe extern "system" fn UIAProvider<
3473            Identity: ICoreWebView2CompositionController2_Impl,
3474            const OFFSET: isize,
3475        >(
3476            this: *mut core::ffi::c_void,
3477            provider: *mut *mut core::ffi::c_void,
3478        ) -> windows_core::HRESULT {
3479            unsafe {
3480                let this: &Identity =
3481                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
3482                match ICoreWebView2CompositionController2_Impl::UIAProvider(this) {
3483                    Ok(ok__) => {
3484                        provider.write(core::mem::transmute(ok__));
3485                        windows_core::HRESULT(0)
3486                    }
3487                    Err(err) => err.into(),
3488                }
3489            }
3490        }
3491        Self {
3492            base__: ICoreWebView2CompositionController_Vtbl::new::<Identity, OFFSET>(),
3493            UIAProvider: UIAProvider::<Identity, OFFSET>,
3494        }
3495    }
3496    pub fn matches(iid: &windows_core::GUID) -> bool {
3497        iid == &<ICoreWebView2CompositionController2 as windows_core::Interface>::IID
3498            || iid == &<ICoreWebView2CompositionController as windows_core::Interface>::IID
3499    }
3500}
3501impl windows_core::RuntimeName for ICoreWebView2CompositionController2 {}
3502windows_core::imp::define_interface!(
3503    ICoreWebView2CompositionControllerInterop,
3504    ICoreWebView2CompositionControllerInterop_Vtbl,
3505    0x8e9922ce_9c80_42e6_bad7_fcebf291a495
3506);
3507windows_core::imp::interface_hierarchy!(
3508    ICoreWebView2CompositionControllerInterop,
3509    windows_core::IUnknown
3510);
3511impl ICoreWebView2CompositionControllerInterop {
3512    pub unsafe fn UIAProvider(&self) -> windows_core::Result<windows_core::IUnknown> {
3513        unsafe {
3514            let mut result__ = core::mem::zeroed();
3515            (windows_core::Interface::vtable(self).UIAProvider)(
3516                windows_core::Interface::as_raw(self),
3517                &mut result__,
3518            )
3519            .and_then(|| windows_core::Type::from_abi(result__))
3520        }
3521    }
3522    pub unsafe fn RootVisualTarget(&self) -> windows_core::Result<windows_core::IUnknown> {
3523        unsafe {
3524            let mut result__ = core::mem::zeroed();
3525            (windows_core::Interface::vtable(self).RootVisualTarget)(
3526                windows_core::Interface::as_raw(self),
3527                &mut result__,
3528            )
3529            .and_then(|| windows_core::Type::from_abi(result__))
3530        }
3531    }
3532    pub unsafe fn SetRootVisualTarget<P0>(&self, target: P0) -> windows_core::Result<()>
3533    where
3534        P0: windows_core::Param<windows_core::IUnknown>,
3535    {
3536        unsafe {
3537            (windows_core::Interface::vtable(self).SetRootVisualTarget)(
3538                windows_core::Interface::as_raw(self),
3539                target.param().abi(),
3540            )
3541            .ok()
3542        }
3543    }
3544}
3545#[repr(C)]
3546#[doc(hidden)]
3547pub struct ICoreWebView2CompositionControllerInterop_Vtbl {
3548    pub base__: windows_core::IUnknown_Vtbl,
3549    pub UIAProvider: unsafe extern "system" fn(
3550        *mut core::ffi::c_void,
3551        *mut *mut core::ffi::c_void,
3552    ) -> windows_core::HRESULT,
3553    pub RootVisualTarget: unsafe extern "system" fn(
3554        *mut core::ffi::c_void,
3555        *mut *mut core::ffi::c_void,
3556    ) -> windows_core::HRESULT,
3557    pub SetRootVisualTarget: unsafe extern "system" fn(
3558        *mut core::ffi::c_void,
3559        *mut core::ffi::c_void,
3560    ) -> windows_core::HRESULT,
3561}
3562pub trait ICoreWebView2CompositionControllerInterop_Impl: windows_core::IUnknownImpl {
3563    fn UIAProvider(&self) -> windows_core::Result<windows_core::IUnknown>;
3564    fn RootVisualTarget(&self) -> windows_core::Result<windows_core::IUnknown>;
3565    fn SetRootVisualTarget(
3566        &self,
3567        target: windows_core::Ref<windows_core::IUnknown>,
3568    ) -> windows_core::Result<()>;
3569}
3570impl ICoreWebView2CompositionControllerInterop_Vtbl {
3571    pub const fn new<
3572        Identity: ICoreWebView2CompositionControllerInterop_Impl,
3573        const OFFSET: isize,
3574    >() -> Self {
3575        unsafe extern "system" fn UIAProvider<
3576            Identity: ICoreWebView2CompositionControllerInterop_Impl,
3577            const OFFSET: isize,
3578        >(
3579            this: *mut core::ffi::c_void,
3580            provider: *mut *mut core::ffi::c_void,
3581        ) -> windows_core::HRESULT {
3582            unsafe {
3583                let this: &Identity =
3584                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
3585                match ICoreWebView2CompositionControllerInterop_Impl::UIAProvider(this) {
3586                    Ok(ok__) => {
3587                        provider.write(core::mem::transmute(ok__));
3588                        windows_core::HRESULT(0)
3589                    }
3590                    Err(err) => err.into(),
3591                }
3592            }
3593        }
3594        unsafe extern "system" fn RootVisualTarget<
3595            Identity: ICoreWebView2CompositionControllerInterop_Impl,
3596            const OFFSET: isize,
3597        >(
3598            this: *mut core::ffi::c_void,
3599            target: *mut *mut core::ffi::c_void,
3600        ) -> windows_core::HRESULT {
3601            unsafe {
3602                let this: &Identity =
3603                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
3604                match ICoreWebView2CompositionControllerInterop_Impl::RootVisualTarget(this) {
3605                    Ok(ok__) => {
3606                        target.write(core::mem::transmute(ok__));
3607                        windows_core::HRESULT(0)
3608                    }
3609                    Err(err) => err.into(),
3610                }
3611            }
3612        }
3613        unsafe extern "system" fn SetRootVisualTarget<
3614            Identity: ICoreWebView2CompositionControllerInterop_Impl,
3615            const OFFSET: isize,
3616        >(
3617            this: *mut core::ffi::c_void,
3618            target: *mut core::ffi::c_void,
3619        ) -> windows_core::HRESULT {
3620            unsafe {
3621                let this: &Identity =
3622                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
3623                ICoreWebView2CompositionControllerInterop_Impl::SetRootVisualTarget(
3624                    this,
3625                    core::mem::transmute_copy(&target),
3626                )
3627                .into()
3628            }
3629        }
3630        Self {
3631            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
3632            UIAProvider: UIAProvider::<Identity, OFFSET>,
3633            RootVisualTarget: RootVisualTarget::<Identity, OFFSET>,
3634            SetRootVisualTarget: SetRootVisualTarget::<Identity, OFFSET>,
3635        }
3636    }
3637    pub fn matches(iid: &windows_core::GUID) -> bool {
3638        iid == &<ICoreWebView2CompositionControllerInterop as windows_core::Interface>::IID
3639    }
3640}
3641impl windows_core::RuntimeName for ICoreWebView2CompositionControllerInterop {}
3642windows_core::imp::define_interface!(
3643    ICoreWebView2ContainsFullScreenElementChangedEventHandler,
3644    ICoreWebView2ContainsFullScreenElementChangedEventHandler_Vtbl,
3645    0xe45d98b1_afef_45be_8baf_6c7728867f73
3646);
3647windows_core::imp::interface_hierarchy!(
3648    ICoreWebView2ContainsFullScreenElementChangedEventHandler,
3649    windows_core::IUnknown
3650);
3651impl ICoreWebView2ContainsFullScreenElementChangedEventHandler {
3652    pub unsafe fn Invoke<P0, P1>(&self, sender: P0, args: P1) -> windows_core::Result<()>
3653    where
3654        P0: windows_core::Param<ICoreWebView2>,
3655        P1: windows_core::Param<windows_core::IUnknown>,
3656    {
3657        unsafe {
3658            (windows_core::Interface::vtable(self).Invoke)(
3659                windows_core::Interface::as_raw(self),
3660                sender.param().abi(),
3661                args.param().abi(),
3662            )
3663            .ok()
3664        }
3665    }
3666}
3667#[repr(C)]
3668#[doc(hidden)]
3669pub struct ICoreWebView2ContainsFullScreenElementChangedEventHandler_Vtbl {
3670    pub base__: windows_core::IUnknown_Vtbl,
3671    pub Invoke: unsafe extern "system" fn(
3672        *mut core::ffi::c_void,
3673        *mut core::ffi::c_void,
3674        *mut core::ffi::c_void,
3675    ) -> windows_core::HRESULT,
3676}
3677pub trait ICoreWebView2ContainsFullScreenElementChangedEventHandler_Impl:
3678    windows_core::IUnknownImpl
3679{
3680    fn Invoke(
3681        &self,
3682        sender: windows_core::Ref<ICoreWebView2>,
3683        args: windows_core::Ref<windows_core::IUnknown>,
3684    ) -> windows_core::Result<()>;
3685}
3686impl ICoreWebView2ContainsFullScreenElementChangedEventHandler_Vtbl {
3687    pub const fn new<
3688        Identity: ICoreWebView2ContainsFullScreenElementChangedEventHandler_Impl,
3689        const OFFSET: isize,
3690    >() -> Self {
3691        unsafe extern "system" fn Invoke<
3692            Identity: ICoreWebView2ContainsFullScreenElementChangedEventHandler_Impl,
3693            const OFFSET: isize,
3694        >(
3695            this: *mut core::ffi::c_void,
3696            sender: *mut core::ffi::c_void,
3697            args: *mut core::ffi::c_void,
3698        ) -> windows_core::HRESULT {
3699            unsafe {
3700                let this: &Identity =
3701                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
3702                ICoreWebView2ContainsFullScreenElementChangedEventHandler_Impl::Invoke(
3703                    this,
3704                    core::mem::transmute_copy(&sender),
3705                    core::mem::transmute_copy(&args),
3706                )
3707                .into()
3708            }
3709        }
3710        Self {
3711            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
3712            Invoke: Invoke::<Identity, OFFSET>,
3713        }
3714    }
3715    pub fn matches(iid: &windows_core::GUID) -> bool {
3716        iid == & < ICoreWebView2ContainsFullScreenElementChangedEventHandler as windows_core::Interface >::IID
3717    }
3718}
3719impl windows_core::RuntimeName for ICoreWebView2ContainsFullScreenElementChangedEventHandler {}
3720windows_core::imp::define_interface!(
3721    ICoreWebView2ContentLoadingEventArgs,
3722    ICoreWebView2ContentLoadingEventArgs_Vtbl,
3723    0x0c8a1275_9b6b_4901_87ad_70df25bafa6e
3724);
3725windows_core::imp::interface_hierarchy!(
3726    ICoreWebView2ContentLoadingEventArgs,
3727    windows_core::IUnknown
3728);
3729impl ICoreWebView2ContentLoadingEventArgs {
3730    pub unsafe fn IsErrorPage(&self) -> windows_core::Result<windows_core::BOOL> {
3731        unsafe {
3732            let mut result__ = core::mem::zeroed();
3733            (windows_core::Interface::vtable(self).IsErrorPage)(
3734                windows_core::Interface::as_raw(self),
3735                &mut result__,
3736            )
3737            .map(|| result__)
3738        }
3739    }
3740    pub unsafe fn NavigationId(&self) -> windows_core::Result<u64> {
3741        unsafe {
3742            let mut result__ = core::mem::zeroed();
3743            (windows_core::Interface::vtable(self).NavigationId)(
3744                windows_core::Interface::as_raw(self),
3745                &mut result__,
3746            )
3747            .map(|| result__)
3748        }
3749    }
3750}
3751#[repr(C)]
3752#[doc(hidden)]
3753pub struct ICoreWebView2ContentLoadingEventArgs_Vtbl {
3754    pub base__: windows_core::IUnknown_Vtbl,
3755    pub IsErrorPage: unsafe extern "system" fn(
3756        *mut core::ffi::c_void,
3757        *mut windows_core::BOOL,
3758    ) -> windows_core::HRESULT,
3759    pub NavigationId:
3760        unsafe extern "system" fn(*mut core::ffi::c_void, *mut u64) -> windows_core::HRESULT,
3761}
3762pub trait ICoreWebView2ContentLoadingEventArgs_Impl: windows_core::IUnknownImpl {
3763    fn IsErrorPage(&self) -> windows_core::Result<windows_core::BOOL>;
3764    fn NavigationId(&self) -> windows_core::Result<u64>;
3765}
3766impl ICoreWebView2ContentLoadingEventArgs_Vtbl {
3767    pub const fn new<Identity: ICoreWebView2ContentLoadingEventArgs_Impl, const OFFSET: isize>(
3768    ) -> Self {
3769        unsafe extern "system" fn IsErrorPage<
3770            Identity: ICoreWebView2ContentLoadingEventArgs_Impl,
3771            const OFFSET: isize,
3772        >(
3773            this: *mut core::ffi::c_void,
3774            iserrorpage: *mut windows_core::BOOL,
3775        ) -> windows_core::HRESULT {
3776            unsafe {
3777                let this: &Identity =
3778                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
3779                match ICoreWebView2ContentLoadingEventArgs_Impl::IsErrorPage(this) {
3780                    Ok(ok__) => {
3781                        iserrorpage.write(core::mem::transmute(ok__));
3782                        windows_core::HRESULT(0)
3783                    }
3784                    Err(err) => err.into(),
3785                }
3786            }
3787        }
3788        unsafe extern "system" fn NavigationId<
3789            Identity: ICoreWebView2ContentLoadingEventArgs_Impl,
3790            const OFFSET: isize,
3791        >(
3792            this: *mut core::ffi::c_void,
3793            navigationid: *mut u64,
3794        ) -> windows_core::HRESULT {
3795            unsafe {
3796                let this: &Identity =
3797                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
3798                match ICoreWebView2ContentLoadingEventArgs_Impl::NavigationId(this) {
3799                    Ok(ok__) => {
3800                        navigationid.write(core::mem::transmute(ok__));
3801                        windows_core::HRESULT(0)
3802                    }
3803                    Err(err) => err.into(),
3804                }
3805            }
3806        }
3807        Self {
3808            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
3809            IsErrorPage: IsErrorPage::<Identity, OFFSET>,
3810            NavigationId: NavigationId::<Identity, OFFSET>,
3811        }
3812    }
3813    pub fn matches(iid: &windows_core::GUID) -> bool {
3814        iid == &<ICoreWebView2ContentLoadingEventArgs as windows_core::Interface>::IID
3815    }
3816}
3817impl windows_core::RuntimeName for ICoreWebView2ContentLoadingEventArgs {}
3818windows_core::imp::define_interface!(
3819    ICoreWebView2ContentLoadingEventHandler,
3820    ICoreWebView2ContentLoadingEventHandler_Vtbl,
3821    0x364471e7_f2be_4910_bdba_d72077d51c4b
3822);
3823windows_core::imp::interface_hierarchy!(
3824    ICoreWebView2ContentLoadingEventHandler,
3825    windows_core::IUnknown
3826);
3827impl ICoreWebView2ContentLoadingEventHandler {
3828    pub unsafe fn Invoke<P0, P1>(&self, sender: P0, args: P1) -> windows_core::Result<()>
3829    where
3830        P0: windows_core::Param<ICoreWebView2>,
3831        P1: windows_core::Param<ICoreWebView2ContentLoadingEventArgs>,
3832    {
3833        unsafe {
3834            (windows_core::Interface::vtable(self).Invoke)(
3835                windows_core::Interface::as_raw(self),
3836                sender.param().abi(),
3837                args.param().abi(),
3838            )
3839            .ok()
3840        }
3841    }
3842}
3843#[repr(C)]
3844#[doc(hidden)]
3845pub struct ICoreWebView2ContentLoadingEventHandler_Vtbl {
3846    pub base__: windows_core::IUnknown_Vtbl,
3847    pub Invoke: unsafe extern "system" fn(
3848        *mut core::ffi::c_void,
3849        *mut core::ffi::c_void,
3850        *mut core::ffi::c_void,
3851    ) -> windows_core::HRESULT,
3852}
3853pub trait ICoreWebView2ContentLoadingEventHandler_Impl: windows_core::IUnknownImpl {
3854    fn Invoke(
3855        &self,
3856        sender: windows_core::Ref<ICoreWebView2>,
3857        args: windows_core::Ref<ICoreWebView2ContentLoadingEventArgs>,
3858    ) -> windows_core::Result<()>;
3859}
3860impl ICoreWebView2ContentLoadingEventHandler_Vtbl {
3861    pub const fn new<
3862        Identity: ICoreWebView2ContentLoadingEventHandler_Impl,
3863        const OFFSET: isize,
3864    >() -> Self {
3865        unsafe extern "system" fn Invoke<
3866            Identity: ICoreWebView2ContentLoadingEventHandler_Impl,
3867            const OFFSET: isize,
3868        >(
3869            this: *mut core::ffi::c_void,
3870            sender: *mut core::ffi::c_void,
3871            args: *mut core::ffi::c_void,
3872        ) -> windows_core::HRESULT {
3873            unsafe {
3874                let this: &Identity =
3875                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
3876                ICoreWebView2ContentLoadingEventHandler_Impl::Invoke(
3877                    this,
3878                    core::mem::transmute_copy(&sender),
3879                    core::mem::transmute_copy(&args),
3880                )
3881                .into()
3882            }
3883        }
3884        Self {
3885            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
3886            Invoke: Invoke::<Identity, OFFSET>,
3887        }
3888    }
3889    pub fn matches(iid: &windows_core::GUID) -> bool {
3890        iid == &<ICoreWebView2ContentLoadingEventHandler as windows_core::Interface>::IID
3891    }
3892}
3893impl windows_core::RuntimeName for ICoreWebView2ContentLoadingEventHandler {}
3894windows_core::imp::define_interface!(
3895    ICoreWebView2Controller,
3896    ICoreWebView2Controller_Vtbl,
3897    0x4d00c0d1_9434_4eb6_8078_8697a560334f
3898);
3899windows_core::imp::interface_hierarchy!(ICoreWebView2Controller, windows_core::IUnknown);
3900impl ICoreWebView2Controller {
3901    pub unsafe fn IsVisible(&self) -> windows_core::Result<windows_core::BOOL> {
3902        unsafe {
3903            let mut result__ = core::mem::zeroed();
3904            (windows_core::Interface::vtable(self).IsVisible)(
3905                windows_core::Interface::as_raw(self),
3906                &mut result__,
3907            )
3908            .map(|| result__)
3909        }
3910    }
3911    pub unsafe fn SetIsVisible(&self, isvisible: bool) -> windows_core::Result<()> {
3912        unsafe {
3913            (windows_core::Interface::vtable(self).SetIsVisible)(
3914                windows_core::Interface::as_raw(self),
3915                isvisible.into(),
3916            )
3917            .ok()
3918        }
3919    }
3920    pub unsafe fn Bounds(&self) -> windows_core::Result<windows::Win32::Foundation::RECT> {
3921        unsafe {
3922            let mut result__ = core::mem::zeroed();
3923            (windows_core::Interface::vtable(self).Bounds)(
3924                windows_core::Interface::as_raw(self),
3925                &mut result__,
3926            )
3927            .map(|| result__)
3928        }
3929    }
3930    pub unsafe fn SetBounds(
3931        &self,
3932        bounds: windows::Win32::Foundation::RECT,
3933    ) -> windows_core::Result<()> {
3934        unsafe {
3935            (windows_core::Interface::vtable(self).SetBounds)(
3936                windows_core::Interface::as_raw(self),
3937                core::mem::transmute(bounds),
3938            )
3939            .ok()
3940        }
3941    }
3942    pub unsafe fn ZoomFactor(&self) -> windows_core::Result<f64> {
3943        unsafe {
3944            let mut result__ = core::mem::zeroed();
3945            (windows_core::Interface::vtable(self).ZoomFactor)(
3946                windows_core::Interface::as_raw(self),
3947                &mut result__,
3948            )
3949            .map(|| result__)
3950        }
3951    }
3952    pub unsafe fn SetZoomFactor(&self, zoomfactor: f64) -> windows_core::Result<()> {
3953        unsafe {
3954            (windows_core::Interface::vtable(self).SetZoomFactor)(
3955                windows_core::Interface::as_raw(self),
3956                zoomfactor,
3957            )
3958            .ok()
3959        }
3960    }
3961    pub unsafe fn ZoomFactorChanged<P0>(&self, eventhandler: P0) -> windows_core::Result<i64>
3962    where
3963        P0: windows_core::Param<ICoreWebView2ZoomFactorChangedEventHandler>,
3964    {
3965        unsafe {
3966            let mut result__ = core::mem::zeroed();
3967            (windows_core::Interface::vtable(self).ZoomFactorChanged)(
3968                windows_core::Interface::as_raw(self),
3969                eventhandler.param().abi(),
3970                &mut result__,
3971            )
3972            .map(|| result__)
3973        }
3974    }
3975    pub unsafe fn RemoveZoomFactorChanged(&self, token: i64) -> windows_core::Result<()> {
3976        unsafe {
3977            (windows_core::Interface::vtable(self).RemoveZoomFactorChanged)(
3978                windows_core::Interface::as_raw(self),
3979                token,
3980            )
3981            .ok()
3982        }
3983    }
3984    pub unsafe fn SetBoundsAndZoomFactor(
3985        &self,
3986        bounds: windows::Win32::Foundation::RECT,
3987        zoomfactor: f64,
3988    ) -> windows_core::Result<()> {
3989        unsafe {
3990            (windows_core::Interface::vtable(self).SetBoundsAndZoomFactor)(
3991                windows_core::Interface::as_raw(self),
3992                core::mem::transmute(bounds),
3993                zoomfactor,
3994            )
3995            .ok()
3996        }
3997    }
3998    pub unsafe fn MoveFocus(
3999        &self,
4000        reason: COREWEBVIEW2_MOVE_FOCUS_REASON,
4001    ) -> windows_core::Result<()> {
4002        unsafe {
4003            (windows_core::Interface::vtable(self).MoveFocus)(
4004                windows_core::Interface::as_raw(self),
4005                reason,
4006            )
4007            .ok()
4008        }
4009    }
4010    pub unsafe fn MoveFocusRequested<P0>(&self, eventhandler: P0) -> windows_core::Result<i64>
4011    where
4012        P0: windows_core::Param<ICoreWebView2MoveFocusRequestedEventHandler>,
4013    {
4014        unsafe {
4015            let mut result__ = core::mem::zeroed();
4016            (windows_core::Interface::vtable(self).MoveFocusRequested)(
4017                windows_core::Interface::as_raw(self),
4018                eventhandler.param().abi(),
4019                &mut result__,
4020            )
4021            .map(|| result__)
4022        }
4023    }
4024    pub unsafe fn RemoveMoveFocusRequested(&self, token: i64) -> windows_core::Result<()> {
4025        unsafe {
4026            (windows_core::Interface::vtable(self).RemoveMoveFocusRequested)(
4027                windows_core::Interface::as_raw(self),
4028                token,
4029            )
4030            .ok()
4031        }
4032    }
4033    pub unsafe fn GotFocus<P0>(&self, eventhandler: P0) -> windows_core::Result<i64>
4034    where
4035        P0: windows_core::Param<ICoreWebView2FocusChangedEventHandler>,
4036    {
4037        unsafe {
4038            let mut result__ = core::mem::zeroed();
4039            (windows_core::Interface::vtable(self).GotFocus)(
4040                windows_core::Interface::as_raw(self),
4041                eventhandler.param().abi(),
4042                &mut result__,
4043            )
4044            .map(|| result__)
4045        }
4046    }
4047    pub unsafe fn RemoveGotFocus(&self, token: i64) -> windows_core::Result<()> {
4048        unsafe {
4049            (windows_core::Interface::vtable(self).RemoveGotFocus)(
4050                windows_core::Interface::as_raw(self),
4051                token,
4052            )
4053            .ok()
4054        }
4055    }
4056    pub unsafe fn LostFocus<P0>(&self, eventhandler: P0) -> windows_core::Result<i64>
4057    where
4058        P0: windows_core::Param<ICoreWebView2FocusChangedEventHandler>,
4059    {
4060        unsafe {
4061            let mut result__ = core::mem::zeroed();
4062            (windows_core::Interface::vtable(self).LostFocus)(
4063                windows_core::Interface::as_raw(self),
4064                eventhandler.param().abi(),
4065                &mut result__,
4066            )
4067            .map(|| result__)
4068        }
4069    }
4070    pub unsafe fn RemoveLostFocus(&self, token: i64) -> windows_core::Result<()> {
4071        unsafe {
4072            (windows_core::Interface::vtable(self).RemoveLostFocus)(
4073                windows_core::Interface::as_raw(self),
4074                token,
4075            )
4076            .ok()
4077        }
4078    }
4079    pub unsafe fn AcceleratorKeyPressed<P0>(&self, eventhandler: P0) -> windows_core::Result<i64>
4080    where
4081        P0: windows_core::Param<ICoreWebView2AcceleratorKeyPressedEventHandler>,
4082    {
4083        unsafe {
4084            let mut result__ = core::mem::zeroed();
4085            (windows_core::Interface::vtable(self).AcceleratorKeyPressed)(
4086                windows_core::Interface::as_raw(self),
4087                eventhandler.param().abi(),
4088                &mut result__,
4089            )
4090            .map(|| result__)
4091        }
4092    }
4093    pub unsafe fn RemoveAcceleratorKeyPressed(&self, token: i64) -> windows_core::Result<()> {
4094        unsafe {
4095            (windows_core::Interface::vtable(self).RemoveAcceleratorKeyPressed)(
4096                windows_core::Interface::as_raw(self),
4097                token,
4098            )
4099            .ok()
4100        }
4101    }
4102    pub unsafe fn ParentWindow(&self) -> windows_core::Result<windows::Win32::Foundation::HWND> {
4103        unsafe {
4104            let mut result__ = core::mem::zeroed();
4105            (windows_core::Interface::vtable(self).ParentWindow)(
4106                windows_core::Interface::as_raw(self),
4107                &mut result__,
4108            )
4109            .map(|| result__)
4110        }
4111    }
4112    pub unsafe fn SetParentWindow(
4113        &self,
4114        parentwindow: windows::Win32::Foundation::HWND,
4115    ) -> windows_core::Result<()> {
4116        unsafe {
4117            (windows_core::Interface::vtable(self).SetParentWindow)(
4118                windows_core::Interface::as_raw(self),
4119                parentwindow,
4120            )
4121            .ok()
4122        }
4123    }
4124    pub unsafe fn NotifyParentWindowPositionChanged(&self) -> windows_core::Result<()> {
4125        unsafe {
4126            (windows_core::Interface::vtable(self).NotifyParentWindowPositionChanged)(
4127                windows_core::Interface::as_raw(self),
4128            )
4129            .ok()
4130        }
4131    }
4132    pub unsafe fn Close(&self) -> windows_core::Result<()> {
4133        unsafe {
4134            (windows_core::Interface::vtable(self).Close)(windows_core::Interface::as_raw(self))
4135                .ok()
4136        }
4137    }
4138    pub unsafe fn CoreWebView2(&self) -> windows_core::Result<ICoreWebView2> {
4139        unsafe {
4140            let mut result__ = core::mem::zeroed();
4141            (windows_core::Interface::vtable(self).CoreWebView2)(
4142                windows_core::Interface::as_raw(self),
4143                &mut result__,
4144            )
4145            .and_then(|| windows_core::Type::from_abi(result__))
4146        }
4147    }
4148}
4149#[repr(C)]
4150#[doc(hidden)]
4151pub struct ICoreWebView2Controller_Vtbl {
4152    pub base__: windows_core::IUnknown_Vtbl,
4153    pub IsVisible: unsafe extern "system" fn(
4154        *mut core::ffi::c_void,
4155        *mut windows_core::BOOL,
4156    ) -> windows_core::HRESULT,
4157    pub SetIsVisible: unsafe extern "system" fn(
4158        *mut core::ffi::c_void,
4159        windows_core::BOOL,
4160    ) -> windows_core::HRESULT,
4161    pub Bounds: unsafe extern "system" fn(
4162        *mut core::ffi::c_void,
4163        *mut windows::Win32::Foundation::RECT,
4164    ) -> windows_core::HRESULT,
4165    pub SetBounds: unsafe extern "system" fn(
4166        *mut core::ffi::c_void,
4167        windows::Win32::Foundation::RECT,
4168    ) -> windows_core::HRESULT,
4169    pub ZoomFactor:
4170        unsafe extern "system" fn(*mut core::ffi::c_void, *mut f64) -> windows_core::HRESULT,
4171    pub SetZoomFactor:
4172        unsafe extern "system" fn(*mut core::ffi::c_void, f64) -> windows_core::HRESULT,
4173    pub ZoomFactorChanged: unsafe extern "system" fn(
4174        *mut core::ffi::c_void,
4175        *mut core::ffi::c_void,
4176        *mut i64,
4177    ) -> windows_core::HRESULT,
4178    pub RemoveZoomFactorChanged:
4179        unsafe extern "system" fn(*mut core::ffi::c_void, i64) -> windows_core::HRESULT,
4180    pub SetBoundsAndZoomFactor: unsafe extern "system" fn(
4181        *mut core::ffi::c_void,
4182        windows::Win32::Foundation::RECT,
4183        f64,
4184    ) -> windows_core::HRESULT,
4185    pub MoveFocus: unsafe extern "system" fn(
4186        *mut core::ffi::c_void,
4187        COREWEBVIEW2_MOVE_FOCUS_REASON,
4188    ) -> windows_core::HRESULT,
4189    pub MoveFocusRequested: unsafe extern "system" fn(
4190        *mut core::ffi::c_void,
4191        *mut core::ffi::c_void,
4192        *mut i64,
4193    ) -> windows_core::HRESULT,
4194    pub RemoveMoveFocusRequested:
4195        unsafe extern "system" fn(*mut core::ffi::c_void, i64) -> windows_core::HRESULT,
4196    pub GotFocus: unsafe extern "system" fn(
4197        *mut core::ffi::c_void,
4198        *mut core::ffi::c_void,
4199        *mut i64,
4200    ) -> windows_core::HRESULT,
4201    pub RemoveGotFocus:
4202        unsafe extern "system" fn(*mut core::ffi::c_void, i64) -> windows_core::HRESULT,
4203    pub LostFocus: unsafe extern "system" fn(
4204        *mut core::ffi::c_void,
4205        *mut core::ffi::c_void,
4206        *mut i64,
4207    ) -> windows_core::HRESULT,
4208    pub RemoveLostFocus:
4209        unsafe extern "system" fn(*mut core::ffi::c_void, i64) -> windows_core::HRESULT,
4210    pub AcceleratorKeyPressed: unsafe extern "system" fn(
4211        *mut core::ffi::c_void,
4212        *mut core::ffi::c_void,
4213        *mut i64,
4214    ) -> windows_core::HRESULT,
4215    pub RemoveAcceleratorKeyPressed:
4216        unsafe extern "system" fn(*mut core::ffi::c_void, i64) -> windows_core::HRESULT,
4217    pub ParentWindow: unsafe extern "system" fn(
4218        *mut core::ffi::c_void,
4219        *mut windows::Win32::Foundation::HWND,
4220    ) -> windows_core::HRESULT,
4221    pub SetParentWindow: unsafe extern "system" fn(
4222        *mut core::ffi::c_void,
4223        windows::Win32::Foundation::HWND,
4224    ) -> windows_core::HRESULT,
4225    pub NotifyParentWindowPositionChanged:
4226        unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
4227    pub Close: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
4228    pub CoreWebView2: unsafe extern "system" fn(
4229        *mut core::ffi::c_void,
4230        *mut *mut core::ffi::c_void,
4231    ) -> windows_core::HRESULT,
4232}
4233pub trait ICoreWebView2Controller_Impl: windows_core::IUnknownImpl {
4234    fn IsVisible(&self) -> windows_core::Result<windows_core::BOOL>;
4235    fn SetIsVisible(&self, isvisible: windows_core::BOOL) -> windows_core::Result<()>;
4236    fn Bounds(&self) -> windows_core::Result<windows::Win32::Foundation::RECT>;
4237    fn SetBounds(&self, bounds: &windows::Win32::Foundation::RECT) -> windows_core::Result<()>;
4238    fn ZoomFactor(&self) -> windows_core::Result<f64>;
4239    fn SetZoomFactor(&self, zoomfactor: f64) -> windows_core::Result<()>;
4240    fn ZoomFactorChanged(
4241        &self,
4242        eventhandler: windows_core::Ref<ICoreWebView2ZoomFactorChangedEventHandler>,
4243    ) -> windows_core::Result<i64>;
4244    fn RemoveZoomFactorChanged(&self, token: i64) -> windows_core::Result<()>;
4245    fn SetBoundsAndZoomFactor(
4246        &self,
4247        bounds: &windows::Win32::Foundation::RECT,
4248        zoomfactor: f64,
4249    ) -> windows_core::Result<()>;
4250    fn MoveFocus(&self, reason: COREWEBVIEW2_MOVE_FOCUS_REASON) -> windows_core::Result<()>;
4251    fn MoveFocusRequested(
4252        &self,
4253        eventhandler: windows_core::Ref<ICoreWebView2MoveFocusRequestedEventHandler>,
4254    ) -> windows_core::Result<i64>;
4255    fn RemoveMoveFocusRequested(&self, token: i64) -> windows_core::Result<()>;
4256    fn GotFocus(
4257        &self,
4258        eventhandler: windows_core::Ref<ICoreWebView2FocusChangedEventHandler>,
4259    ) -> windows_core::Result<i64>;
4260    fn RemoveGotFocus(&self, token: i64) -> windows_core::Result<()>;
4261    fn LostFocus(
4262        &self,
4263        eventhandler: windows_core::Ref<ICoreWebView2FocusChangedEventHandler>,
4264    ) -> windows_core::Result<i64>;
4265    fn RemoveLostFocus(&self, token: i64) -> windows_core::Result<()>;
4266    fn AcceleratorKeyPressed(
4267        &self,
4268        eventhandler: windows_core::Ref<ICoreWebView2AcceleratorKeyPressedEventHandler>,
4269    ) -> windows_core::Result<i64>;
4270    fn RemoveAcceleratorKeyPressed(&self, token: i64) -> windows_core::Result<()>;
4271    fn ParentWindow(&self) -> windows_core::Result<windows::Win32::Foundation::HWND>;
4272    fn SetParentWindow(
4273        &self,
4274        parentwindow: windows::Win32::Foundation::HWND,
4275    ) -> windows_core::Result<()>;
4276    fn NotifyParentWindowPositionChanged(&self) -> windows_core::Result<()>;
4277    fn Close(&self) -> windows_core::Result<()>;
4278    fn CoreWebView2(&self) -> windows_core::Result<ICoreWebView2>;
4279}
4280impl ICoreWebView2Controller_Vtbl {
4281    pub const fn new<Identity: ICoreWebView2Controller_Impl, const OFFSET: isize>() -> Self {
4282        unsafe extern "system" fn IsVisible<
4283            Identity: ICoreWebView2Controller_Impl,
4284            const OFFSET: isize,
4285        >(
4286            this: *mut core::ffi::c_void,
4287            isvisible: *mut windows_core::BOOL,
4288        ) -> windows_core::HRESULT {
4289            unsafe {
4290                let this: &Identity =
4291                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
4292                match ICoreWebView2Controller_Impl::IsVisible(this) {
4293                    Ok(ok__) => {
4294                        isvisible.write(core::mem::transmute(ok__));
4295                        windows_core::HRESULT(0)
4296                    }
4297                    Err(err) => err.into(),
4298                }
4299            }
4300        }
4301        unsafe extern "system" fn SetIsVisible<
4302            Identity: ICoreWebView2Controller_Impl,
4303            const OFFSET: isize,
4304        >(
4305            this: *mut core::ffi::c_void,
4306            isvisible: windows_core::BOOL,
4307        ) -> windows_core::HRESULT {
4308            unsafe {
4309                let this: &Identity =
4310                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
4311                ICoreWebView2Controller_Impl::SetIsVisible(
4312                    this,
4313                    core::mem::transmute_copy(&isvisible),
4314                )
4315                .into()
4316            }
4317        }
4318        unsafe extern "system" fn Bounds<
4319            Identity: ICoreWebView2Controller_Impl,
4320            const OFFSET: isize,
4321        >(
4322            this: *mut core::ffi::c_void,
4323            bounds: *mut windows::Win32::Foundation::RECT,
4324        ) -> windows_core::HRESULT {
4325            unsafe {
4326                let this: &Identity =
4327                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
4328                match ICoreWebView2Controller_Impl::Bounds(this) {
4329                    Ok(ok__) => {
4330                        bounds.write(core::mem::transmute(ok__));
4331                        windows_core::HRESULT(0)
4332                    }
4333                    Err(err) => err.into(),
4334                }
4335            }
4336        }
4337        unsafe extern "system" fn SetBounds<
4338            Identity: ICoreWebView2Controller_Impl,
4339            const OFFSET: isize,
4340        >(
4341            this: *mut core::ffi::c_void,
4342            bounds: windows::Win32::Foundation::RECT,
4343        ) -> windows_core::HRESULT {
4344            unsafe {
4345                let this: &Identity =
4346                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
4347                ICoreWebView2Controller_Impl::SetBounds(this, core::mem::transmute(&bounds)).into()
4348            }
4349        }
4350        unsafe extern "system" fn ZoomFactor<
4351            Identity: ICoreWebView2Controller_Impl,
4352            const OFFSET: isize,
4353        >(
4354            this: *mut core::ffi::c_void,
4355            zoomfactor: *mut f64,
4356        ) -> windows_core::HRESULT {
4357            unsafe {
4358                let this: &Identity =
4359                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
4360                match ICoreWebView2Controller_Impl::ZoomFactor(this) {
4361                    Ok(ok__) => {
4362                        zoomfactor.write(core::mem::transmute(ok__));
4363                        windows_core::HRESULT(0)
4364                    }
4365                    Err(err) => err.into(),
4366                }
4367            }
4368        }
4369        unsafe extern "system" fn SetZoomFactor<
4370            Identity: ICoreWebView2Controller_Impl,
4371            const OFFSET: isize,
4372        >(
4373            this: *mut core::ffi::c_void,
4374            zoomfactor: f64,
4375        ) -> windows_core::HRESULT {
4376            unsafe {
4377                let this: &Identity =
4378                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
4379                ICoreWebView2Controller_Impl::SetZoomFactor(
4380                    this,
4381                    core::mem::transmute_copy(&zoomfactor),
4382                )
4383                .into()
4384            }
4385        }
4386        unsafe extern "system" fn ZoomFactorChanged<
4387            Identity: ICoreWebView2Controller_Impl,
4388            const OFFSET: isize,
4389        >(
4390            this: *mut core::ffi::c_void,
4391            eventhandler: *mut core::ffi::c_void,
4392            token: *mut i64,
4393        ) -> windows_core::HRESULT {
4394            unsafe {
4395                let this: &Identity =
4396                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
4397                match ICoreWebView2Controller_Impl::ZoomFactorChanged(
4398                    this,
4399                    core::mem::transmute_copy(&eventhandler),
4400                ) {
4401                    Ok(ok__) => {
4402                        token.write(core::mem::transmute(ok__));
4403                        windows_core::HRESULT(0)
4404                    }
4405                    Err(err) => err.into(),
4406                }
4407            }
4408        }
4409        unsafe extern "system" fn RemoveZoomFactorChanged<
4410            Identity: ICoreWebView2Controller_Impl,
4411            const OFFSET: isize,
4412        >(
4413            this: *mut core::ffi::c_void,
4414            token: i64,
4415        ) -> windows_core::HRESULT {
4416            unsafe {
4417                let this: &Identity =
4418                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
4419                ICoreWebView2Controller_Impl::RemoveZoomFactorChanged(
4420                    this,
4421                    core::mem::transmute_copy(&token),
4422                )
4423                .into()
4424            }
4425        }
4426        unsafe extern "system" fn SetBoundsAndZoomFactor<
4427            Identity: ICoreWebView2Controller_Impl,
4428            const OFFSET: isize,
4429        >(
4430            this: *mut core::ffi::c_void,
4431            bounds: windows::Win32::Foundation::RECT,
4432            zoomfactor: f64,
4433        ) -> windows_core::HRESULT {
4434            unsafe {
4435                let this: &Identity =
4436                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
4437                ICoreWebView2Controller_Impl::SetBoundsAndZoomFactor(
4438                    this,
4439                    core::mem::transmute(&bounds),
4440                    core::mem::transmute_copy(&zoomfactor),
4441                )
4442                .into()
4443            }
4444        }
4445        unsafe extern "system" fn MoveFocus<
4446            Identity: ICoreWebView2Controller_Impl,
4447            const OFFSET: isize,
4448        >(
4449            this: *mut core::ffi::c_void,
4450            reason: COREWEBVIEW2_MOVE_FOCUS_REASON,
4451        ) -> windows_core::HRESULT {
4452            unsafe {
4453                let this: &Identity =
4454                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
4455                ICoreWebView2Controller_Impl::MoveFocus(this, core::mem::transmute_copy(&reason))
4456                    .into()
4457            }
4458        }
4459        unsafe extern "system" fn MoveFocusRequested<
4460            Identity: ICoreWebView2Controller_Impl,
4461            const OFFSET: isize,
4462        >(
4463            this: *mut core::ffi::c_void,
4464            eventhandler: *mut core::ffi::c_void,
4465            token: *mut i64,
4466        ) -> windows_core::HRESULT {
4467            unsafe {
4468                let this: &Identity =
4469                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
4470                match ICoreWebView2Controller_Impl::MoveFocusRequested(
4471                    this,
4472                    core::mem::transmute_copy(&eventhandler),
4473                ) {
4474                    Ok(ok__) => {
4475                        token.write(core::mem::transmute(ok__));
4476                        windows_core::HRESULT(0)
4477                    }
4478                    Err(err) => err.into(),
4479                }
4480            }
4481        }
4482        unsafe extern "system" fn RemoveMoveFocusRequested<
4483            Identity: ICoreWebView2Controller_Impl,
4484            const OFFSET: isize,
4485        >(
4486            this: *mut core::ffi::c_void,
4487            token: i64,
4488        ) -> windows_core::HRESULT {
4489            unsafe {
4490                let this: &Identity =
4491                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
4492                ICoreWebView2Controller_Impl::RemoveMoveFocusRequested(
4493                    this,
4494                    core::mem::transmute_copy(&token),
4495                )
4496                .into()
4497            }
4498        }
4499        unsafe extern "system" fn GotFocus<
4500            Identity: ICoreWebView2Controller_Impl,
4501            const OFFSET: isize,
4502        >(
4503            this: *mut core::ffi::c_void,
4504            eventhandler: *mut core::ffi::c_void,
4505            token: *mut i64,
4506        ) -> windows_core::HRESULT {
4507            unsafe {
4508                let this: &Identity =
4509                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
4510                match ICoreWebView2Controller_Impl::GotFocus(
4511                    this,
4512                    core::mem::transmute_copy(&eventhandler),
4513                ) {
4514                    Ok(ok__) => {
4515                        token.write(core::mem::transmute(ok__));
4516                        windows_core::HRESULT(0)
4517                    }
4518                    Err(err) => err.into(),
4519                }
4520            }
4521        }
4522        unsafe extern "system" fn RemoveGotFocus<
4523            Identity: ICoreWebView2Controller_Impl,
4524            const OFFSET: isize,
4525        >(
4526            this: *mut core::ffi::c_void,
4527            token: i64,
4528        ) -> windows_core::HRESULT {
4529            unsafe {
4530                let this: &Identity =
4531                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
4532                ICoreWebView2Controller_Impl::RemoveGotFocus(
4533                    this,
4534                    core::mem::transmute_copy(&token),
4535                )
4536                .into()
4537            }
4538        }
4539        unsafe extern "system" fn LostFocus<
4540            Identity: ICoreWebView2Controller_Impl,
4541            const OFFSET: isize,
4542        >(
4543            this: *mut core::ffi::c_void,
4544            eventhandler: *mut core::ffi::c_void,
4545            token: *mut i64,
4546        ) -> windows_core::HRESULT {
4547            unsafe {
4548                let this: &Identity =
4549                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
4550                match ICoreWebView2Controller_Impl::LostFocus(
4551                    this,
4552                    core::mem::transmute_copy(&eventhandler),
4553                ) {
4554                    Ok(ok__) => {
4555                        token.write(core::mem::transmute(ok__));
4556                        windows_core::HRESULT(0)
4557                    }
4558                    Err(err) => err.into(),
4559                }
4560            }
4561        }
4562        unsafe extern "system" fn RemoveLostFocus<
4563            Identity: ICoreWebView2Controller_Impl,
4564            const OFFSET: isize,
4565        >(
4566            this: *mut core::ffi::c_void,
4567            token: i64,
4568        ) -> windows_core::HRESULT {
4569            unsafe {
4570                let this: &Identity =
4571                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
4572                ICoreWebView2Controller_Impl::RemoveLostFocus(
4573                    this,
4574                    core::mem::transmute_copy(&token),
4575                )
4576                .into()
4577            }
4578        }
4579        unsafe extern "system" fn AcceleratorKeyPressed<
4580            Identity: ICoreWebView2Controller_Impl,
4581            const OFFSET: isize,
4582        >(
4583            this: *mut core::ffi::c_void,
4584            eventhandler: *mut core::ffi::c_void,
4585            token: *mut i64,
4586        ) -> windows_core::HRESULT {
4587            unsafe {
4588                let this: &Identity =
4589                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
4590                match ICoreWebView2Controller_Impl::AcceleratorKeyPressed(
4591                    this,
4592                    core::mem::transmute_copy(&eventhandler),
4593                ) {
4594                    Ok(ok__) => {
4595                        token.write(core::mem::transmute(ok__));
4596                        windows_core::HRESULT(0)
4597                    }
4598                    Err(err) => err.into(),
4599                }
4600            }
4601        }
4602        unsafe extern "system" fn RemoveAcceleratorKeyPressed<
4603            Identity: ICoreWebView2Controller_Impl,
4604            const OFFSET: isize,
4605        >(
4606            this: *mut core::ffi::c_void,
4607            token: i64,
4608        ) -> windows_core::HRESULT {
4609            unsafe {
4610                let this: &Identity =
4611                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
4612                ICoreWebView2Controller_Impl::RemoveAcceleratorKeyPressed(
4613                    this,
4614                    core::mem::transmute_copy(&token),
4615                )
4616                .into()
4617            }
4618        }
4619        unsafe extern "system" fn ParentWindow<
4620            Identity: ICoreWebView2Controller_Impl,
4621            const OFFSET: isize,
4622        >(
4623            this: *mut core::ffi::c_void,
4624            parentwindow: *mut windows::Win32::Foundation::HWND,
4625        ) -> windows_core::HRESULT {
4626            unsafe {
4627                let this: &Identity =
4628                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
4629                match ICoreWebView2Controller_Impl::ParentWindow(this) {
4630                    Ok(ok__) => {
4631                        parentwindow.write(core::mem::transmute(ok__));
4632                        windows_core::HRESULT(0)
4633                    }
4634                    Err(err) => err.into(),
4635                }
4636            }
4637        }
4638        unsafe extern "system" fn SetParentWindow<
4639            Identity: ICoreWebView2Controller_Impl,
4640            const OFFSET: isize,
4641        >(
4642            this: *mut core::ffi::c_void,
4643            parentwindow: windows::Win32::Foundation::HWND,
4644        ) -> windows_core::HRESULT {
4645            unsafe {
4646                let this: &Identity =
4647                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
4648                ICoreWebView2Controller_Impl::SetParentWindow(
4649                    this,
4650                    core::mem::transmute_copy(&parentwindow),
4651                )
4652                .into()
4653            }
4654        }
4655        unsafe extern "system" fn NotifyParentWindowPositionChanged<
4656            Identity: ICoreWebView2Controller_Impl,
4657            const OFFSET: isize,
4658        >(
4659            this: *mut core::ffi::c_void,
4660        ) -> windows_core::HRESULT {
4661            unsafe {
4662                let this: &Identity =
4663                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
4664                ICoreWebView2Controller_Impl::NotifyParentWindowPositionChanged(this).into()
4665            }
4666        }
4667        unsafe extern "system" fn Close<
4668            Identity: ICoreWebView2Controller_Impl,
4669            const OFFSET: isize,
4670        >(
4671            this: *mut core::ffi::c_void,
4672        ) -> windows_core::HRESULT {
4673            unsafe {
4674                let this: &Identity =
4675                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
4676                ICoreWebView2Controller_Impl::Close(this).into()
4677            }
4678        }
4679        unsafe extern "system" fn CoreWebView2<
4680            Identity: ICoreWebView2Controller_Impl,
4681            const OFFSET: isize,
4682        >(
4683            this: *mut core::ffi::c_void,
4684            corewebview2: *mut *mut core::ffi::c_void,
4685        ) -> windows_core::HRESULT {
4686            unsafe {
4687                let this: &Identity =
4688                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
4689                match ICoreWebView2Controller_Impl::CoreWebView2(this) {
4690                    Ok(ok__) => {
4691                        corewebview2.write(core::mem::transmute(ok__));
4692                        windows_core::HRESULT(0)
4693                    }
4694                    Err(err) => err.into(),
4695                }
4696            }
4697        }
4698        Self {
4699            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
4700            IsVisible: IsVisible::<Identity, OFFSET>,
4701            SetIsVisible: SetIsVisible::<Identity, OFFSET>,
4702            Bounds: Bounds::<Identity, OFFSET>,
4703            SetBounds: SetBounds::<Identity, OFFSET>,
4704            ZoomFactor: ZoomFactor::<Identity, OFFSET>,
4705            SetZoomFactor: SetZoomFactor::<Identity, OFFSET>,
4706            ZoomFactorChanged: ZoomFactorChanged::<Identity, OFFSET>,
4707            RemoveZoomFactorChanged: RemoveZoomFactorChanged::<Identity, OFFSET>,
4708            SetBoundsAndZoomFactor: SetBoundsAndZoomFactor::<Identity, OFFSET>,
4709            MoveFocus: MoveFocus::<Identity, OFFSET>,
4710            MoveFocusRequested: MoveFocusRequested::<Identity, OFFSET>,
4711            RemoveMoveFocusRequested: RemoveMoveFocusRequested::<Identity, OFFSET>,
4712            GotFocus: GotFocus::<Identity, OFFSET>,
4713            RemoveGotFocus: RemoveGotFocus::<Identity, OFFSET>,
4714            LostFocus: LostFocus::<Identity, OFFSET>,
4715            RemoveLostFocus: RemoveLostFocus::<Identity, OFFSET>,
4716            AcceleratorKeyPressed: AcceleratorKeyPressed::<Identity, OFFSET>,
4717            RemoveAcceleratorKeyPressed: RemoveAcceleratorKeyPressed::<Identity, OFFSET>,
4718            ParentWindow: ParentWindow::<Identity, OFFSET>,
4719            SetParentWindow: SetParentWindow::<Identity, OFFSET>,
4720            NotifyParentWindowPositionChanged: NotifyParentWindowPositionChanged::<Identity, OFFSET>,
4721            Close: Close::<Identity, OFFSET>,
4722            CoreWebView2: CoreWebView2::<Identity, OFFSET>,
4723        }
4724    }
4725    pub fn matches(iid: &windows_core::GUID) -> bool {
4726        iid == &<ICoreWebView2Controller as windows_core::Interface>::IID
4727    }
4728}
4729impl windows_core::RuntimeName for ICoreWebView2Controller {}
4730windows_core::imp::define_interface!(
4731    ICoreWebView2Controller2,
4732    ICoreWebView2Controller2_Vtbl,
4733    0xc979903e_d4ca_4228_92eb_47ee3fa96eab
4734);
4735impl core::ops::Deref for ICoreWebView2Controller2 {
4736    type Target = ICoreWebView2Controller;
4737    fn deref(&self) -> &Self::Target {
4738        unsafe { core::mem::transmute(self) }
4739    }
4740}
4741windows_core::imp::interface_hierarchy!(
4742    ICoreWebView2Controller2,
4743    windows_core::IUnknown,
4744    ICoreWebView2Controller
4745);
4746impl ICoreWebView2Controller2 {
4747    pub unsafe fn DefaultBackgroundColor(&self) -> windows_core::Result<COREWEBVIEW2_COLOR> {
4748        unsafe {
4749            let mut result__ = core::mem::zeroed();
4750            (windows_core::Interface::vtable(self).DefaultBackgroundColor)(
4751                windows_core::Interface::as_raw(self),
4752                &mut result__,
4753            )
4754            .map(|| result__)
4755        }
4756    }
4757    pub unsafe fn SetDefaultBackgroundColor(
4758        &self,
4759        backgroundcolor: COREWEBVIEW2_COLOR,
4760    ) -> windows_core::Result<()> {
4761        unsafe {
4762            (windows_core::Interface::vtable(self).SetDefaultBackgroundColor)(
4763                windows_core::Interface::as_raw(self),
4764                core::mem::transmute(backgroundcolor),
4765            )
4766            .ok()
4767        }
4768    }
4769}
4770#[repr(C)]
4771#[doc(hidden)]
4772pub struct ICoreWebView2Controller2_Vtbl {
4773    pub base__: ICoreWebView2Controller_Vtbl,
4774    pub DefaultBackgroundColor: unsafe extern "system" fn(
4775        *mut core::ffi::c_void,
4776        *mut COREWEBVIEW2_COLOR,
4777    ) -> windows_core::HRESULT,
4778    pub SetDefaultBackgroundColor: unsafe extern "system" fn(
4779        *mut core::ffi::c_void,
4780        COREWEBVIEW2_COLOR,
4781    ) -> windows_core::HRESULT,
4782}
4783pub trait ICoreWebView2Controller2_Impl: ICoreWebView2Controller_Impl {
4784    fn DefaultBackgroundColor(&self) -> windows_core::Result<COREWEBVIEW2_COLOR>;
4785    fn SetDefaultBackgroundColor(
4786        &self,
4787        backgroundcolor: &COREWEBVIEW2_COLOR,
4788    ) -> windows_core::Result<()>;
4789}
4790impl ICoreWebView2Controller2_Vtbl {
4791    pub const fn new<Identity: ICoreWebView2Controller2_Impl, const OFFSET: isize>() -> Self {
4792        unsafe extern "system" fn DefaultBackgroundColor<
4793            Identity: ICoreWebView2Controller2_Impl,
4794            const OFFSET: isize,
4795        >(
4796            this: *mut core::ffi::c_void,
4797            backgroundcolor: *mut COREWEBVIEW2_COLOR,
4798        ) -> windows_core::HRESULT {
4799            unsafe {
4800                let this: &Identity =
4801                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
4802                match ICoreWebView2Controller2_Impl::DefaultBackgroundColor(this) {
4803                    Ok(ok__) => {
4804                        backgroundcolor.write(core::mem::transmute(ok__));
4805                        windows_core::HRESULT(0)
4806                    }
4807                    Err(err) => err.into(),
4808                }
4809            }
4810        }
4811        unsafe extern "system" fn SetDefaultBackgroundColor<
4812            Identity: ICoreWebView2Controller2_Impl,
4813            const OFFSET: isize,
4814        >(
4815            this: *mut core::ffi::c_void,
4816            backgroundcolor: COREWEBVIEW2_COLOR,
4817        ) -> windows_core::HRESULT {
4818            unsafe {
4819                let this: &Identity =
4820                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
4821                ICoreWebView2Controller2_Impl::SetDefaultBackgroundColor(
4822                    this,
4823                    core::mem::transmute(&backgroundcolor),
4824                )
4825                .into()
4826            }
4827        }
4828        Self {
4829            base__: ICoreWebView2Controller_Vtbl::new::<Identity, OFFSET>(),
4830            DefaultBackgroundColor: DefaultBackgroundColor::<Identity, OFFSET>,
4831            SetDefaultBackgroundColor: SetDefaultBackgroundColor::<Identity, OFFSET>,
4832        }
4833    }
4834    pub fn matches(iid: &windows_core::GUID) -> bool {
4835        iid == &<ICoreWebView2Controller2 as windows_core::Interface>::IID
4836            || iid == &<ICoreWebView2Controller as windows_core::Interface>::IID
4837    }
4838}
4839impl windows_core::RuntimeName for ICoreWebView2Controller2 {}
4840windows_core::imp::define_interface!(
4841    ICoreWebView2Controller3,
4842    ICoreWebView2Controller3_Vtbl,
4843    0xf9614724_5d2b_41dc_aef7_73d62b51543b
4844);
4845impl core::ops::Deref for ICoreWebView2Controller3 {
4846    type Target = ICoreWebView2Controller2;
4847    fn deref(&self) -> &Self::Target {
4848        unsafe { core::mem::transmute(self) }
4849    }
4850}
4851windows_core::imp::interface_hierarchy!(
4852    ICoreWebView2Controller3,
4853    windows_core::IUnknown,
4854    ICoreWebView2Controller,
4855    ICoreWebView2Controller2
4856);
4857impl ICoreWebView2Controller3 {
4858    pub unsafe fn RasterizationScale(&self) -> windows_core::Result<f64> {
4859        unsafe {
4860            let mut result__ = core::mem::zeroed();
4861            (windows_core::Interface::vtable(self).RasterizationScale)(
4862                windows_core::Interface::as_raw(self),
4863                &mut result__,
4864            )
4865            .map(|| result__)
4866        }
4867    }
4868    pub unsafe fn SetRasterizationScale(&self, scale: f64) -> windows_core::Result<()> {
4869        unsafe {
4870            (windows_core::Interface::vtable(self).SetRasterizationScale)(
4871                windows_core::Interface::as_raw(self),
4872                scale,
4873            )
4874            .ok()
4875        }
4876    }
4877    pub unsafe fn ShouldDetectMonitorScaleChanges(
4878        &self,
4879    ) -> windows_core::Result<windows_core::BOOL> {
4880        unsafe {
4881            let mut result__ = core::mem::zeroed();
4882            (windows_core::Interface::vtable(self).ShouldDetectMonitorScaleChanges)(
4883                windows_core::Interface::as_raw(self),
4884                &mut result__,
4885            )
4886            .map(|| result__)
4887        }
4888    }
4889    pub unsafe fn SetShouldDetectMonitorScaleChanges(
4890        &self,
4891        value: bool,
4892    ) -> windows_core::Result<()> {
4893        unsafe {
4894            (windows_core::Interface::vtable(self).SetShouldDetectMonitorScaleChanges)(
4895                windows_core::Interface::as_raw(self),
4896                value.into(),
4897            )
4898            .ok()
4899        }
4900    }
4901    pub unsafe fn RasterizationScaleChanged<P0>(
4902        &self,
4903        eventhandler: P0,
4904    ) -> windows_core::Result<i64>
4905    where
4906        P0: windows_core::Param<ICoreWebView2RasterizationScaleChangedEventHandler>,
4907    {
4908        unsafe {
4909            let mut result__ = core::mem::zeroed();
4910            (windows_core::Interface::vtable(self).RasterizationScaleChanged)(
4911                windows_core::Interface::as_raw(self),
4912                eventhandler.param().abi(),
4913                &mut result__,
4914            )
4915            .map(|| result__)
4916        }
4917    }
4918    pub unsafe fn RemoveRasterizationScaleChanged(&self, token: i64) -> windows_core::Result<()> {
4919        unsafe {
4920            (windows_core::Interface::vtable(self).RemoveRasterizationScaleChanged)(
4921                windows_core::Interface::as_raw(self),
4922                token,
4923            )
4924            .ok()
4925        }
4926    }
4927    pub unsafe fn BoundsMode(&self) -> windows_core::Result<COREWEBVIEW2_BOUNDS_MODE> {
4928        unsafe {
4929            let mut result__ = core::mem::zeroed();
4930            (windows_core::Interface::vtable(self).BoundsMode)(
4931                windows_core::Interface::as_raw(self),
4932                &mut result__,
4933            )
4934            .map(|| result__)
4935        }
4936    }
4937    pub unsafe fn SetBoundsMode(
4938        &self,
4939        boundsmode: COREWEBVIEW2_BOUNDS_MODE,
4940    ) -> windows_core::Result<()> {
4941        unsafe {
4942            (windows_core::Interface::vtable(self).SetBoundsMode)(
4943                windows_core::Interface::as_raw(self),
4944                boundsmode,
4945            )
4946            .ok()
4947        }
4948    }
4949}
4950#[repr(C)]
4951#[doc(hidden)]
4952pub struct ICoreWebView2Controller3_Vtbl {
4953    pub base__: ICoreWebView2Controller2_Vtbl,
4954    pub RasterizationScale:
4955        unsafe extern "system" fn(*mut core::ffi::c_void, *mut f64) -> windows_core::HRESULT,
4956    pub SetRasterizationScale:
4957        unsafe extern "system" fn(*mut core::ffi::c_void, f64) -> windows_core::HRESULT,
4958    pub ShouldDetectMonitorScaleChanges: unsafe extern "system" fn(
4959        *mut core::ffi::c_void,
4960        *mut windows_core::BOOL,
4961    ) -> windows_core::HRESULT,
4962    pub SetShouldDetectMonitorScaleChanges: unsafe extern "system" fn(
4963        *mut core::ffi::c_void,
4964        windows_core::BOOL,
4965    ) -> windows_core::HRESULT,
4966    pub RasterizationScaleChanged: unsafe extern "system" fn(
4967        *mut core::ffi::c_void,
4968        *mut core::ffi::c_void,
4969        *mut i64,
4970    ) -> windows_core::HRESULT,
4971    pub RemoveRasterizationScaleChanged:
4972        unsafe extern "system" fn(*mut core::ffi::c_void, i64) -> windows_core::HRESULT,
4973    pub BoundsMode: unsafe extern "system" fn(
4974        *mut core::ffi::c_void,
4975        *mut COREWEBVIEW2_BOUNDS_MODE,
4976    ) -> windows_core::HRESULT,
4977    pub SetBoundsMode: unsafe extern "system" fn(
4978        *mut core::ffi::c_void,
4979        COREWEBVIEW2_BOUNDS_MODE,
4980    ) -> windows_core::HRESULT,
4981}
4982pub trait ICoreWebView2Controller3_Impl: ICoreWebView2Controller2_Impl {
4983    fn RasterizationScale(&self) -> windows_core::Result<f64>;
4984    fn SetRasterizationScale(&self, scale: f64) -> windows_core::Result<()>;
4985    fn ShouldDetectMonitorScaleChanges(&self) -> windows_core::Result<windows_core::BOOL>;
4986    fn SetShouldDetectMonitorScaleChanges(
4987        &self,
4988        value: windows_core::BOOL,
4989    ) -> windows_core::Result<()>;
4990    fn RasterizationScaleChanged(
4991        &self,
4992        eventhandler: windows_core::Ref<ICoreWebView2RasterizationScaleChangedEventHandler>,
4993    ) -> windows_core::Result<i64>;
4994    fn RemoveRasterizationScaleChanged(&self, token: i64) -> windows_core::Result<()>;
4995    fn BoundsMode(&self) -> windows_core::Result<COREWEBVIEW2_BOUNDS_MODE>;
4996    fn SetBoundsMode(&self, boundsmode: COREWEBVIEW2_BOUNDS_MODE) -> windows_core::Result<()>;
4997}
4998impl ICoreWebView2Controller3_Vtbl {
4999    pub const fn new<Identity: ICoreWebView2Controller3_Impl, const OFFSET: isize>() -> Self {
5000        unsafe extern "system" fn RasterizationScale<
5001            Identity: ICoreWebView2Controller3_Impl,
5002            const OFFSET: isize,
5003        >(
5004            this: *mut core::ffi::c_void,
5005            scale: *mut f64,
5006        ) -> windows_core::HRESULT {
5007            unsafe {
5008                let this: &Identity =
5009                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
5010                match ICoreWebView2Controller3_Impl::RasterizationScale(this) {
5011                    Ok(ok__) => {
5012                        scale.write(core::mem::transmute(ok__));
5013                        windows_core::HRESULT(0)
5014                    }
5015                    Err(err) => err.into(),
5016                }
5017            }
5018        }
5019        unsafe extern "system" fn SetRasterizationScale<
5020            Identity: ICoreWebView2Controller3_Impl,
5021            const OFFSET: isize,
5022        >(
5023            this: *mut core::ffi::c_void,
5024            scale: f64,
5025        ) -> windows_core::HRESULT {
5026            unsafe {
5027                let this: &Identity =
5028                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
5029                ICoreWebView2Controller3_Impl::SetRasterizationScale(
5030                    this,
5031                    core::mem::transmute_copy(&scale),
5032                )
5033                .into()
5034            }
5035        }
5036        unsafe extern "system" fn ShouldDetectMonitorScaleChanges<
5037            Identity: ICoreWebView2Controller3_Impl,
5038            const OFFSET: isize,
5039        >(
5040            this: *mut core::ffi::c_void,
5041            value: *mut windows_core::BOOL,
5042        ) -> windows_core::HRESULT {
5043            unsafe {
5044                let this: &Identity =
5045                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
5046                match ICoreWebView2Controller3_Impl::ShouldDetectMonitorScaleChanges(this) {
5047                    Ok(ok__) => {
5048                        value.write(core::mem::transmute(ok__));
5049                        windows_core::HRESULT(0)
5050                    }
5051                    Err(err) => err.into(),
5052                }
5053            }
5054        }
5055        unsafe extern "system" fn SetShouldDetectMonitorScaleChanges<
5056            Identity: ICoreWebView2Controller3_Impl,
5057            const OFFSET: isize,
5058        >(
5059            this: *mut core::ffi::c_void,
5060            value: windows_core::BOOL,
5061        ) -> windows_core::HRESULT {
5062            unsafe {
5063                let this: &Identity =
5064                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
5065                ICoreWebView2Controller3_Impl::SetShouldDetectMonitorScaleChanges(
5066                    this,
5067                    core::mem::transmute_copy(&value),
5068                )
5069                .into()
5070            }
5071        }
5072        unsafe extern "system" fn RasterizationScaleChanged<
5073            Identity: ICoreWebView2Controller3_Impl,
5074            const OFFSET: isize,
5075        >(
5076            this: *mut core::ffi::c_void,
5077            eventhandler: *mut core::ffi::c_void,
5078            token: *mut i64,
5079        ) -> windows_core::HRESULT {
5080            unsafe {
5081                let this: &Identity =
5082                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
5083                match ICoreWebView2Controller3_Impl::RasterizationScaleChanged(
5084                    this,
5085                    core::mem::transmute_copy(&eventhandler),
5086                ) {
5087                    Ok(ok__) => {
5088                        token.write(core::mem::transmute(ok__));
5089                        windows_core::HRESULT(0)
5090                    }
5091                    Err(err) => err.into(),
5092                }
5093            }
5094        }
5095        unsafe extern "system" fn RemoveRasterizationScaleChanged<
5096            Identity: ICoreWebView2Controller3_Impl,
5097            const OFFSET: isize,
5098        >(
5099            this: *mut core::ffi::c_void,
5100            token: i64,
5101        ) -> windows_core::HRESULT {
5102            unsafe {
5103                let this: &Identity =
5104                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
5105                ICoreWebView2Controller3_Impl::RemoveRasterizationScaleChanged(
5106                    this,
5107                    core::mem::transmute_copy(&token),
5108                )
5109                .into()
5110            }
5111        }
5112        unsafe extern "system" fn BoundsMode<
5113            Identity: ICoreWebView2Controller3_Impl,
5114            const OFFSET: isize,
5115        >(
5116            this: *mut core::ffi::c_void,
5117            boundsmode: *mut COREWEBVIEW2_BOUNDS_MODE,
5118        ) -> windows_core::HRESULT {
5119            unsafe {
5120                let this: &Identity =
5121                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
5122                match ICoreWebView2Controller3_Impl::BoundsMode(this) {
5123                    Ok(ok__) => {
5124                        boundsmode.write(core::mem::transmute(ok__));
5125                        windows_core::HRESULT(0)
5126                    }
5127                    Err(err) => err.into(),
5128                }
5129            }
5130        }
5131        unsafe extern "system" fn SetBoundsMode<
5132            Identity: ICoreWebView2Controller3_Impl,
5133            const OFFSET: isize,
5134        >(
5135            this: *mut core::ffi::c_void,
5136            boundsmode: COREWEBVIEW2_BOUNDS_MODE,
5137        ) -> windows_core::HRESULT {
5138            unsafe {
5139                let this: &Identity =
5140                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
5141                ICoreWebView2Controller3_Impl::SetBoundsMode(
5142                    this,
5143                    core::mem::transmute_copy(&boundsmode),
5144                )
5145                .into()
5146            }
5147        }
5148        Self {
5149            base__: ICoreWebView2Controller2_Vtbl::new::<Identity, OFFSET>(),
5150            RasterizationScale: RasterizationScale::<Identity, OFFSET>,
5151            SetRasterizationScale: SetRasterizationScale::<Identity, OFFSET>,
5152            ShouldDetectMonitorScaleChanges: ShouldDetectMonitorScaleChanges::<Identity, OFFSET>,
5153            SetShouldDetectMonitorScaleChanges: SetShouldDetectMonitorScaleChanges::<
5154                Identity,
5155                OFFSET,
5156            >,
5157            RasterizationScaleChanged: RasterizationScaleChanged::<Identity, OFFSET>,
5158            RemoveRasterizationScaleChanged: RemoveRasterizationScaleChanged::<Identity, OFFSET>,
5159            BoundsMode: BoundsMode::<Identity, OFFSET>,
5160            SetBoundsMode: SetBoundsMode::<Identity, OFFSET>,
5161        }
5162    }
5163    pub fn matches(iid: &windows_core::GUID) -> bool {
5164        iid == &<ICoreWebView2Controller3 as windows_core::Interface>::IID
5165            || iid == &<ICoreWebView2Controller as windows_core::Interface>::IID
5166            || iid == &<ICoreWebView2Controller2 as windows_core::Interface>::IID
5167    }
5168}
5169impl windows_core::RuntimeName for ICoreWebView2Controller3 {}
5170windows_core::imp::define_interface!(
5171    ICoreWebView2Cookie,
5172    ICoreWebView2Cookie_Vtbl,
5173    0xad26d6be_1486_43e6_bf87_a2034006ca21
5174);
5175windows_core::imp::interface_hierarchy!(ICoreWebView2Cookie, windows_core::IUnknown);
5176impl ICoreWebView2Cookie {
5177    pub unsafe fn Name(&self) -> windows_core::Result<windows_core::PWSTR> {
5178        unsafe {
5179            let mut result__ = core::mem::zeroed();
5180            (windows_core::Interface::vtable(self).Name)(
5181                windows_core::Interface::as_raw(self),
5182                &mut result__,
5183            )
5184            .map(|| result__)
5185        }
5186    }
5187    pub unsafe fn Value(&self) -> windows_core::Result<windows_core::PWSTR> {
5188        unsafe {
5189            let mut result__ = core::mem::zeroed();
5190            (windows_core::Interface::vtable(self).Value)(
5191                windows_core::Interface::as_raw(self),
5192                &mut result__,
5193            )
5194            .map(|| result__)
5195        }
5196    }
5197    pub unsafe fn SetValue<P0>(&self, value: P0) -> windows_core::Result<()>
5198    where
5199        P0: windows_core::Param<windows_core::PCWSTR>,
5200    {
5201        unsafe {
5202            (windows_core::Interface::vtable(self).SetValue)(
5203                windows_core::Interface::as_raw(self),
5204                value.param().abi(),
5205            )
5206            .ok()
5207        }
5208    }
5209    pub unsafe fn Domain(&self) -> windows_core::Result<windows_core::PWSTR> {
5210        unsafe {
5211            let mut result__ = core::mem::zeroed();
5212            (windows_core::Interface::vtable(self).Domain)(
5213                windows_core::Interface::as_raw(self),
5214                &mut result__,
5215            )
5216            .map(|| result__)
5217        }
5218    }
5219    pub unsafe fn Path(&self) -> windows_core::Result<windows_core::PWSTR> {
5220        unsafe {
5221            let mut result__ = core::mem::zeroed();
5222            (windows_core::Interface::vtable(self).Path)(
5223                windows_core::Interface::as_raw(self),
5224                &mut result__,
5225            )
5226            .map(|| result__)
5227        }
5228    }
5229    pub unsafe fn Expires(&self) -> windows_core::Result<f64> {
5230        unsafe {
5231            let mut result__ = core::mem::zeroed();
5232            (windows_core::Interface::vtable(self).Expires)(
5233                windows_core::Interface::as_raw(self),
5234                &mut result__,
5235            )
5236            .map(|| result__)
5237        }
5238    }
5239    pub unsafe fn SetExpires(&self, expires: f64) -> windows_core::Result<()> {
5240        unsafe {
5241            (windows_core::Interface::vtable(self).SetExpires)(
5242                windows_core::Interface::as_raw(self),
5243                expires,
5244            )
5245            .ok()
5246        }
5247    }
5248    pub unsafe fn IsHttpOnly(&self) -> windows_core::Result<windows_core::BOOL> {
5249        unsafe {
5250            let mut result__ = core::mem::zeroed();
5251            (windows_core::Interface::vtable(self).IsHttpOnly)(
5252                windows_core::Interface::as_raw(self),
5253                &mut result__,
5254            )
5255            .map(|| result__)
5256        }
5257    }
5258    pub unsafe fn SetIsHttpOnly(&self, ishttponly: bool) -> windows_core::Result<()> {
5259        unsafe {
5260            (windows_core::Interface::vtable(self).SetIsHttpOnly)(
5261                windows_core::Interface::as_raw(self),
5262                ishttponly.into(),
5263            )
5264            .ok()
5265        }
5266    }
5267    pub unsafe fn SameSite(&self) -> windows_core::Result<COREWEBVIEW2_COOKIE_SAME_SITE_KIND> {
5268        unsafe {
5269            let mut result__ = core::mem::zeroed();
5270            (windows_core::Interface::vtable(self).SameSite)(
5271                windows_core::Interface::as_raw(self),
5272                &mut result__,
5273            )
5274            .map(|| result__)
5275        }
5276    }
5277    pub unsafe fn SetSameSite(
5278        &self,
5279        samesite: COREWEBVIEW2_COOKIE_SAME_SITE_KIND,
5280    ) -> windows_core::Result<()> {
5281        unsafe {
5282            (windows_core::Interface::vtable(self).SetSameSite)(
5283                windows_core::Interface::as_raw(self),
5284                samesite,
5285            )
5286            .ok()
5287        }
5288    }
5289    pub unsafe fn IsSecure(&self) -> windows_core::Result<windows_core::BOOL> {
5290        unsafe {
5291            let mut result__ = core::mem::zeroed();
5292            (windows_core::Interface::vtable(self).IsSecure)(
5293                windows_core::Interface::as_raw(self),
5294                &mut result__,
5295            )
5296            .map(|| result__)
5297        }
5298    }
5299    pub unsafe fn SetIsSecure(&self, issecure: bool) -> windows_core::Result<()> {
5300        unsafe {
5301            (windows_core::Interface::vtable(self).SetIsSecure)(
5302                windows_core::Interface::as_raw(self),
5303                issecure.into(),
5304            )
5305            .ok()
5306        }
5307    }
5308    pub unsafe fn IsSession(&self) -> windows_core::Result<windows_core::BOOL> {
5309        unsafe {
5310            let mut result__ = core::mem::zeroed();
5311            (windows_core::Interface::vtable(self).IsSession)(
5312                windows_core::Interface::as_raw(self),
5313                &mut result__,
5314            )
5315            .map(|| result__)
5316        }
5317    }
5318}
5319#[repr(C)]
5320#[doc(hidden)]
5321pub struct ICoreWebView2Cookie_Vtbl {
5322    pub base__: windows_core::IUnknown_Vtbl,
5323    pub Name: unsafe extern "system" fn(
5324        *mut core::ffi::c_void,
5325        *mut windows_core::PWSTR,
5326    ) -> windows_core::HRESULT,
5327    pub Value: unsafe extern "system" fn(
5328        *mut core::ffi::c_void,
5329        *mut windows_core::PWSTR,
5330    ) -> windows_core::HRESULT,
5331    pub SetValue: unsafe extern "system" fn(
5332        *mut core::ffi::c_void,
5333        windows_core::PCWSTR,
5334    ) -> windows_core::HRESULT,
5335    pub Domain: unsafe extern "system" fn(
5336        *mut core::ffi::c_void,
5337        *mut windows_core::PWSTR,
5338    ) -> windows_core::HRESULT,
5339    pub Path: unsafe extern "system" fn(
5340        *mut core::ffi::c_void,
5341        *mut windows_core::PWSTR,
5342    ) -> windows_core::HRESULT,
5343    pub Expires:
5344        unsafe extern "system" fn(*mut core::ffi::c_void, *mut f64) -> windows_core::HRESULT,
5345    pub SetExpires: unsafe extern "system" fn(*mut core::ffi::c_void, f64) -> windows_core::HRESULT,
5346    pub IsHttpOnly: unsafe extern "system" fn(
5347        *mut core::ffi::c_void,
5348        *mut windows_core::BOOL,
5349    ) -> windows_core::HRESULT,
5350    pub SetIsHttpOnly: unsafe extern "system" fn(
5351        *mut core::ffi::c_void,
5352        windows_core::BOOL,
5353    ) -> windows_core::HRESULT,
5354    pub SameSite: unsafe extern "system" fn(
5355        *mut core::ffi::c_void,
5356        *mut COREWEBVIEW2_COOKIE_SAME_SITE_KIND,
5357    ) -> windows_core::HRESULT,
5358    pub SetSameSite: unsafe extern "system" fn(
5359        *mut core::ffi::c_void,
5360        COREWEBVIEW2_COOKIE_SAME_SITE_KIND,
5361    ) -> windows_core::HRESULT,
5362    pub IsSecure: unsafe extern "system" fn(
5363        *mut core::ffi::c_void,
5364        *mut windows_core::BOOL,
5365    ) -> windows_core::HRESULT,
5366    pub SetIsSecure: unsafe extern "system" fn(
5367        *mut core::ffi::c_void,
5368        windows_core::BOOL,
5369    ) -> windows_core::HRESULT,
5370    pub IsSession: unsafe extern "system" fn(
5371        *mut core::ffi::c_void,
5372        *mut windows_core::BOOL,
5373    ) -> windows_core::HRESULT,
5374}
5375pub trait ICoreWebView2Cookie_Impl: windows_core::IUnknownImpl {
5376    fn Name(&self) -> windows_core::Result<windows_core::PWSTR>;
5377    fn Value(&self) -> windows_core::Result<windows_core::PWSTR>;
5378    fn SetValue(&self, value: &windows_core::PCWSTR) -> windows_core::Result<()>;
5379    fn Domain(&self) -> windows_core::Result<windows_core::PWSTR>;
5380    fn Path(&self) -> windows_core::Result<windows_core::PWSTR>;
5381    fn Expires(&self) -> windows_core::Result<f64>;
5382    fn SetExpires(&self, expires: f64) -> windows_core::Result<()>;
5383    fn IsHttpOnly(&self) -> windows_core::Result<windows_core::BOOL>;
5384    fn SetIsHttpOnly(&self, ishttponly: windows_core::BOOL) -> windows_core::Result<()>;
5385    fn SameSite(&self) -> windows_core::Result<COREWEBVIEW2_COOKIE_SAME_SITE_KIND>;
5386    fn SetSameSite(&self, samesite: COREWEBVIEW2_COOKIE_SAME_SITE_KIND)
5387        -> windows_core::Result<()>;
5388    fn IsSecure(&self) -> windows_core::Result<windows_core::BOOL>;
5389    fn SetIsSecure(&self, issecure: windows_core::BOOL) -> windows_core::Result<()>;
5390    fn IsSession(&self) -> windows_core::Result<windows_core::BOOL>;
5391}
5392impl ICoreWebView2Cookie_Vtbl {
5393    pub const fn new<Identity: ICoreWebView2Cookie_Impl, const OFFSET: isize>() -> Self {
5394        unsafe extern "system" fn Name<Identity: ICoreWebView2Cookie_Impl, const OFFSET: isize>(
5395            this: *mut core::ffi::c_void,
5396            name: *mut windows_core::PWSTR,
5397        ) -> windows_core::HRESULT {
5398            unsafe {
5399                let this: &Identity =
5400                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
5401                match ICoreWebView2Cookie_Impl::Name(this) {
5402                    Ok(ok__) => {
5403                        name.write(core::mem::transmute(ok__));
5404                        windows_core::HRESULT(0)
5405                    }
5406                    Err(err) => err.into(),
5407                }
5408            }
5409        }
5410        unsafe extern "system" fn Value<Identity: ICoreWebView2Cookie_Impl, const OFFSET: isize>(
5411            this: *mut core::ffi::c_void,
5412            value: *mut windows_core::PWSTR,
5413        ) -> windows_core::HRESULT {
5414            unsafe {
5415                let this: &Identity =
5416                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
5417                match ICoreWebView2Cookie_Impl::Value(this) {
5418                    Ok(ok__) => {
5419                        value.write(core::mem::transmute(ok__));
5420                        windows_core::HRESULT(0)
5421                    }
5422                    Err(err) => err.into(),
5423                }
5424            }
5425        }
5426        unsafe extern "system" fn SetValue<
5427            Identity: ICoreWebView2Cookie_Impl,
5428            const OFFSET: isize,
5429        >(
5430            this: *mut core::ffi::c_void,
5431            value: windows_core::PCWSTR,
5432        ) -> windows_core::HRESULT {
5433            unsafe {
5434                let this: &Identity =
5435                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
5436                ICoreWebView2Cookie_Impl::SetValue(this, core::mem::transmute(&value)).into()
5437            }
5438        }
5439        unsafe extern "system" fn Domain<
5440            Identity: ICoreWebView2Cookie_Impl,
5441            const OFFSET: isize,
5442        >(
5443            this: *mut core::ffi::c_void,
5444            domain: *mut windows_core::PWSTR,
5445        ) -> windows_core::HRESULT {
5446            unsafe {
5447                let this: &Identity =
5448                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
5449                match ICoreWebView2Cookie_Impl::Domain(this) {
5450                    Ok(ok__) => {
5451                        domain.write(core::mem::transmute(ok__));
5452                        windows_core::HRESULT(0)
5453                    }
5454                    Err(err) => err.into(),
5455                }
5456            }
5457        }
5458        unsafe extern "system" fn Path<Identity: ICoreWebView2Cookie_Impl, const OFFSET: isize>(
5459            this: *mut core::ffi::c_void,
5460            path: *mut windows_core::PWSTR,
5461        ) -> windows_core::HRESULT {
5462            unsafe {
5463                let this: &Identity =
5464                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
5465                match ICoreWebView2Cookie_Impl::Path(this) {
5466                    Ok(ok__) => {
5467                        path.write(core::mem::transmute(ok__));
5468                        windows_core::HRESULT(0)
5469                    }
5470                    Err(err) => err.into(),
5471                }
5472            }
5473        }
5474        unsafe extern "system" fn Expires<
5475            Identity: ICoreWebView2Cookie_Impl,
5476            const OFFSET: isize,
5477        >(
5478            this: *mut core::ffi::c_void,
5479            expires: *mut f64,
5480        ) -> windows_core::HRESULT {
5481            unsafe {
5482                let this: &Identity =
5483                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
5484                match ICoreWebView2Cookie_Impl::Expires(this) {
5485                    Ok(ok__) => {
5486                        expires.write(core::mem::transmute(ok__));
5487                        windows_core::HRESULT(0)
5488                    }
5489                    Err(err) => err.into(),
5490                }
5491            }
5492        }
5493        unsafe extern "system" fn SetExpires<
5494            Identity: ICoreWebView2Cookie_Impl,
5495            const OFFSET: isize,
5496        >(
5497            this: *mut core::ffi::c_void,
5498            expires: f64,
5499        ) -> windows_core::HRESULT {
5500            unsafe {
5501                let this: &Identity =
5502                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
5503                ICoreWebView2Cookie_Impl::SetExpires(this, core::mem::transmute_copy(&expires))
5504                    .into()
5505            }
5506        }
5507        unsafe extern "system" fn IsHttpOnly<
5508            Identity: ICoreWebView2Cookie_Impl,
5509            const OFFSET: isize,
5510        >(
5511            this: *mut core::ffi::c_void,
5512            ishttponly: *mut windows_core::BOOL,
5513        ) -> windows_core::HRESULT {
5514            unsafe {
5515                let this: &Identity =
5516                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
5517                match ICoreWebView2Cookie_Impl::IsHttpOnly(this) {
5518                    Ok(ok__) => {
5519                        ishttponly.write(core::mem::transmute(ok__));
5520                        windows_core::HRESULT(0)
5521                    }
5522                    Err(err) => err.into(),
5523                }
5524            }
5525        }
5526        unsafe extern "system" fn SetIsHttpOnly<
5527            Identity: ICoreWebView2Cookie_Impl,
5528            const OFFSET: isize,
5529        >(
5530            this: *mut core::ffi::c_void,
5531            ishttponly: windows_core::BOOL,
5532        ) -> windows_core::HRESULT {
5533            unsafe {
5534                let this: &Identity =
5535                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
5536                ICoreWebView2Cookie_Impl::SetIsHttpOnly(
5537                    this,
5538                    core::mem::transmute_copy(&ishttponly),
5539                )
5540                .into()
5541            }
5542        }
5543        unsafe extern "system" fn SameSite<
5544            Identity: ICoreWebView2Cookie_Impl,
5545            const OFFSET: isize,
5546        >(
5547            this: *mut core::ffi::c_void,
5548            samesite: *mut COREWEBVIEW2_COOKIE_SAME_SITE_KIND,
5549        ) -> windows_core::HRESULT {
5550            unsafe {
5551                let this: &Identity =
5552                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
5553                match ICoreWebView2Cookie_Impl::SameSite(this) {
5554                    Ok(ok__) => {
5555                        samesite.write(core::mem::transmute(ok__));
5556                        windows_core::HRESULT(0)
5557                    }
5558                    Err(err) => err.into(),
5559                }
5560            }
5561        }
5562        unsafe extern "system" fn SetSameSite<
5563            Identity: ICoreWebView2Cookie_Impl,
5564            const OFFSET: isize,
5565        >(
5566            this: *mut core::ffi::c_void,
5567            samesite: COREWEBVIEW2_COOKIE_SAME_SITE_KIND,
5568        ) -> windows_core::HRESULT {
5569            unsafe {
5570                let this: &Identity =
5571                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
5572                ICoreWebView2Cookie_Impl::SetSameSite(this, core::mem::transmute_copy(&samesite))
5573                    .into()
5574            }
5575        }
5576        unsafe extern "system" fn IsSecure<
5577            Identity: ICoreWebView2Cookie_Impl,
5578            const OFFSET: isize,
5579        >(
5580            this: *mut core::ffi::c_void,
5581            issecure: *mut windows_core::BOOL,
5582        ) -> windows_core::HRESULT {
5583            unsafe {
5584                let this: &Identity =
5585                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
5586                match ICoreWebView2Cookie_Impl::IsSecure(this) {
5587                    Ok(ok__) => {
5588                        issecure.write(core::mem::transmute(ok__));
5589                        windows_core::HRESULT(0)
5590                    }
5591                    Err(err) => err.into(),
5592                }
5593            }
5594        }
5595        unsafe extern "system" fn SetIsSecure<
5596            Identity: ICoreWebView2Cookie_Impl,
5597            const OFFSET: isize,
5598        >(
5599            this: *mut core::ffi::c_void,
5600            issecure: windows_core::BOOL,
5601        ) -> windows_core::HRESULT {
5602            unsafe {
5603                let this: &Identity =
5604                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
5605                ICoreWebView2Cookie_Impl::SetIsSecure(this, core::mem::transmute_copy(&issecure))
5606                    .into()
5607            }
5608        }
5609        unsafe extern "system" fn IsSession<
5610            Identity: ICoreWebView2Cookie_Impl,
5611            const OFFSET: isize,
5612        >(
5613            this: *mut core::ffi::c_void,
5614            issession: *mut windows_core::BOOL,
5615        ) -> windows_core::HRESULT {
5616            unsafe {
5617                let this: &Identity =
5618                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
5619                match ICoreWebView2Cookie_Impl::IsSession(this) {
5620                    Ok(ok__) => {
5621                        issession.write(core::mem::transmute(ok__));
5622                        windows_core::HRESULT(0)
5623                    }
5624                    Err(err) => err.into(),
5625                }
5626            }
5627        }
5628        Self {
5629            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
5630            Name: Name::<Identity, OFFSET>,
5631            Value: Value::<Identity, OFFSET>,
5632            SetValue: SetValue::<Identity, OFFSET>,
5633            Domain: Domain::<Identity, OFFSET>,
5634            Path: Path::<Identity, OFFSET>,
5635            Expires: Expires::<Identity, OFFSET>,
5636            SetExpires: SetExpires::<Identity, OFFSET>,
5637            IsHttpOnly: IsHttpOnly::<Identity, OFFSET>,
5638            SetIsHttpOnly: SetIsHttpOnly::<Identity, OFFSET>,
5639            SameSite: SameSite::<Identity, OFFSET>,
5640            SetSameSite: SetSameSite::<Identity, OFFSET>,
5641            IsSecure: IsSecure::<Identity, OFFSET>,
5642            SetIsSecure: SetIsSecure::<Identity, OFFSET>,
5643            IsSession: IsSession::<Identity, OFFSET>,
5644        }
5645    }
5646    pub fn matches(iid: &windows_core::GUID) -> bool {
5647        iid == &<ICoreWebView2Cookie as windows_core::Interface>::IID
5648    }
5649}
5650impl windows_core::RuntimeName for ICoreWebView2Cookie {}
5651windows_core::imp::define_interface!(
5652    ICoreWebView2CookieList,
5653    ICoreWebView2CookieList_Vtbl,
5654    0xf7f6f714_5d2a_43c6_9503_346ece02d186
5655);
5656windows_core::imp::interface_hierarchy!(ICoreWebView2CookieList, windows_core::IUnknown);
5657impl ICoreWebView2CookieList {
5658    pub unsafe fn Count(&self) -> windows_core::Result<u32> {
5659        unsafe {
5660            let mut result__ = core::mem::zeroed();
5661            (windows_core::Interface::vtable(self).Count)(
5662                windows_core::Interface::as_raw(self),
5663                &mut result__,
5664            )
5665            .map(|| result__)
5666        }
5667    }
5668    pub unsafe fn GetValueAtIndex(&self, index: u32) -> windows_core::Result<ICoreWebView2Cookie> {
5669        unsafe {
5670            let mut result__ = core::mem::zeroed();
5671            (windows_core::Interface::vtable(self).GetValueAtIndex)(
5672                windows_core::Interface::as_raw(self),
5673                index,
5674                &mut result__,
5675            )
5676            .and_then(|| windows_core::Type::from_abi(result__))
5677        }
5678    }
5679}
5680#[repr(C)]
5681#[doc(hidden)]
5682pub struct ICoreWebView2CookieList_Vtbl {
5683    pub base__: windows_core::IUnknown_Vtbl,
5684    pub Count: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
5685    pub GetValueAtIndex: unsafe extern "system" fn(
5686        *mut core::ffi::c_void,
5687        u32,
5688        *mut *mut core::ffi::c_void,
5689    ) -> windows_core::HRESULT,
5690}
5691pub trait ICoreWebView2CookieList_Impl: windows_core::IUnknownImpl {
5692    fn Count(&self) -> windows_core::Result<u32>;
5693    fn GetValueAtIndex(&self, index: u32) -> windows_core::Result<ICoreWebView2Cookie>;
5694}
5695impl ICoreWebView2CookieList_Vtbl {
5696    pub const fn new<Identity: ICoreWebView2CookieList_Impl, const OFFSET: isize>() -> Self {
5697        unsafe extern "system" fn Count<
5698            Identity: ICoreWebView2CookieList_Impl,
5699            const OFFSET: isize,
5700        >(
5701            this: *mut core::ffi::c_void,
5702            count: *mut u32,
5703        ) -> windows_core::HRESULT {
5704            unsafe {
5705                let this: &Identity =
5706                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
5707                match ICoreWebView2CookieList_Impl::Count(this) {
5708                    Ok(ok__) => {
5709                        count.write(core::mem::transmute(ok__));
5710                        windows_core::HRESULT(0)
5711                    }
5712                    Err(err) => err.into(),
5713                }
5714            }
5715        }
5716        unsafe extern "system" fn GetValueAtIndex<
5717            Identity: ICoreWebView2CookieList_Impl,
5718            const OFFSET: isize,
5719        >(
5720            this: *mut core::ffi::c_void,
5721            index: u32,
5722            cookie: *mut *mut core::ffi::c_void,
5723        ) -> windows_core::HRESULT {
5724            unsafe {
5725                let this: &Identity =
5726                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
5727                match ICoreWebView2CookieList_Impl::GetValueAtIndex(
5728                    this,
5729                    core::mem::transmute_copy(&index),
5730                ) {
5731                    Ok(ok__) => {
5732                        cookie.write(core::mem::transmute(ok__));
5733                        windows_core::HRESULT(0)
5734                    }
5735                    Err(err) => err.into(),
5736                }
5737            }
5738        }
5739        Self {
5740            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
5741            Count: Count::<Identity, OFFSET>,
5742            GetValueAtIndex: GetValueAtIndex::<Identity, OFFSET>,
5743        }
5744    }
5745    pub fn matches(iid: &windows_core::GUID) -> bool {
5746        iid == &<ICoreWebView2CookieList as windows_core::Interface>::IID
5747    }
5748}
5749impl windows_core::RuntimeName for ICoreWebView2CookieList {}
5750windows_core::imp::define_interface!(
5751    ICoreWebView2CookieManager,
5752    ICoreWebView2CookieManager_Vtbl,
5753    0x177cd9e7_b6f5_451a_94a0_5d7a3a4c4141
5754);
5755windows_core::imp::interface_hierarchy!(ICoreWebView2CookieManager, windows_core::IUnknown);
5756impl ICoreWebView2CookieManager {
5757    pub unsafe fn CreateCookie<P0, P1, P2, P3>(
5758        &self,
5759        name: P0,
5760        value: P1,
5761        domain: P2,
5762        path: P3,
5763    ) -> windows_core::Result<ICoreWebView2Cookie>
5764    where
5765        P0: windows_core::Param<windows_core::PCWSTR>,
5766        P1: windows_core::Param<windows_core::PCWSTR>,
5767        P2: windows_core::Param<windows_core::PCWSTR>,
5768        P3: windows_core::Param<windows_core::PCWSTR>,
5769    {
5770        unsafe {
5771            let mut result__ = core::mem::zeroed();
5772            (windows_core::Interface::vtable(self).CreateCookie)(
5773                windows_core::Interface::as_raw(self),
5774                name.param().abi(),
5775                value.param().abi(),
5776                domain.param().abi(),
5777                path.param().abi(),
5778                &mut result__,
5779            )
5780            .and_then(|| windows_core::Type::from_abi(result__))
5781        }
5782    }
5783    pub unsafe fn CopyCookie<P0>(
5784        &self,
5785        cookieparam: P0,
5786    ) -> windows_core::Result<ICoreWebView2Cookie>
5787    where
5788        P0: windows_core::Param<ICoreWebView2Cookie>,
5789    {
5790        unsafe {
5791            let mut result__ = core::mem::zeroed();
5792            (windows_core::Interface::vtable(self).CopyCookie)(
5793                windows_core::Interface::as_raw(self),
5794                cookieparam.param().abi(),
5795                &mut result__,
5796            )
5797            .and_then(|| windows_core::Type::from_abi(result__))
5798        }
5799    }
5800    pub unsafe fn GetCookies<P0, P1>(&self, uri: P0, handler: P1) -> windows_core::Result<()>
5801    where
5802        P0: windows_core::Param<windows_core::PCWSTR>,
5803        P1: windows_core::Param<ICoreWebView2GetCookiesCompletedHandler>,
5804    {
5805        unsafe {
5806            (windows_core::Interface::vtable(self).GetCookies)(
5807                windows_core::Interface::as_raw(self),
5808                uri.param().abi(),
5809                handler.param().abi(),
5810            )
5811            .ok()
5812        }
5813    }
5814    pub unsafe fn AddOrUpdateCookie<P0>(&self, cookie: P0) -> windows_core::Result<()>
5815    where
5816        P0: windows_core::Param<ICoreWebView2Cookie>,
5817    {
5818        unsafe {
5819            (windows_core::Interface::vtable(self).AddOrUpdateCookie)(
5820                windows_core::Interface::as_raw(self),
5821                cookie.param().abi(),
5822            )
5823            .ok()
5824        }
5825    }
5826    pub unsafe fn DeleteCookie<P0>(&self, cookie: P0) -> windows_core::Result<()>
5827    where
5828        P0: windows_core::Param<ICoreWebView2Cookie>,
5829    {
5830        unsafe {
5831            (windows_core::Interface::vtable(self).DeleteCookie)(
5832                windows_core::Interface::as_raw(self),
5833                cookie.param().abi(),
5834            )
5835            .ok()
5836        }
5837    }
5838    pub unsafe fn DeleteCookies<P0, P1>(&self, name: P0, uri: P1) -> windows_core::Result<()>
5839    where
5840        P0: windows_core::Param<windows_core::PCWSTR>,
5841        P1: windows_core::Param<windows_core::PCWSTR>,
5842    {
5843        unsafe {
5844            (windows_core::Interface::vtable(self).DeleteCookies)(
5845                windows_core::Interface::as_raw(self),
5846                name.param().abi(),
5847                uri.param().abi(),
5848            )
5849            .ok()
5850        }
5851    }
5852    pub unsafe fn DeleteCookiesWithDomainAndPath<P0, P1, P2>(
5853        &self,
5854        name: P0,
5855        domain: P1,
5856        path: P2,
5857    ) -> windows_core::Result<()>
5858    where
5859        P0: windows_core::Param<windows_core::PCWSTR>,
5860        P1: windows_core::Param<windows_core::PCWSTR>,
5861        P2: windows_core::Param<windows_core::PCWSTR>,
5862    {
5863        unsafe {
5864            (windows_core::Interface::vtable(self).DeleteCookiesWithDomainAndPath)(
5865                windows_core::Interface::as_raw(self),
5866                name.param().abi(),
5867                domain.param().abi(),
5868                path.param().abi(),
5869            )
5870            .ok()
5871        }
5872    }
5873    pub unsafe fn DeleteAllCookies(&self) -> windows_core::Result<()> {
5874        unsafe {
5875            (windows_core::Interface::vtable(self).DeleteAllCookies)(
5876                windows_core::Interface::as_raw(self),
5877            )
5878            .ok()
5879        }
5880    }
5881}
5882#[repr(C)]
5883#[doc(hidden)]
5884pub struct ICoreWebView2CookieManager_Vtbl {
5885    pub base__: windows_core::IUnknown_Vtbl,
5886    pub CreateCookie: unsafe extern "system" fn(
5887        *mut core::ffi::c_void,
5888        windows_core::PCWSTR,
5889        windows_core::PCWSTR,
5890        windows_core::PCWSTR,
5891        windows_core::PCWSTR,
5892        *mut *mut core::ffi::c_void,
5893    ) -> windows_core::HRESULT,
5894    pub CopyCookie: unsafe extern "system" fn(
5895        *mut core::ffi::c_void,
5896        *mut core::ffi::c_void,
5897        *mut *mut core::ffi::c_void,
5898    ) -> windows_core::HRESULT,
5899    pub GetCookies: unsafe extern "system" fn(
5900        *mut core::ffi::c_void,
5901        windows_core::PCWSTR,
5902        *mut core::ffi::c_void,
5903    ) -> windows_core::HRESULT,
5904    pub AddOrUpdateCookie: unsafe extern "system" fn(
5905        *mut core::ffi::c_void,
5906        *mut core::ffi::c_void,
5907    ) -> windows_core::HRESULT,
5908    pub DeleteCookie: unsafe extern "system" fn(
5909        *mut core::ffi::c_void,
5910        *mut core::ffi::c_void,
5911    ) -> windows_core::HRESULT,
5912    pub DeleteCookies: unsafe extern "system" fn(
5913        *mut core::ffi::c_void,
5914        windows_core::PCWSTR,
5915        windows_core::PCWSTR,
5916    ) -> windows_core::HRESULT,
5917    pub DeleteCookiesWithDomainAndPath: unsafe extern "system" fn(
5918        *mut core::ffi::c_void,
5919        windows_core::PCWSTR,
5920        windows_core::PCWSTR,
5921        windows_core::PCWSTR,
5922    ) -> windows_core::HRESULT,
5923    pub DeleteAllCookies:
5924        unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
5925}
5926pub trait ICoreWebView2CookieManager_Impl: windows_core::IUnknownImpl {
5927    fn CreateCookie(
5928        &self,
5929        name: &windows_core::PCWSTR,
5930        value: &windows_core::PCWSTR,
5931        domain: &windows_core::PCWSTR,
5932        path: &windows_core::PCWSTR,
5933    ) -> windows_core::Result<ICoreWebView2Cookie>;
5934    fn CopyCookie(
5935        &self,
5936        cookieparam: windows_core::Ref<ICoreWebView2Cookie>,
5937    ) -> windows_core::Result<ICoreWebView2Cookie>;
5938    fn GetCookies(
5939        &self,
5940        uri: &windows_core::PCWSTR,
5941        handler: windows_core::Ref<ICoreWebView2GetCookiesCompletedHandler>,
5942    ) -> windows_core::Result<()>;
5943    fn AddOrUpdateCookie(
5944        &self,
5945        cookie: windows_core::Ref<ICoreWebView2Cookie>,
5946    ) -> windows_core::Result<()>;
5947    fn DeleteCookie(
5948        &self,
5949        cookie: windows_core::Ref<ICoreWebView2Cookie>,
5950    ) -> windows_core::Result<()>;
5951    fn DeleteCookies(
5952        &self,
5953        name: &windows_core::PCWSTR,
5954        uri: &windows_core::PCWSTR,
5955    ) -> windows_core::Result<()>;
5956    fn DeleteCookiesWithDomainAndPath(
5957        &self,
5958        name: &windows_core::PCWSTR,
5959        domain: &windows_core::PCWSTR,
5960        path: &windows_core::PCWSTR,
5961    ) -> windows_core::Result<()>;
5962    fn DeleteAllCookies(&self) -> windows_core::Result<()>;
5963}
5964impl ICoreWebView2CookieManager_Vtbl {
5965    pub const fn new<Identity: ICoreWebView2CookieManager_Impl, const OFFSET: isize>() -> Self {
5966        unsafe extern "system" fn CreateCookie<
5967            Identity: ICoreWebView2CookieManager_Impl,
5968            const OFFSET: isize,
5969        >(
5970            this: *mut core::ffi::c_void,
5971            name: windows_core::PCWSTR,
5972            value: windows_core::PCWSTR,
5973            domain: windows_core::PCWSTR,
5974            path: windows_core::PCWSTR,
5975            cookie: *mut *mut core::ffi::c_void,
5976        ) -> windows_core::HRESULT {
5977            unsafe {
5978                let this: &Identity =
5979                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
5980                match ICoreWebView2CookieManager_Impl::CreateCookie(
5981                    this,
5982                    core::mem::transmute(&name),
5983                    core::mem::transmute(&value),
5984                    core::mem::transmute(&domain),
5985                    core::mem::transmute(&path),
5986                ) {
5987                    Ok(ok__) => {
5988                        cookie.write(core::mem::transmute(ok__));
5989                        windows_core::HRESULT(0)
5990                    }
5991                    Err(err) => err.into(),
5992                }
5993            }
5994        }
5995        unsafe extern "system" fn CopyCookie<
5996            Identity: ICoreWebView2CookieManager_Impl,
5997            const OFFSET: isize,
5998        >(
5999            this: *mut core::ffi::c_void,
6000            cookieparam: *mut core::ffi::c_void,
6001            cookie: *mut *mut core::ffi::c_void,
6002        ) -> windows_core::HRESULT {
6003            unsafe {
6004                let this: &Identity =
6005                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
6006                match ICoreWebView2CookieManager_Impl::CopyCookie(
6007                    this,
6008                    core::mem::transmute_copy(&cookieparam),
6009                ) {
6010                    Ok(ok__) => {
6011                        cookie.write(core::mem::transmute(ok__));
6012                        windows_core::HRESULT(0)
6013                    }
6014                    Err(err) => err.into(),
6015                }
6016            }
6017        }
6018        unsafe extern "system" fn GetCookies<
6019            Identity: ICoreWebView2CookieManager_Impl,
6020            const OFFSET: isize,
6021        >(
6022            this: *mut core::ffi::c_void,
6023            uri: windows_core::PCWSTR,
6024            handler: *mut core::ffi::c_void,
6025        ) -> windows_core::HRESULT {
6026            unsafe {
6027                let this: &Identity =
6028                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
6029                ICoreWebView2CookieManager_Impl::GetCookies(
6030                    this,
6031                    core::mem::transmute(&uri),
6032                    core::mem::transmute_copy(&handler),
6033                )
6034                .into()
6035            }
6036        }
6037        unsafe extern "system" fn AddOrUpdateCookie<
6038            Identity: ICoreWebView2CookieManager_Impl,
6039            const OFFSET: isize,
6040        >(
6041            this: *mut core::ffi::c_void,
6042            cookie: *mut core::ffi::c_void,
6043        ) -> windows_core::HRESULT {
6044            unsafe {
6045                let this: &Identity =
6046                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
6047                ICoreWebView2CookieManager_Impl::AddOrUpdateCookie(
6048                    this,
6049                    core::mem::transmute_copy(&cookie),
6050                )
6051                .into()
6052            }
6053        }
6054        unsafe extern "system" fn DeleteCookie<
6055            Identity: ICoreWebView2CookieManager_Impl,
6056            const OFFSET: isize,
6057        >(
6058            this: *mut core::ffi::c_void,
6059            cookie: *mut core::ffi::c_void,
6060        ) -> windows_core::HRESULT {
6061            unsafe {
6062                let this: &Identity =
6063                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
6064                ICoreWebView2CookieManager_Impl::DeleteCookie(
6065                    this,
6066                    core::mem::transmute_copy(&cookie),
6067                )
6068                .into()
6069            }
6070        }
6071        unsafe extern "system" fn DeleteCookies<
6072            Identity: ICoreWebView2CookieManager_Impl,
6073            const OFFSET: isize,
6074        >(
6075            this: *mut core::ffi::c_void,
6076            name: windows_core::PCWSTR,
6077            uri: windows_core::PCWSTR,
6078        ) -> windows_core::HRESULT {
6079            unsafe {
6080                let this: &Identity =
6081                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
6082                ICoreWebView2CookieManager_Impl::DeleteCookies(
6083                    this,
6084                    core::mem::transmute(&name),
6085                    core::mem::transmute(&uri),
6086                )
6087                .into()
6088            }
6089        }
6090        unsafe extern "system" fn DeleteCookiesWithDomainAndPath<
6091            Identity: ICoreWebView2CookieManager_Impl,
6092            const OFFSET: isize,
6093        >(
6094            this: *mut core::ffi::c_void,
6095            name: windows_core::PCWSTR,
6096            domain: windows_core::PCWSTR,
6097            path: windows_core::PCWSTR,
6098        ) -> windows_core::HRESULT {
6099            unsafe {
6100                let this: &Identity =
6101                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
6102                ICoreWebView2CookieManager_Impl::DeleteCookiesWithDomainAndPath(
6103                    this,
6104                    core::mem::transmute(&name),
6105                    core::mem::transmute(&domain),
6106                    core::mem::transmute(&path),
6107                )
6108                .into()
6109            }
6110        }
6111        unsafe extern "system" fn DeleteAllCookies<
6112            Identity: ICoreWebView2CookieManager_Impl,
6113            const OFFSET: isize,
6114        >(
6115            this: *mut core::ffi::c_void,
6116        ) -> windows_core::HRESULT {
6117            unsafe {
6118                let this: &Identity =
6119                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
6120                ICoreWebView2CookieManager_Impl::DeleteAllCookies(this).into()
6121            }
6122        }
6123        Self {
6124            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
6125            CreateCookie: CreateCookie::<Identity, OFFSET>,
6126            CopyCookie: CopyCookie::<Identity, OFFSET>,
6127            GetCookies: GetCookies::<Identity, OFFSET>,
6128            AddOrUpdateCookie: AddOrUpdateCookie::<Identity, OFFSET>,
6129            DeleteCookie: DeleteCookie::<Identity, OFFSET>,
6130            DeleteCookies: DeleteCookies::<Identity, OFFSET>,
6131            DeleteCookiesWithDomainAndPath: DeleteCookiesWithDomainAndPath::<Identity, OFFSET>,
6132            DeleteAllCookies: DeleteAllCookies::<Identity, OFFSET>,
6133        }
6134    }
6135    pub fn matches(iid: &windows_core::GUID) -> bool {
6136        iid == &<ICoreWebView2CookieManager as windows_core::Interface>::IID
6137    }
6138}
6139impl windows_core::RuntimeName for ICoreWebView2CookieManager {}
6140windows_core::imp::define_interface!(
6141    ICoreWebView2CreateCoreWebView2CompositionControllerCompletedHandler,
6142    ICoreWebView2CreateCoreWebView2CompositionControllerCompletedHandler_Vtbl,
6143    0x02fab84b_1428_4fb7_ad45_1b2e64736184
6144);
6145windows_core::imp::interface_hierarchy!(
6146    ICoreWebView2CreateCoreWebView2CompositionControllerCompletedHandler,
6147    windows_core::IUnknown
6148);
6149impl ICoreWebView2CreateCoreWebView2CompositionControllerCompletedHandler {
6150    pub unsafe fn Invoke<P1>(
6151        &self,
6152        errorcode: windows_core::HRESULT,
6153        webview: P1,
6154    ) -> windows_core::Result<()>
6155    where
6156        P1: windows_core::Param<ICoreWebView2CompositionController>,
6157    {
6158        unsafe {
6159            (windows_core::Interface::vtable(self).Invoke)(
6160                windows_core::Interface::as_raw(self),
6161                errorcode,
6162                webview.param().abi(),
6163            )
6164            .ok()
6165        }
6166    }
6167}
6168#[repr(C)]
6169#[doc(hidden)]
6170pub struct ICoreWebView2CreateCoreWebView2CompositionControllerCompletedHandler_Vtbl {
6171    pub base__: windows_core::IUnknown_Vtbl,
6172    pub Invoke: unsafe extern "system" fn(
6173        *mut core::ffi::c_void,
6174        windows_core::HRESULT,
6175        *mut core::ffi::c_void,
6176    ) -> windows_core::HRESULT,
6177}
6178pub trait ICoreWebView2CreateCoreWebView2CompositionControllerCompletedHandler_Impl:
6179    windows_core::IUnknownImpl
6180{
6181    fn Invoke(
6182        &self,
6183        errorcode: windows_core::HRESULT,
6184        webview: windows_core::Ref<ICoreWebView2CompositionController>,
6185    ) -> windows_core::Result<()>;
6186}
6187impl ICoreWebView2CreateCoreWebView2CompositionControllerCompletedHandler_Vtbl {
6188    pub const fn new<
6189        Identity: ICoreWebView2CreateCoreWebView2CompositionControllerCompletedHandler_Impl,
6190        const OFFSET: isize,
6191    >() -> Self {
6192        unsafe extern "system" fn Invoke<
6193            Identity: ICoreWebView2CreateCoreWebView2CompositionControllerCompletedHandler_Impl,
6194            const OFFSET: isize,
6195        >(
6196            this: *mut core::ffi::c_void,
6197            errorcode: windows_core::HRESULT,
6198            webview: *mut core::ffi::c_void,
6199        ) -> windows_core::HRESULT {
6200            unsafe {
6201                let this: &Identity =
6202                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
6203                ICoreWebView2CreateCoreWebView2CompositionControllerCompletedHandler_Impl::Invoke(
6204                    this,
6205                    core::mem::transmute_copy(&errorcode),
6206                    core::mem::transmute_copy(&webview),
6207                )
6208                .into()
6209            }
6210        }
6211        Self {
6212            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
6213            Invoke: Invoke::<Identity, OFFSET>,
6214        }
6215    }
6216    pub fn matches(iid: &windows_core::GUID) -> bool {
6217        iid == & < ICoreWebView2CreateCoreWebView2CompositionControllerCompletedHandler as windows_core::Interface >::IID
6218    }
6219}
6220impl windows_core::RuntimeName
6221    for ICoreWebView2CreateCoreWebView2CompositionControllerCompletedHandler
6222{
6223}
6224windows_core::imp::define_interface!(
6225    ICoreWebView2CreateCoreWebView2ControllerCompletedHandler,
6226    ICoreWebView2CreateCoreWebView2ControllerCompletedHandler_Vtbl,
6227    0x6c4819f3_c9b7_4260_8127_c9f5bde7f68c
6228);
6229windows_core::imp::interface_hierarchy!(
6230    ICoreWebView2CreateCoreWebView2ControllerCompletedHandler,
6231    windows_core::IUnknown
6232);
6233impl ICoreWebView2CreateCoreWebView2ControllerCompletedHandler {
6234    pub unsafe fn Invoke<P1>(
6235        &self,
6236        errorcode: windows_core::HRESULT,
6237        createdcontroller: P1,
6238    ) -> windows_core::Result<()>
6239    where
6240        P1: windows_core::Param<ICoreWebView2Controller>,
6241    {
6242        unsafe {
6243            (windows_core::Interface::vtable(self).Invoke)(
6244                windows_core::Interface::as_raw(self),
6245                errorcode,
6246                createdcontroller.param().abi(),
6247            )
6248            .ok()
6249        }
6250    }
6251}
6252#[repr(C)]
6253#[doc(hidden)]
6254pub struct ICoreWebView2CreateCoreWebView2ControllerCompletedHandler_Vtbl {
6255    pub base__: windows_core::IUnknown_Vtbl,
6256    pub Invoke: unsafe extern "system" fn(
6257        *mut core::ffi::c_void,
6258        windows_core::HRESULT,
6259        *mut core::ffi::c_void,
6260    ) -> windows_core::HRESULT,
6261}
6262pub trait ICoreWebView2CreateCoreWebView2ControllerCompletedHandler_Impl:
6263    windows_core::IUnknownImpl
6264{
6265    fn Invoke(
6266        &self,
6267        errorcode: windows_core::HRESULT,
6268        createdcontroller: windows_core::Ref<ICoreWebView2Controller>,
6269    ) -> windows_core::Result<()>;
6270}
6271impl ICoreWebView2CreateCoreWebView2ControllerCompletedHandler_Vtbl {
6272    pub const fn new<
6273        Identity: ICoreWebView2CreateCoreWebView2ControllerCompletedHandler_Impl,
6274        const OFFSET: isize,
6275    >() -> Self {
6276        unsafe extern "system" fn Invoke<
6277            Identity: ICoreWebView2CreateCoreWebView2ControllerCompletedHandler_Impl,
6278            const OFFSET: isize,
6279        >(
6280            this: *mut core::ffi::c_void,
6281            errorcode: windows_core::HRESULT,
6282            createdcontroller: *mut core::ffi::c_void,
6283        ) -> windows_core::HRESULT {
6284            unsafe {
6285                let this: &Identity =
6286                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
6287                ICoreWebView2CreateCoreWebView2ControllerCompletedHandler_Impl::Invoke(
6288                    this,
6289                    core::mem::transmute_copy(&errorcode),
6290                    core::mem::transmute_copy(&createdcontroller),
6291                )
6292                .into()
6293            }
6294        }
6295        Self {
6296            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
6297            Invoke: Invoke::<Identity, OFFSET>,
6298        }
6299    }
6300    pub fn matches(iid: &windows_core::GUID) -> bool {
6301        iid == & < ICoreWebView2CreateCoreWebView2ControllerCompletedHandler as windows_core::Interface >::IID
6302    }
6303}
6304impl windows_core::RuntimeName for ICoreWebView2CreateCoreWebView2ControllerCompletedHandler {}
6305windows_core::imp::define_interface!(
6306    ICoreWebView2CreateCoreWebView2EnvironmentCompletedHandler,
6307    ICoreWebView2CreateCoreWebView2EnvironmentCompletedHandler_Vtbl,
6308    0x4e8a3389_c9d8_4bd2_b6b5_124fee6cc14d
6309);
6310windows_core::imp::interface_hierarchy!(
6311    ICoreWebView2CreateCoreWebView2EnvironmentCompletedHandler,
6312    windows_core::IUnknown
6313);
6314impl ICoreWebView2CreateCoreWebView2EnvironmentCompletedHandler {
6315    pub unsafe fn Invoke<P1>(
6316        &self,
6317        errorcode: windows_core::HRESULT,
6318        createdenvironment: P1,
6319    ) -> windows_core::Result<()>
6320    where
6321        P1: windows_core::Param<ICoreWebView2Environment>,
6322    {
6323        unsafe {
6324            (windows_core::Interface::vtable(self).Invoke)(
6325                windows_core::Interface::as_raw(self),
6326                errorcode,
6327                createdenvironment.param().abi(),
6328            )
6329            .ok()
6330        }
6331    }
6332}
6333#[repr(C)]
6334#[doc(hidden)]
6335pub struct ICoreWebView2CreateCoreWebView2EnvironmentCompletedHandler_Vtbl {
6336    pub base__: windows_core::IUnknown_Vtbl,
6337    pub Invoke: unsafe extern "system" fn(
6338        *mut core::ffi::c_void,
6339        windows_core::HRESULT,
6340        *mut core::ffi::c_void,
6341    ) -> windows_core::HRESULT,
6342}
6343pub trait ICoreWebView2CreateCoreWebView2EnvironmentCompletedHandler_Impl:
6344    windows_core::IUnknownImpl
6345{
6346    fn Invoke(
6347        &self,
6348        errorcode: windows_core::HRESULT,
6349        createdenvironment: windows_core::Ref<ICoreWebView2Environment>,
6350    ) -> windows_core::Result<()>;
6351}
6352impl ICoreWebView2CreateCoreWebView2EnvironmentCompletedHandler_Vtbl {
6353    pub const fn new<
6354        Identity: ICoreWebView2CreateCoreWebView2EnvironmentCompletedHandler_Impl,
6355        const OFFSET: isize,
6356    >() -> Self {
6357        unsafe extern "system" fn Invoke<
6358            Identity: ICoreWebView2CreateCoreWebView2EnvironmentCompletedHandler_Impl,
6359            const OFFSET: isize,
6360        >(
6361            this: *mut core::ffi::c_void,
6362            errorcode: windows_core::HRESULT,
6363            createdenvironment: *mut core::ffi::c_void,
6364        ) -> windows_core::HRESULT {
6365            unsafe {
6366                let this: &Identity =
6367                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
6368                ICoreWebView2CreateCoreWebView2EnvironmentCompletedHandler_Impl::Invoke(
6369                    this,
6370                    core::mem::transmute_copy(&errorcode),
6371                    core::mem::transmute_copy(&createdenvironment),
6372                )
6373                .into()
6374            }
6375        }
6376        Self {
6377            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
6378            Invoke: Invoke::<Identity, OFFSET>,
6379        }
6380    }
6381    pub fn matches(iid: &windows_core::GUID) -> bool {
6382        iid == & < ICoreWebView2CreateCoreWebView2EnvironmentCompletedHandler as windows_core::Interface >::IID
6383    }
6384}
6385impl windows_core::RuntimeName for ICoreWebView2CreateCoreWebView2EnvironmentCompletedHandler {}
6386windows_core::imp::define_interface!(
6387    ICoreWebView2CursorChangedEventHandler,
6388    ICoreWebView2CursorChangedEventHandler_Vtbl,
6389    0x9da43ccc_26e1_4dad_b56c_d8961c94c571
6390);
6391windows_core::imp::interface_hierarchy!(
6392    ICoreWebView2CursorChangedEventHandler,
6393    windows_core::IUnknown
6394);
6395impl ICoreWebView2CursorChangedEventHandler {
6396    pub unsafe fn Invoke<P0, P1>(&self, sender: P0, args: P1) -> windows_core::Result<()>
6397    where
6398        P0: windows_core::Param<ICoreWebView2CompositionController>,
6399        P1: windows_core::Param<windows_core::IUnknown>,
6400    {
6401        unsafe {
6402            (windows_core::Interface::vtable(self).Invoke)(
6403                windows_core::Interface::as_raw(self),
6404                sender.param().abi(),
6405                args.param().abi(),
6406            )
6407            .ok()
6408        }
6409    }
6410}
6411#[repr(C)]
6412#[doc(hidden)]
6413pub struct ICoreWebView2CursorChangedEventHandler_Vtbl {
6414    pub base__: windows_core::IUnknown_Vtbl,
6415    pub Invoke: unsafe extern "system" fn(
6416        *mut core::ffi::c_void,
6417        *mut core::ffi::c_void,
6418        *mut core::ffi::c_void,
6419    ) -> windows_core::HRESULT,
6420}
6421pub trait ICoreWebView2CursorChangedEventHandler_Impl: windows_core::IUnknownImpl {
6422    fn Invoke(
6423        &self,
6424        sender: windows_core::Ref<ICoreWebView2CompositionController>,
6425        args: windows_core::Ref<windows_core::IUnknown>,
6426    ) -> windows_core::Result<()>;
6427}
6428impl ICoreWebView2CursorChangedEventHandler_Vtbl {
6429    pub const fn new<Identity: ICoreWebView2CursorChangedEventHandler_Impl, const OFFSET: isize>(
6430    ) -> Self {
6431        unsafe extern "system" fn Invoke<
6432            Identity: ICoreWebView2CursorChangedEventHandler_Impl,
6433            const OFFSET: isize,
6434        >(
6435            this: *mut core::ffi::c_void,
6436            sender: *mut core::ffi::c_void,
6437            args: *mut core::ffi::c_void,
6438        ) -> windows_core::HRESULT {
6439            unsafe {
6440                let this: &Identity =
6441                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
6442                ICoreWebView2CursorChangedEventHandler_Impl::Invoke(
6443                    this,
6444                    core::mem::transmute_copy(&sender),
6445                    core::mem::transmute_copy(&args),
6446                )
6447                .into()
6448            }
6449        }
6450        Self {
6451            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
6452            Invoke: Invoke::<Identity, OFFSET>,
6453        }
6454    }
6455    pub fn matches(iid: &windows_core::GUID) -> bool {
6456        iid == &<ICoreWebView2CursorChangedEventHandler as windows_core::Interface>::IID
6457    }
6458}
6459impl windows_core::RuntimeName for ICoreWebView2CursorChangedEventHandler {}
6460windows_core::imp::define_interface!(
6461    ICoreWebView2DOMContentLoadedEventArgs,
6462    ICoreWebView2DOMContentLoadedEventArgs_Vtbl,
6463    0x16b1e21a_c503_44f2_84c9_70aba5031283
6464);
6465windows_core::imp::interface_hierarchy!(
6466    ICoreWebView2DOMContentLoadedEventArgs,
6467    windows_core::IUnknown
6468);
6469impl ICoreWebView2DOMContentLoadedEventArgs {
6470    pub unsafe fn NavigationId(&self) -> windows_core::Result<u64> {
6471        unsafe {
6472            let mut result__ = core::mem::zeroed();
6473            (windows_core::Interface::vtable(self).NavigationId)(
6474                windows_core::Interface::as_raw(self),
6475                &mut result__,
6476            )
6477            .map(|| result__)
6478        }
6479    }
6480}
6481#[repr(C)]
6482#[doc(hidden)]
6483pub struct ICoreWebView2DOMContentLoadedEventArgs_Vtbl {
6484    pub base__: windows_core::IUnknown_Vtbl,
6485    pub NavigationId:
6486        unsafe extern "system" fn(*mut core::ffi::c_void, *mut u64) -> windows_core::HRESULT,
6487}
6488pub trait ICoreWebView2DOMContentLoadedEventArgs_Impl: windows_core::IUnknownImpl {
6489    fn NavigationId(&self) -> windows_core::Result<u64>;
6490}
6491impl ICoreWebView2DOMContentLoadedEventArgs_Vtbl {
6492    pub const fn new<Identity: ICoreWebView2DOMContentLoadedEventArgs_Impl, const OFFSET: isize>(
6493    ) -> Self {
6494        unsafe extern "system" fn NavigationId<
6495            Identity: ICoreWebView2DOMContentLoadedEventArgs_Impl,
6496            const OFFSET: isize,
6497        >(
6498            this: *mut core::ffi::c_void,
6499            navigationid: *mut u64,
6500        ) -> windows_core::HRESULT {
6501            unsafe {
6502                let this: &Identity =
6503                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
6504                match ICoreWebView2DOMContentLoadedEventArgs_Impl::NavigationId(this) {
6505                    Ok(ok__) => {
6506                        navigationid.write(core::mem::transmute(ok__));
6507                        windows_core::HRESULT(0)
6508                    }
6509                    Err(err) => err.into(),
6510                }
6511            }
6512        }
6513        Self {
6514            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
6515            NavigationId: NavigationId::<Identity, OFFSET>,
6516        }
6517    }
6518    pub fn matches(iid: &windows_core::GUID) -> bool {
6519        iid == &<ICoreWebView2DOMContentLoadedEventArgs as windows_core::Interface>::IID
6520    }
6521}
6522impl windows_core::RuntimeName for ICoreWebView2DOMContentLoadedEventArgs {}
6523windows_core::imp::define_interface!(
6524    ICoreWebView2DOMContentLoadedEventHandler,
6525    ICoreWebView2DOMContentLoadedEventHandler_Vtbl,
6526    0x4bac7e9c_199e_49ed_87ed_249303acf019
6527);
6528windows_core::imp::interface_hierarchy!(
6529    ICoreWebView2DOMContentLoadedEventHandler,
6530    windows_core::IUnknown
6531);
6532impl ICoreWebView2DOMContentLoadedEventHandler {
6533    pub unsafe fn Invoke<P0, P1>(&self, sender: P0, args: P1) -> windows_core::Result<()>
6534    where
6535        P0: windows_core::Param<ICoreWebView2>,
6536        P1: windows_core::Param<ICoreWebView2DOMContentLoadedEventArgs>,
6537    {
6538        unsafe {
6539            (windows_core::Interface::vtable(self).Invoke)(
6540                windows_core::Interface::as_raw(self),
6541                sender.param().abi(),
6542                args.param().abi(),
6543            )
6544            .ok()
6545        }
6546    }
6547}
6548#[repr(C)]
6549#[doc(hidden)]
6550pub struct ICoreWebView2DOMContentLoadedEventHandler_Vtbl {
6551    pub base__: windows_core::IUnknown_Vtbl,
6552    pub Invoke: unsafe extern "system" fn(
6553        *mut core::ffi::c_void,
6554        *mut core::ffi::c_void,
6555        *mut core::ffi::c_void,
6556    ) -> windows_core::HRESULT,
6557}
6558pub trait ICoreWebView2DOMContentLoadedEventHandler_Impl: windows_core::IUnknownImpl {
6559    fn Invoke(
6560        &self,
6561        sender: windows_core::Ref<ICoreWebView2>,
6562        args: windows_core::Ref<ICoreWebView2DOMContentLoadedEventArgs>,
6563    ) -> windows_core::Result<()>;
6564}
6565impl ICoreWebView2DOMContentLoadedEventHandler_Vtbl {
6566    pub const fn new<
6567        Identity: ICoreWebView2DOMContentLoadedEventHandler_Impl,
6568        const OFFSET: isize,
6569    >() -> Self {
6570        unsafe extern "system" fn Invoke<
6571            Identity: ICoreWebView2DOMContentLoadedEventHandler_Impl,
6572            const OFFSET: isize,
6573        >(
6574            this: *mut core::ffi::c_void,
6575            sender: *mut core::ffi::c_void,
6576            args: *mut core::ffi::c_void,
6577        ) -> windows_core::HRESULT {
6578            unsafe {
6579                let this: &Identity =
6580                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
6581                ICoreWebView2DOMContentLoadedEventHandler_Impl::Invoke(
6582                    this,
6583                    core::mem::transmute_copy(&sender),
6584                    core::mem::transmute_copy(&args),
6585                )
6586                .into()
6587            }
6588        }
6589        Self {
6590            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
6591            Invoke: Invoke::<Identity, OFFSET>,
6592        }
6593    }
6594    pub fn matches(iid: &windows_core::GUID) -> bool {
6595        iid == &<ICoreWebView2DOMContentLoadedEventHandler as windows_core::Interface>::IID
6596    }
6597}
6598impl windows_core::RuntimeName for ICoreWebView2DOMContentLoadedEventHandler {}
6599windows_core::imp::define_interface!(
6600    ICoreWebView2Deferral,
6601    ICoreWebView2Deferral_Vtbl,
6602    0xc10e7f7b_b585_46f0_a623_8befbf3e4ee0
6603);
6604windows_core::imp::interface_hierarchy!(ICoreWebView2Deferral, windows_core::IUnknown);
6605impl ICoreWebView2Deferral {
6606    pub unsafe fn Complete(&self) -> windows_core::Result<()> {
6607        unsafe {
6608            (windows_core::Interface::vtable(self).Complete)(windows_core::Interface::as_raw(self))
6609                .ok()
6610        }
6611    }
6612}
6613#[repr(C)]
6614#[doc(hidden)]
6615pub struct ICoreWebView2Deferral_Vtbl {
6616    pub base__: windows_core::IUnknown_Vtbl,
6617    pub Complete: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
6618}
6619pub trait ICoreWebView2Deferral_Impl: windows_core::IUnknownImpl {
6620    fn Complete(&self) -> windows_core::Result<()>;
6621}
6622impl ICoreWebView2Deferral_Vtbl {
6623    pub const fn new<Identity: ICoreWebView2Deferral_Impl, const OFFSET: isize>() -> Self {
6624        unsafe extern "system" fn Complete<
6625            Identity: ICoreWebView2Deferral_Impl,
6626            const OFFSET: isize,
6627        >(
6628            this: *mut core::ffi::c_void,
6629        ) -> windows_core::HRESULT {
6630            unsafe {
6631                let this: &Identity =
6632                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
6633                ICoreWebView2Deferral_Impl::Complete(this).into()
6634            }
6635        }
6636        Self {
6637            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
6638            Complete: Complete::<Identity, OFFSET>,
6639        }
6640    }
6641    pub fn matches(iid: &windows_core::GUID) -> bool {
6642        iid == &<ICoreWebView2Deferral as windows_core::Interface>::IID
6643    }
6644}
6645impl windows_core::RuntimeName for ICoreWebView2Deferral {}
6646windows_core::imp::define_interface!(
6647    ICoreWebView2DevToolsProtocolEventReceivedEventArgs,
6648    ICoreWebView2DevToolsProtocolEventReceivedEventArgs_Vtbl,
6649    0x653c2959_bb3a_4377_8632_b58ada4e66c4
6650);
6651windows_core::imp::interface_hierarchy!(
6652    ICoreWebView2DevToolsProtocolEventReceivedEventArgs,
6653    windows_core::IUnknown
6654);
6655impl ICoreWebView2DevToolsProtocolEventReceivedEventArgs {
6656    pub unsafe fn ParameterObjectAsJson(&self) -> windows_core::Result<windows_core::PWSTR> {
6657        unsafe {
6658            let mut result__ = core::mem::zeroed();
6659            (windows_core::Interface::vtable(self).ParameterObjectAsJson)(
6660                windows_core::Interface::as_raw(self),
6661                &mut result__,
6662            )
6663            .map(|| result__)
6664        }
6665    }
6666}
6667#[repr(C)]
6668#[doc(hidden)]
6669pub struct ICoreWebView2DevToolsProtocolEventReceivedEventArgs_Vtbl {
6670    pub base__: windows_core::IUnknown_Vtbl,
6671    pub ParameterObjectAsJson: unsafe extern "system" fn(
6672        *mut core::ffi::c_void,
6673        *mut windows_core::PWSTR,
6674    ) -> windows_core::HRESULT,
6675}
6676pub trait ICoreWebView2DevToolsProtocolEventReceivedEventArgs_Impl:
6677    windows_core::IUnknownImpl
6678{
6679    fn ParameterObjectAsJson(&self) -> windows_core::Result<windows_core::PWSTR>;
6680}
6681impl ICoreWebView2DevToolsProtocolEventReceivedEventArgs_Vtbl {
6682    pub const fn new<
6683        Identity: ICoreWebView2DevToolsProtocolEventReceivedEventArgs_Impl,
6684        const OFFSET: isize,
6685    >() -> Self {
6686        unsafe extern "system" fn ParameterObjectAsJson<
6687            Identity: ICoreWebView2DevToolsProtocolEventReceivedEventArgs_Impl,
6688            const OFFSET: isize,
6689        >(
6690            this: *mut core::ffi::c_void,
6691            parameterobjectasjson: *mut windows_core::PWSTR,
6692        ) -> windows_core::HRESULT {
6693            unsafe {
6694                let this: &Identity =
6695                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
6696                match ICoreWebView2DevToolsProtocolEventReceivedEventArgs_Impl:: ParameterObjectAsJson ( this , ) { Ok ( ok__ ) => { parameterobjectasjson . write ( core::mem::transmute ( ok__ ) ) ; windows_core::HRESULT ( 0 ) } Err ( err ) => err . into ( ) }
6697            }
6698        }
6699        Self {
6700            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
6701            ParameterObjectAsJson: ParameterObjectAsJson::<Identity, OFFSET>,
6702        }
6703    }
6704    pub fn matches(iid: &windows_core::GUID) -> bool {
6705        iid == & < ICoreWebView2DevToolsProtocolEventReceivedEventArgs as windows_core::Interface >::IID
6706    }
6707}
6708impl windows_core::RuntimeName for ICoreWebView2DevToolsProtocolEventReceivedEventArgs {}
6709windows_core::imp::define_interface!(
6710    ICoreWebView2DevToolsProtocolEventReceivedEventHandler,
6711    ICoreWebView2DevToolsProtocolEventReceivedEventHandler_Vtbl,
6712    0xe2fda4be_5456_406c_a261_3d452138362c
6713);
6714windows_core::imp::interface_hierarchy!(
6715    ICoreWebView2DevToolsProtocolEventReceivedEventHandler,
6716    windows_core::IUnknown
6717);
6718impl ICoreWebView2DevToolsProtocolEventReceivedEventHandler {
6719    pub unsafe fn Invoke<P0, P1>(&self, sender: P0, args: P1) -> windows_core::Result<()>
6720    where
6721        P0: windows_core::Param<ICoreWebView2>,
6722        P1: windows_core::Param<ICoreWebView2DevToolsProtocolEventReceivedEventArgs>,
6723    {
6724        unsafe {
6725            (windows_core::Interface::vtable(self).Invoke)(
6726                windows_core::Interface::as_raw(self),
6727                sender.param().abi(),
6728                args.param().abi(),
6729            )
6730            .ok()
6731        }
6732    }
6733}
6734#[repr(C)]
6735#[doc(hidden)]
6736pub struct ICoreWebView2DevToolsProtocolEventReceivedEventHandler_Vtbl {
6737    pub base__: windows_core::IUnknown_Vtbl,
6738    pub Invoke: unsafe extern "system" fn(
6739        *mut core::ffi::c_void,
6740        *mut core::ffi::c_void,
6741        *mut core::ffi::c_void,
6742    ) -> windows_core::HRESULT,
6743}
6744pub trait ICoreWebView2DevToolsProtocolEventReceivedEventHandler_Impl:
6745    windows_core::IUnknownImpl
6746{
6747    fn Invoke(
6748        &self,
6749        sender: windows_core::Ref<ICoreWebView2>,
6750        args: windows_core::Ref<ICoreWebView2DevToolsProtocolEventReceivedEventArgs>,
6751    ) -> windows_core::Result<()>;
6752}
6753impl ICoreWebView2DevToolsProtocolEventReceivedEventHandler_Vtbl {
6754    pub const fn new<
6755        Identity: ICoreWebView2DevToolsProtocolEventReceivedEventHandler_Impl,
6756        const OFFSET: isize,
6757    >() -> Self {
6758        unsafe extern "system" fn Invoke<
6759            Identity: ICoreWebView2DevToolsProtocolEventReceivedEventHandler_Impl,
6760            const OFFSET: isize,
6761        >(
6762            this: *mut core::ffi::c_void,
6763            sender: *mut core::ffi::c_void,
6764            args: *mut core::ffi::c_void,
6765        ) -> windows_core::HRESULT {
6766            unsafe {
6767                let this: &Identity =
6768                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
6769                ICoreWebView2DevToolsProtocolEventReceivedEventHandler_Impl::Invoke(
6770                    this,
6771                    core::mem::transmute_copy(&sender),
6772                    core::mem::transmute_copy(&args),
6773                )
6774                .into()
6775            }
6776        }
6777        Self {
6778            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
6779            Invoke: Invoke::<Identity, OFFSET>,
6780        }
6781    }
6782    pub fn matches(iid: &windows_core::GUID) -> bool {
6783        iid == & < ICoreWebView2DevToolsProtocolEventReceivedEventHandler as windows_core::Interface >::IID
6784    }
6785}
6786impl windows_core::RuntimeName for ICoreWebView2DevToolsProtocolEventReceivedEventHandler {}
6787windows_core::imp::define_interface!(
6788    ICoreWebView2DevToolsProtocolEventReceiver,
6789    ICoreWebView2DevToolsProtocolEventReceiver_Vtbl,
6790    0xb32ca51a_8371_45e9_9317_af021d080367
6791);
6792windows_core::imp::interface_hierarchy!(
6793    ICoreWebView2DevToolsProtocolEventReceiver,
6794    windows_core::IUnknown
6795);
6796impl ICoreWebView2DevToolsProtocolEventReceiver {
6797    pub unsafe fn DevToolsProtocolEventReceived<P0>(&self, handler: P0) -> windows_core::Result<i64>
6798    where
6799        P0: windows_core::Param<ICoreWebView2DevToolsProtocolEventReceivedEventHandler>,
6800    {
6801        unsafe {
6802            let mut result__ = core::mem::zeroed();
6803            (windows_core::Interface::vtable(self).DevToolsProtocolEventReceived)(
6804                windows_core::Interface::as_raw(self),
6805                handler.param().abi(),
6806                &mut result__,
6807            )
6808            .map(|| result__)
6809        }
6810    }
6811    pub unsafe fn RemoveDevToolsProtocolEventReceived(
6812        &self,
6813        token: i64,
6814    ) -> windows_core::Result<()> {
6815        unsafe {
6816            (windows_core::Interface::vtable(self).RemoveDevToolsProtocolEventReceived)(
6817                windows_core::Interface::as_raw(self),
6818                token,
6819            )
6820            .ok()
6821        }
6822    }
6823}
6824#[repr(C)]
6825#[doc(hidden)]
6826pub struct ICoreWebView2DevToolsProtocolEventReceiver_Vtbl {
6827    pub base__: windows_core::IUnknown_Vtbl,
6828    pub DevToolsProtocolEventReceived: unsafe extern "system" fn(
6829        *mut core::ffi::c_void,
6830        *mut core::ffi::c_void,
6831        *mut i64,
6832    ) -> windows_core::HRESULT,
6833    pub RemoveDevToolsProtocolEventReceived:
6834        unsafe extern "system" fn(*mut core::ffi::c_void, i64) -> windows_core::HRESULT,
6835}
6836pub trait ICoreWebView2DevToolsProtocolEventReceiver_Impl: windows_core::IUnknownImpl {
6837    fn DevToolsProtocolEventReceived(
6838        &self,
6839        handler: windows_core::Ref<ICoreWebView2DevToolsProtocolEventReceivedEventHandler>,
6840    ) -> windows_core::Result<i64>;
6841    fn RemoveDevToolsProtocolEventReceived(&self, token: i64) -> windows_core::Result<()>;
6842}
6843impl ICoreWebView2DevToolsProtocolEventReceiver_Vtbl {
6844    pub const fn new<
6845        Identity: ICoreWebView2DevToolsProtocolEventReceiver_Impl,
6846        const OFFSET: isize,
6847    >() -> Self {
6848        unsafe extern "system" fn DevToolsProtocolEventReceived<
6849            Identity: ICoreWebView2DevToolsProtocolEventReceiver_Impl,
6850            const OFFSET: isize,
6851        >(
6852            this: *mut core::ffi::c_void,
6853            handler: *mut core::ffi::c_void,
6854            token: *mut i64,
6855        ) -> windows_core::HRESULT {
6856            unsafe {
6857                let this: &Identity =
6858                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
6859                match ICoreWebView2DevToolsProtocolEventReceiver_Impl::DevToolsProtocolEventReceived(
6860                    this,
6861                    core::mem::transmute_copy(&handler),
6862                ) {
6863                    Ok(ok__) => {
6864                        token.write(core::mem::transmute(ok__));
6865                        windows_core::HRESULT(0)
6866                    }
6867                    Err(err) => err.into(),
6868                }
6869            }
6870        }
6871        unsafe extern "system" fn RemoveDevToolsProtocolEventReceived<
6872            Identity: ICoreWebView2DevToolsProtocolEventReceiver_Impl,
6873            const OFFSET: isize,
6874        >(
6875            this: *mut core::ffi::c_void,
6876            token: i64,
6877        ) -> windows_core::HRESULT {
6878            unsafe {
6879                let this: &Identity =
6880                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
6881                ICoreWebView2DevToolsProtocolEventReceiver_Impl:: RemoveDevToolsProtocolEventReceived ( this , core::mem::transmute_copy ( & token ) , ) . into ( )
6882            }
6883        }
6884        Self {
6885            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
6886            DevToolsProtocolEventReceived: DevToolsProtocolEventReceived::<Identity, OFFSET>,
6887            RemoveDevToolsProtocolEventReceived: RemoveDevToolsProtocolEventReceived::<
6888                Identity,
6889                OFFSET,
6890            >,
6891        }
6892    }
6893    pub fn matches(iid: &windows_core::GUID) -> bool {
6894        iid == &<ICoreWebView2DevToolsProtocolEventReceiver as windows_core::Interface>::IID
6895    }
6896}
6897impl windows_core::RuntimeName for ICoreWebView2DevToolsProtocolEventReceiver {}
6898windows_core::imp::define_interface!(
6899    ICoreWebView2DocumentTitleChangedEventHandler,
6900    ICoreWebView2DocumentTitleChangedEventHandler_Vtbl,
6901    0xf5f2b923_953e_4042_9f95_f3a118e1afd4
6902);
6903windows_core::imp::interface_hierarchy!(
6904    ICoreWebView2DocumentTitleChangedEventHandler,
6905    windows_core::IUnknown
6906);
6907impl ICoreWebView2DocumentTitleChangedEventHandler {
6908    pub unsafe fn Invoke<P0, P1>(&self, sender: P0, args: P1) -> windows_core::Result<()>
6909    where
6910        P0: windows_core::Param<ICoreWebView2>,
6911        P1: windows_core::Param<windows_core::IUnknown>,
6912    {
6913        unsafe {
6914            (windows_core::Interface::vtable(self).Invoke)(
6915                windows_core::Interface::as_raw(self),
6916                sender.param().abi(),
6917                args.param().abi(),
6918            )
6919            .ok()
6920        }
6921    }
6922}
6923#[repr(C)]
6924#[doc(hidden)]
6925pub struct ICoreWebView2DocumentTitleChangedEventHandler_Vtbl {
6926    pub base__: windows_core::IUnknown_Vtbl,
6927    pub Invoke: unsafe extern "system" fn(
6928        *mut core::ffi::c_void,
6929        *mut core::ffi::c_void,
6930        *mut core::ffi::c_void,
6931    ) -> windows_core::HRESULT,
6932}
6933pub trait ICoreWebView2DocumentTitleChangedEventHandler_Impl: windows_core::IUnknownImpl {
6934    fn Invoke(
6935        &self,
6936        sender: windows_core::Ref<ICoreWebView2>,
6937        args: windows_core::Ref<windows_core::IUnknown>,
6938    ) -> windows_core::Result<()>;
6939}
6940impl ICoreWebView2DocumentTitleChangedEventHandler_Vtbl {
6941    pub const fn new<
6942        Identity: ICoreWebView2DocumentTitleChangedEventHandler_Impl,
6943        const OFFSET: isize,
6944    >() -> Self {
6945        unsafe extern "system" fn Invoke<
6946            Identity: ICoreWebView2DocumentTitleChangedEventHandler_Impl,
6947            const OFFSET: isize,
6948        >(
6949            this: *mut core::ffi::c_void,
6950            sender: *mut core::ffi::c_void,
6951            args: *mut core::ffi::c_void,
6952        ) -> windows_core::HRESULT {
6953            unsafe {
6954                let this: &Identity =
6955                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
6956                ICoreWebView2DocumentTitleChangedEventHandler_Impl::Invoke(
6957                    this,
6958                    core::mem::transmute_copy(&sender),
6959                    core::mem::transmute_copy(&args),
6960                )
6961                .into()
6962            }
6963        }
6964        Self {
6965            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
6966            Invoke: Invoke::<Identity, OFFSET>,
6967        }
6968    }
6969    pub fn matches(iid: &windows_core::GUID) -> bool {
6970        iid == &<ICoreWebView2DocumentTitleChangedEventHandler as windows_core::Interface>::IID
6971    }
6972}
6973impl windows_core::RuntimeName for ICoreWebView2DocumentTitleChangedEventHandler {}
6974windows_core::imp::define_interface!(
6975    ICoreWebView2Environment,
6976    ICoreWebView2Environment_Vtbl,
6977    0xb96d755e_0319_4e92_a296_23436f46a1fc
6978);
6979windows_core::imp::interface_hierarchy!(ICoreWebView2Environment, windows_core::IUnknown);
6980impl ICoreWebView2Environment {
6981    pub unsafe fn CreateCoreWebView2Controller<P1>(
6982        &self,
6983        parentwindow: windows::Win32::Foundation::HWND,
6984        handler: P1,
6985    ) -> windows_core::Result<()>
6986    where
6987        P1: windows_core::Param<ICoreWebView2CreateCoreWebView2ControllerCompletedHandler>,
6988    {
6989        unsafe {
6990            (windows_core::Interface::vtable(self).CreateCoreWebView2Controller)(
6991                windows_core::Interface::as_raw(self),
6992                parentwindow,
6993                handler.param().abi(),
6994            )
6995            .ok()
6996        }
6997    }
6998    pub unsafe fn CreateWebResourceResponse<P0, P2, P3>(
6999        &self,
7000        content: P0,
7001        statuscode: i32,
7002        reasonphrase: P2,
7003        headers: P3,
7004    ) -> windows_core::Result<ICoreWebView2WebResourceResponse>
7005    where
7006        P0: windows_core::Param<windows::Win32::System::Com::IStream>,
7007        P2: windows_core::Param<windows_core::PCWSTR>,
7008        P3: windows_core::Param<windows_core::PCWSTR>,
7009    {
7010        unsafe {
7011            let mut result__ = core::mem::zeroed();
7012            (windows_core::Interface::vtable(self).CreateWebResourceResponse)(
7013                windows_core::Interface::as_raw(self),
7014                content.param().abi(),
7015                statuscode,
7016                reasonphrase.param().abi(),
7017                headers.param().abi(),
7018                &mut result__,
7019            )
7020            .and_then(|| windows_core::Type::from_abi(result__))
7021        }
7022    }
7023    pub unsafe fn BrowserVersionString(&self) -> windows_core::Result<windows_core::PWSTR> {
7024        unsafe {
7025            let mut result__ = core::mem::zeroed();
7026            (windows_core::Interface::vtable(self).BrowserVersionString)(
7027                windows_core::Interface::as_raw(self),
7028                &mut result__,
7029            )
7030            .map(|| result__)
7031        }
7032    }
7033    pub unsafe fn NewBrowserVersionAvailable<P0>(
7034        &self,
7035        eventhandler: P0,
7036    ) -> windows_core::Result<i64>
7037    where
7038        P0: windows_core::Param<ICoreWebView2NewBrowserVersionAvailableEventHandler>,
7039    {
7040        unsafe {
7041            let mut result__ = core::mem::zeroed();
7042            (windows_core::Interface::vtable(self).NewBrowserVersionAvailable)(
7043                windows_core::Interface::as_raw(self),
7044                eventhandler.param().abi(),
7045                &mut result__,
7046            )
7047            .map(|| result__)
7048        }
7049    }
7050    pub unsafe fn RemoveNewBrowserVersionAvailable(&self, token: i64) -> windows_core::Result<()> {
7051        unsafe {
7052            (windows_core::Interface::vtable(self).RemoveNewBrowserVersionAvailable)(
7053                windows_core::Interface::as_raw(self),
7054                token,
7055            )
7056            .ok()
7057        }
7058    }
7059}
7060#[repr(C)]
7061#[doc(hidden)]
7062pub struct ICoreWebView2Environment_Vtbl {
7063    pub base__: windows_core::IUnknown_Vtbl,
7064    pub CreateCoreWebView2Controller: unsafe extern "system" fn(
7065        *mut core::ffi::c_void,
7066        windows::Win32::Foundation::HWND,
7067        *mut core::ffi::c_void,
7068    ) -> windows_core::HRESULT,
7069    pub CreateWebResourceResponse: unsafe extern "system" fn(
7070        *mut core::ffi::c_void,
7071        *mut core::ffi::c_void,
7072        i32,
7073        windows_core::PCWSTR,
7074        windows_core::PCWSTR,
7075        *mut *mut core::ffi::c_void,
7076    ) -> windows_core::HRESULT,
7077    pub BrowserVersionString: unsafe extern "system" fn(
7078        *mut core::ffi::c_void,
7079        *mut windows_core::PWSTR,
7080    ) -> windows_core::HRESULT,
7081    pub NewBrowserVersionAvailable: unsafe extern "system" fn(
7082        *mut core::ffi::c_void,
7083        *mut core::ffi::c_void,
7084        *mut i64,
7085    ) -> windows_core::HRESULT,
7086    pub RemoveNewBrowserVersionAvailable:
7087        unsafe extern "system" fn(*mut core::ffi::c_void, i64) -> windows_core::HRESULT,
7088}
7089pub trait ICoreWebView2Environment_Impl: windows_core::IUnknownImpl {
7090    fn CreateCoreWebView2Controller(
7091        &self,
7092        parentwindow: windows::Win32::Foundation::HWND,
7093        handler: windows_core::Ref<ICoreWebView2CreateCoreWebView2ControllerCompletedHandler>,
7094    ) -> windows_core::Result<()>;
7095    fn CreateWebResourceResponse(
7096        &self,
7097        content: windows_core::Ref<windows::Win32::System::Com::IStream>,
7098        statuscode: i32,
7099        reasonphrase: &windows_core::PCWSTR,
7100        headers: &windows_core::PCWSTR,
7101    ) -> windows_core::Result<ICoreWebView2WebResourceResponse>;
7102    fn BrowserVersionString(&self) -> windows_core::Result<windows_core::PWSTR>;
7103    fn NewBrowserVersionAvailable(
7104        &self,
7105        eventhandler: windows_core::Ref<ICoreWebView2NewBrowserVersionAvailableEventHandler>,
7106    ) -> windows_core::Result<i64>;
7107    fn RemoveNewBrowserVersionAvailable(&self, token: i64) -> windows_core::Result<()>;
7108}
7109impl ICoreWebView2Environment_Vtbl {
7110    pub const fn new<Identity: ICoreWebView2Environment_Impl, const OFFSET: isize>() -> Self {
7111        unsafe extern "system" fn CreateCoreWebView2Controller<
7112            Identity: ICoreWebView2Environment_Impl,
7113            const OFFSET: isize,
7114        >(
7115            this: *mut core::ffi::c_void,
7116            parentwindow: windows::Win32::Foundation::HWND,
7117            handler: *mut core::ffi::c_void,
7118        ) -> windows_core::HRESULT {
7119            unsafe {
7120                let this: &Identity =
7121                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
7122                ICoreWebView2Environment_Impl::CreateCoreWebView2Controller(
7123                    this,
7124                    core::mem::transmute_copy(&parentwindow),
7125                    core::mem::transmute_copy(&handler),
7126                )
7127                .into()
7128            }
7129        }
7130        unsafe extern "system" fn CreateWebResourceResponse<
7131            Identity: ICoreWebView2Environment_Impl,
7132            const OFFSET: isize,
7133        >(
7134            this: *mut core::ffi::c_void,
7135            content: *mut core::ffi::c_void,
7136            statuscode: i32,
7137            reasonphrase: windows_core::PCWSTR,
7138            headers: windows_core::PCWSTR,
7139            response: *mut *mut core::ffi::c_void,
7140        ) -> windows_core::HRESULT {
7141            unsafe {
7142                let this: &Identity =
7143                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
7144                match ICoreWebView2Environment_Impl::CreateWebResourceResponse(
7145                    this,
7146                    core::mem::transmute_copy(&content),
7147                    core::mem::transmute_copy(&statuscode),
7148                    core::mem::transmute(&reasonphrase),
7149                    core::mem::transmute(&headers),
7150                ) {
7151                    Ok(ok__) => {
7152                        response.write(core::mem::transmute(ok__));
7153                        windows_core::HRESULT(0)
7154                    }
7155                    Err(err) => err.into(),
7156                }
7157            }
7158        }
7159        unsafe extern "system" fn BrowserVersionString<
7160            Identity: ICoreWebView2Environment_Impl,
7161            const OFFSET: isize,
7162        >(
7163            this: *mut core::ffi::c_void,
7164            versioninfo: *mut windows_core::PWSTR,
7165        ) -> windows_core::HRESULT {
7166            unsafe {
7167                let this: &Identity =
7168                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
7169                match ICoreWebView2Environment_Impl::BrowserVersionString(this) {
7170                    Ok(ok__) => {
7171                        versioninfo.write(core::mem::transmute(ok__));
7172                        windows_core::HRESULT(0)
7173                    }
7174                    Err(err) => err.into(),
7175                }
7176            }
7177        }
7178        unsafe extern "system" fn NewBrowserVersionAvailable<
7179            Identity: ICoreWebView2Environment_Impl,
7180            const OFFSET: isize,
7181        >(
7182            this: *mut core::ffi::c_void,
7183            eventhandler: *mut core::ffi::c_void,
7184            token: *mut i64,
7185        ) -> windows_core::HRESULT {
7186            unsafe {
7187                let this: &Identity =
7188                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
7189                match ICoreWebView2Environment_Impl::NewBrowserVersionAvailable(
7190                    this,
7191                    core::mem::transmute_copy(&eventhandler),
7192                ) {
7193                    Ok(ok__) => {
7194                        token.write(core::mem::transmute(ok__));
7195                        windows_core::HRESULT(0)
7196                    }
7197                    Err(err) => err.into(),
7198                }
7199            }
7200        }
7201        unsafe extern "system" fn RemoveNewBrowserVersionAvailable<
7202            Identity: ICoreWebView2Environment_Impl,
7203            const OFFSET: isize,
7204        >(
7205            this: *mut core::ffi::c_void,
7206            token: i64,
7207        ) -> windows_core::HRESULT {
7208            unsafe {
7209                let this: &Identity =
7210                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
7211                ICoreWebView2Environment_Impl::RemoveNewBrowserVersionAvailable(
7212                    this,
7213                    core::mem::transmute_copy(&token),
7214                )
7215                .into()
7216            }
7217        }
7218        Self {
7219            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
7220            CreateCoreWebView2Controller: CreateCoreWebView2Controller::<Identity, OFFSET>,
7221            CreateWebResourceResponse: CreateWebResourceResponse::<Identity, OFFSET>,
7222            BrowserVersionString: BrowserVersionString::<Identity, OFFSET>,
7223            NewBrowserVersionAvailable: NewBrowserVersionAvailable::<Identity, OFFSET>,
7224            RemoveNewBrowserVersionAvailable: RemoveNewBrowserVersionAvailable::<Identity, OFFSET>,
7225        }
7226    }
7227    pub fn matches(iid: &windows_core::GUID) -> bool {
7228        iid == &<ICoreWebView2Environment as windows_core::Interface>::IID
7229    }
7230}
7231impl windows_core::RuntimeName for ICoreWebView2Environment {}
7232windows_core::imp::define_interface!(
7233    ICoreWebView2Environment2,
7234    ICoreWebView2Environment2_Vtbl,
7235    0x41f3632b_5ef4_404f_ad82_2d606c5a9a21
7236);
7237impl core::ops::Deref for ICoreWebView2Environment2 {
7238    type Target = ICoreWebView2Environment;
7239    fn deref(&self) -> &Self::Target {
7240        unsafe { core::mem::transmute(self) }
7241    }
7242}
7243windows_core::imp::interface_hierarchy!(
7244    ICoreWebView2Environment2,
7245    windows_core::IUnknown,
7246    ICoreWebView2Environment
7247);
7248impl ICoreWebView2Environment2 {
7249    pub unsafe fn CreateWebResourceRequest<P0, P1, P2, P3>(
7250        &self,
7251        uri: P0,
7252        method: P1,
7253        postdata: P2,
7254        headers: P3,
7255    ) -> windows_core::Result<ICoreWebView2WebResourceRequest>
7256    where
7257        P0: windows_core::Param<windows_core::PCWSTR>,
7258        P1: windows_core::Param<windows_core::PCWSTR>,
7259        P2: windows_core::Param<windows::Win32::System::Com::IStream>,
7260        P3: windows_core::Param<windows_core::PCWSTR>,
7261    {
7262        unsafe {
7263            let mut result__ = core::mem::zeroed();
7264            (windows_core::Interface::vtable(self).CreateWebResourceRequest)(
7265                windows_core::Interface::as_raw(self),
7266                uri.param().abi(),
7267                method.param().abi(),
7268                postdata.param().abi(),
7269                headers.param().abi(),
7270                &mut result__,
7271            )
7272            .and_then(|| windows_core::Type::from_abi(result__))
7273        }
7274    }
7275}
7276#[repr(C)]
7277#[doc(hidden)]
7278pub struct ICoreWebView2Environment2_Vtbl {
7279    pub base__: ICoreWebView2Environment_Vtbl,
7280    pub CreateWebResourceRequest: unsafe extern "system" fn(
7281        *mut core::ffi::c_void,
7282        windows_core::PCWSTR,
7283        windows_core::PCWSTR,
7284        *mut core::ffi::c_void,
7285        windows_core::PCWSTR,
7286        *mut *mut core::ffi::c_void,
7287    ) -> windows_core::HRESULT,
7288}
7289pub trait ICoreWebView2Environment2_Impl: ICoreWebView2Environment_Impl {
7290    fn CreateWebResourceRequest(
7291        &self,
7292        uri: &windows_core::PCWSTR,
7293        method: &windows_core::PCWSTR,
7294        postdata: windows_core::Ref<windows::Win32::System::Com::IStream>,
7295        headers: &windows_core::PCWSTR,
7296    ) -> windows_core::Result<ICoreWebView2WebResourceRequest>;
7297}
7298impl ICoreWebView2Environment2_Vtbl {
7299    pub const fn new<Identity: ICoreWebView2Environment2_Impl, const OFFSET: isize>() -> Self {
7300        unsafe extern "system" fn CreateWebResourceRequest<
7301            Identity: ICoreWebView2Environment2_Impl,
7302            const OFFSET: isize,
7303        >(
7304            this: *mut core::ffi::c_void,
7305            uri: windows_core::PCWSTR,
7306            method: windows_core::PCWSTR,
7307            postdata: *mut core::ffi::c_void,
7308            headers: windows_core::PCWSTR,
7309            request: *mut *mut core::ffi::c_void,
7310        ) -> windows_core::HRESULT {
7311            unsafe {
7312                let this: &Identity =
7313                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
7314                match ICoreWebView2Environment2_Impl::CreateWebResourceRequest(
7315                    this,
7316                    core::mem::transmute(&uri),
7317                    core::mem::transmute(&method),
7318                    core::mem::transmute_copy(&postdata),
7319                    core::mem::transmute(&headers),
7320                ) {
7321                    Ok(ok__) => {
7322                        request.write(core::mem::transmute(ok__));
7323                        windows_core::HRESULT(0)
7324                    }
7325                    Err(err) => err.into(),
7326                }
7327            }
7328        }
7329        Self {
7330            base__: ICoreWebView2Environment_Vtbl::new::<Identity, OFFSET>(),
7331            CreateWebResourceRequest: CreateWebResourceRequest::<Identity, OFFSET>,
7332        }
7333    }
7334    pub fn matches(iid: &windows_core::GUID) -> bool {
7335        iid == &<ICoreWebView2Environment2 as windows_core::Interface>::IID
7336            || iid == &<ICoreWebView2Environment as windows_core::Interface>::IID
7337    }
7338}
7339impl windows_core::RuntimeName for ICoreWebView2Environment2 {}
7340windows_core::imp::define_interface!(
7341    ICoreWebView2Environment3,
7342    ICoreWebView2Environment3_Vtbl,
7343    0x80a22ae3_be7c_4ce2_afe1_5a50056cdeeb
7344);
7345impl core::ops::Deref for ICoreWebView2Environment3 {
7346    type Target = ICoreWebView2Environment2;
7347    fn deref(&self) -> &Self::Target {
7348        unsafe { core::mem::transmute(self) }
7349    }
7350}
7351windows_core::imp::interface_hierarchy!(
7352    ICoreWebView2Environment3,
7353    windows_core::IUnknown,
7354    ICoreWebView2Environment,
7355    ICoreWebView2Environment2
7356);
7357impl ICoreWebView2Environment3 {
7358    pub unsafe fn CreateCoreWebView2CompositionController<P1>(
7359        &self,
7360        parentwindow: windows::Win32::Foundation::HWND,
7361        handler: P1,
7362    ) -> windows_core::Result<()>
7363    where
7364        P1: windows_core::Param<
7365            ICoreWebView2CreateCoreWebView2CompositionControllerCompletedHandler,
7366        >,
7367    {
7368        unsafe {
7369            (windows_core::Interface::vtable(self).CreateCoreWebView2CompositionController)(
7370                windows_core::Interface::as_raw(self),
7371                parentwindow,
7372                handler.param().abi(),
7373            )
7374            .ok()
7375        }
7376    }
7377    pub unsafe fn CreateCoreWebView2PointerInfo(
7378        &self,
7379    ) -> windows_core::Result<ICoreWebView2PointerInfo> {
7380        unsafe {
7381            let mut result__ = core::mem::zeroed();
7382            (windows_core::Interface::vtable(self).CreateCoreWebView2PointerInfo)(
7383                windows_core::Interface::as_raw(self),
7384                &mut result__,
7385            )
7386            .and_then(|| windows_core::Type::from_abi(result__))
7387        }
7388    }
7389}
7390#[repr(C)]
7391#[doc(hidden)]
7392pub struct ICoreWebView2Environment3_Vtbl {
7393    pub base__: ICoreWebView2Environment2_Vtbl,
7394    pub CreateCoreWebView2CompositionController: unsafe extern "system" fn(
7395        *mut core::ffi::c_void,
7396        windows::Win32::Foundation::HWND,
7397        *mut core::ffi::c_void,
7398    )
7399        -> windows_core::HRESULT,
7400    pub CreateCoreWebView2PointerInfo: unsafe extern "system" fn(
7401        *mut core::ffi::c_void,
7402        *mut *mut core::ffi::c_void,
7403    ) -> windows_core::HRESULT,
7404}
7405pub trait ICoreWebView2Environment3_Impl: ICoreWebView2Environment2_Impl {
7406    fn CreateCoreWebView2CompositionController(
7407        &self,
7408        parentwindow: windows::Win32::Foundation::HWND,
7409        handler: windows_core::Ref<
7410            ICoreWebView2CreateCoreWebView2CompositionControllerCompletedHandler,
7411        >,
7412    ) -> windows_core::Result<()>;
7413    fn CreateCoreWebView2PointerInfo(&self) -> windows_core::Result<ICoreWebView2PointerInfo>;
7414}
7415impl ICoreWebView2Environment3_Vtbl {
7416    pub const fn new<Identity: ICoreWebView2Environment3_Impl, const OFFSET: isize>() -> Self {
7417        unsafe extern "system" fn CreateCoreWebView2CompositionController<
7418            Identity: ICoreWebView2Environment3_Impl,
7419            const OFFSET: isize,
7420        >(
7421            this: *mut core::ffi::c_void,
7422            parentwindow: windows::Win32::Foundation::HWND,
7423            handler: *mut core::ffi::c_void,
7424        ) -> windows_core::HRESULT {
7425            unsafe {
7426                let this: &Identity =
7427                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
7428                ICoreWebView2Environment3_Impl::CreateCoreWebView2CompositionController(
7429                    this,
7430                    core::mem::transmute_copy(&parentwindow),
7431                    core::mem::transmute_copy(&handler),
7432                )
7433                .into()
7434            }
7435        }
7436        unsafe extern "system" fn CreateCoreWebView2PointerInfo<
7437            Identity: ICoreWebView2Environment3_Impl,
7438            const OFFSET: isize,
7439        >(
7440            this: *mut core::ffi::c_void,
7441            pointerinfo: *mut *mut core::ffi::c_void,
7442        ) -> windows_core::HRESULT {
7443            unsafe {
7444                let this: &Identity =
7445                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
7446                match ICoreWebView2Environment3_Impl::CreateCoreWebView2PointerInfo(this) {
7447                    Ok(ok__) => {
7448                        pointerinfo.write(core::mem::transmute(ok__));
7449                        windows_core::HRESULT(0)
7450                    }
7451                    Err(err) => err.into(),
7452                }
7453            }
7454        }
7455        Self {
7456            base__: ICoreWebView2Environment2_Vtbl::new::<Identity, OFFSET>(),
7457            CreateCoreWebView2CompositionController: CreateCoreWebView2CompositionController::<
7458                Identity,
7459                OFFSET,
7460            >,
7461            CreateCoreWebView2PointerInfo: CreateCoreWebView2PointerInfo::<Identity, OFFSET>,
7462        }
7463    }
7464    pub fn matches(iid: &windows_core::GUID) -> bool {
7465        iid == &<ICoreWebView2Environment3 as windows_core::Interface>::IID
7466            || iid == &<ICoreWebView2Environment as windows_core::Interface>::IID
7467            || iid == &<ICoreWebView2Environment2 as windows_core::Interface>::IID
7468    }
7469}
7470impl windows_core::RuntimeName for ICoreWebView2Environment3 {}
7471windows_core::imp::define_interface!(
7472    ICoreWebView2Environment4,
7473    ICoreWebView2Environment4_Vtbl,
7474    0x20944379_6dcf_41d6_a0a0_abc0fc50de0d
7475);
7476impl core::ops::Deref for ICoreWebView2Environment4 {
7477    type Target = ICoreWebView2Environment3;
7478    fn deref(&self) -> &Self::Target {
7479        unsafe { core::mem::transmute(self) }
7480    }
7481}
7482windows_core::imp::interface_hierarchy!(
7483    ICoreWebView2Environment4,
7484    windows_core::IUnknown,
7485    ICoreWebView2Environment,
7486    ICoreWebView2Environment2,
7487    ICoreWebView2Environment3
7488);
7489impl ICoreWebView2Environment4 {
7490    pub unsafe fn GetProviderForHwnd(
7491        &self,
7492        hwnd: windows::Win32::Foundation::HWND,
7493    ) -> windows_core::Result<windows_core::IUnknown> {
7494        unsafe {
7495            let mut result__ = core::mem::zeroed();
7496            (windows_core::Interface::vtable(self).GetProviderForHwnd)(
7497                windows_core::Interface::as_raw(self),
7498                hwnd,
7499                &mut result__,
7500            )
7501            .and_then(|| windows_core::Type::from_abi(result__))
7502        }
7503    }
7504}
7505#[repr(C)]
7506#[doc(hidden)]
7507pub struct ICoreWebView2Environment4_Vtbl {
7508    pub base__: ICoreWebView2Environment3_Vtbl,
7509    pub GetProviderForHwnd: unsafe extern "system" fn(
7510        *mut core::ffi::c_void,
7511        windows::Win32::Foundation::HWND,
7512        *mut *mut core::ffi::c_void,
7513    ) -> windows_core::HRESULT,
7514}
7515pub trait ICoreWebView2Environment4_Impl: ICoreWebView2Environment3_Impl {
7516    fn GetProviderForHwnd(
7517        &self,
7518        hwnd: windows::Win32::Foundation::HWND,
7519    ) -> windows_core::Result<windows_core::IUnknown>;
7520}
7521impl ICoreWebView2Environment4_Vtbl {
7522    pub const fn new<Identity: ICoreWebView2Environment4_Impl, const OFFSET: isize>() -> Self {
7523        unsafe extern "system" fn GetProviderForHwnd<
7524            Identity: ICoreWebView2Environment4_Impl,
7525            const OFFSET: isize,
7526        >(
7527            this: *mut core::ffi::c_void,
7528            hwnd: windows::Win32::Foundation::HWND,
7529            provider: *mut *mut core::ffi::c_void,
7530        ) -> windows_core::HRESULT {
7531            unsafe {
7532                let this: &Identity =
7533                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
7534                match ICoreWebView2Environment4_Impl::GetProviderForHwnd(
7535                    this,
7536                    core::mem::transmute_copy(&hwnd),
7537                ) {
7538                    Ok(ok__) => {
7539                        provider.write(core::mem::transmute(ok__));
7540                        windows_core::HRESULT(0)
7541                    }
7542                    Err(err) => err.into(),
7543                }
7544            }
7545        }
7546        Self {
7547            base__: ICoreWebView2Environment3_Vtbl::new::<Identity, OFFSET>(),
7548            GetProviderForHwnd: GetProviderForHwnd::<Identity, OFFSET>,
7549        }
7550    }
7551    pub fn matches(iid: &windows_core::GUID) -> bool {
7552        iid == &<ICoreWebView2Environment4 as windows_core::Interface>::IID
7553            || iid == &<ICoreWebView2Environment as windows_core::Interface>::IID
7554            || iid == &<ICoreWebView2Environment2 as windows_core::Interface>::IID
7555            || iid == &<ICoreWebView2Environment3 as windows_core::Interface>::IID
7556    }
7557}
7558impl windows_core::RuntimeName for ICoreWebView2Environment4 {}
7559windows_core::imp::define_interface!(
7560    ICoreWebView2EnvironmentInterop,
7561    ICoreWebView2EnvironmentInterop_Vtbl,
7562    0xee503a63_c1e2_4fbf_8a4d_824e95f8bb13
7563);
7564windows_core::imp::interface_hierarchy!(ICoreWebView2EnvironmentInterop, windows_core::IUnknown);
7565impl ICoreWebView2EnvironmentInterop {
7566    pub unsafe fn GetProviderForHwnd(
7567        &self,
7568        hwnd: windows::Win32::Foundation::HWND,
7569    ) -> windows_core::Result<windows_core::IUnknown> {
7570        unsafe {
7571            let mut result__ = core::mem::zeroed();
7572            (windows_core::Interface::vtable(self).GetProviderForHwnd)(
7573                windows_core::Interface::as_raw(self),
7574                hwnd,
7575                &mut result__,
7576            )
7577            .and_then(|| windows_core::Type::from_abi(result__))
7578        }
7579    }
7580}
7581#[repr(C)]
7582#[doc(hidden)]
7583pub struct ICoreWebView2EnvironmentInterop_Vtbl {
7584    pub base__: windows_core::IUnknown_Vtbl,
7585    pub GetProviderForHwnd: unsafe extern "system" fn(
7586        *mut core::ffi::c_void,
7587        windows::Win32::Foundation::HWND,
7588        *mut *mut core::ffi::c_void,
7589    ) -> windows_core::HRESULT,
7590}
7591pub trait ICoreWebView2EnvironmentInterop_Impl: windows_core::IUnknownImpl {
7592    fn GetProviderForHwnd(
7593        &self,
7594        hwnd: windows::Win32::Foundation::HWND,
7595    ) -> windows_core::Result<windows_core::IUnknown>;
7596}
7597impl ICoreWebView2EnvironmentInterop_Vtbl {
7598    pub const fn new<Identity: ICoreWebView2EnvironmentInterop_Impl, const OFFSET: isize>() -> Self
7599    {
7600        unsafe extern "system" fn GetProviderForHwnd<
7601            Identity: ICoreWebView2EnvironmentInterop_Impl,
7602            const OFFSET: isize,
7603        >(
7604            this: *mut core::ffi::c_void,
7605            hwnd: windows::Win32::Foundation::HWND,
7606            provider: *mut *mut core::ffi::c_void,
7607        ) -> windows_core::HRESULT {
7608            unsafe {
7609                let this: &Identity =
7610                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
7611                match ICoreWebView2EnvironmentInterop_Impl::GetProviderForHwnd(
7612                    this,
7613                    core::mem::transmute_copy(&hwnd),
7614                ) {
7615                    Ok(ok__) => {
7616                        provider.write(core::mem::transmute(ok__));
7617                        windows_core::HRESULT(0)
7618                    }
7619                    Err(err) => err.into(),
7620                }
7621            }
7622        }
7623        Self {
7624            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
7625            GetProviderForHwnd: GetProviderForHwnd::<Identity, OFFSET>,
7626        }
7627    }
7628    pub fn matches(iid: &windows_core::GUID) -> bool {
7629        iid == &<ICoreWebView2EnvironmentInterop as windows_core::Interface>::IID
7630    }
7631}
7632impl windows_core::RuntimeName for ICoreWebView2EnvironmentInterop {}
7633windows_core::imp::define_interface!(
7634    ICoreWebView2EnvironmentOptions,
7635    ICoreWebView2EnvironmentOptions_Vtbl,
7636    0x2fde08a8_1e9a_4766_8c05_95a9ceb9d1c5
7637);
7638windows_core::imp::interface_hierarchy!(ICoreWebView2EnvironmentOptions, windows_core::IUnknown);
7639impl ICoreWebView2EnvironmentOptions {
7640    pub unsafe fn AdditionalBrowserArguments(&self) -> windows_core::Result<windows_core::PWSTR> {
7641        unsafe {
7642            let mut result__ = core::mem::zeroed();
7643            (windows_core::Interface::vtable(self).AdditionalBrowserArguments)(
7644                windows_core::Interface::as_raw(self),
7645                &mut result__,
7646            )
7647            .map(|| result__)
7648        }
7649    }
7650    pub unsafe fn SetAdditionalBrowserArguments<P0>(&self, value: P0) -> windows_core::Result<()>
7651    where
7652        P0: windows_core::Param<windows_core::PCWSTR>,
7653    {
7654        unsafe {
7655            (windows_core::Interface::vtable(self).SetAdditionalBrowserArguments)(
7656                windows_core::Interface::as_raw(self),
7657                value.param().abi(),
7658            )
7659            .ok()
7660        }
7661    }
7662    pub unsafe fn Language(&self) -> windows_core::Result<windows_core::PWSTR> {
7663        unsafe {
7664            let mut result__ = core::mem::zeroed();
7665            (windows_core::Interface::vtable(self).Language)(
7666                windows_core::Interface::as_raw(self),
7667                &mut result__,
7668            )
7669            .map(|| result__)
7670        }
7671    }
7672    pub unsafe fn SetLanguage<P0>(&self, value: P0) -> windows_core::Result<()>
7673    where
7674        P0: windows_core::Param<windows_core::PCWSTR>,
7675    {
7676        unsafe {
7677            (windows_core::Interface::vtable(self).SetLanguage)(
7678                windows_core::Interface::as_raw(self),
7679                value.param().abi(),
7680            )
7681            .ok()
7682        }
7683    }
7684    pub unsafe fn TargetCompatibleBrowserVersion(
7685        &self,
7686    ) -> windows_core::Result<windows_core::PWSTR> {
7687        unsafe {
7688            let mut result__ = core::mem::zeroed();
7689            (windows_core::Interface::vtable(self).TargetCompatibleBrowserVersion)(
7690                windows_core::Interface::as_raw(self),
7691                &mut result__,
7692            )
7693            .map(|| result__)
7694        }
7695    }
7696    pub unsafe fn SetTargetCompatibleBrowserVersion<P0>(
7697        &self,
7698        value: P0,
7699    ) -> windows_core::Result<()>
7700    where
7701        P0: windows_core::Param<windows_core::PCWSTR>,
7702    {
7703        unsafe {
7704            (windows_core::Interface::vtable(self).SetTargetCompatibleBrowserVersion)(
7705                windows_core::Interface::as_raw(self),
7706                value.param().abi(),
7707            )
7708            .ok()
7709        }
7710    }
7711    pub unsafe fn AllowSingleSignOnUsingOSPrimaryAccount(
7712        &self,
7713    ) -> windows_core::Result<windows_core::BOOL> {
7714        unsafe {
7715            let mut result__ = core::mem::zeroed();
7716            (windows_core::Interface::vtable(self).AllowSingleSignOnUsingOSPrimaryAccount)(
7717                windows_core::Interface::as_raw(self),
7718                &mut result__,
7719            )
7720            .map(|| result__)
7721        }
7722    }
7723    pub unsafe fn SetAllowSingleSignOnUsingOSPrimaryAccount(
7724        &self,
7725        allow: bool,
7726    ) -> windows_core::Result<()> {
7727        unsafe {
7728            (windows_core::Interface::vtable(self).SetAllowSingleSignOnUsingOSPrimaryAccount)(
7729                windows_core::Interface::as_raw(self),
7730                allow.into(),
7731            )
7732            .ok()
7733        }
7734    }
7735}
7736#[repr(C)]
7737#[doc(hidden)]
7738pub struct ICoreWebView2EnvironmentOptions_Vtbl {
7739    pub base__: windows_core::IUnknown_Vtbl,
7740    pub AdditionalBrowserArguments: unsafe extern "system" fn(
7741        *mut core::ffi::c_void,
7742        *mut windows_core::PWSTR,
7743    ) -> windows_core::HRESULT,
7744    pub SetAdditionalBrowserArguments: unsafe extern "system" fn(
7745        *mut core::ffi::c_void,
7746        windows_core::PCWSTR,
7747    ) -> windows_core::HRESULT,
7748    pub Language: unsafe extern "system" fn(
7749        *mut core::ffi::c_void,
7750        *mut windows_core::PWSTR,
7751    ) -> windows_core::HRESULT,
7752    pub SetLanguage: unsafe extern "system" fn(
7753        *mut core::ffi::c_void,
7754        windows_core::PCWSTR,
7755    ) -> windows_core::HRESULT,
7756    pub TargetCompatibleBrowserVersion: unsafe extern "system" fn(
7757        *mut core::ffi::c_void,
7758        *mut windows_core::PWSTR,
7759    ) -> windows_core::HRESULT,
7760    pub SetTargetCompatibleBrowserVersion: unsafe extern "system" fn(
7761        *mut core::ffi::c_void,
7762        windows_core::PCWSTR,
7763    ) -> windows_core::HRESULT,
7764    pub AllowSingleSignOnUsingOSPrimaryAccount: unsafe extern "system" fn(
7765        *mut core::ffi::c_void,
7766        *mut windows_core::BOOL,
7767    )
7768        -> windows_core::HRESULT,
7769    pub SetAllowSingleSignOnUsingOSPrimaryAccount:
7770        unsafe extern "system" fn(
7771            *mut core::ffi::c_void,
7772            windows_core::BOOL,
7773        ) -> windows_core::HRESULT,
7774}
7775pub trait ICoreWebView2EnvironmentOptions_Impl: windows_core::IUnknownImpl {
7776    fn AdditionalBrowserArguments(&self) -> windows_core::Result<windows_core::PWSTR>;
7777    fn SetAdditionalBrowserArguments(
7778        &self,
7779        value: &windows_core::PCWSTR,
7780    ) -> windows_core::Result<()>;
7781    fn Language(&self) -> windows_core::Result<windows_core::PWSTR>;
7782    fn SetLanguage(&self, value: &windows_core::PCWSTR) -> windows_core::Result<()>;
7783    fn TargetCompatibleBrowserVersion(&self) -> windows_core::Result<windows_core::PWSTR>;
7784    fn SetTargetCompatibleBrowserVersion(
7785        &self,
7786        value: &windows_core::PCWSTR,
7787    ) -> windows_core::Result<()>;
7788    fn AllowSingleSignOnUsingOSPrimaryAccount(&self) -> windows_core::Result<windows_core::BOOL>;
7789    fn SetAllowSingleSignOnUsingOSPrimaryAccount(
7790        &self,
7791        allow: windows_core::BOOL,
7792    ) -> windows_core::Result<()>;
7793}
7794impl ICoreWebView2EnvironmentOptions_Vtbl {
7795    pub const fn new<Identity: ICoreWebView2EnvironmentOptions_Impl, const OFFSET: isize>() -> Self
7796    {
7797        unsafe extern "system" fn AdditionalBrowserArguments<
7798            Identity: ICoreWebView2EnvironmentOptions_Impl,
7799            const OFFSET: isize,
7800        >(
7801            this: *mut core::ffi::c_void,
7802            value: *mut windows_core::PWSTR,
7803        ) -> windows_core::HRESULT {
7804            unsafe {
7805                let this: &Identity =
7806                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
7807                match ICoreWebView2EnvironmentOptions_Impl::AdditionalBrowserArguments(this) {
7808                    Ok(ok__) => {
7809                        value.write(core::mem::transmute(ok__));
7810                        windows_core::HRESULT(0)
7811                    }
7812                    Err(err) => err.into(),
7813                }
7814            }
7815        }
7816        unsafe extern "system" fn SetAdditionalBrowserArguments<
7817            Identity: ICoreWebView2EnvironmentOptions_Impl,
7818            const OFFSET: isize,
7819        >(
7820            this: *mut core::ffi::c_void,
7821            value: windows_core::PCWSTR,
7822        ) -> windows_core::HRESULT {
7823            unsafe {
7824                let this: &Identity =
7825                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
7826                ICoreWebView2EnvironmentOptions_Impl::SetAdditionalBrowserArguments(
7827                    this,
7828                    core::mem::transmute(&value),
7829                )
7830                .into()
7831            }
7832        }
7833        unsafe extern "system" fn Language<
7834            Identity: ICoreWebView2EnvironmentOptions_Impl,
7835            const OFFSET: isize,
7836        >(
7837            this: *mut core::ffi::c_void,
7838            value: *mut windows_core::PWSTR,
7839        ) -> windows_core::HRESULT {
7840            unsafe {
7841                let this: &Identity =
7842                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
7843                match ICoreWebView2EnvironmentOptions_Impl::Language(this) {
7844                    Ok(ok__) => {
7845                        value.write(core::mem::transmute(ok__));
7846                        windows_core::HRESULT(0)
7847                    }
7848                    Err(err) => err.into(),
7849                }
7850            }
7851        }
7852        unsafe extern "system" fn SetLanguage<
7853            Identity: ICoreWebView2EnvironmentOptions_Impl,
7854            const OFFSET: isize,
7855        >(
7856            this: *mut core::ffi::c_void,
7857            value: windows_core::PCWSTR,
7858        ) -> windows_core::HRESULT {
7859            unsafe {
7860                let this: &Identity =
7861                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
7862                ICoreWebView2EnvironmentOptions_Impl::SetLanguage(
7863                    this,
7864                    core::mem::transmute(&value),
7865                )
7866                .into()
7867            }
7868        }
7869        unsafe extern "system" fn TargetCompatibleBrowserVersion<
7870            Identity: ICoreWebView2EnvironmentOptions_Impl,
7871            const OFFSET: isize,
7872        >(
7873            this: *mut core::ffi::c_void,
7874            value: *mut windows_core::PWSTR,
7875        ) -> windows_core::HRESULT {
7876            unsafe {
7877                let this: &Identity =
7878                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
7879                match ICoreWebView2EnvironmentOptions_Impl::TargetCompatibleBrowserVersion(this) {
7880                    Ok(ok__) => {
7881                        value.write(core::mem::transmute(ok__));
7882                        windows_core::HRESULT(0)
7883                    }
7884                    Err(err) => err.into(),
7885                }
7886            }
7887        }
7888        unsafe extern "system" fn SetTargetCompatibleBrowserVersion<
7889            Identity: ICoreWebView2EnvironmentOptions_Impl,
7890            const OFFSET: isize,
7891        >(
7892            this: *mut core::ffi::c_void,
7893            value: windows_core::PCWSTR,
7894        ) -> windows_core::HRESULT {
7895            unsafe {
7896                let this: &Identity =
7897                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
7898                ICoreWebView2EnvironmentOptions_Impl::SetTargetCompatibleBrowserVersion(
7899                    this,
7900                    core::mem::transmute(&value),
7901                )
7902                .into()
7903            }
7904        }
7905        unsafe extern "system" fn AllowSingleSignOnUsingOSPrimaryAccount<
7906            Identity: ICoreWebView2EnvironmentOptions_Impl,
7907            const OFFSET: isize,
7908        >(
7909            this: *mut core::ffi::c_void,
7910            allow: *mut windows_core::BOOL,
7911        ) -> windows_core::HRESULT {
7912            unsafe {
7913                let this: &Identity =
7914                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
7915                match ICoreWebView2EnvironmentOptions_Impl::AllowSingleSignOnUsingOSPrimaryAccount(
7916                    this,
7917                ) {
7918                    Ok(ok__) => {
7919                        allow.write(core::mem::transmute(ok__));
7920                        windows_core::HRESULT(0)
7921                    }
7922                    Err(err) => err.into(),
7923                }
7924            }
7925        }
7926        unsafe extern "system" fn SetAllowSingleSignOnUsingOSPrimaryAccount<
7927            Identity: ICoreWebView2EnvironmentOptions_Impl,
7928            const OFFSET: isize,
7929        >(
7930            this: *mut core::ffi::c_void,
7931            allow: windows_core::BOOL,
7932        ) -> windows_core::HRESULT {
7933            unsafe {
7934                let this: &Identity =
7935                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
7936                ICoreWebView2EnvironmentOptions_Impl::SetAllowSingleSignOnUsingOSPrimaryAccount(
7937                    this,
7938                    core::mem::transmute_copy(&allow),
7939                )
7940                .into()
7941            }
7942        }
7943        Self {
7944            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
7945            AdditionalBrowserArguments: AdditionalBrowserArguments::<Identity, OFFSET>,
7946            SetAdditionalBrowserArguments: SetAdditionalBrowserArguments::<Identity, OFFSET>,
7947            Language: Language::<Identity, OFFSET>,
7948            SetLanguage: SetLanguage::<Identity, OFFSET>,
7949            TargetCompatibleBrowserVersion: TargetCompatibleBrowserVersion::<Identity, OFFSET>,
7950            SetTargetCompatibleBrowserVersion: SetTargetCompatibleBrowserVersion::<Identity, OFFSET>,
7951            AllowSingleSignOnUsingOSPrimaryAccount: AllowSingleSignOnUsingOSPrimaryAccount::<
7952                Identity,
7953                OFFSET,
7954            >,
7955            SetAllowSingleSignOnUsingOSPrimaryAccount: SetAllowSingleSignOnUsingOSPrimaryAccount::<
7956                Identity,
7957                OFFSET,
7958            >,
7959        }
7960    }
7961    pub fn matches(iid: &windows_core::GUID) -> bool {
7962        iid == &<ICoreWebView2EnvironmentOptions as windows_core::Interface>::IID
7963    }
7964}
7965impl windows_core::RuntimeName for ICoreWebView2EnvironmentOptions {}
7966windows_core::imp::define_interface!(
7967    ICoreWebView2ExecuteScriptCompletedHandler,
7968    ICoreWebView2ExecuteScriptCompletedHandler_Vtbl,
7969    0x49511172_cc67_4bca_9923_137112f4c4cc
7970);
7971windows_core::imp::interface_hierarchy!(
7972    ICoreWebView2ExecuteScriptCompletedHandler,
7973    windows_core::IUnknown
7974);
7975impl ICoreWebView2ExecuteScriptCompletedHandler {
7976    pub unsafe fn Invoke<P1>(
7977        &self,
7978        errorcode: windows_core::HRESULT,
7979        resultobjectasjson: P1,
7980    ) -> windows_core::Result<()>
7981    where
7982        P1: windows_core::Param<windows_core::PCWSTR>,
7983    {
7984        unsafe {
7985            (windows_core::Interface::vtable(self).Invoke)(
7986                windows_core::Interface::as_raw(self),
7987                errorcode,
7988                resultobjectasjson.param().abi(),
7989            )
7990            .ok()
7991        }
7992    }
7993}
7994#[repr(C)]
7995#[doc(hidden)]
7996pub struct ICoreWebView2ExecuteScriptCompletedHandler_Vtbl {
7997    pub base__: windows_core::IUnknown_Vtbl,
7998    pub Invoke: unsafe extern "system" fn(
7999        *mut core::ffi::c_void,
8000        windows_core::HRESULT,
8001        windows_core::PCWSTR,
8002    ) -> windows_core::HRESULT,
8003}
8004pub trait ICoreWebView2ExecuteScriptCompletedHandler_Impl: windows_core::IUnknownImpl {
8005    fn Invoke(
8006        &self,
8007        errorcode: windows_core::HRESULT,
8008        resultobjectasjson: &windows_core::PCWSTR,
8009    ) -> windows_core::Result<()>;
8010}
8011impl ICoreWebView2ExecuteScriptCompletedHandler_Vtbl {
8012    pub const fn new<
8013        Identity: ICoreWebView2ExecuteScriptCompletedHandler_Impl,
8014        const OFFSET: isize,
8015    >() -> Self {
8016        unsafe extern "system" fn Invoke<
8017            Identity: ICoreWebView2ExecuteScriptCompletedHandler_Impl,
8018            const OFFSET: isize,
8019        >(
8020            this: *mut core::ffi::c_void,
8021            errorcode: windows_core::HRESULT,
8022            resultobjectasjson: windows_core::PCWSTR,
8023        ) -> windows_core::HRESULT {
8024            unsafe {
8025                let this: &Identity =
8026                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
8027                ICoreWebView2ExecuteScriptCompletedHandler_Impl::Invoke(
8028                    this,
8029                    core::mem::transmute_copy(&errorcode),
8030                    core::mem::transmute(&resultobjectasjson),
8031                )
8032                .into()
8033            }
8034        }
8035        Self {
8036            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
8037            Invoke: Invoke::<Identity, OFFSET>,
8038        }
8039    }
8040    pub fn matches(iid: &windows_core::GUID) -> bool {
8041        iid == &<ICoreWebView2ExecuteScriptCompletedHandler as windows_core::Interface>::IID
8042    }
8043}
8044impl windows_core::RuntimeName for ICoreWebView2ExecuteScriptCompletedHandler {}
8045windows_core::imp::define_interface!(
8046    ICoreWebView2FocusChangedEventHandler,
8047    ICoreWebView2FocusChangedEventHandler_Vtbl,
8048    0x05ea24bd_6452_4926_9014_4b82b498135d
8049);
8050windows_core::imp::interface_hierarchy!(
8051    ICoreWebView2FocusChangedEventHandler,
8052    windows_core::IUnknown
8053);
8054impl ICoreWebView2FocusChangedEventHandler {
8055    pub unsafe fn Invoke<P0, P1>(&self, sender: P0, args: P1) -> windows_core::Result<()>
8056    where
8057        P0: windows_core::Param<ICoreWebView2Controller>,
8058        P1: windows_core::Param<windows_core::IUnknown>,
8059    {
8060        unsafe {
8061            (windows_core::Interface::vtable(self).Invoke)(
8062                windows_core::Interface::as_raw(self),
8063                sender.param().abi(),
8064                args.param().abi(),
8065            )
8066            .ok()
8067        }
8068    }
8069}
8070#[repr(C)]
8071#[doc(hidden)]
8072pub struct ICoreWebView2FocusChangedEventHandler_Vtbl {
8073    pub base__: windows_core::IUnknown_Vtbl,
8074    pub Invoke: unsafe extern "system" fn(
8075        *mut core::ffi::c_void,
8076        *mut core::ffi::c_void,
8077        *mut core::ffi::c_void,
8078    ) -> windows_core::HRESULT,
8079}
8080pub trait ICoreWebView2FocusChangedEventHandler_Impl: windows_core::IUnknownImpl {
8081    fn Invoke(
8082        &self,
8083        sender: windows_core::Ref<ICoreWebView2Controller>,
8084        args: windows_core::Ref<windows_core::IUnknown>,
8085    ) -> windows_core::Result<()>;
8086}
8087impl ICoreWebView2FocusChangedEventHandler_Vtbl {
8088    pub const fn new<Identity: ICoreWebView2FocusChangedEventHandler_Impl, const OFFSET: isize>(
8089    ) -> Self {
8090        unsafe extern "system" fn Invoke<
8091            Identity: ICoreWebView2FocusChangedEventHandler_Impl,
8092            const OFFSET: isize,
8093        >(
8094            this: *mut core::ffi::c_void,
8095            sender: *mut core::ffi::c_void,
8096            args: *mut core::ffi::c_void,
8097        ) -> windows_core::HRESULT {
8098            unsafe {
8099                let this: &Identity =
8100                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
8101                ICoreWebView2FocusChangedEventHandler_Impl::Invoke(
8102                    this,
8103                    core::mem::transmute_copy(&sender),
8104                    core::mem::transmute_copy(&args),
8105                )
8106                .into()
8107            }
8108        }
8109        Self {
8110            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
8111            Invoke: Invoke::<Identity, OFFSET>,
8112        }
8113    }
8114    pub fn matches(iid: &windows_core::GUID) -> bool {
8115        iid == &<ICoreWebView2FocusChangedEventHandler as windows_core::Interface>::IID
8116    }
8117}
8118impl windows_core::RuntimeName for ICoreWebView2FocusChangedEventHandler {}
8119windows_core::imp::define_interface!(
8120    ICoreWebView2FrameInfo,
8121    ICoreWebView2FrameInfo_Vtbl,
8122    0xda86b8a1_bdf3_4f11_9955_528cefa59727
8123);
8124windows_core::imp::interface_hierarchy!(ICoreWebView2FrameInfo, windows_core::IUnknown);
8125impl ICoreWebView2FrameInfo {
8126    pub unsafe fn Name(&self) -> windows_core::Result<windows_core::PWSTR> {
8127        unsafe {
8128            let mut result__ = core::mem::zeroed();
8129            (windows_core::Interface::vtable(self).Name)(
8130                windows_core::Interface::as_raw(self),
8131                &mut result__,
8132            )
8133            .map(|| result__)
8134        }
8135    }
8136    pub unsafe fn Source(&self) -> windows_core::Result<windows_core::PWSTR> {
8137        unsafe {
8138            let mut result__ = core::mem::zeroed();
8139            (windows_core::Interface::vtable(self).Source)(
8140                windows_core::Interface::as_raw(self),
8141                &mut result__,
8142            )
8143            .map(|| result__)
8144        }
8145    }
8146}
8147#[repr(C)]
8148#[doc(hidden)]
8149pub struct ICoreWebView2FrameInfo_Vtbl {
8150    pub base__: windows_core::IUnknown_Vtbl,
8151    pub Name: unsafe extern "system" fn(
8152        *mut core::ffi::c_void,
8153        *mut windows_core::PWSTR,
8154    ) -> windows_core::HRESULT,
8155    pub Source: unsafe extern "system" fn(
8156        *mut core::ffi::c_void,
8157        *mut windows_core::PWSTR,
8158    ) -> windows_core::HRESULT,
8159}
8160pub trait ICoreWebView2FrameInfo_Impl: windows_core::IUnknownImpl {
8161    fn Name(&self) -> windows_core::Result<windows_core::PWSTR>;
8162    fn Source(&self) -> windows_core::Result<windows_core::PWSTR>;
8163}
8164impl ICoreWebView2FrameInfo_Vtbl {
8165    pub const fn new<Identity: ICoreWebView2FrameInfo_Impl, const OFFSET: isize>() -> Self {
8166        unsafe extern "system" fn Name<
8167            Identity: ICoreWebView2FrameInfo_Impl,
8168            const OFFSET: isize,
8169        >(
8170            this: *mut core::ffi::c_void,
8171            name: *mut windows_core::PWSTR,
8172        ) -> windows_core::HRESULT {
8173            unsafe {
8174                let this: &Identity =
8175                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
8176                match ICoreWebView2FrameInfo_Impl::Name(this) {
8177                    Ok(ok__) => {
8178                        name.write(core::mem::transmute(ok__));
8179                        windows_core::HRESULT(0)
8180                    }
8181                    Err(err) => err.into(),
8182                }
8183            }
8184        }
8185        unsafe extern "system" fn Source<
8186            Identity: ICoreWebView2FrameInfo_Impl,
8187            const OFFSET: isize,
8188        >(
8189            this: *mut core::ffi::c_void,
8190            source: *mut windows_core::PWSTR,
8191        ) -> windows_core::HRESULT {
8192            unsafe {
8193                let this: &Identity =
8194                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
8195                match ICoreWebView2FrameInfo_Impl::Source(this) {
8196                    Ok(ok__) => {
8197                        source.write(core::mem::transmute(ok__));
8198                        windows_core::HRESULT(0)
8199                    }
8200                    Err(err) => err.into(),
8201                }
8202            }
8203        }
8204        Self {
8205            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
8206            Name: Name::<Identity, OFFSET>,
8207            Source: Source::<Identity, OFFSET>,
8208        }
8209    }
8210    pub fn matches(iid: &windows_core::GUID) -> bool {
8211        iid == &<ICoreWebView2FrameInfo as windows_core::Interface>::IID
8212    }
8213}
8214impl windows_core::RuntimeName for ICoreWebView2FrameInfo {}
8215windows_core::imp::define_interface!(
8216    ICoreWebView2FrameInfoCollection,
8217    ICoreWebView2FrameInfoCollection_Vtbl,
8218    0x8f834154_d38e_4d90_affb_6800a7272839
8219);
8220windows_core::imp::interface_hierarchy!(ICoreWebView2FrameInfoCollection, windows_core::IUnknown);
8221impl ICoreWebView2FrameInfoCollection {
8222    pub unsafe fn GetIterator(
8223        &self,
8224    ) -> windows_core::Result<ICoreWebView2FrameInfoCollectionIterator> {
8225        unsafe {
8226            let mut result__ = core::mem::zeroed();
8227            (windows_core::Interface::vtable(self).GetIterator)(
8228                windows_core::Interface::as_raw(self),
8229                &mut result__,
8230            )
8231            .and_then(|| windows_core::Type::from_abi(result__))
8232        }
8233    }
8234}
8235#[repr(C)]
8236#[doc(hidden)]
8237pub struct ICoreWebView2FrameInfoCollection_Vtbl {
8238    pub base__: windows_core::IUnknown_Vtbl,
8239    pub GetIterator: unsafe extern "system" fn(
8240        *mut core::ffi::c_void,
8241        *mut *mut core::ffi::c_void,
8242    ) -> windows_core::HRESULT,
8243}
8244pub trait ICoreWebView2FrameInfoCollection_Impl: windows_core::IUnknownImpl {
8245    fn GetIterator(&self) -> windows_core::Result<ICoreWebView2FrameInfoCollectionIterator>;
8246}
8247impl ICoreWebView2FrameInfoCollection_Vtbl {
8248    pub const fn new<Identity: ICoreWebView2FrameInfoCollection_Impl, const OFFSET: isize>() -> Self
8249    {
8250        unsafe extern "system" fn GetIterator<
8251            Identity: ICoreWebView2FrameInfoCollection_Impl,
8252            const OFFSET: isize,
8253        >(
8254            this: *mut core::ffi::c_void,
8255            iterator: *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 ICoreWebView2FrameInfoCollection_Impl::GetIterator(this) {
8261                    Ok(ok__) => {
8262                        iterator.write(core::mem::transmute(ok__));
8263                        windows_core::HRESULT(0)
8264                    }
8265                    Err(err) => err.into(),
8266                }
8267            }
8268        }
8269        Self {
8270            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
8271            GetIterator: GetIterator::<Identity, OFFSET>,
8272        }
8273    }
8274    pub fn matches(iid: &windows_core::GUID) -> bool {
8275        iid == &<ICoreWebView2FrameInfoCollection as windows_core::Interface>::IID
8276    }
8277}
8278impl windows_core::RuntimeName for ICoreWebView2FrameInfoCollection {}
8279windows_core::imp::define_interface!(
8280    ICoreWebView2FrameInfoCollectionIterator,
8281    ICoreWebView2FrameInfoCollectionIterator_Vtbl,
8282    0x1bf89e2d_1b2b_4629_b28f_05099b41bb03
8283);
8284windows_core::imp::interface_hierarchy!(
8285    ICoreWebView2FrameInfoCollectionIterator,
8286    windows_core::IUnknown
8287);
8288impl ICoreWebView2FrameInfoCollectionIterator {
8289    pub unsafe fn HasCurrent(&self) -> windows_core::Result<windows_core::BOOL> {
8290        unsafe {
8291            let mut result__ = core::mem::zeroed();
8292            (windows_core::Interface::vtable(self).HasCurrent)(
8293                windows_core::Interface::as_raw(self),
8294                &mut result__,
8295            )
8296            .map(|| result__)
8297        }
8298    }
8299    pub unsafe fn GetCurrent(&self) -> windows_core::Result<ICoreWebView2FrameInfo> {
8300        unsafe {
8301            let mut result__ = core::mem::zeroed();
8302            (windows_core::Interface::vtable(self).GetCurrent)(
8303                windows_core::Interface::as_raw(self),
8304                &mut result__,
8305            )
8306            .and_then(|| windows_core::Type::from_abi(result__))
8307        }
8308    }
8309    pub unsafe fn MoveNext(&self, hasnext: *mut windows_core::BOOL) -> windows_core::Result<()> {
8310        unsafe {
8311            (windows_core::Interface::vtable(self).MoveNext)(
8312                windows_core::Interface::as_raw(self),
8313                hasnext as _,
8314            )
8315            .ok()
8316        }
8317    }
8318}
8319#[repr(C)]
8320#[doc(hidden)]
8321pub struct ICoreWebView2FrameInfoCollectionIterator_Vtbl {
8322    pub base__: windows_core::IUnknown_Vtbl,
8323    pub HasCurrent: unsafe extern "system" fn(
8324        *mut core::ffi::c_void,
8325        *mut windows_core::BOOL,
8326    ) -> windows_core::HRESULT,
8327    pub GetCurrent: unsafe extern "system" fn(
8328        *mut core::ffi::c_void,
8329        *mut *mut core::ffi::c_void,
8330    ) -> windows_core::HRESULT,
8331    pub MoveNext: unsafe extern "system" fn(
8332        *mut core::ffi::c_void,
8333        *mut windows_core::BOOL,
8334    ) -> windows_core::HRESULT,
8335}
8336pub trait ICoreWebView2FrameInfoCollectionIterator_Impl: windows_core::IUnknownImpl {
8337    fn HasCurrent(&self) -> windows_core::Result<windows_core::BOOL>;
8338    fn GetCurrent(&self) -> windows_core::Result<ICoreWebView2FrameInfo>;
8339    fn MoveNext(&self, hasnext: *mut windows_core::BOOL) -> windows_core::Result<()>;
8340}
8341impl ICoreWebView2FrameInfoCollectionIterator_Vtbl {
8342    pub const fn new<
8343        Identity: ICoreWebView2FrameInfoCollectionIterator_Impl,
8344        const OFFSET: isize,
8345    >() -> Self {
8346        unsafe extern "system" fn HasCurrent<
8347            Identity: ICoreWebView2FrameInfoCollectionIterator_Impl,
8348            const OFFSET: isize,
8349        >(
8350            this: *mut core::ffi::c_void,
8351            hascurrent: *mut windows_core::BOOL,
8352        ) -> windows_core::HRESULT {
8353            unsafe {
8354                let this: &Identity =
8355                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
8356                match ICoreWebView2FrameInfoCollectionIterator_Impl::HasCurrent(this) {
8357                    Ok(ok__) => {
8358                        hascurrent.write(core::mem::transmute(ok__));
8359                        windows_core::HRESULT(0)
8360                    }
8361                    Err(err) => err.into(),
8362                }
8363            }
8364        }
8365        unsafe extern "system" fn GetCurrent<
8366            Identity: ICoreWebView2FrameInfoCollectionIterator_Impl,
8367            const OFFSET: isize,
8368        >(
8369            this: *mut core::ffi::c_void,
8370            frameinfo: *mut *mut core::ffi::c_void,
8371        ) -> windows_core::HRESULT {
8372            unsafe {
8373                let this: &Identity =
8374                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
8375                match ICoreWebView2FrameInfoCollectionIterator_Impl::GetCurrent(this) {
8376                    Ok(ok__) => {
8377                        frameinfo.write(core::mem::transmute(ok__));
8378                        windows_core::HRESULT(0)
8379                    }
8380                    Err(err) => err.into(),
8381                }
8382            }
8383        }
8384        unsafe extern "system" fn MoveNext<
8385            Identity: ICoreWebView2FrameInfoCollectionIterator_Impl,
8386            const OFFSET: isize,
8387        >(
8388            this: *mut core::ffi::c_void,
8389            hasnext: *mut windows_core::BOOL,
8390        ) -> windows_core::HRESULT {
8391            unsafe {
8392                let this: &Identity =
8393                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
8394                ICoreWebView2FrameInfoCollectionIterator_Impl::MoveNext(
8395                    this,
8396                    core::mem::transmute_copy(&hasnext),
8397                )
8398                .into()
8399            }
8400        }
8401        Self {
8402            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
8403            HasCurrent: HasCurrent::<Identity, OFFSET>,
8404            GetCurrent: GetCurrent::<Identity, OFFSET>,
8405            MoveNext: MoveNext::<Identity, OFFSET>,
8406        }
8407    }
8408    pub fn matches(iid: &windows_core::GUID) -> bool {
8409        iid == &<ICoreWebView2FrameInfoCollectionIterator as windows_core::Interface>::IID
8410    }
8411}
8412impl windows_core::RuntimeName for ICoreWebView2FrameInfoCollectionIterator {}
8413windows_core::imp::define_interface!(
8414    ICoreWebView2GetCookiesCompletedHandler,
8415    ICoreWebView2GetCookiesCompletedHandler_Vtbl,
8416    0x5a4f5069_5c15_47c3_8646_f4de1c116670
8417);
8418windows_core::imp::interface_hierarchy!(
8419    ICoreWebView2GetCookiesCompletedHandler,
8420    windows_core::IUnknown
8421);
8422impl ICoreWebView2GetCookiesCompletedHandler {
8423    pub unsafe fn Invoke<P1>(
8424        &self,
8425        result: windows_core::HRESULT,
8426        cookielist: P1,
8427    ) -> windows_core::Result<()>
8428    where
8429        P1: windows_core::Param<ICoreWebView2CookieList>,
8430    {
8431        unsafe {
8432            (windows_core::Interface::vtable(self).Invoke)(
8433                windows_core::Interface::as_raw(self),
8434                result,
8435                cookielist.param().abi(),
8436            )
8437            .ok()
8438        }
8439    }
8440}
8441#[repr(C)]
8442#[doc(hidden)]
8443pub struct ICoreWebView2GetCookiesCompletedHandler_Vtbl {
8444    pub base__: windows_core::IUnknown_Vtbl,
8445    pub Invoke: unsafe extern "system" fn(
8446        *mut core::ffi::c_void,
8447        windows_core::HRESULT,
8448        *mut core::ffi::c_void,
8449    ) -> windows_core::HRESULT,
8450}
8451pub trait ICoreWebView2GetCookiesCompletedHandler_Impl: windows_core::IUnknownImpl {
8452    fn Invoke(
8453        &self,
8454        result: windows_core::HRESULT,
8455        cookielist: windows_core::Ref<ICoreWebView2CookieList>,
8456    ) -> windows_core::Result<()>;
8457}
8458impl ICoreWebView2GetCookiesCompletedHandler_Vtbl {
8459    pub const fn new<
8460        Identity: ICoreWebView2GetCookiesCompletedHandler_Impl,
8461        const OFFSET: isize,
8462    >() -> Self {
8463        unsafe extern "system" fn Invoke<
8464            Identity: ICoreWebView2GetCookiesCompletedHandler_Impl,
8465            const OFFSET: isize,
8466        >(
8467            this: *mut core::ffi::c_void,
8468            result: windows_core::HRESULT,
8469            cookielist: *mut core::ffi::c_void,
8470        ) -> windows_core::HRESULT {
8471            unsafe {
8472                let this: &Identity =
8473                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
8474                ICoreWebView2GetCookiesCompletedHandler_Impl::Invoke(
8475                    this,
8476                    core::mem::transmute_copy(&result),
8477                    core::mem::transmute_copy(&cookielist),
8478                )
8479                .into()
8480            }
8481        }
8482        Self {
8483            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
8484            Invoke: Invoke::<Identity, OFFSET>,
8485        }
8486    }
8487    pub fn matches(iid: &windows_core::GUID) -> bool {
8488        iid == &<ICoreWebView2GetCookiesCompletedHandler as windows_core::Interface>::IID
8489    }
8490}
8491impl windows_core::RuntimeName for ICoreWebView2GetCookiesCompletedHandler {}
8492windows_core::imp::define_interface!(
8493    ICoreWebView2HistoryChangedEventHandler,
8494    ICoreWebView2HistoryChangedEventHandler_Vtbl,
8495    0xc79a420c_efd9_4058_9295_3e8b4bcab645
8496);
8497windows_core::imp::interface_hierarchy!(
8498    ICoreWebView2HistoryChangedEventHandler,
8499    windows_core::IUnknown
8500);
8501impl ICoreWebView2HistoryChangedEventHandler {
8502    pub unsafe fn Invoke<P0, P1>(&self, sender: P0, args: P1) -> windows_core::Result<()>
8503    where
8504        P0: windows_core::Param<ICoreWebView2>,
8505        P1: windows_core::Param<windows_core::IUnknown>,
8506    {
8507        unsafe {
8508            (windows_core::Interface::vtable(self).Invoke)(
8509                windows_core::Interface::as_raw(self),
8510                sender.param().abi(),
8511                args.param().abi(),
8512            )
8513            .ok()
8514        }
8515    }
8516}
8517#[repr(C)]
8518#[doc(hidden)]
8519pub struct ICoreWebView2HistoryChangedEventHandler_Vtbl {
8520    pub base__: windows_core::IUnknown_Vtbl,
8521    pub Invoke: unsafe extern "system" fn(
8522        *mut core::ffi::c_void,
8523        *mut core::ffi::c_void,
8524        *mut core::ffi::c_void,
8525    ) -> windows_core::HRESULT,
8526}
8527pub trait ICoreWebView2HistoryChangedEventHandler_Impl: windows_core::IUnknownImpl {
8528    fn Invoke(
8529        &self,
8530        sender: windows_core::Ref<ICoreWebView2>,
8531        args: windows_core::Ref<windows_core::IUnknown>,
8532    ) -> windows_core::Result<()>;
8533}
8534impl ICoreWebView2HistoryChangedEventHandler_Vtbl {
8535    pub const fn new<
8536        Identity: ICoreWebView2HistoryChangedEventHandler_Impl,
8537        const OFFSET: isize,
8538    >() -> Self {
8539        unsafe extern "system" fn Invoke<
8540            Identity: ICoreWebView2HistoryChangedEventHandler_Impl,
8541            const OFFSET: isize,
8542        >(
8543            this: *mut core::ffi::c_void,
8544            sender: *mut core::ffi::c_void,
8545            args: *mut core::ffi::c_void,
8546        ) -> windows_core::HRESULT {
8547            unsafe {
8548                let this: &Identity =
8549                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
8550                ICoreWebView2HistoryChangedEventHandler_Impl::Invoke(
8551                    this,
8552                    core::mem::transmute_copy(&sender),
8553                    core::mem::transmute_copy(&args),
8554                )
8555                .into()
8556            }
8557        }
8558        Self {
8559            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
8560            Invoke: Invoke::<Identity, OFFSET>,
8561        }
8562    }
8563    pub fn matches(iid: &windows_core::GUID) -> bool {
8564        iid == &<ICoreWebView2HistoryChangedEventHandler as windows_core::Interface>::IID
8565    }
8566}
8567impl windows_core::RuntimeName for ICoreWebView2HistoryChangedEventHandler {}
8568windows_core::imp::define_interface!(
8569    ICoreWebView2HttpHeadersCollectionIterator,
8570    ICoreWebView2HttpHeadersCollectionIterator_Vtbl,
8571    0x0702fc30_f43b_47bb_ab52_a42cb552ad9f
8572);
8573windows_core::imp::interface_hierarchy!(
8574    ICoreWebView2HttpHeadersCollectionIterator,
8575    windows_core::IUnknown
8576);
8577impl ICoreWebView2HttpHeadersCollectionIterator {
8578    pub unsafe fn GetCurrentHeader(
8579        &self,
8580        name: *mut windows_core::PWSTR,
8581        value: *mut windows_core::PWSTR,
8582    ) -> windows_core::Result<()> {
8583        unsafe {
8584            (windows_core::Interface::vtable(self).GetCurrentHeader)(
8585                windows_core::Interface::as_raw(self),
8586                name as _,
8587                value as _,
8588            )
8589            .ok()
8590        }
8591    }
8592    pub unsafe fn HasCurrentHeader(&self) -> windows_core::Result<windows_core::BOOL> {
8593        unsafe {
8594            let mut result__ = core::mem::zeroed();
8595            (windows_core::Interface::vtable(self).HasCurrentHeader)(
8596                windows_core::Interface::as_raw(self),
8597                &mut result__,
8598            )
8599            .map(|| result__)
8600        }
8601    }
8602    pub unsafe fn MoveNext(&self, hasnext: *mut windows_core::BOOL) -> windows_core::Result<()> {
8603        unsafe {
8604            (windows_core::Interface::vtable(self).MoveNext)(
8605                windows_core::Interface::as_raw(self),
8606                hasnext as _,
8607            )
8608            .ok()
8609        }
8610    }
8611}
8612#[repr(C)]
8613#[doc(hidden)]
8614pub struct ICoreWebView2HttpHeadersCollectionIterator_Vtbl {
8615    pub base__: windows_core::IUnknown_Vtbl,
8616    pub GetCurrentHeader: unsafe extern "system" fn(
8617        *mut core::ffi::c_void,
8618        *mut windows_core::PWSTR,
8619        *mut windows_core::PWSTR,
8620    ) -> windows_core::HRESULT,
8621    pub HasCurrentHeader: unsafe extern "system" fn(
8622        *mut core::ffi::c_void,
8623        *mut windows_core::BOOL,
8624    ) -> windows_core::HRESULT,
8625    pub MoveNext: unsafe extern "system" fn(
8626        *mut core::ffi::c_void,
8627        *mut windows_core::BOOL,
8628    ) -> windows_core::HRESULT,
8629}
8630pub trait ICoreWebView2HttpHeadersCollectionIterator_Impl: windows_core::IUnknownImpl {
8631    fn GetCurrentHeader(
8632        &self,
8633        name: *mut windows_core::PWSTR,
8634        value: *mut windows_core::PWSTR,
8635    ) -> windows_core::Result<()>;
8636    fn HasCurrentHeader(&self) -> windows_core::Result<windows_core::BOOL>;
8637    fn MoveNext(&self, hasnext: *mut windows_core::BOOL) -> windows_core::Result<()>;
8638}
8639impl ICoreWebView2HttpHeadersCollectionIterator_Vtbl {
8640    pub const fn new<
8641        Identity: ICoreWebView2HttpHeadersCollectionIterator_Impl,
8642        const OFFSET: isize,
8643    >() -> Self {
8644        unsafe extern "system" fn GetCurrentHeader<
8645            Identity: ICoreWebView2HttpHeadersCollectionIterator_Impl,
8646            const OFFSET: isize,
8647        >(
8648            this: *mut core::ffi::c_void,
8649            name: *mut windows_core::PWSTR,
8650            value: *mut windows_core::PWSTR,
8651        ) -> windows_core::HRESULT {
8652            unsafe {
8653                let this: &Identity =
8654                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
8655                ICoreWebView2HttpHeadersCollectionIterator_Impl::GetCurrentHeader(
8656                    this,
8657                    core::mem::transmute_copy(&name),
8658                    core::mem::transmute_copy(&value),
8659                )
8660                .into()
8661            }
8662        }
8663        unsafe extern "system" fn HasCurrentHeader<
8664            Identity: ICoreWebView2HttpHeadersCollectionIterator_Impl,
8665            const OFFSET: isize,
8666        >(
8667            this: *mut core::ffi::c_void,
8668            hascurrent: *mut windows_core::BOOL,
8669        ) -> windows_core::HRESULT {
8670            unsafe {
8671                let this: &Identity =
8672                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
8673                match ICoreWebView2HttpHeadersCollectionIterator_Impl::HasCurrentHeader(this) {
8674                    Ok(ok__) => {
8675                        hascurrent.write(core::mem::transmute(ok__));
8676                        windows_core::HRESULT(0)
8677                    }
8678                    Err(err) => err.into(),
8679                }
8680            }
8681        }
8682        unsafe extern "system" fn MoveNext<
8683            Identity: ICoreWebView2HttpHeadersCollectionIterator_Impl,
8684            const OFFSET: isize,
8685        >(
8686            this: *mut core::ffi::c_void,
8687            hasnext: *mut windows_core::BOOL,
8688        ) -> windows_core::HRESULT {
8689            unsafe {
8690                let this: &Identity =
8691                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
8692                ICoreWebView2HttpHeadersCollectionIterator_Impl::MoveNext(
8693                    this,
8694                    core::mem::transmute_copy(&hasnext),
8695                )
8696                .into()
8697            }
8698        }
8699        Self {
8700            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
8701            GetCurrentHeader: GetCurrentHeader::<Identity, OFFSET>,
8702            HasCurrentHeader: HasCurrentHeader::<Identity, OFFSET>,
8703            MoveNext: MoveNext::<Identity, OFFSET>,
8704        }
8705    }
8706    pub fn matches(iid: &windows_core::GUID) -> bool {
8707        iid == &<ICoreWebView2HttpHeadersCollectionIterator as windows_core::Interface>::IID
8708    }
8709}
8710impl windows_core::RuntimeName for ICoreWebView2HttpHeadersCollectionIterator {}
8711windows_core::imp::define_interface!(
8712    ICoreWebView2HttpRequestHeaders,
8713    ICoreWebView2HttpRequestHeaders_Vtbl,
8714    0xe86cac0e_5523_465c_b536_8fb9fc8c8c60
8715);
8716windows_core::imp::interface_hierarchy!(ICoreWebView2HttpRequestHeaders, windows_core::IUnknown);
8717impl ICoreWebView2HttpRequestHeaders {
8718    pub unsafe fn GetHeader<P0>(
8719        &self,
8720        name: P0,
8721        value: *mut windows_core::PWSTR,
8722    ) -> windows_core::Result<()>
8723    where
8724        P0: windows_core::Param<windows_core::PCWSTR>,
8725    {
8726        unsafe {
8727            (windows_core::Interface::vtable(self).GetHeader)(
8728                windows_core::Interface::as_raw(self),
8729                name.param().abi(),
8730                value as _,
8731            )
8732            .ok()
8733        }
8734    }
8735    pub unsafe fn GetHeaders<P0>(
8736        &self,
8737        name: P0,
8738    ) -> windows_core::Result<ICoreWebView2HttpHeadersCollectionIterator>
8739    where
8740        P0: windows_core::Param<windows_core::PCWSTR>,
8741    {
8742        unsafe {
8743            let mut result__ = core::mem::zeroed();
8744            (windows_core::Interface::vtable(self).GetHeaders)(
8745                windows_core::Interface::as_raw(self),
8746                name.param().abi(),
8747                &mut result__,
8748            )
8749            .and_then(|| windows_core::Type::from_abi(result__))
8750        }
8751    }
8752    pub unsafe fn Contains<P0>(
8753        &self,
8754        name: P0,
8755        contains: *mut windows_core::BOOL,
8756    ) -> windows_core::Result<()>
8757    where
8758        P0: windows_core::Param<windows_core::PCWSTR>,
8759    {
8760        unsafe {
8761            (windows_core::Interface::vtable(self).Contains)(
8762                windows_core::Interface::as_raw(self),
8763                name.param().abi(),
8764                contains as _,
8765            )
8766            .ok()
8767        }
8768    }
8769    pub unsafe fn SetHeader<P0, P1>(&self, name: P0, value: P1) -> windows_core::Result<()>
8770    where
8771        P0: windows_core::Param<windows_core::PCWSTR>,
8772        P1: windows_core::Param<windows_core::PCWSTR>,
8773    {
8774        unsafe {
8775            (windows_core::Interface::vtable(self).SetHeader)(
8776                windows_core::Interface::as_raw(self),
8777                name.param().abi(),
8778                value.param().abi(),
8779            )
8780            .ok()
8781        }
8782    }
8783    pub unsafe fn RemoveHeader<P0>(&self, name: P0) -> windows_core::Result<()>
8784    where
8785        P0: windows_core::Param<windows_core::PCWSTR>,
8786    {
8787        unsafe {
8788            (windows_core::Interface::vtable(self).RemoveHeader)(
8789                windows_core::Interface::as_raw(self),
8790                name.param().abi(),
8791            )
8792            .ok()
8793        }
8794    }
8795    pub unsafe fn GetIterator(
8796        &self,
8797    ) -> windows_core::Result<ICoreWebView2HttpHeadersCollectionIterator> {
8798        unsafe {
8799            let mut result__ = core::mem::zeroed();
8800            (windows_core::Interface::vtable(self).GetIterator)(
8801                windows_core::Interface::as_raw(self),
8802                &mut result__,
8803            )
8804            .and_then(|| windows_core::Type::from_abi(result__))
8805        }
8806    }
8807}
8808#[repr(C)]
8809#[doc(hidden)]
8810pub struct ICoreWebView2HttpRequestHeaders_Vtbl {
8811    pub base__: windows_core::IUnknown_Vtbl,
8812    pub GetHeader: unsafe extern "system" fn(
8813        *mut core::ffi::c_void,
8814        windows_core::PCWSTR,
8815        *mut windows_core::PWSTR,
8816    ) -> windows_core::HRESULT,
8817    pub GetHeaders: unsafe extern "system" fn(
8818        *mut core::ffi::c_void,
8819        windows_core::PCWSTR,
8820        *mut *mut core::ffi::c_void,
8821    ) -> windows_core::HRESULT,
8822    pub Contains: unsafe extern "system" fn(
8823        *mut core::ffi::c_void,
8824        windows_core::PCWSTR,
8825        *mut windows_core::BOOL,
8826    ) -> windows_core::HRESULT,
8827    pub SetHeader: unsafe extern "system" fn(
8828        *mut core::ffi::c_void,
8829        windows_core::PCWSTR,
8830        windows_core::PCWSTR,
8831    ) -> windows_core::HRESULT,
8832    pub RemoveHeader: unsafe extern "system" fn(
8833        *mut core::ffi::c_void,
8834        windows_core::PCWSTR,
8835    ) -> windows_core::HRESULT,
8836    pub GetIterator: unsafe extern "system" fn(
8837        *mut core::ffi::c_void,
8838        *mut *mut core::ffi::c_void,
8839    ) -> windows_core::HRESULT,
8840}
8841pub trait ICoreWebView2HttpRequestHeaders_Impl: windows_core::IUnknownImpl {
8842    fn GetHeader(
8843        &self,
8844        name: &windows_core::PCWSTR,
8845        value: *mut windows_core::PWSTR,
8846    ) -> windows_core::Result<()>;
8847    fn GetHeaders(
8848        &self,
8849        name: &windows_core::PCWSTR,
8850    ) -> windows_core::Result<ICoreWebView2HttpHeadersCollectionIterator>;
8851    fn Contains(
8852        &self,
8853        name: &windows_core::PCWSTR,
8854        contains: *mut windows_core::BOOL,
8855    ) -> windows_core::Result<()>;
8856    fn SetHeader(
8857        &self,
8858        name: &windows_core::PCWSTR,
8859        value: &windows_core::PCWSTR,
8860    ) -> windows_core::Result<()>;
8861    fn RemoveHeader(&self, name: &windows_core::PCWSTR) -> windows_core::Result<()>;
8862    fn GetIterator(&self) -> windows_core::Result<ICoreWebView2HttpHeadersCollectionIterator>;
8863}
8864impl ICoreWebView2HttpRequestHeaders_Vtbl {
8865    pub const fn new<Identity: ICoreWebView2HttpRequestHeaders_Impl, const OFFSET: isize>() -> Self
8866    {
8867        unsafe extern "system" fn GetHeader<
8868            Identity: ICoreWebView2HttpRequestHeaders_Impl,
8869            const OFFSET: isize,
8870        >(
8871            this: *mut core::ffi::c_void,
8872            name: windows_core::PCWSTR,
8873            value: *mut windows_core::PWSTR,
8874        ) -> windows_core::HRESULT {
8875            unsafe {
8876                let this: &Identity =
8877                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
8878                ICoreWebView2HttpRequestHeaders_Impl::GetHeader(
8879                    this,
8880                    core::mem::transmute(&name),
8881                    core::mem::transmute_copy(&value),
8882                )
8883                .into()
8884            }
8885        }
8886        unsafe extern "system" fn GetHeaders<
8887            Identity: ICoreWebView2HttpRequestHeaders_Impl,
8888            const OFFSET: isize,
8889        >(
8890            this: *mut core::ffi::c_void,
8891            name: windows_core::PCWSTR,
8892            iterator: *mut *mut core::ffi::c_void,
8893        ) -> windows_core::HRESULT {
8894            unsafe {
8895                let this: &Identity =
8896                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
8897                match ICoreWebView2HttpRequestHeaders_Impl::GetHeaders(
8898                    this,
8899                    core::mem::transmute(&name),
8900                ) {
8901                    Ok(ok__) => {
8902                        iterator.write(core::mem::transmute(ok__));
8903                        windows_core::HRESULT(0)
8904                    }
8905                    Err(err) => err.into(),
8906                }
8907            }
8908        }
8909        unsafe extern "system" fn Contains<
8910            Identity: ICoreWebView2HttpRequestHeaders_Impl,
8911            const OFFSET: isize,
8912        >(
8913            this: *mut core::ffi::c_void,
8914            name: windows_core::PCWSTR,
8915            contains: *mut windows_core::BOOL,
8916        ) -> windows_core::HRESULT {
8917            unsafe {
8918                let this: &Identity =
8919                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
8920                ICoreWebView2HttpRequestHeaders_Impl::Contains(
8921                    this,
8922                    core::mem::transmute(&name),
8923                    core::mem::transmute_copy(&contains),
8924                )
8925                .into()
8926            }
8927        }
8928        unsafe extern "system" fn SetHeader<
8929            Identity: ICoreWebView2HttpRequestHeaders_Impl,
8930            const OFFSET: isize,
8931        >(
8932            this: *mut core::ffi::c_void,
8933            name: windows_core::PCWSTR,
8934            value: windows_core::PCWSTR,
8935        ) -> windows_core::HRESULT {
8936            unsafe {
8937                let this: &Identity =
8938                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
8939                ICoreWebView2HttpRequestHeaders_Impl::SetHeader(
8940                    this,
8941                    core::mem::transmute(&name),
8942                    core::mem::transmute(&value),
8943                )
8944                .into()
8945            }
8946        }
8947        unsafe extern "system" fn RemoveHeader<
8948            Identity: ICoreWebView2HttpRequestHeaders_Impl,
8949            const OFFSET: isize,
8950        >(
8951            this: *mut core::ffi::c_void,
8952            name: windows_core::PCWSTR,
8953        ) -> windows_core::HRESULT {
8954            unsafe {
8955                let this: &Identity =
8956                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
8957                ICoreWebView2HttpRequestHeaders_Impl::RemoveHeader(
8958                    this,
8959                    core::mem::transmute(&name),
8960                )
8961                .into()
8962            }
8963        }
8964        unsafe extern "system" fn GetIterator<
8965            Identity: ICoreWebView2HttpRequestHeaders_Impl,
8966            const OFFSET: isize,
8967        >(
8968            this: *mut core::ffi::c_void,
8969            iterator: *mut *mut core::ffi::c_void,
8970        ) -> windows_core::HRESULT {
8971            unsafe {
8972                let this: &Identity =
8973                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
8974                match ICoreWebView2HttpRequestHeaders_Impl::GetIterator(this) {
8975                    Ok(ok__) => {
8976                        iterator.write(core::mem::transmute(ok__));
8977                        windows_core::HRESULT(0)
8978                    }
8979                    Err(err) => err.into(),
8980                }
8981            }
8982        }
8983        Self {
8984            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
8985            GetHeader: GetHeader::<Identity, OFFSET>,
8986            GetHeaders: GetHeaders::<Identity, OFFSET>,
8987            Contains: Contains::<Identity, OFFSET>,
8988            SetHeader: SetHeader::<Identity, OFFSET>,
8989            RemoveHeader: RemoveHeader::<Identity, OFFSET>,
8990            GetIterator: GetIterator::<Identity, OFFSET>,
8991        }
8992    }
8993    pub fn matches(iid: &windows_core::GUID) -> bool {
8994        iid == &<ICoreWebView2HttpRequestHeaders as windows_core::Interface>::IID
8995    }
8996}
8997impl windows_core::RuntimeName for ICoreWebView2HttpRequestHeaders {}
8998windows_core::imp::define_interface!(
8999    ICoreWebView2HttpResponseHeaders,
9000    ICoreWebView2HttpResponseHeaders_Vtbl,
9001    0x03c5ff5a_9b45_4a88_881c_89a9f328619c
9002);
9003windows_core::imp::interface_hierarchy!(ICoreWebView2HttpResponseHeaders, windows_core::IUnknown);
9004impl ICoreWebView2HttpResponseHeaders {
9005    pub unsafe fn AppendHeader<P0, P1>(&self, name: P0, value: P1) -> windows_core::Result<()>
9006    where
9007        P0: windows_core::Param<windows_core::PCWSTR>,
9008        P1: windows_core::Param<windows_core::PCWSTR>,
9009    {
9010        unsafe {
9011            (windows_core::Interface::vtable(self).AppendHeader)(
9012                windows_core::Interface::as_raw(self),
9013                name.param().abi(),
9014                value.param().abi(),
9015            )
9016            .ok()
9017        }
9018    }
9019    pub unsafe fn Contains<P0>(
9020        &self,
9021        name: P0,
9022        contains: *mut windows_core::BOOL,
9023    ) -> windows_core::Result<()>
9024    where
9025        P0: windows_core::Param<windows_core::PCWSTR>,
9026    {
9027        unsafe {
9028            (windows_core::Interface::vtable(self).Contains)(
9029                windows_core::Interface::as_raw(self),
9030                name.param().abi(),
9031                contains as _,
9032            )
9033            .ok()
9034        }
9035    }
9036    pub unsafe fn GetHeader<P0>(
9037        &self,
9038        name: P0,
9039        value: *mut windows_core::PWSTR,
9040    ) -> windows_core::Result<()>
9041    where
9042        P0: windows_core::Param<windows_core::PCWSTR>,
9043    {
9044        unsafe {
9045            (windows_core::Interface::vtable(self).GetHeader)(
9046                windows_core::Interface::as_raw(self),
9047                name.param().abi(),
9048                value as _,
9049            )
9050            .ok()
9051        }
9052    }
9053    pub unsafe fn GetHeaders<P0>(
9054        &self,
9055        name: P0,
9056    ) -> windows_core::Result<ICoreWebView2HttpHeadersCollectionIterator>
9057    where
9058        P0: windows_core::Param<windows_core::PCWSTR>,
9059    {
9060        unsafe {
9061            let mut result__ = core::mem::zeroed();
9062            (windows_core::Interface::vtable(self).GetHeaders)(
9063                windows_core::Interface::as_raw(self),
9064                name.param().abi(),
9065                &mut result__,
9066            )
9067            .and_then(|| windows_core::Type::from_abi(result__))
9068        }
9069    }
9070    pub unsafe fn GetIterator(
9071        &self,
9072    ) -> windows_core::Result<ICoreWebView2HttpHeadersCollectionIterator> {
9073        unsafe {
9074            let mut result__ = core::mem::zeroed();
9075            (windows_core::Interface::vtable(self).GetIterator)(
9076                windows_core::Interface::as_raw(self),
9077                &mut result__,
9078            )
9079            .and_then(|| windows_core::Type::from_abi(result__))
9080        }
9081    }
9082}
9083#[repr(C)]
9084#[doc(hidden)]
9085pub struct ICoreWebView2HttpResponseHeaders_Vtbl {
9086    pub base__: windows_core::IUnknown_Vtbl,
9087    pub AppendHeader: unsafe extern "system" fn(
9088        *mut core::ffi::c_void,
9089        windows_core::PCWSTR,
9090        windows_core::PCWSTR,
9091    ) -> windows_core::HRESULT,
9092    pub Contains: unsafe extern "system" fn(
9093        *mut core::ffi::c_void,
9094        windows_core::PCWSTR,
9095        *mut windows_core::BOOL,
9096    ) -> windows_core::HRESULT,
9097    pub GetHeader: unsafe extern "system" fn(
9098        *mut core::ffi::c_void,
9099        windows_core::PCWSTR,
9100        *mut windows_core::PWSTR,
9101    ) -> windows_core::HRESULT,
9102    pub GetHeaders: unsafe extern "system" fn(
9103        *mut core::ffi::c_void,
9104        windows_core::PCWSTR,
9105        *mut *mut core::ffi::c_void,
9106    ) -> windows_core::HRESULT,
9107    pub GetIterator: unsafe extern "system" fn(
9108        *mut core::ffi::c_void,
9109        *mut *mut core::ffi::c_void,
9110    ) -> windows_core::HRESULT,
9111}
9112pub trait ICoreWebView2HttpResponseHeaders_Impl: windows_core::IUnknownImpl {
9113    fn AppendHeader(
9114        &self,
9115        name: &windows_core::PCWSTR,
9116        value: &windows_core::PCWSTR,
9117    ) -> windows_core::Result<()>;
9118    fn Contains(
9119        &self,
9120        name: &windows_core::PCWSTR,
9121        contains: *mut windows_core::BOOL,
9122    ) -> windows_core::Result<()>;
9123    fn GetHeader(
9124        &self,
9125        name: &windows_core::PCWSTR,
9126        value: *mut windows_core::PWSTR,
9127    ) -> windows_core::Result<()>;
9128    fn GetHeaders(
9129        &self,
9130        name: &windows_core::PCWSTR,
9131    ) -> windows_core::Result<ICoreWebView2HttpHeadersCollectionIterator>;
9132    fn GetIterator(&self) -> windows_core::Result<ICoreWebView2HttpHeadersCollectionIterator>;
9133}
9134impl ICoreWebView2HttpResponseHeaders_Vtbl {
9135    pub const fn new<Identity: ICoreWebView2HttpResponseHeaders_Impl, const OFFSET: isize>() -> Self
9136    {
9137        unsafe extern "system" fn AppendHeader<
9138            Identity: ICoreWebView2HttpResponseHeaders_Impl,
9139            const OFFSET: isize,
9140        >(
9141            this: *mut core::ffi::c_void,
9142            name: windows_core::PCWSTR,
9143            value: windows_core::PCWSTR,
9144        ) -> windows_core::HRESULT {
9145            unsafe {
9146                let this: &Identity =
9147                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
9148                ICoreWebView2HttpResponseHeaders_Impl::AppendHeader(
9149                    this,
9150                    core::mem::transmute(&name),
9151                    core::mem::transmute(&value),
9152                )
9153                .into()
9154            }
9155        }
9156        unsafe extern "system" fn Contains<
9157            Identity: ICoreWebView2HttpResponseHeaders_Impl,
9158            const OFFSET: isize,
9159        >(
9160            this: *mut core::ffi::c_void,
9161            name: windows_core::PCWSTR,
9162            contains: *mut windows_core::BOOL,
9163        ) -> windows_core::HRESULT {
9164            unsafe {
9165                let this: &Identity =
9166                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
9167                ICoreWebView2HttpResponseHeaders_Impl::Contains(
9168                    this,
9169                    core::mem::transmute(&name),
9170                    core::mem::transmute_copy(&contains),
9171                )
9172                .into()
9173            }
9174        }
9175        unsafe extern "system" fn GetHeader<
9176            Identity: ICoreWebView2HttpResponseHeaders_Impl,
9177            const OFFSET: isize,
9178        >(
9179            this: *mut core::ffi::c_void,
9180            name: windows_core::PCWSTR,
9181            value: *mut windows_core::PWSTR,
9182        ) -> windows_core::HRESULT {
9183            unsafe {
9184                let this: &Identity =
9185                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
9186                ICoreWebView2HttpResponseHeaders_Impl::GetHeader(
9187                    this,
9188                    core::mem::transmute(&name),
9189                    core::mem::transmute_copy(&value),
9190                )
9191                .into()
9192            }
9193        }
9194        unsafe extern "system" fn GetHeaders<
9195            Identity: ICoreWebView2HttpResponseHeaders_Impl,
9196            const OFFSET: isize,
9197        >(
9198            this: *mut core::ffi::c_void,
9199            name: windows_core::PCWSTR,
9200            iterator: *mut *mut core::ffi::c_void,
9201        ) -> windows_core::HRESULT {
9202            unsafe {
9203                let this: &Identity =
9204                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
9205                match ICoreWebView2HttpResponseHeaders_Impl::GetHeaders(
9206                    this,
9207                    core::mem::transmute(&name),
9208                ) {
9209                    Ok(ok__) => {
9210                        iterator.write(core::mem::transmute(ok__));
9211                        windows_core::HRESULT(0)
9212                    }
9213                    Err(err) => err.into(),
9214                }
9215            }
9216        }
9217        unsafe extern "system" fn GetIterator<
9218            Identity: ICoreWebView2HttpResponseHeaders_Impl,
9219            const OFFSET: isize,
9220        >(
9221            this: *mut core::ffi::c_void,
9222            iterator: *mut *mut core::ffi::c_void,
9223        ) -> windows_core::HRESULT {
9224            unsafe {
9225                let this: &Identity =
9226                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
9227                match ICoreWebView2HttpResponseHeaders_Impl::GetIterator(this) {
9228                    Ok(ok__) => {
9229                        iterator.write(core::mem::transmute(ok__));
9230                        windows_core::HRESULT(0)
9231                    }
9232                    Err(err) => err.into(),
9233                }
9234            }
9235        }
9236        Self {
9237            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
9238            AppendHeader: AppendHeader::<Identity, OFFSET>,
9239            Contains: Contains::<Identity, OFFSET>,
9240            GetHeader: GetHeader::<Identity, OFFSET>,
9241            GetHeaders: GetHeaders::<Identity, OFFSET>,
9242            GetIterator: GetIterator::<Identity, OFFSET>,
9243        }
9244    }
9245    pub fn matches(iid: &windows_core::GUID) -> bool {
9246        iid == &<ICoreWebView2HttpResponseHeaders as windows_core::Interface>::IID
9247    }
9248}
9249impl windows_core::RuntimeName for ICoreWebView2HttpResponseHeaders {}
9250windows_core::imp::define_interface!(
9251    ICoreWebView2Interop,
9252    ICoreWebView2Interop_Vtbl,
9253    0x912b34a7_d10b_49c4_af18_7cb7e604e01a
9254);
9255windows_core::imp::interface_hierarchy!(ICoreWebView2Interop, windows_core::IUnknown);
9256impl ICoreWebView2Interop {
9257    pub unsafe fn AddHostObjectToScript<P0>(
9258        &self,
9259        name: P0,
9260        object: *mut windows::Win32::System::Variant::VARIANT,
9261    ) -> windows_core::Result<()>
9262    where
9263        P0: windows_core::Param<windows_core::PCWSTR>,
9264    {
9265        unsafe {
9266            (windows_core::Interface::vtable(self).AddHostObjectToScript)(
9267                windows_core::Interface::as_raw(self),
9268                name.param().abi(),
9269                core::mem::transmute(object),
9270            )
9271            .ok()
9272        }
9273    }
9274}
9275#[repr(C)]
9276#[doc(hidden)]
9277pub struct ICoreWebView2Interop_Vtbl {
9278    pub base__: windows_core::IUnknown_Vtbl,
9279    pub AddHostObjectToScript: unsafe extern "system" fn(
9280        *mut core::ffi::c_void,
9281        windows_core::PCWSTR,
9282        *mut windows::Win32::System::Variant::VARIANT,
9283    ) -> windows_core::HRESULT,
9284}
9285pub trait ICoreWebView2Interop_Impl: windows_core::IUnknownImpl {
9286    fn AddHostObjectToScript(
9287        &self,
9288        name: &windows_core::PCWSTR,
9289        object: *mut windows::Win32::System::Variant::VARIANT,
9290    ) -> windows_core::Result<()>;
9291}
9292impl ICoreWebView2Interop_Vtbl {
9293    pub const fn new<Identity: ICoreWebView2Interop_Impl, const OFFSET: isize>() -> Self {
9294        unsafe extern "system" fn AddHostObjectToScript<
9295            Identity: ICoreWebView2Interop_Impl,
9296            const OFFSET: isize,
9297        >(
9298            this: *mut core::ffi::c_void,
9299            name: windows_core::PCWSTR,
9300            object: *mut windows::Win32::System::Variant::VARIANT,
9301        ) -> windows_core::HRESULT {
9302            unsafe {
9303                let this: &Identity =
9304                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
9305                ICoreWebView2Interop_Impl::AddHostObjectToScript(
9306                    this,
9307                    core::mem::transmute(&name),
9308                    core::mem::transmute_copy(&object),
9309                )
9310                .into()
9311            }
9312        }
9313        Self {
9314            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
9315            AddHostObjectToScript: AddHostObjectToScript::<Identity, OFFSET>,
9316        }
9317    }
9318    pub fn matches(iid: &windows_core::GUID) -> bool {
9319        iid == &<ICoreWebView2Interop as windows_core::Interface>::IID
9320    }
9321}
9322impl windows_core::RuntimeName for ICoreWebView2Interop {}
9323windows_core::imp::define_interface!(
9324    ICoreWebView2MoveFocusRequestedEventArgs,
9325    ICoreWebView2MoveFocusRequestedEventArgs_Vtbl,
9326    0x2d6aa13b_3839_4a15_92fc_d88b3c0d9c9d
9327);
9328windows_core::imp::interface_hierarchy!(
9329    ICoreWebView2MoveFocusRequestedEventArgs,
9330    windows_core::IUnknown
9331);
9332impl ICoreWebView2MoveFocusRequestedEventArgs {
9333    pub unsafe fn Reason(&self) -> windows_core::Result<COREWEBVIEW2_MOVE_FOCUS_REASON> {
9334        unsafe {
9335            let mut result__ = core::mem::zeroed();
9336            (windows_core::Interface::vtable(self).Reason)(
9337                windows_core::Interface::as_raw(self),
9338                &mut result__,
9339            )
9340            .map(|| result__)
9341        }
9342    }
9343    pub unsafe fn Handled(&self) -> windows_core::Result<windows_core::BOOL> {
9344        unsafe {
9345            let mut result__ = core::mem::zeroed();
9346            (windows_core::Interface::vtable(self).Handled)(
9347                windows_core::Interface::as_raw(self),
9348                &mut result__,
9349            )
9350            .map(|| result__)
9351        }
9352    }
9353    pub unsafe fn SetHandled(&self, value: bool) -> windows_core::Result<()> {
9354        unsafe {
9355            (windows_core::Interface::vtable(self).SetHandled)(
9356                windows_core::Interface::as_raw(self),
9357                value.into(),
9358            )
9359            .ok()
9360        }
9361    }
9362}
9363#[repr(C)]
9364#[doc(hidden)]
9365pub struct ICoreWebView2MoveFocusRequestedEventArgs_Vtbl {
9366    pub base__: windows_core::IUnknown_Vtbl,
9367    pub Reason: unsafe extern "system" fn(
9368        *mut core::ffi::c_void,
9369        *mut COREWEBVIEW2_MOVE_FOCUS_REASON,
9370    ) -> windows_core::HRESULT,
9371    pub Handled: unsafe extern "system" fn(
9372        *mut core::ffi::c_void,
9373        *mut windows_core::BOOL,
9374    ) -> windows_core::HRESULT,
9375    pub SetHandled: unsafe extern "system" fn(
9376        *mut core::ffi::c_void,
9377        windows_core::BOOL,
9378    ) -> windows_core::HRESULT,
9379}
9380pub trait ICoreWebView2MoveFocusRequestedEventArgs_Impl: windows_core::IUnknownImpl {
9381    fn Reason(&self) -> windows_core::Result<COREWEBVIEW2_MOVE_FOCUS_REASON>;
9382    fn Handled(&self) -> windows_core::Result<windows_core::BOOL>;
9383    fn SetHandled(&self, value: windows_core::BOOL) -> windows_core::Result<()>;
9384}
9385impl ICoreWebView2MoveFocusRequestedEventArgs_Vtbl {
9386    pub const fn new<
9387        Identity: ICoreWebView2MoveFocusRequestedEventArgs_Impl,
9388        const OFFSET: isize,
9389    >() -> Self {
9390        unsafe extern "system" fn Reason<
9391            Identity: ICoreWebView2MoveFocusRequestedEventArgs_Impl,
9392            const OFFSET: isize,
9393        >(
9394            this: *mut core::ffi::c_void,
9395            reason: *mut COREWEBVIEW2_MOVE_FOCUS_REASON,
9396        ) -> windows_core::HRESULT {
9397            unsafe {
9398                let this: &Identity =
9399                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
9400                match ICoreWebView2MoveFocusRequestedEventArgs_Impl::Reason(this) {
9401                    Ok(ok__) => {
9402                        reason.write(core::mem::transmute(ok__));
9403                        windows_core::HRESULT(0)
9404                    }
9405                    Err(err) => err.into(),
9406                }
9407            }
9408        }
9409        unsafe extern "system" fn Handled<
9410            Identity: ICoreWebView2MoveFocusRequestedEventArgs_Impl,
9411            const OFFSET: isize,
9412        >(
9413            this: *mut core::ffi::c_void,
9414            value: *mut windows_core::BOOL,
9415        ) -> windows_core::HRESULT {
9416            unsafe {
9417                let this: &Identity =
9418                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
9419                match ICoreWebView2MoveFocusRequestedEventArgs_Impl::Handled(this) {
9420                    Ok(ok__) => {
9421                        value.write(core::mem::transmute(ok__));
9422                        windows_core::HRESULT(0)
9423                    }
9424                    Err(err) => err.into(),
9425                }
9426            }
9427        }
9428        unsafe extern "system" fn SetHandled<
9429            Identity: ICoreWebView2MoveFocusRequestedEventArgs_Impl,
9430            const OFFSET: isize,
9431        >(
9432            this: *mut core::ffi::c_void,
9433            value: windows_core::BOOL,
9434        ) -> windows_core::HRESULT {
9435            unsafe {
9436                let this: &Identity =
9437                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
9438                ICoreWebView2MoveFocusRequestedEventArgs_Impl::SetHandled(
9439                    this,
9440                    core::mem::transmute_copy(&value),
9441                )
9442                .into()
9443            }
9444        }
9445        Self {
9446            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
9447            Reason: Reason::<Identity, OFFSET>,
9448            Handled: Handled::<Identity, OFFSET>,
9449            SetHandled: SetHandled::<Identity, OFFSET>,
9450        }
9451    }
9452    pub fn matches(iid: &windows_core::GUID) -> bool {
9453        iid == &<ICoreWebView2MoveFocusRequestedEventArgs as windows_core::Interface>::IID
9454    }
9455}
9456impl windows_core::RuntimeName for ICoreWebView2MoveFocusRequestedEventArgs {}
9457windows_core::imp::define_interface!(
9458    ICoreWebView2MoveFocusRequestedEventHandler,
9459    ICoreWebView2MoveFocusRequestedEventHandler_Vtbl,
9460    0x69035451_6dc7_4cb8_9bce_b2bd70ad289f
9461);
9462windows_core::imp::interface_hierarchy!(
9463    ICoreWebView2MoveFocusRequestedEventHandler,
9464    windows_core::IUnknown
9465);
9466impl ICoreWebView2MoveFocusRequestedEventHandler {
9467    pub unsafe fn Invoke<P0, P1>(&self, sender: P0, args: P1) -> windows_core::Result<()>
9468    where
9469        P0: windows_core::Param<ICoreWebView2Controller>,
9470        P1: windows_core::Param<ICoreWebView2MoveFocusRequestedEventArgs>,
9471    {
9472        unsafe {
9473            (windows_core::Interface::vtable(self).Invoke)(
9474                windows_core::Interface::as_raw(self),
9475                sender.param().abi(),
9476                args.param().abi(),
9477            )
9478            .ok()
9479        }
9480    }
9481}
9482#[repr(C)]
9483#[doc(hidden)]
9484pub struct ICoreWebView2MoveFocusRequestedEventHandler_Vtbl {
9485    pub base__: windows_core::IUnknown_Vtbl,
9486    pub Invoke: unsafe extern "system" fn(
9487        *mut core::ffi::c_void,
9488        *mut core::ffi::c_void,
9489        *mut core::ffi::c_void,
9490    ) -> windows_core::HRESULT,
9491}
9492pub trait ICoreWebView2MoveFocusRequestedEventHandler_Impl: windows_core::IUnknownImpl {
9493    fn Invoke(
9494        &self,
9495        sender: windows_core::Ref<ICoreWebView2Controller>,
9496        args: windows_core::Ref<ICoreWebView2MoveFocusRequestedEventArgs>,
9497    ) -> windows_core::Result<()>;
9498}
9499impl ICoreWebView2MoveFocusRequestedEventHandler_Vtbl {
9500    pub const fn new<
9501        Identity: ICoreWebView2MoveFocusRequestedEventHandler_Impl,
9502        const OFFSET: isize,
9503    >() -> Self {
9504        unsafe extern "system" fn Invoke<
9505            Identity: ICoreWebView2MoveFocusRequestedEventHandler_Impl,
9506            const OFFSET: isize,
9507        >(
9508            this: *mut core::ffi::c_void,
9509            sender: *mut core::ffi::c_void,
9510            args: *mut core::ffi::c_void,
9511        ) -> windows_core::HRESULT {
9512            unsafe {
9513                let this: &Identity =
9514                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
9515                ICoreWebView2MoveFocusRequestedEventHandler_Impl::Invoke(
9516                    this,
9517                    core::mem::transmute_copy(&sender),
9518                    core::mem::transmute_copy(&args),
9519                )
9520                .into()
9521            }
9522        }
9523        Self {
9524            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
9525            Invoke: Invoke::<Identity, OFFSET>,
9526        }
9527    }
9528    pub fn matches(iid: &windows_core::GUID) -> bool {
9529        iid == &<ICoreWebView2MoveFocusRequestedEventHandler as windows_core::Interface>::IID
9530    }
9531}
9532impl windows_core::RuntimeName for ICoreWebView2MoveFocusRequestedEventHandler {}
9533windows_core::imp::define_interface!(
9534    ICoreWebView2NavigationCompletedEventArgs,
9535    ICoreWebView2NavigationCompletedEventArgs_Vtbl,
9536    0x30d68b7d_20d9_4752_a9ca_ec8448fbb5c1
9537);
9538windows_core::imp::interface_hierarchy!(
9539    ICoreWebView2NavigationCompletedEventArgs,
9540    windows_core::IUnknown
9541);
9542impl ICoreWebView2NavigationCompletedEventArgs {
9543    pub unsafe fn IsSuccess(&self) -> windows_core::Result<windows_core::BOOL> {
9544        unsafe {
9545            let mut result__ = core::mem::zeroed();
9546            (windows_core::Interface::vtable(self).IsSuccess)(
9547                windows_core::Interface::as_raw(self),
9548                &mut result__,
9549            )
9550            .map(|| result__)
9551        }
9552    }
9553    pub unsafe fn WebErrorStatus(&self) -> windows_core::Result<COREWEBVIEW2_WEB_ERROR_STATUS> {
9554        unsafe {
9555            let mut result__ = core::mem::zeroed();
9556            (windows_core::Interface::vtable(self).WebErrorStatus)(
9557                windows_core::Interface::as_raw(self),
9558                &mut result__,
9559            )
9560            .map(|| result__)
9561        }
9562    }
9563    pub unsafe fn NavigationId(&self) -> windows_core::Result<u64> {
9564        unsafe {
9565            let mut result__ = core::mem::zeroed();
9566            (windows_core::Interface::vtable(self).NavigationId)(
9567                windows_core::Interface::as_raw(self),
9568                &mut result__,
9569            )
9570            .map(|| result__)
9571        }
9572    }
9573}
9574#[repr(C)]
9575#[doc(hidden)]
9576pub struct ICoreWebView2NavigationCompletedEventArgs_Vtbl {
9577    pub base__: windows_core::IUnknown_Vtbl,
9578    pub IsSuccess: unsafe extern "system" fn(
9579        *mut core::ffi::c_void,
9580        *mut windows_core::BOOL,
9581    ) -> windows_core::HRESULT,
9582    pub WebErrorStatus: unsafe extern "system" fn(
9583        *mut core::ffi::c_void,
9584        *mut COREWEBVIEW2_WEB_ERROR_STATUS,
9585    ) -> windows_core::HRESULT,
9586    pub NavigationId:
9587        unsafe extern "system" fn(*mut core::ffi::c_void, *mut u64) -> windows_core::HRESULT,
9588}
9589pub trait ICoreWebView2NavigationCompletedEventArgs_Impl: windows_core::IUnknownImpl {
9590    fn IsSuccess(&self) -> windows_core::Result<windows_core::BOOL>;
9591    fn WebErrorStatus(&self) -> windows_core::Result<COREWEBVIEW2_WEB_ERROR_STATUS>;
9592    fn NavigationId(&self) -> windows_core::Result<u64>;
9593}
9594impl ICoreWebView2NavigationCompletedEventArgs_Vtbl {
9595    pub const fn new<
9596        Identity: ICoreWebView2NavigationCompletedEventArgs_Impl,
9597        const OFFSET: isize,
9598    >() -> Self {
9599        unsafe extern "system" fn IsSuccess<
9600            Identity: ICoreWebView2NavigationCompletedEventArgs_Impl,
9601            const OFFSET: isize,
9602        >(
9603            this: *mut core::ffi::c_void,
9604            issuccess: *mut windows_core::BOOL,
9605        ) -> windows_core::HRESULT {
9606            unsafe {
9607                let this: &Identity =
9608                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
9609                match ICoreWebView2NavigationCompletedEventArgs_Impl::IsSuccess(this) {
9610                    Ok(ok__) => {
9611                        issuccess.write(core::mem::transmute(ok__));
9612                        windows_core::HRESULT(0)
9613                    }
9614                    Err(err) => err.into(),
9615                }
9616            }
9617        }
9618        unsafe extern "system" fn WebErrorStatus<
9619            Identity: ICoreWebView2NavigationCompletedEventArgs_Impl,
9620            const OFFSET: isize,
9621        >(
9622            this: *mut core::ffi::c_void,
9623            weberrorstatus: *mut COREWEBVIEW2_WEB_ERROR_STATUS,
9624        ) -> windows_core::HRESULT {
9625            unsafe {
9626                let this: &Identity =
9627                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
9628                match ICoreWebView2NavigationCompletedEventArgs_Impl::WebErrorStatus(this) {
9629                    Ok(ok__) => {
9630                        weberrorstatus.write(core::mem::transmute(ok__));
9631                        windows_core::HRESULT(0)
9632                    }
9633                    Err(err) => err.into(),
9634                }
9635            }
9636        }
9637        unsafe extern "system" fn NavigationId<
9638            Identity: ICoreWebView2NavigationCompletedEventArgs_Impl,
9639            const OFFSET: isize,
9640        >(
9641            this: *mut core::ffi::c_void,
9642            navigationid: *mut u64,
9643        ) -> windows_core::HRESULT {
9644            unsafe {
9645                let this: &Identity =
9646                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
9647                match ICoreWebView2NavigationCompletedEventArgs_Impl::NavigationId(this) {
9648                    Ok(ok__) => {
9649                        navigationid.write(core::mem::transmute(ok__));
9650                        windows_core::HRESULT(0)
9651                    }
9652                    Err(err) => err.into(),
9653                }
9654            }
9655        }
9656        Self {
9657            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
9658            IsSuccess: IsSuccess::<Identity, OFFSET>,
9659            WebErrorStatus: WebErrorStatus::<Identity, OFFSET>,
9660            NavigationId: NavigationId::<Identity, OFFSET>,
9661        }
9662    }
9663    pub fn matches(iid: &windows_core::GUID) -> bool {
9664        iid == &<ICoreWebView2NavigationCompletedEventArgs as windows_core::Interface>::IID
9665    }
9666}
9667impl windows_core::RuntimeName for ICoreWebView2NavigationCompletedEventArgs {}
9668windows_core::imp::define_interface!(
9669    ICoreWebView2NavigationCompletedEventHandler,
9670    ICoreWebView2NavigationCompletedEventHandler_Vtbl,
9671    0xd33a35bf_1c49_4f98_93ab_006e0533fe1c
9672);
9673windows_core::imp::interface_hierarchy!(
9674    ICoreWebView2NavigationCompletedEventHandler,
9675    windows_core::IUnknown
9676);
9677impl ICoreWebView2NavigationCompletedEventHandler {
9678    pub unsafe fn Invoke<P0, P1>(&self, sender: P0, args: P1) -> windows_core::Result<()>
9679    where
9680        P0: windows_core::Param<ICoreWebView2>,
9681        P1: windows_core::Param<ICoreWebView2NavigationCompletedEventArgs>,
9682    {
9683        unsafe {
9684            (windows_core::Interface::vtable(self).Invoke)(
9685                windows_core::Interface::as_raw(self),
9686                sender.param().abi(),
9687                args.param().abi(),
9688            )
9689            .ok()
9690        }
9691    }
9692}
9693#[repr(C)]
9694#[doc(hidden)]
9695pub struct ICoreWebView2NavigationCompletedEventHandler_Vtbl {
9696    pub base__: windows_core::IUnknown_Vtbl,
9697    pub Invoke: unsafe extern "system" fn(
9698        *mut core::ffi::c_void,
9699        *mut core::ffi::c_void,
9700        *mut core::ffi::c_void,
9701    ) -> windows_core::HRESULT,
9702}
9703pub trait ICoreWebView2NavigationCompletedEventHandler_Impl: windows_core::IUnknownImpl {
9704    fn Invoke(
9705        &self,
9706        sender: windows_core::Ref<ICoreWebView2>,
9707        args: windows_core::Ref<ICoreWebView2NavigationCompletedEventArgs>,
9708    ) -> windows_core::Result<()>;
9709}
9710impl ICoreWebView2NavigationCompletedEventHandler_Vtbl {
9711    pub const fn new<
9712        Identity: ICoreWebView2NavigationCompletedEventHandler_Impl,
9713        const OFFSET: isize,
9714    >() -> Self {
9715        unsafe extern "system" fn Invoke<
9716            Identity: ICoreWebView2NavigationCompletedEventHandler_Impl,
9717            const OFFSET: isize,
9718        >(
9719            this: *mut core::ffi::c_void,
9720            sender: *mut core::ffi::c_void,
9721            args: *mut core::ffi::c_void,
9722        ) -> windows_core::HRESULT {
9723            unsafe {
9724                let this: &Identity =
9725                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
9726                ICoreWebView2NavigationCompletedEventHandler_Impl::Invoke(
9727                    this,
9728                    core::mem::transmute_copy(&sender),
9729                    core::mem::transmute_copy(&args),
9730                )
9731                .into()
9732            }
9733        }
9734        Self {
9735            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
9736            Invoke: Invoke::<Identity, OFFSET>,
9737        }
9738    }
9739    pub fn matches(iid: &windows_core::GUID) -> bool {
9740        iid == &<ICoreWebView2NavigationCompletedEventHandler as windows_core::Interface>::IID
9741    }
9742}
9743impl windows_core::RuntimeName for ICoreWebView2NavigationCompletedEventHandler {}
9744windows_core::imp::define_interface!(
9745    ICoreWebView2NavigationStartingEventArgs,
9746    ICoreWebView2NavigationStartingEventArgs_Vtbl,
9747    0x5b495469_e119_438a_9b18_7604f25f2e49
9748);
9749windows_core::imp::interface_hierarchy!(
9750    ICoreWebView2NavigationStartingEventArgs,
9751    windows_core::IUnknown
9752);
9753impl ICoreWebView2NavigationStartingEventArgs {
9754    pub unsafe fn Uri(&self) -> windows_core::Result<windows_core::PWSTR> {
9755        unsafe {
9756            let mut result__ = core::mem::zeroed();
9757            (windows_core::Interface::vtable(self).Uri)(
9758                windows_core::Interface::as_raw(self),
9759                &mut result__,
9760            )
9761            .map(|| result__)
9762        }
9763    }
9764    pub unsafe fn IsUserInitiated(&self) -> windows_core::Result<windows_core::BOOL> {
9765        unsafe {
9766            let mut result__ = core::mem::zeroed();
9767            (windows_core::Interface::vtable(self).IsUserInitiated)(
9768                windows_core::Interface::as_raw(self),
9769                &mut result__,
9770            )
9771            .map(|| result__)
9772        }
9773    }
9774    pub unsafe fn IsRedirected(&self) -> windows_core::Result<windows_core::BOOL> {
9775        unsafe {
9776            let mut result__ = core::mem::zeroed();
9777            (windows_core::Interface::vtable(self).IsRedirected)(
9778                windows_core::Interface::as_raw(self),
9779                &mut result__,
9780            )
9781            .map(|| result__)
9782        }
9783    }
9784    pub unsafe fn RequestHeaders(&self) -> windows_core::Result<ICoreWebView2HttpRequestHeaders> {
9785        unsafe {
9786            let mut result__ = core::mem::zeroed();
9787            (windows_core::Interface::vtable(self).RequestHeaders)(
9788                windows_core::Interface::as_raw(self),
9789                &mut result__,
9790            )
9791            .and_then(|| windows_core::Type::from_abi(result__))
9792        }
9793    }
9794    pub unsafe fn Cancel(&self) -> windows_core::Result<windows_core::BOOL> {
9795        unsafe {
9796            let mut result__ = core::mem::zeroed();
9797            (windows_core::Interface::vtable(self).Cancel)(
9798                windows_core::Interface::as_raw(self),
9799                &mut result__,
9800            )
9801            .map(|| result__)
9802        }
9803    }
9804    pub unsafe fn SetCancel(&self, cancel: bool) -> windows_core::Result<()> {
9805        unsafe {
9806            (windows_core::Interface::vtable(self).SetCancel)(
9807                windows_core::Interface::as_raw(self),
9808                cancel.into(),
9809            )
9810            .ok()
9811        }
9812    }
9813    pub unsafe fn NavigationId(&self) -> windows_core::Result<u64> {
9814        unsafe {
9815            let mut result__ = core::mem::zeroed();
9816            (windows_core::Interface::vtable(self).NavigationId)(
9817                windows_core::Interface::as_raw(self),
9818                &mut result__,
9819            )
9820            .map(|| result__)
9821        }
9822    }
9823}
9824#[repr(C)]
9825#[doc(hidden)]
9826pub struct ICoreWebView2NavigationStartingEventArgs_Vtbl {
9827    pub base__: windows_core::IUnknown_Vtbl,
9828    pub Uri: unsafe extern "system" fn(
9829        *mut core::ffi::c_void,
9830        *mut windows_core::PWSTR,
9831    ) -> windows_core::HRESULT,
9832    pub IsUserInitiated: unsafe extern "system" fn(
9833        *mut core::ffi::c_void,
9834        *mut windows_core::BOOL,
9835    ) -> windows_core::HRESULT,
9836    pub IsRedirected: unsafe extern "system" fn(
9837        *mut core::ffi::c_void,
9838        *mut windows_core::BOOL,
9839    ) -> windows_core::HRESULT,
9840    pub RequestHeaders: unsafe extern "system" fn(
9841        *mut core::ffi::c_void,
9842        *mut *mut core::ffi::c_void,
9843    ) -> windows_core::HRESULT,
9844    pub Cancel: unsafe extern "system" fn(
9845        *mut core::ffi::c_void,
9846        *mut windows_core::BOOL,
9847    ) -> windows_core::HRESULT,
9848    pub SetCancel: unsafe extern "system" fn(
9849        *mut core::ffi::c_void,
9850        windows_core::BOOL,
9851    ) -> windows_core::HRESULT,
9852    pub NavigationId:
9853        unsafe extern "system" fn(*mut core::ffi::c_void, *mut u64) -> windows_core::HRESULT,
9854}
9855pub trait ICoreWebView2NavigationStartingEventArgs_Impl: windows_core::IUnknownImpl {
9856    fn Uri(&self) -> windows_core::Result<windows_core::PWSTR>;
9857    fn IsUserInitiated(&self) -> windows_core::Result<windows_core::BOOL>;
9858    fn IsRedirected(&self) -> windows_core::Result<windows_core::BOOL>;
9859    fn RequestHeaders(&self) -> windows_core::Result<ICoreWebView2HttpRequestHeaders>;
9860    fn Cancel(&self) -> windows_core::Result<windows_core::BOOL>;
9861    fn SetCancel(&self, cancel: windows_core::BOOL) -> windows_core::Result<()>;
9862    fn NavigationId(&self) -> windows_core::Result<u64>;
9863}
9864impl ICoreWebView2NavigationStartingEventArgs_Vtbl {
9865    pub const fn new<
9866        Identity: ICoreWebView2NavigationStartingEventArgs_Impl,
9867        const OFFSET: isize,
9868    >() -> Self {
9869        unsafe extern "system" fn Uri<
9870            Identity: ICoreWebView2NavigationStartingEventArgs_Impl,
9871            const OFFSET: isize,
9872        >(
9873            this: *mut core::ffi::c_void,
9874            uri: *mut windows_core::PWSTR,
9875        ) -> windows_core::HRESULT {
9876            unsafe {
9877                let this: &Identity =
9878                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
9879                match ICoreWebView2NavigationStartingEventArgs_Impl::Uri(this) {
9880                    Ok(ok__) => {
9881                        uri.write(core::mem::transmute(ok__));
9882                        windows_core::HRESULT(0)
9883                    }
9884                    Err(err) => err.into(),
9885                }
9886            }
9887        }
9888        unsafe extern "system" fn IsUserInitiated<
9889            Identity: ICoreWebView2NavigationStartingEventArgs_Impl,
9890            const OFFSET: isize,
9891        >(
9892            this: *mut core::ffi::c_void,
9893            isuserinitiated: *mut windows_core::BOOL,
9894        ) -> windows_core::HRESULT {
9895            unsafe {
9896                let this: &Identity =
9897                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
9898                match ICoreWebView2NavigationStartingEventArgs_Impl::IsUserInitiated(this) {
9899                    Ok(ok__) => {
9900                        isuserinitiated.write(core::mem::transmute(ok__));
9901                        windows_core::HRESULT(0)
9902                    }
9903                    Err(err) => err.into(),
9904                }
9905            }
9906        }
9907        unsafe extern "system" fn IsRedirected<
9908            Identity: ICoreWebView2NavigationStartingEventArgs_Impl,
9909            const OFFSET: isize,
9910        >(
9911            this: *mut core::ffi::c_void,
9912            isredirected: *mut windows_core::BOOL,
9913        ) -> windows_core::HRESULT {
9914            unsafe {
9915                let this: &Identity =
9916                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
9917                match ICoreWebView2NavigationStartingEventArgs_Impl::IsRedirected(this) {
9918                    Ok(ok__) => {
9919                        isredirected.write(core::mem::transmute(ok__));
9920                        windows_core::HRESULT(0)
9921                    }
9922                    Err(err) => err.into(),
9923                }
9924            }
9925        }
9926        unsafe extern "system" fn RequestHeaders<
9927            Identity: ICoreWebView2NavigationStartingEventArgs_Impl,
9928            const OFFSET: isize,
9929        >(
9930            this: *mut core::ffi::c_void,
9931            requestheaders: *mut *mut core::ffi::c_void,
9932        ) -> windows_core::HRESULT {
9933            unsafe {
9934                let this: &Identity =
9935                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
9936                match ICoreWebView2NavigationStartingEventArgs_Impl::RequestHeaders(this) {
9937                    Ok(ok__) => {
9938                        requestheaders.write(core::mem::transmute(ok__));
9939                        windows_core::HRESULT(0)
9940                    }
9941                    Err(err) => err.into(),
9942                }
9943            }
9944        }
9945        unsafe extern "system" fn Cancel<
9946            Identity: ICoreWebView2NavigationStartingEventArgs_Impl,
9947            const OFFSET: isize,
9948        >(
9949            this: *mut core::ffi::c_void,
9950            cancel: *mut windows_core::BOOL,
9951        ) -> windows_core::HRESULT {
9952            unsafe {
9953                let this: &Identity =
9954                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
9955                match ICoreWebView2NavigationStartingEventArgs_Impl::Cancel(this) {
9956                    Ok(ok__) => {
9957                        cancel.write(core::mem::transmute(ok__));
9958                        windows_core::HRESULT(0)
9959                    }
9960                    Err(err) => err.into(),
9961                }
9962            }
9963        }
9964        unsafe extern "system" fn SetCancel<
9965            Identity: ICoreWebView2NavigationStartingEventArgs_Impl,
9966            const OFFSET: isize,
9967        >(
9968            this: *mut core::ffi::c_void,
9969            cancel: windows_core::BOOL,
9970        ) -> windows_core::HRESULT {
9971            unsafe {
9972                let this: &Identity =
9973                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
9974                ICoreWebView2NavigationStartingEventArgs_Impl::SetCancel(
9975                    this,
9976                    core::mem::transmute_copy(&cancel),
9977                )
9978                .into()
9979            }
9980        }
9981        unsafe extern "system" fn NavigationId<
9982            Identity: ICoreWebView2NavigationStartingEventArgs_Impl,
9983            const OFFSET: isize,
9984        >(
9985            this: *mut core::ffi::c_void,
9986            navigationid: *mut u64,
9987        ) -> windows_core::HRESULT {
9988            unsafe {
9989                let this: &Identity =
9990                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
9991                match ICoreWebView2NavigationStartingEventArgs_Impl::NavigationId(this) {
9992                    Ok(ok__) => {
9993                        navigationid.write(core::mem::transmute(ok__));
9994                        windows_core::HRESULT(0)
9995                    }
9996                    Err(err) => err.into(),
9997                }
9998            }
9999        }
10000        Self {
10001            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
10002            Uri: Uri::<Identity, OFFSET>,
10003            IsUserInitiated: IsUserInitiated::<Identity, OFFSET>,
10004            IsRedirected: IsRedirected::<Identity, OFFSET>,
10005            RequestHeaders: RequestHeaders::<Identity, OFFSET>,
10006            Cancel: Cancel::<Identity, OFFSET>,
10007            SetCancel: SetCancel::<Identity, OFFSET>,
10008            NavigationId: NavigationId::<Identity, OFFSET>,
10009        }
10010    }
10011    pub fn matches(iid: &windows_core::GUID) -> bool {
10012        iid == &<ICoreWebView2NavigationStartingEventArgs as windows_core::Interface>::IID
10013    }
10014}
10015impl windows_core::RuntimeName for ICoreWebView2NavigationStartingEventArgs {}
10016windows_core::imp::define_interface!(
10017    ICoreWebView2NavigationStartingEventHandler,
10018    ICoreWebView2NavigationStartingEventHandler_Vtbl,
10019    0x9adbe429_f36d_432b_9ddc_f8881fbd76e3
10020);
10021windows_core::imp::interface_hierarchy!(
10022    ICoreWebView2NavigationStartingEventHandler,
10023    windows_core::IUnknown
10024);
10025impl ICoreWebView2NavigationStartingEventHandler {
10026    pub unsafe fn Invoke<P0, P1>(&self, sender: P0, args: P1) -> windows_core::Result<()>
10027    where
10028        P0: windows_core::Param<ICoreWebView2>,
10029        P1: windows_core::Param<ICoreWebView2NavigationStartingEventArgs>,
10030    {
10031        unsafe {
10032            (windows_core::Interface::vtable(self).Invoke)(
10033                windows_core::Interface::as_raw(self),
10034                sender.param().abi(),
10035                args.param().abi(),
10036            )
10037            .ok()
10038        }
10039    }
10040}
10041#[repr(C)]
10042#[doc(hidden)]
10043pub struct ICoreWebView2NavigationStartingEventHandler_Vtbl {
10044    pub base__: windows_core::IUnknown_Vtbl,
10045    pub Invoke: unsafe extern "system" fn(
10046        *mut core::ffi::c_void,
10047        *mut core::ffi::c_void,
10048        *mut core::ffi::c_void,
10049    ) -> windows_core::HRESULT,
10050}
10051pub trait ICoreWebView2NavigationStartingEventHandler_Impl: windows_core::IUnknownImpl {
10052    fn Invoke(
10053        &self,
10054        sender: windows_core::Ref<ICoreWebView2>,
10055        args: windows_core::Ref<ICoreWebView2NavigationStartingEventArgs>,
10056    ) -> windows_core::Result<()>;
10057}
10058impl ICoreWebView2NavigationStartingEventHandler_Vtbl {
10059    pub const fn new<
10060        Identity: ICoreWebView2NavigationStartingEventHandler_Impl,
10061        const OFFSET: isize,
10062    >() -> Self {
10063        unsafe extern "system" fn Invoke<
10064            Identity: ICoreWebView2NavigationStartingEventHandler_Impl,
10065            const OFFSET: isize,
10066        >(
10067            this: *mut core::ffi::c_void,
10068            sender: *mut core::ffi::c_void,
10069            args: *mut core::ffi::c_void,
10070        ) -> windows_core::HRESULT {
10071            unsafe {
10072                let this: &Identity =
10073                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
10074                ICoreWebView2NavigationStartingEventHandler_Impl::Invoke(
10075                    this,
10076                    core::mem::transmute_copy(&sender),
10077                    core::mem::transmute_copy(&args),
10078                )
10079                .into()
10080            }
10081        }
10082        Self {
10083            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
10084            Invoke: Invoke::<Identity, OFFSET>,
10085        }
10086    }
10087    pub fn matches(iid: &windows_core::GUID) -> bool {
10088        iid == &<ICoreWebView2NavigationStartingEventHandler as windows_core::Interface>::IID
10089    }
10090}
10091impl windows_core::RuntimeName for ICoreWebView2NavigationStartingEventHandler {}
10092windows_core::imp::define_interface!(
10093    ICoreWebView2NewBrowserVersionAvailableEventHandler,
10094    ICoreWebView2NewBrowserVersionAvailableEventHandler_Vtbl,
10095    0xf9a2976e_d34e_44fc_adee_81b6b57ca914
10096);
10097windows_core::imp::interface_hierarchy!(
10098    ICoreWebView2NewBrowserVersionAvailableEventHandler,
10099    windows_core::IUnknown
10100);
10101impl ICoreWebView2NewBrowserVersionAvailableEventHandler {
10102    pub unsafe fn Invoke<P0, P1>(&self, sender: P0, args: P1) -> windows_core::Result<()>
10103    where
10104        P0: windows_core::Param<ICoreWebView2Environment>,
10105        P1: windows_core::Param<windows_core::IUnknown>,
10106    {
10107        unsafe {
10108            (windows_core::Interface::vtable(self).Invoke)(
10109                windows_core::Interface::as_raw(self),
10110                sender.param().abi(),
10111                args.param().abi(),
10112            )
10113            .ok()
10114        }
10115    }
10116}
10117#[repr(C)]
10118#[doc(hidden)]
10119pub struct ICoreWebView2NewBrowserVersionAvailableEventHandler_Vtbl {
10120    pub base__: windows_core::IUnknown_Vtbl,
10121    pub Invoke: unsafe extern "system" fn(
10122        *mut core::ffi::c_void,
10123        *mut core::ffi::c_void,
10124        *mut core::ffi::c_void,
10125    ) -> windows_core::HRESULT,
10126}
10127pub trait ICoreWebView2NewBrowserVersionAvailableEventHandler_Impl:
10128    windows_core::IUnknownImpl
10129{
10130    fn Invoke(
10131        &self,
10132        sender: windows_core::Ref<ICoreWebView2Environment>,
10133        args: windows_core::Ref<windows_core::IUnknown>,
10134    ) -> windows_core::Result<()>;
10135}
10136impl ICoreWebView2NewBrowserVersionAvailableEventHandler_Vtbl {
10137    pub const fn new<
10138        Identity: ICoreWebView2NewBrowserVersionAvailableEventHandler_Impl,
10139        const OFFSET: isize,
10140    >() -> Self {
10141        unsafe extern "system" fn Invoke<
10142            Identity: ICoreWebView2NewBrowserVersionAvailableEventHandler_Impl,
10143            const OFFSET: isize,
10144        >(
10145            this: *mut core::ffi::c_void,
10146            sender: *mut core::ffi::c_void,
10147            args: *mut core::ffi::c_void,
10148        ) -> windows_core::HRESULT {
10149            unsafe {
10150                let this: &Identity =
10151                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
10152                ICoreWebView2NewBrowserVersionAvailableEventHandler_Impl::Invoke(
10153                    this,
10154                    core::mem::transmute_copy(&sender),
10155                    core::mem::transmute_copy(&args),
10156                )
10157                .into()
10158            }
10159        }
10160        Self {
10161            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
10162            Invoke: Invoke::<Identity, OFFSET>,
10163        }
10164    }
10165    pub fn matches(iid: &windows_core::GUID) -> bool {
10166        iid == & < ICoreWebView2NewBrowserVersionAvailableEventHandler as windows_core::Interface >::IID
10167    }
10168}
10169impl windows_core::RuntimeName for ICoreWebView2NewBrowserVersionAvailableEventHandler {}
10170windows_core::imp::define_interface!(
10171    ICoreWebView2NewWindowRequestedEventArgs,
10172    ICoreWebView2NewWindowRequestedEventArgs_Vtbl,
10173    0x34acb11c_fc37_4418_9132_f9c21d1eafb9
10174);
10175windows_core::imp::interface_hierarchy!(
10176    ICoreWebView2NewWindowRequestedEventArgs,
10177    windows_core::IUnknown
10178);
10179impl ICoreWebView2NewWindowRequestedEventArgs {
10180    pub unsafe fn Uri(&self) -> windows_core::Result<windows_core::PWSTR> {
10181        unsafe {
10182            let mut result__ = core::mem::zeroed();
10183            (windows_core::Interface::vtable(self).Uri)(
10184                windows_core::Interface::as_raw(self),
10185                &mut result__,
10186            )
10187            .map(|| result__)
10188        }
10189    }
10190    pub unsafe fn SetNewWindow<P0>(&self, newwindow: P0) -> windows_core::Result<()>
10191    where
10192        P0: windows_core::Param<ICoreWebView2>,
10193    {
10194        unsafe {
10195            (windows_core::Interface::vtable(self).SetNewWindow)(
10196                windows_core::Interface::as_raw(self),
10197                newwindow.param().abi(),
10198            )
10199            .ok()
10200        }
10201    }
10202    pub unsafe fn NewWindow(&self) -> windows_core::Result<ICoreWebView2> {
10203        unsafe {
10204            let mut result__ = core::mem::zeroed();
10205            (windows_core::Interface::vtable(self).NewWindow)(
10206                windows_core::Interface::as_raw(self),
10207                &mut result__,
10208            )
10209            .and_then(|| windows_core::Type::from_abi(result__))
10210        }
10211    }
10212    pub unsafe fn SetHandled(&self, handled: bool) -> windows_core::Result<()> {
10213        unsafe {
10214            (windows_core::Interface::vtable(self).SetHandled)(
10215                windows_core::Interface::as_raw(self),
10216                handled.into(),
10217            )
10218            .ok()
10219        }
10220    }
10221    pub unsafe fn Handled(&self) -> windows_core::Result<windows_core::BOOL> {
10222        unsafe {
10223            let mut result__ = core::mem::zeroed();
10224            (windows_core::Interface::vtable(self).Handled)(
10225                windows_core::Interface::as_raw(self),
10226                &mut result__,
10227            )
10228            .map(|| result__)
10229        }
10230    }
10231    pub unsafe fn IsUserInitiated(&self) -> windows_core::Result<windows_core::BOOL> {
10232        unsafe {
10233            let mut result__ = core::mem::zeroed();
10234            (windows_core::Interface::vtable(self).IsUserInitiated)(
10235                windows_core::Interface::as_raw(self),
10236                &mut result__,
10237            )
10238            .map(|| result__)
10239        }
10240    }
10241    pub unsafe fn GetDeferral(&self) -> windows_core::Result<ICoreWebView2Deferral> {
10242        unsafe {
10243            let mut result__ = core::mem::zeroed();
10244            (windows_core::Interface::vtable(self).GetDeferral)(
10245                windows_core::Interface::as_raw(self),
10246                &mut result__,
10247            )
10248            .and_then(|| windows_core::Type::from_abi(result__))
10249        }
10250    }
10251    pub unsafe fn WindowFeatures(&self) -> windows_core::Result<ICoreWebView2WindowFeatures> {
10252        unsafe {
10253            let mut result__ = core::mem::zeroed();
10254            (windows_core::Interface::vtable(self).WindowFeatures)(
10255                windows_core::Interface::as_raw(self),
10256                &mut result__,
10257            )
10258            .and_then(|| windows_core::Type::from_abi(result__))
10259        }
10260    }
10261}
10262#[repr(C)]
10263#[doc(hidden)]
10264pub struct ICoreWebView2NewWindowRequestedEventArgs_Vtbl {
10265    pub base__: windows_core::IUnknown_Vtbl,
10266    pub Uri: unsafe extern "system" fn(
10267        *mut core::ffi::c_void,
10268        *mut windows_core::PWSTR,
10269    ) -> windows_core::HRESULT,
10270    pub SetNewWindow: unsafe extern "system" fn(
10271        *mut core::ffi::c_void,
10272        *mut core::ffi::c_void,
10273    ) -> windows_core::HRESULT,
10274    pub NewWindow: unsafe extern "system" fn(
10275        *mut core::ffi::c_void,
10276        *mut *mut core::ffi::c_void,
10277    ) -> windows_core::HRESULT,
10278    pub SetHandled: unsafe extern "system" fn(
10279        *mut core::ffi::c_void,
10280        windows_core::BOOL,
10281    ) -> windows_core::HRESULT,
10282    pub Handled: unsafe extern "system" fn(
10283        *mut core::ffi::c_void,
10284        *mut windows_core::BOOL,
10285    ) -> windows_core::HRESULT,
10286    pub IsUserInitiated: unsafe extern "system" fn(
10287        *mut core::ffi::c_void,
10288        *mut windows_core::BOOL,
10289    ) -> windows_core::HRESULT,
10290    pub GetDeferral: unsafe extern "system" fn(
10291        *mut core::ffi::c_void,
10292        *mut *mut core::ffi::c_void,
10293    ) -> windows_core::HRESULT,
10294    pub WindowFeatures: unsafe extern "system" fn(
10295        *mut core::ffi::c_void,
10296        *mut *mut core::ffi::c_void,
10297    ) -> windows_core::HRESULT,
10298}
10299pub trait ICoreWebView2NewWindowRequestedEventArgs_Impl: windows_core::IUnknownImpl {
10300    fn Uri(&self) -> windows_core::Result<windows_core::PWSTR>;
10301    fn SetNewWindow(&self, newwindow: windows_core::Ref<ICoreWebView2>)
10302        -> windows_core::Result<()>;
10303    fn NewWindow(&self) -> windows_core::Result<ICoreWebView2>;
10304    fn SetHandled(&self, handled: windows_core::BOOL) -> windows_core::Result<()>;
10305    fn Handled(&self) -> windows_core::Result<windows_core::BOOL>;
10306    fn IsUserInitiated(&self) -> windows_core::Result<windows_core::BOOL>;
10307    fn GetDeferral(&self) -> windows_core::Result<ICoreWebView2Deferral>;
10308    fn WindowFeatures(&self) -> windows_core::Result<ICoreWebView2WindowFeatures>;
10309}
10310impl ICoreWebView2NewWindowRequestedEventArgs_Vtbl {
10311    pub const fn new<
10312        Identity: ICoreWebView2NewWindowRequestedEventArgs_Impl,
10313        const OFFSET: isize,
10314    >() -> Self {
10315        unsafe extern "system" fn Uri<
10316            Identity: ICoreWebView2NewWindowRequestedEventArgs_Impl,
10317            const OFFSET: isize,
10318        >(
10319            this: *mut core::ffi::c_void,
10320            uri: *mut windows_core::PWSTR,
10321        ) -> windows_core::HRESULT {
10322            unsafe {
10323                let this: &Identity =
10324                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
10325                match ICoreWebView2NewWindowRequestedEventArgs_Impl::Uri(this) {
10326                    Ok(ok__) => {
10327                        uri.write(core::mem::transmute(ok__));
10328                        windows_core::HRESULT(0)
10329                    }
10330                    Err(err) => err.into(),
10331                }
10332            }
10333        }
10334        unsafe extern "system" fn SetNewWindow<
10335            Identity: ICoreWebView2NewWindowRequestedEventArgs_Impl,
10336            const OFFSET: isize,
10337        >(
10338            this: *mut core::ffi::c_void,
10339            newwindow: *mut core::ffi::c_void,
10340        ) -> windows_core::HRESULT {
10341            unsafe {
10342                let this: &Identity =
10343                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
10344                ICoreWebView2NewWindowRequestedEventArgs_Impl::SetNewWindow(
10345                    this,
10346                    core::mem::transmute_copy(&newwindow),
10347                )
10348                .into()
10349            }
10350        }
10351        unsafe extern "system" fn NewWindow<
10352            Identity: ICoreWebView2NewWindowRequestedEventArgs_Impl,
10353            const OFFSET: isize,
10354        >(
10355            this: *mut core::ffi::c_void,
10356            newwindow: *mut *mut core::ffi::c_void,
10357        ) -> windows_core::HRESULT {
10358            unsafe {
10359                let this: &Identity =
10360                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
10361                match ICoreWebView2NewWindowRequestedEventArgs_Impl::NewWindow(this) {
10362                    Ok(ok__) => {
10363                        newwindow.write(core::mem::transmute(ok__));
10364                        windows_core::HRESULT(0)
10365                    }
10366                    Err(err) => err.into(),
10367                }
10368            }
10369        }
10370        unsafe extern "system" fn SetHandled<
10371            Identity: ICoreWebView2NewWindowRequestedEventArgs_Impl,
10372            const OFFSET: isize,
10373        >(
10374            this: *mut core::ffi::c_void,
10375            handled: windows_core::BOOL,
10376        ) -> windows_core::HRESULT {
10377            unsafe {
10378                let this: &Identity =
10379                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
10380                ICoreWebView2NewWindowRequestedEventArgs_Impl::SetHandled(
10381                    this,
10382                    core::mem::transmute_copy(&handled),
10383                )
10384                .into()
10385            }
10386        }
10387        unsafe extern "system" fn Handled<
10388            Identity: ICoreWebView2NewWindowRequestedEventArgs_Impl,
10389            const OFFSET: isize,
10390        >(
10391            this: *mut core::ffi::c_void,
10392            handled: *mut windows_core::BOOL,
10393        ) -> windows_core::HRESULT {
10394            unsafe {
10395                let this: &Identity =
10396                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
10397                match ICoreWebView2NewWindowRequestedEventArgs_Impl::Handled(this) {
10398                    Ok(ok__) => {
10399                        handled.write(core::mem::transmute(ok__));
10400                        windows_core::HRESULT(0)
10401                    }
10402                    Err(err) => err.into(),
10403                }
10404            }
10405        }
10406        unsafe extern "system" fn IsUserInitiated<
10407            Identity: ICoreWebView2NewWindowRequestedEventArgs_Impl,
10408            const OFFSET: isize,
10409        >(
10410            this: *mut core::ffi::c_void,
10411            isuserinitiated: *mut windows_core::BOOL,
10412        ) -> windows_core::HRESULT {
10413            unsafe {
10414                let this: &Identity =
10415                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
10416                match ICoreWebView2NewWindowRequestedEventArgs_Impl::IsUserInitiated(this) {
10417                    Ok(ok__) => {
10418                        isuserinitiated.write(core::mem::transmute(ok__));
10419                        windows_core::HRESULT(0)
10420                    }
10421                    Err(err) => err.into(),
10422                }
10423            }
10424        }
10425        unsafe extern "system" fn GetDeferral<
10426            Identity: ICoreWebView2NewWindowRequestedEventArgs_Impl,
10427            const OFFSET: isize,
10428        >(
10429            this: *mut core::ffi::c_void,
10430            deferral: *mut *mut core::ffi::c_void,
10431        ) -> windows_core::HRESULT {
10432            unsafe {
10433                let this: &Identity =
10434                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
10435                match ICoreWebView2NewWindowRequestedEventArgs_Impl::GetDeferral(this) {
10436                    Ok(ok__) => {
10437                        deferral.write(core::mem::transmute(ok__));
10438                        windows_core::HRESULT(0)
10439                    }
10440                    Err(err) => err.into(),
10441                }
10442            }
10443        }
10444        unsafe extern "system" fn WindowFeatures<
10445            Identity: ICoreWebView2NewWindowRequestedEventArgs_Impl,
10446            const OFFSET: isize,
10447        >(
10448            this: *mut core::ffi::c_void,
10449            value: *mut *mut core::ffi::c_void,
10450        ) -> windows_core::HRESULT {
10451            unsafe {
10452                let this: &Identity =
10453                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
10454                match ICoreWebView2NewWindowRequestedEventArgs_Impl::WindowFeatures(this) {
10455                    Ok(ok__) => {
10456                        value.write(core::mem::transmute(ok__));
10457                        windows_core::HRESULT(0)
10458                    }
10459                    Err(err) => err.into(),
10460                }
10461            }
10462        }
10463        Self {
10464            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
10465            Uri: Uri::<Identity, OFFSET>,
10466            SetNewWindow: SetNewWindow::<Identity, OFFSET>,
10467            NewWindow: NewWindow::<Identity, OFFSET>,
10468            SetHandled: SetHandled::<Identity, OFFSET>,
10469            Handled: Handled::<Identity, OFFSET>,
10470            IsUserInitiated: IsUserInitiated::<Identity, OFFSET>,
10471            GetDeferral: GetDeferral::<Identity, OFFSET>,
10472            WindowFeatures: WindowFeatures::<Identity, OFFSET>,
10473        }
10474    }
10475    pub fn matches(iid: &windows_core::GUID) -> bool {
10476        iid == &<ICoreWebView2NewWindowRequestedEventArgs as windows_core::Interface>::IID
10477    }
10478}
10479impl windows_core::RuntimeName for ICoreWebView2NewWindowRequestedEventArgs {}
10480windows_core::imp::define_interface!(
10481    ICoreWebView2NewWindowRequestedEventHandler,
10482    ICoreWebView2NewWindowRequestedEventHandler_Vtbl,
10483    0xd4c185fe_c81c_4989_97af_2d3fa7ab5651
10484);
10485windows_core::imp::interface_hierarchy!(
10486    ICoreWebView2NewWindowRequestedEventHandler,
10487    windows_core::IUnknown
10488);
10489impl ICoreWebView2NewWindowRequestedEventHandler {
10490    pub unsafe fn Invoke<P0, P1>(&self, sender: P0, args: P1) -> windows_core::Result<()>
10491    where
10492        P0: windows_core::Param<ICoreWebView2>,
10493        P1: windows_core::Param<ICoreWebView2NewWindowRequestedEventArgs>,
10494    {
10495        unsafe {
10496            (windows_core::Interface::vtable(self).Invoke)(
10497                windows_core::Interface::as_raw(self),
10498                sender.param().abi(),
10499                args.param().abi(),
10500            )
10501            .ok()
10502        }
10503    }
10504}
10505#[repr(C)]
10506#[doc(hidden)]
10507pub struct ICoreWebView2NewWindowRequestedEventHandler_Vtbl {
10508    pub base__: windows_core::IUnknown_Vtbl,
10509    pub Invoke: unsafe extern "system" fn(
10510        *mut core::ffi::c_void,
10511        *mut core::ffi::c_void,
10512        *mut core::ffi::c_void,
10513    ) -> windows_core::HRESULT,
10514}
10515pub trait ICoreWebView2NewWindowRequestedEventHandler_Impl: windows_core::IUnknownImpl {
10516    fn Invoke(
10517        &self,
10518        sender: windows_core::Ref<ICoreWebView2>,
10519        args: windows_core::Ref<ICoreWebView2NewWindowRequestedEventArgs>,
10520    ) -> windows_core::Result<()>;
10521}
10522impl ICoreWebView2NewWindowRequestedEventHandler_Vtbl {
10523    pub const fn new<
10524        Identity: ICoreWebView2NewWindowRequestedEventHandler_Impl,
10525        const OFFSET: isize,
10526    >() -> Self {
10527        unsafe extern "system" fn Invoke<
10528            Identity: ICoreWebView2NewWindowRequestedEventHandler_Impl,
10529            const OFFSET: isize,
10530        >(
10531            this: *mut core::ffi::c_void,
10532            sender: *mut core::ffi::c_void,
10533            args: *mut core::ffi::c_void,
10534        ) -> windows_core::HRESULT {
10535            unsafe {
10536                let this: &Identity =
10537                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
10538                ICoreWebView2NewWindowRequestedEventHandler_Impl::Invoke(
10539                    this,
10540                    core::mem::transmute_copy(&sender),
10541                    core::mem::transmute_copy(&args),
10542                )
10543                .into()
10544            }
10545        }
10546        Self {
10547            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
10548            Invoke: Invoke::<Identity, OFFSET>,
10549        }
10550    }
10551    pub fn matches(iid: &windows_core::GUID) -> bool {
10552        iid == &<ICoreWebView2NewWindowRequestedEventHandler as windows_core::Interface>::IID
10553    }
10554}
10555impl windows_core::RuntimeName for ICoreWebView2NewWindowRequestedEventHandler {}
10556windows_core::imp::define_interface!(
10557    ICoreWebView2PermissionRequestedEventArgs,
10558    ICoreWebView2PermissionRequestedEventArgs_Vtbl,
10559    0x973ae2ef_ff18_4894_8fb2_3c758f046810
10560);
10561windows_core::imp::interface_hierarchy!(
10562    ICoreWebView2PermissionRequestedEventArgs,
10563    windows_core::IUnknown
10564);
10565impl ICoreWebView2PermissionRequestedEventArgs {
10566    pub unsafe fn Uri(&self) -> windows_core::Result<windows_core::PWSTR> {
10567        unsafe {
10568            let mut result__ = core::mem::zeroed();
10569            (windows_core::Interface::vtable(self).Uri)(
10570                windows_core::Interface::as_raw(self),
10571                &mut result__,
10572            )
10573            .map(|| result__)
10574        }
10575    }
10576    pub unsafe fn PermissionKind(&self) -> windows_core::Result<COREWEBVIEW2_PERMISSION_KIND> {
10577        unsafe {
10578            let mut result__ = core::mem::zeroed();
10579            (windows_core::Interface::vtable(self).PermissionKind)(
10580                windows_core::Interface::as_raw(self),
10581                &mut result__,
10582            )
10583            .map(|| result__)
10584        }
10585    }
10586    pub unsafe fn IsUserInitiated(&self) -> windows_core::Result<windows_core::BOOL> {
10587        unsafe {
10588            let mut result__ = core::mem::zeroed();
10589            (windows_core::Interface::vtable(self).IsUserInitiated)(
10590                windows_core::Interface::as_raw(self),
10591                &mut result__,
10592            )
10593            .map(|| result__)
10594        }
10595    }
10596    pub unsafe fn State(&self) -> windows_core::Result<COREWEBVIEW2_PERMISSION_STATE> {
10597        unsafe {
10598            let mut result__ = core::mem::zeroed();
10599            (windows_core::Interface::vtable(self).State)(
10600                windows_core::Interface::as_raw(self),
10601                &mut result__,
10602            )
10603            .map(|| result__)
10604        }
10605    }
10606    pub unsafe fn SetState(
10607        &self,
10608        state: COREWEBVIEW2_PERMISSION_STATE,
10609    ) -> windows_core::Result<()> {
10610        unsafe {
10611            (windows_core::Interface::vtable(self).SetState)(
10612                windows_core::Interface::as_raw(self),
10613                state,
10614            )
10615            .ok()
10616        }
10617    }
10618    pub unsafe fn GetDeferral(&self) -> windows_core::Result<ICoreWebView2Deferral> {
10619        unsafe {
10620            let mut result__ = core::mem::zeroed();
10621            (windows_core::Interface::vtable(self).GetDeferral)(
10622                windows_core::Interface::as_raw(self),
10623                &mut result__,
10624            )
10625            .and_then(|| windows_core::Type::from_abi(result__))
10626        }
10627    }
10628}
10629#[repr(C)]
10630#[doc(hidden)]
10631pub struct ICoreWebView2PermissionRequestedEventArgs_Vtbl {
10632    pub base__: windows_core::IUnknown_Vtbl,
10633    pub Uri: unsafe extern "system" fn(
10634        *mut core::ffi::c_void,
10635        *mut windows_core::PWSTR,
10636    ) -> windows_core::HRESULT,
10637    pub PermissionKind: unsafe extern "system" fn(
10638        *mut core::ffi::c_void,
10639        *mut COREWEBVIEW2_PERMISSION_KIND,
10640    ) -> windows_core::HRESULT,
10641    pub IsUserInitiated: unsafe extern "system" fn(
10642        *mut core::ffi::c_void,
10643        *mut windows_core::BOOL,
10644    ) -> windows_core::HRESULT,
10645    pub State: unsafe extern "system" fn(
10646        *mut core::ffi::c_void,
10647        *mut COREWEBVIEW2_PERMISSION_STATE,
10648    ) -> windows_core::HRESULT,
10649    pub SetState: unsafe extern "system" fn(
10650        *mut core::ffi::c_void,
10651        COREWEBVIEW2_PERMISSION_STATE,
10652    ) -> windows_core::HRESULT,
10653    pub GetDeferral: unsafe extern "system" fn(
10654        *mut core::ffi::c_void,
10655        *mut *mut core::ffi::c_void,
10656    ) -> windows_core::HRESULT,
10657}
10658pub trait ICoreWebView2PermissionRequestedEventArgs_Impl: windows_core::IUnknownImpl {
10659    fn Uri(&self) -> windows_core::Result<windows_core::PWSTR>;
10660    fn PermissionKind(&self) -> windows_core::Result<COREWEBVIEW2_PERMISSION_KIND>;
10661    fn IsUserInitiated(&self) -> windows_core::Result<windows_core::BOOL>;
10662    fn State(&self) -> windows_core::Result<COREWEBVIEW2_PERMISSION_STATE>;
10663    fn SetState(&self, state: COREWEBVIEW2_PERMISSION_STATE) -> windows_core::Result<()>;
10664    fn GetDeferral(&self) -> windows_core::Result<ICoreWebView2Deferral>;
10665}
10666impl ICoreWebView2PermissionRequestedEventArgs_Vtbl {
10667    pub const fn new<
10668        Identity: ICoreWebView2PermissionRequestedEventArgs_Impl,
10669        const OFFSET: isize,
10670    >() -> Self {
10671        unsafe extern "system" fn Uri<
10672            Identity: ICoreWebView2PermissionRequestedEventArgs_Impl,
10673            const OFFSET: isize,
10674        >(
10675            this: *mut core::ffi::c_void,
10676            uri: *mut windows_core::PWSTR,
10677        ) -> windows_core::HRESULT {
10678            unsafe {
10679                let this: &Identity =
10680                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
10681                match ICoreWebView2PermissionRequestedEventArgs_Impl::Uri(this) {
10682                    Ok(ok__) => {
10683                        uri.write(core::mem::transmute(ok__));
10684                        windows_core::HRESULT(0)
10685                    }
10686                    Err(err) => err.into(),
10687                }
10688            }
10689        }
10690        unsafe extern "system" fn PermissionKind<
10691            Identity: ICoreWebView2PermissionRequestedEventArgs_Impl,
10692            const OFFSET: isize,
10693        >(
10694            this: *mut core::ffi::c_void,
10695            permissionkind: *mut COREWEBVIEW2_PERMISSION_KIND,
10696        ) -> windows_core::HRESULT {
10697            unsafe {
10698                let this: &Identity =
10699                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
10700                match ICoreWebView2PermissionRequestedEventArgs_Impl::PermissionKind(this) {
10701                    Ok(ok__) => {
10702                        permissionkind.write(core::mem::transmute(ok__));
10703                        windows_core::HRESULT(0)
10704                    }
10705                    Err(err) => err.into(),
10706                }
10707            }
10708        }
10709        unsafe extern "system" fn IsUserInitiated<
10710            Identity: ICoreWebView2PermissionRequestedEventArgs_Impl,
10711            const OFFSET: isize,
10712        >(
10713            this: *mut core::ffi::c_void,
10714            isuserinitiated: *mut windows_core::BOOL,
10715        ) -> windows_core::HRESULT {
10716            unsafe {
10717                let this: &Identity =
10718                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
10719                match ICoreWebView2PermissionRequestedEventArgs_Impl::IsUserInitiated(this) {
10720                    Ok(ok__) => {
10721                        isuserinitiated.write(core::mem::transmute(ok__));
10722                        windows_core::HRESULT(0)
10723                    }
10724                    Err(err) => err.into(),
10725                }
10726            }
10727        }
10728        unsafe extern "system" fn State<
10729            Identity: ICoreWebView2PermissionRequestedEventArgs_Impl,
10730            const OFFSET: isize,
10731        >(
10732            this: *mut core::ffi::c_void,
10733            state: *mut COREWEBVIEW2_PERMISSION_STATE,
10734        ) -> windows_core::HRESULT {
10735            unsafe {
10736                let this: &Identity =
10737                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
10738                match ICoreWebView2PermissionRequestedEventArgs_Impl::State(this) {
10739                    Ok(ok__) => {
10740                        state.write(core::mem::transmute(ok__));
10741                        windows_core::HRESULT(0)
10742                    }
10743                    Err(err) => err.into(),
10744                }
10745            }
10746        }
10747        unsafe extern "system" fn SetState<
10748            Identity: ICoreWebView2PermissionRequestedEventArgs_Impl,
10749            const OFFSET: isize,
10750        >(
10751            this: *mut core::ffi::c_void,
10752            state: COREWEBVIEW2_PERMISSION_STATE,
10753        ) -> windows_core::HRESULT {
10754            unsafe {
10755                let this: &Identity =
10756                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
10757                ICoreWebView2PermissionRequestedEventArgs_Impl::SetState(
10758                    this,
10759                    core::mem::transmute_copy(&state),
10760                )
10761                .into()
10762            }
10763        }
10764        unsafe extern "system" fn GetDeferral<
10765            Identity: ICoreWebView2PermissionRequestedEventArgs_Impl,
10766            const OFFSET: isize,
10767        >(
10768            this: *mut core::ffi::c_void,
10769            deferral: *mut *mut core::ffi::c_void,
10770        ) -> windows_core::HRESULT {
10771            unsafe {
10772                let this: &Identity =
10773                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
10774                match ICoreWebView2PermissionRequestedEventArgs_Impl::GetDeferral(this) {
10775                    Ok(ok__) => {
10776                        deferral.write(core::mem::transmute(ok__));
10777                        windows_core::HRESULT(0)
10778                    }
10779                    Err(err) => err.into(),
10780                }
10781            }
10782        }
10783        Self {
10784            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
10785            Uri: Uri::<Identity, OFFSET>,
10786            PermissionKind: PermissionKind::<Identity, OFFSET>,
10787            IsUserInitiated: IsUserInitiated::<Identity, OFFSET>,
10788            State: State::<Identity, OFFSET>,
10789            SetState: SetState::<Identity, OFFSET>,
10790            GetDeferral: GetDeferral::<Identity, OFFSET>,
10791        }
10792    }
10793    pub fn matches(iid: &windows_core::GUID) -> bool {
10794        iid == &<ICoreWebView2PermissionRequestedEventArgs as windows_core::Interface>::IID
10795    }
10796}
10797impl windows_core::RuntimeName for ICoreWebView2PermissionRequestedEventArgs {}
10798windows_core::imp::define_interface!(
10799    ICoreWebView2PermissionRequestedEventHandler,
10800    ICoreWebView2PermissionRequestedEventHandler_Vtbl,
10801    0x15e1c6a3_c72a_4df3_91d7_d097fbec6bfd
10802);
10803windows_core::imp::interface_hierarchy!(
10804    ICoreWebView2PermissionRequestedEventHandler,
10805    windows_core::IUnknown
10806);
10807impl ICoreWebView2PermissionRequestedEventHandler {
10808    pub unsafe fn Invoke<P0, P1>(&self, sender: P0, args: P1) -> windows_core::Result<()>
10809    where
10810        P0: windows_core::Param<ICoreWebView2>,
10811        P1: windows_core::Param<ICoreWebView2PermissionRequestedEventArgs>,
10812    {
10813        unsafe {
10814            (windows_core::Interface::vtable(self).Invoke)(
10815                windows_core::Interface::as_raw(self),
10816                sender.param().abi(),
10817                args.param().abi(),
10818            )
10819            .ok()
10820        }
10821    }
10822}
10823#[repr(C)]
10824#[doc(hidden)]
10825pub struct ICoreWebView2PermissionRequestedEventHandler_Vtbl {
10826    pub base__: windows_core::IUnknown_Vtbl,
10827    pub Invoke: unsafe extern "system" fn(
10828        *mut core::ffi::c_void,
10829        *mut core::ffi::c_void,
10830        *mut core::ffi::c_void,
10831    ) -> windows_core::HRESULT,
10832}
10833pub trait ICoreWebView2PermissionRequestedEventHandler_Impl: windows_core::IUnknownImpl {
10834    fn Invoke(
10835        &self,
10836        sender: windows_core::Ref<ICoreWebView2>,
10837        args: windows_core::Ref<ICoreWebView2PermissionRequestedEventArgs>,
10838    ) -> windows_core::Result<()>;
10839}
10840impl ICoreWebView2PermissionRequestedEventHandler_Vtbl {
10841    pub const fn new<
10842        Identity: ICoreWebView2PermissionRequestedEventHandler_Impl,
10843        const OFFSET: isize,
10844    >() -> Self {
10845        unsafe extern "system" fn Invoke<
10846            Identity: ICoreWebView2PermissionRequestedEventHandler_Impl,
10847            const OFFSET: isize,
10848        >(
10849            this: *mut core::ffi::c_void,
10850            sender: *mut core::ffi::c_void,
10851            args: *mut core::ffi::c_void,
10852        ) -> windows_core::HRESULT {
10853            unsafe {
10854                let this: &Identity =
10855                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
10856                ICoreWebView2PermissionRequestedEventHandler_Impl::Invoke(
10857                    this,
10858                    core::mem::transmute_copy(&sender),
10859                    core::mem::transmute_copy(&args),
10860                )
10861                .into()
10862            }
10863        }
10864        Self {
10865            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
10866            Invoke: Invoke::<Identity, OFFSET>,
10867        }
10868    }
10869    pub fn matches(iid: &windows_core::GUID) -> bool {
10870        iid == &<ICoreWebView2PermissionRequestedEventHandler as windows_core::Interface>::IID
10871    }
10872}
10873impl windows_core::RuntimeName for ICoreWebView2PermissionRequestedEventHandler {}
10874windows_core::imp::define_interface!(
10875    ICoreWebView2PointerInfo,
10876    ICoreWebView2PointerInfo_Vtbl,
10877    0xe6995887_d10d_4f5d_9359_4ce46e4f96b9
10878);
10879windows_core::imp::interface_hierarchy!(ICoreWebView2PointerInfo, windows_core::IUnknown);
10880impl ICoreWebView2PointerInfo {
10881    pub unsafe fn PointerKind(&self) -> windows_core::Result<u32> {
10882        unsafe {
10883            let mut result__ = core::mem::zeroed();
10884            (windows_core::Interface::vtable(self).PointerKind)(
10885                windows_core::Interface::as_raw(self),
10886                &mut result__,
10887            )
10888            .map(|| result__)
10889        }
10890    }
10891    pub unsafe fn SetPointerKind(&self, pointerkind: u32) -> windows_core::Result<()> {
10892        unsafe {
10893            (windows_core::Interface::vtable(self).SetPointerKind)(
10894                windows_core::Interface::as_raw(self),
10895                pointerkind,
10896            )
10897            .ok()
10898        }
10899    }
10900    pub unsafe fn PointerId(&self) -> windows_core::Result<u32> {
10901        unsafe {
10902            let mut result__ = core::mem::zeroed();
10903            (windows_core::Interface::vtable(self).PointerId)(
10904                windows_core::Interface::as_raw(self),
10905                &mut result__,
10906            )
10907            .map(|| result__)
10908        }
10909    }
10910    pub unsafe fn SetPointerId(&self, pointerid: u32) -> windows_core::Result<()> {
10911        unsafe {
10912            (windows_core::Interface::vtable(self).SetPointerId)(
10913                windows_core::Interface::as_raw(self),
10914                pointerid,
10915            )
10916            .ok()
10917        }
10918    }
10919    pub unsafe fn FrameId(&self) -> windows_core::Result<u32> {
10920        unsafe {
10921            let mut result__ = core::mem::zeroed();
10922            (windows_core::Interface::vtable(self).FrameId)(
10923                windows_core::Interface::as_raw(self),
10924                &mut result__,
10925            )
10926            .map(|| result__)
10927        }
10928    }
10929    pub unsafe fn SetFrameId(&self, frameid: u32) -> windows_core::Result<()> {
10930        unsafe {
10931            (windows_core::Interface::vtable(self).SetFrameId)(
10932                windows_core::Interface::as_raw(self),
10933                frameid,
10934            )
10935            .ok()
10936        }
10937    }
10938    pub unsafe fn PointerFlags(&self) -> windows_core::Result<u32> {
10939        unsafe {
10940            let mut result__ = core::mem::zeroed();
10941            (windows_core::Interface::vtable(self).PointerFlags)(
10942                windows_core::Interface::as_raw(self),
10943                &mut result__,
10944            )
10945            .map(|| result__)
10946        }
10947    }
10948    pub unsafe fn SetPointerFlags(&self, pointerflags: u32) -> windows_core::Result<()> {
10949        unsafe {
10950            (windows_core::Interface::vtable(self).SetPointerFlags)(
10951                windows_core::Interface::as_raw(self),
10952                pointerflags,
10953            )
10954            .ok()
10955        }
10956    }
10957    pub unsafe fn PointerDeviceRect(
10958        &self,
10959    ) -> windows_core::Result<windows::Win32::Foundation::RECT> {
10960        unsafe {
10961            let mut result__ = core::mem::zeroed();
10962            (windows_core::Interface::vtable(self).PointerDeviceRect)(
10963                windows_core::Interface::as_raw(self),
10964                &mut result__,
10965            )
10966            .map(|| result__)
10967        }
10968    }
10969    pub unsafe fn SetPointerDeviceRect(
10970        &self,
10971        pointerdevicerect: windows::Win32::Foundation::RECT,
10972    ) -> windows_core::Result<()> {
10973        unsafe {
10974            (windows_core::Interface::vtable(self).SetPointerDeviceRect)(
10975                windows_core::Interface::as_raw(self),
10976                core::mem::transmute(pointerdevicerect),
10977            )
10978            .ok()
10979        }
10980    }
10981    pub unsafe fn DisplayRect(&self) -> windows_core::Result<windows::Win32::Foundation::RECT> {
10982        unsafe {
10983            let mut result__ = core::mem::zeroed();
10984            (windows_core::Interface::vtable(self).DisplayRect)(
10985                windows_core::Interface::as_raw(self),
10986                &mut result__,
10987            )
10988            .map(|| result__)
10989        }
10990    }
10991    pub unsafe fn SetDisplayRect(
10992        &self,
10993        displayrect: windows::Win32::Foundation::RECT,
10994    ) -> windows_core::Result<()> {
10995        unsafe {
10996            (windows_core::Interface::vtable(self).SetDisplayRect)(
10997                windows_core::Interface::as_raw(self),
10998                core::mem::transmute(displayrect),
10999            )
11000            .ok()
11001        }
11002    }
11003    pub unsafe fn PixelLocation(&self) -> windows_core::Result<windows::Win32::Foundation::POINT> {
11004        unsafe {
11005            let mut result__ = core::mem::zeroed();
11006            (windows_core::Interface::vtable(self).PixelLocation)(
11007                windows_core::Interface::as_raw(self),
11008                &mut result__,
11009            )
11010            .map(|| result__)
11011        }
11012    }
11013    pub unsafe fn SetPixelLocation(
11014        &self,
11015        pixellocation: windows::Win32::Foundation::POINT,
11016    ) -> windows_core::Result<()> {
11017        unsafe {
11018            (windows_core::Interface::vtable(self).SetPixelLocation)(
11019                windows_core::Interface::as_raw(self),
11020                core::mem::transmute(pixellocation),
11021            )
11022            .ok()
11023        }
11024    }
11025    pub unsafe fn HimetricLocation(
11026        &self,
11027    ) -> windows_core::Result<windows::Win32::Foundation::POINT> {
11028        unsafe {
11029            let mut result__ = core::mem::zeroed();
11030            (windows_core::Interface::vtable(self).HimetricLocation)(
11031                windows_core::Interface::as_raw(self),
11032                &mut result__,
11033            )
11034            .map(|| result__)
11035        }
11036    }
11037    pub unsafe fn SetHimetricLocation(
11038        &self,
11039        himetriclocation: windows::Win32::Foundation::POINT,
11040    ) -> windows_core::Result<()> {
11041        unsafe {
11042            (windows_core::Interface::vtable(self).SetHimetricLocation)(
11043                windows_core::Interface::as_raw(self),
11044                core::mem::transmute(himetriclocation),
11045            )
11046            .ok()
11047        }
11048    }
11049    pub unsafe fn PixelLocationRaw(
11050        &self,
11051    ) -> windows_core::Result<windows::Win32::Foundation::POINT> {
11052        unsafe {
11053            let mut result__ = core::mem::zeroed();
11054            (windows_core::Interface::vtable(self).PixelLocationRaw)(
11055                windows_core::Interface::as_raw(self),
11056                &mut result__,
11057            )
11058            .map(|| result__)
11059        }
11060    }
11061    pub unsafe fn SetPixelLocationRaw(
11062        &self,
11063        pixellocationraw: windows::Win32::Foundation::POINT,
11064    ) -> windows_core::Result<()> {
11065        unsafe {
11066            (windows_core::Interface::vtable(self).SetPixelLocationRaw)(
11067                windows_core::Interface::as_raw(self),
11068                core::mem::transmute(pixellocationraw),
11069            )
11070            .ok()
11071        }
11072    }
11073    pub unsafe fn HimetricLocationRaw(
11074        &self,
11075    ) -> windows_core::Result<windows::Win32::Foundation::POINT> {
11076        unsafe {
11077            let mut result__ = core::mem::zeroed();
11078            (windows_core::Interface::vtable(self).HimetricLocationRaw)(
11079                windows_core::Interface::as_raw(self),
11080                &mut result__,
11081            )
11082            .map(|| result__)
11083        }
11084    }
11085    pub unsafe fn SetHimetricLocationRaw(
11086        &self,
11087        himetriclocationraw: windows::Win32::Foundation::POINT,
11088    ) -> windows_core::Result<()> {
11089        unsafe {
11090            (windows_core::Interface::vtable(self).SetHimetricLocationRaw)(
11091                windows_core::Interface::as_raw(self),
11092                core::mem::transmute(himetriclocationraw),
11093            )
11094            .ok()
11095        }
11096    }
11097    pub unsafe fn Time(&self) -> windows_core::Result<u32> {
11098        unsafe {
11099            let mut result__ = core::mem::zeroed();
11100            (windows_core::Interface::vtable(self).Time)(
11101                windows_core::Interface::as_raw(self),
11102                &mut result__,
11103            )
11104            .map(|| result__)
11105        }
11106    }
11107    pub unsafe fn SetTime(&self, time: u32) -> windows_core::Result<()> {
11108        unsafe {
11109            (windows_core::Interface::vtable(self).SetTime)(
11110                windows_core::Interface::as_raw(self),
11111                time,
11112            )
11113            .ok()
11114        }
11115    }
11116    pub unsafe fn HistoryCount(&self) -> windows_core::Result<u32> {
11117        unsafe {
11118            let mut result__ = core::mem::zeroed();
11119            (windows_core::Interface::vtable(self).HistoryCount)(
11120                windows_core::Interface::as_raw(self),
11121                &mut result__,
11122            )
11123            .map(|| result__)
11124        }
11125    }
11126    pub unsafe fn SetHistoryCount(&self, historycount: u32) -> windows_core::Result<()> {
11127        unsafe {
11128            (windows_core::Interface::vtable(self).SetHistoryCount)(
11129                windows_core::Interface::as_raw(self),
11130                historycount,
11131            )
11132            .ok()
11133        }
11134    }
11135    pub unsafe fn InputData(&self) -> windows_core::Result<i32> {
11136        unsafe {
11137            let mut result__ = core::mem::zeroed();
11138            (windows_core::Interface::vtable(self).InputData)(
11139                windows_core::Interface::as_raw(self),
11140                &mut result__,
11141            )
11142            .map(|| result__)
11143        }
11144    }
11145    pub unsafe fn SetInputData(&self, inputdata: i32) -> windows_core::Result<()> {
11146        unsafe {
11147            (windows_core::Interface::vtable(self).SetInputData)(
11148                windows_core::Interface::as_raw(self),
11149                inputdata,
11150            )
11151            .ok()
11152        }
11153    }
11154    pub unsafe fn KeyStates(&self) -> windows_core::Result<u32> {
11155        unsafe {
11156            let mut result__ = core::mem::zeroed();
11157            (windows_core::Interface::vtable(self).KeyStates)(
11158                windows_core::Interface::as_raw(self),
11159                &mut result__,
11160            )
11161            .map(|| result__)
11162        }
11163    }
11164    pub unsafe fn SetKeyStates(&self, keystates: u32) -> windows_core::Result<()> {
11165        unsafe {
11166            (windows_core::Interface::vtable(self).SetKeyStates)(
11167                windows_core::Interface::as_raw(self),
11168                keystates,
11169            )
11170            .ok()
11171        }
11172    }
11173    pub unsafe fn PerformanceCount(&self) -> windows_core::Result<u64> {
11174        unsafe {
11175            let mut result__ = core::mem::zeroed();
11176            (windows_core::Interface::vtable(self).PerformanceCount)(
11177                windows_core::Interface::as_raw(self),
11178                &mut result__,
11179            )
11180            .map(|| result__)
11181        }
11182    }
11183    pub unsafe fn SetPerformanceCount(&self, performancecount: u64) -> windows_core::Result<()> {
11184        unsafe {
11185            (windows_core::Interface::vtable(self).SetPerformanceCount)(
11186                windows_core::Interface::as_raw(self),
11187                performancecount,
11188            )
11189            .ok()
11190        }
11191    }
11192    pub unsafe fn ButtonChangeKind(&self) -> windows_core::Result<i32> {
11193        unsafe {
11194            let mut result__ = core::mem::zeroed();
11195            (windows_core::Interface::vtable(self).ButtonChangeKind)(
11196                windows_core::Interface::as_raw(self),
11197                &mut result__,
11198            )
11199            .map(|| result__)
11200        }
11201    }
11202    pub unsafe fn SetButtonChangeKind(&self, buttonchangekind: i32) -> windows_core::Result<()> {
11203        unsafe {
11204            (windows_core::Interface::vtable(self).SetButtonChangeKind)(
11205                windows_core::Interface::as_raw(self),
11206                buttonchangekind,
11207            )
11208            .ok()
11209        }
11210    }
11211    pub unsafe fn PenFlags(&self) -> windows_core::Result<u32> {
11212        unsafe {
11213            let mut result__ = core::mem::zeroed();
11214            (windows_core::Interface::vtable(self).PenFlags)(
11215                windows_core::Interface::as_raw(self),
11216                &mut result__,
11217            )
11218            .map(|| result__)
11219        }
11220    }
11221    pub unsafe fn SetPenFlags(&self, penflags: u32) -> windows_core::Result<()> {
11222        unsafe {
11223            (windows_core::Interface::vtable(self).SetPenFlags)(
11224                windows_core::Interface::as_raw(self),
11225                penflags,
11226            )
11227            .ok()
11228        }
11229    }
11230    pub unsafe fn PenMask(&self) -> windows_core::Result<u32> {
11231        unsafe {
11232            let mut result__ = core::mem::zeroed();
11233            (windows_core::Interface::vtable(self).PenMask)(
11234                windows_core::Interface::as_raw(self),
11235                &mut result__,
11236            )
11237            .map(|| result__)
11238        }
11239    }
11240    pub unsafe fn SetPenMask(&self, penmask: u32) -> windows_core::Result<()> {
11241        unsafe {
11242            (windows_core::Interface::vtable(self).SetPenMask)(
11243                windows_core::Interface::as_raw(self),
11244                penmask,
11245            )
11246            .ok()
11247        }
11248    }
11249    pub unsafe fn PenPressure(&self) -> windows_core::Result<u32> {
11250        unsafe {
11251            let mut result__ = core::mem::zeroed();
11252            (windows_core::Interface::vtable(self).PenPressure)(
11253                windows_core::Interface::as_raw(self),
11254                &mut result__,
11255            )
11256            .map(|| result__)
11257        }
11258    }
11259    pub unsafe fn SetPenPressure(&self, penpressure: u32) -> windows_core::Result<()> {
11260        unsafe {
11261            (windows_core::Interface::vtable(self).SetPenPressure)(
11262                windows_core::Interface::as_raw(self),
11263                penpressure,
11264            )
11265            .ok()
11266        }
11267    }
11268    pub unsafe fn PenRotation(&self) -> windows_core::Result<u32> {
11269        unsafe {
11270            let mut result__ = core::mem::zeroed();
11271            (windows_core::Interface::vtable(self).PenRotation)(
11272                windows_core::Interface::as_raw(self),
11273                &mut result__,
11274            )
11275            .map(|| result__)
11276        }
11277    }
11278    pub unsafe fn SetPenRotation(&self, penrotation: u32) -> windows_core::Result<()> {
11279        unsafe {
11280            (windows_core::Interface::vtable(self).SetPenRotation)(
11281                windows_core::Interface::as_raw(self),
11282                penrotation,
11283            )
11284            .ok()
11285        }
11286    }
11287    pub unsafe fn PenTiltX(&self) -> windows_core::Result<i32> {
11288        unsafe {
11289            let mut result__ = core::mem::zeroed();
11290            (windows_core::Interface::vtable(self).PenTiltX)(
11291                windows_core::Interface::as_raw(self),
11292                &mut result__,
11293            )
11294            .map(|| result__)
11295        }
11296    }
11297    pub unsafe fn SetPenTiltX(&self, pentiltx: i32) -> windows_core::Result<()> {
11298        unsafe {
11299            (windows_core::Interface::vtable(self).SetPenTiltX)(
11300                windows_core::Interface::as_raw(self),
11301                pentiltx,
11302            )
11303            .ok()
11304        }
11305    }
11306    pub unsafe fn PenTiltY(&self) -> windows_core::Result<i32> {
11307        unsafe {
11308            let mut result__ = core::mem::zeroed();
11309            (windows_core::Interface::vtable(self).PenTiltY)(
11310                windows_core::Interface::as_raw(self),
11311                &mut result__,
11312            )
11313            .map(|| result__)
11314        }
11315    }
11316    pub unsafe fn SetPenTiltY(&self, pentilty: i32) -> windows_core::Result<()> {
11317        unsafe {
11318            (windows_core::Interface::vtable(self).SetPenTiltY)(
11319                windows_core::Interface::as_raw(self),
11320                pentilty,
11321            )
11322            .ok()
11323        }
11324    }
11325    pub unsafe fn TouchFlags(&self) -> windows_core::Result<u32> {
11326        unsafe {
11327            let mut result__ = core::mem::zeroed();
11328            (windows_core::Interface::vtable(self).TouchFlags)(
11329                windows_core::Interface::as_raw(self),
11330                &mut result__,
11331            )
11332            .map(|| result__)
11333        }
11334    }
11335    pub unsafe fn SetTouchFlags(&self, touchflags: u32) -> windows_core::Result<()> {
11336        unsafe {
11337            (windows_core::Interface::vtable(self).SetTouchFlags)(
11338                windows_core::Interface::as_raw(self),
11339                touchflags,
11340            )
11341            .ok()
11342        }
11343    }
11344    pub unsafe fn TouchMask(&self) -> windows_core::Result<u32> {
11345        unsafe {
11346            let mut result__ = core::mem::zeroed();
11347            (windows_core::Interface::vtable(self).TouchMask)(
11348                windows_core::Interface::as_raw(self),
11349                &mut result__,
11350            )
11351            .map(|| result__)
11352        }
11353    }
11354    pub unsafe fn SetTouchMask(&self, touchmask: u32) -> windows_core::Result<()> {
11355        unsafe {
11356            (windows_core::Interface::vtable(self).SetTouchMask)(
11357                windows_core::Interface::as_raw(self),
11358                touchmask,
11359            )
11360            .ok()
11361        }
11362    }
11363    pub unsafe fn TouchContact(&self) -> windows_core::Result<windows::Win32::Foundation::RECT> {
11364        unsafe {
11365            let mut result__ = core::mem::zeroed();
11366            (windows_core::Interface::vtable(self).TouchContact)(
11367                windows_core::Interface::as_raw(self),
11368                &mut result__,
11369            )
11370            .map(|| result__)
11371        }
11372    }
11373    pub unsafe fn SetTouchContact(
11374        &self,
11375        touchcontact: windows::Win32::Foundation::RECT,
11376    ) -> windows_core::Result<()> {
11377        unsafe {
11378            (windows_core::Interface::vtable(self).SetTouchContact)(
11379                windows_core::Interface::as_raw(self),
11380                core::mem::transmute(touchcontact),
11381            )
11382            .ok()
11383        }
11384    }
11385    pub unsafe fn TouchContactRaw(&self) -> windows_core::Result<windows::Win32::Foundation::RECT> {
11386        unsafe {
11387            let mut result__ = core::mem::zeroed();
11388            (windows_core::Interface::vtable(self).TouchContactRaw)(
11389                windows_core::Interface::as_raw(self),
11390                &mut result__,
11391            )
11392            .map(|| result__)
11393        }
11394    }
11395    pub unsafe fn SetTouchContactRaw(
11396        &self,
11397        touchcontactraw: windows::Win32::Foundation::RECT,
11398    ) -> windows_core::Result<()> {
11399        unsafe {
11400            (windows_core::Interface::vtable(self).SetTouchContactRaw)(
11401                windows_core::Interface::as_raw(self),
11402                core::mem::transmute(touchcontactraw),
11403            )
11404            .ok()
11405        }
11406    }
11407    pub unsafe fn TouchOrientation(&self) -> windows_core::Result<u32> {
11408        unsafe {
11409            let mut result__ = core::mem::zeroed();
11410            (windows_core::Interface::vtable(self).TouchOrientation)(
11411                windows_core::Interface::as_raw(self),
11412                &mut result__,
11413            )
11414            .map(|| result__)
11415        }
11416    }
11417    pub unsafe fn SetTouchOrientation(&self, touchorientation: u32) -> windows_core::Result<()> {
11418        unsafe {
11419            (windows_core::Interface::vtable(self).SetTouchOrientation)(
11420                windows_core::Interface::as_raw(self),
11421                touchorientation,
11422            )
11423            .ok()
11424        }
11425    }
11426    pub unsafe fn TouchPressure(&self) -> windows_core::Result<u32> {
11427        unsafe {
11428            let mut result__ = core::mem::zeroed();
11429            (windows_core::Interface::vtable(self).TouchPressure)(
11430                windows_core::Interface::as_raw(self),
11431                &mut result__,
11432            )
11433            .map(|| result__)
11434        }
11435    }
11436    pub unsafe fn SetTouchPressure(&self, touchpressure: u32) -> windows_core::Result<()> {
11437        unsafe {
11438            (windows_core::Interface::vtable(self).SetTouchPressure)(
11439                windows_core::Interface::as_raw(self),
11440                touchpressure,
11441            )
11442            .ok()
11443        }
11444    }
11445}
11446#[repr(C)]
11447#[doc(hidden)]
11448pub struct ICoreWebView2PointerInfo_Vtbl {
11449    pub base__: windows_core::IUnknown_Vtbl,
11450    pub PointerKind:
11451        unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
11452    pub SetPointerKind:
11453        unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
11454    pub PointerId:
11455        unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
11456    pub SetPointerId:
11457        unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
11458    pub FrameId:
11459        unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
11460    pub SetFrameId: unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
11461    pub PointerFlags:
11462        unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
11463    pub SetPointerFlags:
11464        unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
11465    pub PointerDeviceRect: unsafe extern "system" fn(
11466        *mut core::ffi::c_void,
11467        *mut windows::Win32::Foundation::RECT,
11468    ) -> windows_core::HRESULT,
11469    pub SetPointerDeviceRect: unsafe extern "system" fn(
11470        *mut core::ffi::c_void,
11471        windows::Win32::Foundation::RECT,
11472    ) -> windows_core::HRESULT,
11473    pub DisplayRect: unsafe extern "system" fn(
11474        *mut core::ffi::c_void,
11475        *mut windows::Win32::Foundation::RECT,
11476    ) -> windows_core::HRESULT,
11477    pub SetDisplayRect: unsafe extern "system" fn(
11478        *mut core::ffi::c_void,
11479        windows::Win32::Foundation::RECT,
11480    ) -> windows_core::HRESULT,
11481    pub PixelLocation: unsafe extern "system" fn(
11482        *mut core::ffi::c_void,
11483        *mut windows::Win32::Foundation::POINT,
11484    ) -> windows_core::HRESULT,
11485    pub SetPixelLocation: unsafe extern "system" fn(
11486        *mut core::ffi::c_void,
11487        windows::Win32::Foundation::POINT,
11488    ) -> windows_core::HRESULT,
11489    pub HimetricLocation: unsafe extern "system" fn(
11490        *mut core::ffi::c_void,
11491        *mut windows::Win32::Foundation::POINT,
11492    ) -> windows_core::HRESULT,
11493    pub SetHimetricLocation: unsafe extern "system" fn(
11494        *mut core::ffi::c_void,
11495        windows::Win32::Foundation::POINT,
11496    ) -> windows_core::HRESULT,
11497    pub PixelLocationRaw: unsafe extern "system" fn(
11498        *mut core::ffi::c_void,
11499        *mut windows::Win32::Foundation::POINT,
11500    ) -> windows_core::HRESULT,
11501    pub SetPixelLocationRaw: unsafe extern "system" fn(
11502        *mut core::ffi::c_void,
11503        windows::Win32::Foundation::POINT,
11504    ) -> windows_core::HRESULT,
11505    pub HimetricLocationRaw: unsafe extern "system" fn(
11506        *mut core::ffi::c_void,
11507        *mut windows::Win32::Foundation::POINT,
11508    ) -> windows_core::HRESULT,
11509    pub SetHimetricLocationRaw: unsafe extern "system" fn(
11510        *mut core::ffi::c_void,
11511        windows::Win32::Foundation::POINT,
11512    ) -> windows_core::HRESULT,
11513    pub Time: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
11514    pub SetTime: unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
11515    pub HistoryCount:
11516        unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
11517    pub SetHistoryCount:
11518        unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
11519    pub InputData:
11520        unsafe extern "system" fn(*mut core::ffi::c_void, *mut i32) -> windows_core::HRESULT,
11521    pub SetInputData:
11522        unsafe extern "system" fn(*mut core::ffi::c_void, i32) -> windows_core::HRESULT,
11523    pub KeyStates:
11524        unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
11525    pub SetKeyStates:
11526        unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
11527    pub PerformanceCount:
11528        unsafe extern "system" fn(*mut core::ffi::c_void, *mut u64) -> windows_core::HRESULT,
11529    pub SetPerformanceCount:
11530        unsafe extern "system" fn(*mut core::ffi::c_void, u64) -> windows_core::HRESULT,
11531    pub ButtonChangeKind:
11532        unsafe extern "system" fn(*mut core::ffi::c_void, *mut i32) -> windows_core::HRESULT,
11533    pub SetButtonChangeKind:
11534        unsafe extern "system" fn(*mut core::ffi::c_void, i32) -> windows_core::HRESULT,
11535    pub PenFlags:
11536        unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
11537    pub SetPenFlags:
11538        unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
11539    pub PenMask:
11540        unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
11541    pub SetPenMask: unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
11542    pub PenPressure:
11543        unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
11544    pub SetPenPressure:
11545        unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
11546    pub PenRotation:
11547        unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
11548    pub SetPenRotation:
11549        unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
11550    pub PenTiltX:
11551        unsafe extern "system" fn(*mut core::ffi::c_void, *mut i32) -> windows_core::HRESULT,
11552    pub SetPenTiltX:
11553        unsafe extern "system" fn(*mut core::ffi::c_void, i32) -> windows_core::HRESULT,
11554    pub PenTiltY:
11555        unsafe extern "system" fn(*mut core::ffi::c_void, *mut i32) -> windows_core::HRESULT,
11556    pub SetPenTiltY:
11557        unsafe extern "system" fn(*mut core::ffi::c_void, i32) -> windows_core::HRESULT,
11558    pub TouchFlags:
11559        unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
11560    pub SetTouchFlags:
11561        unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
11562    pub TouchMask:
11563        unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
11564    pub SetTouchMask:
11565        unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
11566    pub TouchContact: unsafe extern "system" fn(
11567        *mut core::ffi::c_void,
11568        *mut windows::Win32::Foundation::RECT,
11569    ) -> windows_core::HRESULT,
11570    pub SetTouchContact: unsafe extern "system" fn(
11571        *mut core::ffi::c_void,
11572        windows::Win32::Foundation::RECT,
11573    ) -> windows_core::HRESULT,
11574    pub TouchContactRaw: unsafe extern "system" fn(
11575        *mut core::ffi::c_void,
11576        *mut windows::Win32::Foundation::RECT,
11577    ) -> windows_core::HRESULT,
11578    pub SetTouchContactRaw: unsafe extern "system" fn(
11579        *mut core::ffi::c_void,
11580        windows::Win32::Foundation::RECT,
11581    ) -> windows_core::HRESULT,
11582    pub TouchOrientation:
11583        unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
11584    pub SetTouchOrientation:
11585        unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
11586    pub TouchPressure:
11587        unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
11588    pub SetTouchPressure:
11589        unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
11590}
11591pub trait ICoreWebView2PointerInfo_Impl: windows_core::IUnknownImpl {
11592    fn PointerKind(&self) -> windows_core::Result<u32>;
11593    fn SetPointerKind(&self, pointerkind: u32) -> windows_core::Result<()>;
11594    fn PointerId(&self) -> windows_core::Result<u32>;
11595    fn SetPointerId(&self, pointerid: u32) -> windows_core::Result<()>;
11596    fn FrameId(&self) -> windows_core::Result<u32>;
11597    fn SetFrameId(&self, frameid: u32) -> windows_core::Result<()>;
11598    fn PointerFlags(&self) -> windows_core::Result<u32>;
11599    fn SetPointerFlags(&self, pointerflags: u32) -> windows_core::Result<()>;
11600    fn PointerDeviceRect(&self) -> windows_core::Result<windows::Win32::Foundation::RECT>;
11601    fn SetPointerDeviceRect(
11602        &self,
11603        pointerdevicerect: &windows::Win32::Foundation::RECT,
11604    ) -> windows_core::Result<()>;
11605    fn DisplayRect(&self) -> windows_core::Result<windows::Win32::Foundation::RECT>;
11606    fn SetDisplayRect(
11607        &self,
11608        displayrect: &windows::Win32::Foundation::RECT,
11609    ) -> windows_core::Result<()>;
11610    fn PixelLocation(&self) -> windows_core::Result<windows::Win32::Foundation::POINT>;
11611    fn SetPixelLocation(
11612        &self,
11613        pixellocation: &windows::Win32::Foundation::POINT,
11614    ) -> windows_core::Result<()>;
11615    fn HimetricLocation(&self) -> windows_core::Result<windows::Win32::Foundation::POINT>;
11616    fn SetHimetricLocation(
11617        &self,
11618        himetriclocation: &windows::Win32::Foundation::POINT,
11619    ) -> windows_core::Result<()>;
11620    fn PixelLocationRaw(&self) -> windows_core::Result<windows::Win32::Foundation::POINT>;
11621    fn SetPixelLocationRaw(
11622        &self,
11623        pixellocationraw: &windows::Win32::Foundation::POINT,
11624    ) -> windows_core::Result<()>;
11625    fn HimetricLocationRaw(&self) -> windows_core::Result<windows::Win32::Foundation::POINT>;
11626    fn SetHimetricLocationRaw(
11627        &self,
11628        himetriclocationraw: &windows::Win32::Foundation::POINT,
11629    ) -> windows_core::Result<()>;
11630    fn Time(&self) -> windows_core::Result<u32>;
11631    fn SetTime(&self, time: u32) -> windows_core::Result<()>;
11632    fn HistoryCount(&self) -> windows_core::Result<u32>;
11633    fn SetHistoryCount(&self, historycount: u32) -> windows_core::Result<()>;
11634    fn InputData(&self) -> windows_core::Result<i32>;
11635    fn SetInputData(&self, inputdata: i32) -> windows_core::Result<()>;
11636    fn KeyStates(&self) -> windows_core::Result<u32>;
11637    fn SetKeyStates(&self, keystates: u32) -> windows_core::Result<()>;
11638    fn PerformanceCount(&self) -> windows_core::Result<u64>;
11639    fn SetPerformanceCount(&self, performancecount: u64) -> windows_core::Result<()>;
11640    fn ButtonChangeKind(&self) -> windows_core::Result<i32>;
11641    fn SetButtonChangeKind(&self, buttonchangekind: i32) -> windows_core::Result<()>;
11642    fn PenFlags(&self) -> windows_core::Result<u32>;
11643    fn SetPenFlags(&self, penflags: u32) -> windows_core::Result<()>;
11644    fn PenMask(&self) -> windows_core::Result<u32>;
11645    fn SetPenMask(&self, penmask: u32) -> windows_core::Result<()>;
11646    fn PenPressure(&self) -> windows_core::Result<u32>;
11647    fn SetPenPressure(&self, penpressure: u32) -> windows_core::Result<()>;
11648    fn PenRotation(&self) -> windows_core::Result<u32>;
11649    fn SetPenRotation(&self, penrotation: u32) -> windows_core::Result<()>;
11650    fn PenTiltX(&self) -> windows_core::Result<i32>;
11651    fn SetPenTiltX(&self, pentiltx: i32) -> windows_core::Result<()>;
11652    fn PenTiltY(&self) -> windows_core::Result<i32>;
11653    fn SetPenTiltY(&self, pentilty: i32) -> windows_core::Result<()>;
11654    fn TouchFlags(&self) -> windows_core::Result<u32>;
11655    fn SetTouchFlags(&self, touchflags: u32) -> windows_core::Result<()>;
11656    fn TouchMask(&self) -> windows_core::Result<u32>;
11657    fn SetTouchMask(&self, touchmask: u32) -> windows_core::Result<()>;
11658    fn TouchContact(&self) -> windows_core::Result<windows::Win32::Foundation::RECT>;
11659    fn SetTouchContact(
11660        &self,
11661        touchcontact: &windows::Win32::Foundation::RECT,
11662    ) -> windows_core::Result<()>;
11663    fn TouchContactRaw(&self) -> windows_core::Result<windows::Win32::Foundation::RECT>;
11664    fn SetTouchContactRaw(
11665        &self,
11666        touchcontactraw: &windows::Win32::Foundation::RECT,
11667    ) -> windows_core::Result<()>;
11668    fn TouchOrientation(&self) -> windows_core::Result<u32>;
11669    fn SetTouchOrientation(&self, touchorientation: u32) -> windows_core::Result<()>;
11670    fn TouchPressure(&self) -> windows_core::Result<u32>;
11671    fn SetTouchPressure(&self, touchpressure: u32) -> windows_core::Result<()>;
11672}
11673impl ICoreWebView2PointerInfo_Vtbl {
11674    pub const fn new<Identity: ICoreWebView2PointerInfo_Impl, const OFFSET: isize>() -> Self {
11675        unsafe extern "system" fn PointerKind<
11676            Identity: ICoreWebView2PointerInfo_Impl,
11677            const OFFSET: isize,
11678        >(
11679            this: *mut core::ffi::c_void,
11680            pointerkind: *mut u32,
11681        ) -> windows_core::HRESULT {
11682            unsafe {
11683                let this: &Identity =
11684                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
11685                match ICoreWebView2PointerInfo_Impl::PointerKind(this) {
11686                    Ok(ok__) => {
11687                        pointerkind.write(core::mem::transmute(ok__));
11688                        windows_core::HRESULT(0)
11689                    }
11690                    Err(err) => err.into(),
11691                }
11692            }
11693        }
11694        unsafe extern "system" fn SetPointerKind<
11695            Identity: ICoreWebView2PointerInfo_Impl,
11696            const OFFSET: isize,
11697        >(
11698            this: *mut core::ffi::c_void,
11699            pointerkind: u32,
11700        ) -> windows_core::HRESULT {
11701            unsafe {
11702                let this: &Identity =
11703                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
11704                ICoreWebView2PointerInfo_Impl::SetPointerKind(
11705                    this,
11706                    core::mem::transmute_copy(&pointerkind),
11707                )
11708                .into()
11709            }
11710        }
11711        unsafe extern "system" fn PointerId<
11712            Identity: ICoreWebView2PointerInfo_Impl,
11713            const OFFSET: isize,
11714        >(
11715            this: *mut core::ffi::c_void,
11716            pointerid: *mut u32,
11717        ) -> windows_core::HRESULT {
11718            unsafe {
11719                let this: &Identity =
11720                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
11721                match ICoreWebView2PointerInfo_Impl::PointerId(this) {
11722                    Ok(ok__) => {
11723                        pointerid.write(core::mem::transmute(ok__));
11724                        windows_core::HRESULT(0)
11725                    }
11726                    Err(err) => err.into(),
11727                }
11728            }
11729        }
11730        unsafe extern "system" fn SetPointerId<
11731            Identity: ICoreWebView2PointerInfo_Impl,
11732            const OFFSET: isize,
11733        >(
11734            this: *mut core::ffi::c_void,
11735            pointerid: u32,
11736        ) -> windows_core::HRESULT {
11737            unsafe {
11738                let this: &Identity =
11739                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
11740                ICoreWebView2PointerInfo_Impl::SetPointerId(
11741                    this,
11742                    core::mem::transmute_copy(&pointerid),
11743                )
11744                .into()
11745            }
11746        }
11747        unsafe extern "system" fn FrameId<
11748            Identity: ICoreWebView2PointerInfo_Impl,
11749            const OFFSET: isize,
11750        >(
11751            this: *mut core::ffi::c_void,
11752            frameid: *mut u32,
11753        ) -> windows_core::HRESULT {
11754            unsafe {
11755                let this: &Identity =
11756                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
11757                match ICoreWebView2PointerInfo_Impl::FrameId(this) {
11758                    Ok(ok__) => {
11759                        frameid.write(core::mem::transmute(ok__));
11760                        windows_core::HRESULT(0)
11761                    }
11762                    Err(err) => err.into(),
11763                }
11764            }
11765        }
11766        unsafe extern "system" fn SetFrameId<
11767            Identity: ICoreWebView2PointerInfo_Impl,
11768            const OFFSET: isize,
11769        >(
11770            this: *mut core::ffi::c_void,
11771            frameid: u32,
11772        ) -> windows_core::HRESULT {
11773            unsafe {
11774                let this: &Identity =
11775                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
11776                ICoreWebView2PointerInfo_Impl::SetFrameId(this, core::mem::transmute_copy(&frameid))
11777                    .into()
11778            }
11779        }
11780        unsafe extern "system" fn PointerFlags<
11781            Identity: ICoreWebView2PointerInfo_Impl,
11782            const OFFSET: isize,
11783        >(
11784            this: *mut core::ffi::c_void,
11785            pointerflags: *mut u32,
11786        ) -> windows_core::HRESULT {
11787            unsafe {
11788                let this: &Identity =
11789                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
11790                match ICoreWebView2PointerInfo_Impl::PointerFlags(this) {
11791                    Ok(ok__) => {
11792                        pointerflags.write(core::mem::transmute(ok__));
11793                        windows_core::HRESULT(0)
11794                    }
11795                    Err(err) => err.into(),
11796                }
11797            }
11798        }
11799        unsafe extern "system" fn SetPointerFlags<
11800            Identity: ICoreWebView2PointerInfo_Impl,
11801            const OFFSET: isize,
11802        >(
11803            this: *mut core::ffi::c_void,
11804            pointerflags: u32,
11805        ) -> windows_core::HRESULT {
11806            unsafe {
11807                let this: &Identity =
11808                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
11809                ICoreWebView2PointerInfo_Impl::SetPointerFlags(
11810                    this,
11811                    core::mem::transmute_copy(&pointerflags),
11812                )
11813                .into()
11814            }
11815        }
11816        unsafe extern "system" fn PointerDeviceRect<
11817            Identity: ICoreWebView2PointerInfo_Impl,
11818            const OFFSET: isize,
11819        >(
11820            this: *mut core::ffi::c_void,
11821            pointerdevicerect: *mut windows::Win32::Foundation::RECT,
11822        ) -> windows_core::HRESULT {
11823            unsafe {
11824                let this: &Identity =
11825                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
11826                match ICoreWebView2PointerInfo_Impl::PointerDeviceRect(this) {
11827                    Ok(ok__) => {
11828                        pointerdevicerect.write(core::mem::transmute(ok__));
11829                        windows_core::HRESULT(0)
11830                    }
11831                    Err(err) => err.into(),
11832                }
11833            }
11834        }
11835        unsafe extern "system" fn SetPointerDeviceRect<
11836            Identity: ICoreWebView2PointerInfo_Impl,
11837            const OFFSET: isize,
11838        >(
11839            this: *mut core::ffi::c_void,
11840            pointerdevicerect: windows::Win32::Foundation::RECT,
11841        ) -> windows_core::HRESULT {
11842            unsafe {
11843                let this: &Identity =
11844                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
11845                ICoreWebView2PointerInfo_Impl::SetPointerDeviceRect(
11846                    this,
11847                    core::mem::transmute(&pointerdevicerect),
11848                )
11849                .into()
11850            }
11851        }
11852        unsafe extern "system" fn DisplayRect<
11853            Identity: ICoreWebView2PointerInfo_Impl,
11854            const OFFSET: isize,
11855        >(
11856            this: *mut core::ffi::c_void,
11857            displayrect: *mut windows::Win32::Foundation::RECT,
11858        ) -> windows_core::HRESULT {
11859            unsafe {
11860                let this: &Identity =
11861                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
11862                match ICoreWebView2PointerInfo_Impl::DisplayRect(this) {
11863                    Ok(ok__) => {
11864                        displayrect.write(core::mem::transmute(ok__));
11865                        windows_core::HRESULT(0)
11866                    }
11867                    Err(err) => err.into(),
11868                }
11869            }
11870        }
11871        unsafe extern "system" fn SetDisplayRect<
11872            Identity: ICoreWebView2PointerInfo_Impl,
11873            const OFFSET: isize,
11874        >(
11875            this: *mut core::ffi::c_void,
11876            displayrect: windows::Win32::Foundation::RECT,
11877        ) -> windows_core::HRESULT {
11878            unsafe {
11879                let this: &Identity =
11880                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
11881                ICoreWebView2PointerInfo_Impl::SetDisplayRect(
11882                    this,
11883                    core::mem::transmute(&displayrect),
11884                )
11885                .into()
11886            }
11887        }
11888        unsafe extern "system" fn PixelLocation<
11889            Identity: ICoreWebView2PointerInfo_Impl,
11890            const OFFSET: isize,
11891        >(
11892            this: *mut core::ffi::c_void,
11893            pixellocation: *mut windows::Win32::Foundation::POINT,
11894        ) -> windows_core::HRESULT {
11895            unsafe {
11896                let this: &Identity =
11897                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
11898                match ICoreWebView2PointerInfo_Impl::PixelLocation(this) {
11899                    Ok(ok__) => {
11900                        pixellocation.write(core::mem::transmute(ok__));
11901                        windows_core::HRESULT(0)
11902                    }
11903                    Err(err) => err.into(),
11904                }
11905            }
11906        }
11907        unsafe extern "system" fn SetPixelLocation<
11908            Identity: ICoreWebView2PointerInfo_Impl,
11909            const OFFSET: isize,
11910        >(
11911            this: *mut core::ffi::c_void,
11912            pixellocation: windows::Win32::Foundation::POINT,
11913        ) -> windows_core::HRESULT {
11914            unsafe {
11915                let this: &Identity =
11916                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
11917                ICoreWebView2PointerInfo_Impl::SetPixelLocation(
11918                    this,
11919                    core::mem::transmute(&pixellocation),
11920                )
11921                .into()
11922            }
11923        }
11924        unsafe extern "system" fn HimetricLocation<
11925            Identity: ICoreWebView2PointerInfo_Impl,
11926            const OFFSET: isize,
11927        >(
11928            this: *mut core::ffi::c_void,
11929            himetriclocation: *mut windows::Win32::Foundation::POINT,
11930        ) -> windows_core::HRESULT {
11931            unsafe {
11932                let this: &Identity =
11933                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
11934                match ICoreWebView2PointerInfo_Impl::HimetricLocation(this) {
11935                    Ok(ok__) => {
11936                        himetriclocation.write(core::mem::transmute(ok__));
11937                        windows_core::HRESULT(0)
11938                    }
11939                    Err(err) => err.into(),
11940                }
11941            }
11942        }
11943        unsafe extern "system" fn SetHimetricLocation<
11944            Identity: ICoreWebView2PointerInfo_Impl,
11945            const OFFSET: isize,
11946        >(
11947            this: *mut core::ffi::c_void,
11948            himetriclocation: windows::Win32::Foundation::POINT,
11949        ) -> windows_core::HRESULT {
11950            unsafe {
11951                let this: &Identity =
11952                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
11953                ICoreWebView2PointerInfo_Impl::SetHimetricLocation(
11954                    this,
11955                    core::mem::transmute(&himetriclocation),
11956                )
11957                .into()
11958            }
11959        }
11960        unsafe extern "system" fn PixelLocationRaw<
11961            Identity: ICoreWebView2PointerInfo_Impl,
11962            const OFFSET: isize,
11963        >(
11964            this: *mut core::ffi::c_void,
11965            pixellocationraw: *mut windows::Win32::Foundation::POINT,
11966        ) -> windows_core::HRESULT {
11967            unsafe {
11968                let this: &Identity =
11969                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
11970                match ICoreWebView2PointerInfo_Impl::PixelLocationRaw(this) {
11971                    Ok(ok__) => {
11972                        pixellocationraw.write(core::mem::transmute(ok__));
11973                        windows_core::HRESULT(0)
11974                    }
11975                    Err(err) => err.into(),
11976                }
11977            }
11978        }
11979        unsafe extern "system" fn SetPixelLocationRaw<
11980            Identity: ICoreWebView2PointerInfo_Impl,
11981            const OFFSET: isize,
11982        >(
11983            this: *mut core::ffi::c_void,
11984            pixellocationraw: windows::Win32::Foundation::POINT,
11985        ) -> windows_core::HRESULT {
11986            unsafe {
11987                let this: &Identity =
11988                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
11989                ICoreWebView2PointerInfo_Impl::SetPixelLocationRaw(
11990                    this,
11991                    core::mem::transmute(&pixellocationraw),
11992                )
11993                .into()
11994            }
11995        }
11996        unsafe extern "system" fn HimetricLocationRaw<
11997            Identity: ICoreWebView2PointerInfo_Impl,
11998            const OFFSET: isize,
11999        >(
12000            this: *mut core::ffi::c_void,
12001            himetriclocationraw: *mut windows::Win32::Foundation::POINT,
12002        ) -> windows_core::HRESULT {
12003            unsafe {
12004                let this: &Identity =
12005                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
12006                match ICoreWebView2PointerInfo_Impl::HimetricLocationRaw(this) {
12007                    Ok(ok__) => {
12008                        himetriclocationraw.write(core::mem::transmute(ok__));
12009                        windows_core::HRESULT(0)
12010                    }
12011                    Err(err) => err.into(),
12012                }
12013            }
12014        }
12015        unsafe extern "system" fn SetHimetricLocationRaw<
12016            Identity: ICoreWebView2PointerInfo_Impl,
12017            const OFFSET: isize,
12018        >(
12019            this: *mut core::ffi::c_void,
12020            himetriclocationraw: windows::Win32::Foundation::POINT,
12021        ) -> windows_core::HRESULT {
12022            unsafe {
12023                let this: &Identity =
12024                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
12025                ICoreWebView2PointerInfo_Impl::SetHimetricLocationRaw(
12026                    this,
12027                    core::mem::transmute(&himetriclocationraw),
12028                )
12029                .into()
12030            }
12031        }
12032        unsafe extern "system" fn Time<
12033            Identity: ICoreWebView2PointerInfo_Impl,
12034            const OFFSET: isize,
12035        >(
12036            this: *mut core::ffi::c_void,
12037            time: *mut u32,
12038        ) -> windows_core::HRESULT {
12039            unsafe {
12040                let this: &Identity =
12041                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
12042                match ICoreWebView2PointerInfo_Impl::Time(this) {
12043                    Ok(ok__) => {
12044                        time.write(core::mem::transmute(ok__));
12045                        windows_core::HRESULT(0)
12046                    }
12047                    Err(err) => err.into(),
12048                }
12049            }
12050        }
12051        unsafe extern "system" fn SetTime<
12052            Identity: ICoreWebView2PointerInfo_Impl,
12053            const OFFSET: isize,
12054        >(
12055            this: *mut core::ffi::c_void,
12056            time: u32,
12057        ) -> windows_core::HRESULT {
12058            unsafe {
12059                let this: &Identity =
12060                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
12061                ICoreWebView2PointerInfo_Impl::SetTime(this, core::mem::transmute_copy(&time))
12062                    .into()
12063            }
12064        }
12065        unsafe extern "system" fn HistoryCount<
12066            Identity: ICoreWebView2PointerInfo_Impl,
12067            const OFFSET: isize,
12068        >(
12069            this: *mut core::ffi::c_void,
12070            historycount: *mut u32,
12071        ) -> windows_core::HRESULT {
12072            unsafe {
12073                let this: &Identity =
12074                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
12075                match ICoreWebView2PointerInfo_Impl::HistoryCount(this) {
12076                    Ok(ok__) => {
12077                        historycount.write(core::mem::transmute(ok__));
12078                        windows_core::HRESULT(0)
12079                    }
12080                    Err(err) => err.into(),
12081                }
12082            }
12083        }
12084        unsafe extern "system" fn SetHistoryCount<
12085            Identity: ICoreWebView2PointerInfo_Impl,
12086            const OFFSET: isize,
12087        >(
12088            this: *mut core::ffi::c_void,
12089            historycount: u32,
12090        ) -> windows_core::HRESULT {
12091            unsafe {
12092                let this: &Identity =
12093                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
12094                ICoreWebView2PointerInfo_Impl::SetHistoryCount(
12095                    this,
12096                    core::mem::transmute_copy(&historycount),
12097                )
12098                .into()
12099            }
12100        }
12101        unsafe extern "system" fn InputData<
12102            Identity: ICoreWebView2PointerInfo_Impl,
12103            const OFFSET: isize,
12104        >(
12105            this: *mut core::ffi::c_void,
12106            inputdata: *mut i32,
12107        ) -> windows_core::HRESULT {
12108            unsafe {
12109                let this: &Identity =
12110                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
12111                match ICoreWebView2PointerInfo_Impl::InputData(this) {
12112                    Ok(ok__) => {
12113                        inputdata.write(core::mem::transmute(ok__));
12114                        windows_core::HRESULT(0)
12115                    }
12116                    Err(err) => err.into(),
12117                }
12118            }
12119        }
12120        unsafe extern "system" fn SetInputData<
12121            Identity: ICoreWebView2PointerInfo_Impl,
12122            const OFFSET: isize,
12123        >(
12124            this: *mut core::ffi::c_void,
12125            inputdata: i32,
12126        ) -> windows_core::HRESULT {
12127            unsafe {
12128                let this: &Identity =
12129                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
12130                ICoreWebView2PointerInfo_Impl::SetInputData(
12131                    this,
12132                    core::mem::transmute_copy(&inputdata),
12133                )
12134                .into()
12135            }
12136        }
12137        unsafe extern "system" fn KeyStates<
12138            Identity: ICoreWebView2PointerInfo_Impl,
12139            const OFFSET: isize,
12140        >(
12141            this: *mut core::ffi::c_void,
12142            keystates: *mut u32,
12143        ) -> windows_core::HRESULT {
12144            unsafe {
12145                let this: &Identity =
12146                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
12147                match ICoreWebView2PointerInfo_Impl::KeyStates(this) {
12148                    Ok(ok__) => {
12149                        keystates.write(core::mem::transmute(ok__));
12150                        windows_core::HRESULT(0)
12151                    }
12152                    Err(err) => err.into(),
12153                }
12154            }
12155        }
12156        unsafe extern "system" fn SetKeyStates<
12157            Identity: ICoreWebView2PointerInfo_Impl,
12158            const OFFSET: isize,
12159        >(
12160            this: *mut core::ffi::c_void,
12161            keystates: u32,
12162        ) -> windows_core::HRESULT {
12163            unsafe {
12164                let this: &Identity =
12165                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
12166                ICoreWebView2PointerInfo_Impl::SetKeyStates(
12167                    this,
12168                    core::mem::transmute_copy(&keystates),
12169                )
12170                .into()
12171            }
12172        }
12173        unsafe extern "system" fn PerformanceCount<
12174            Identity: ICoreWebView2PointerInfo_Impl,
12175            const OFFSET: isize,
12176        >(
12177            this: *mut core::ffi::c_void,
12178            performancecount: *mut u64,
12179        ) -> windows_core::HRESULT {
12180            unsafe {
12181                let this: &Identity =
12182                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
12183                match ICoreWebView2PointerInfo_Impl::PerformanceCount(this) {
12184                    Ok(ok__) => {
12185                        performancecount.write(core::mem::transmute(ok__));
12186                        windows_core::HRESULT(0)
12187                    }
12188                    Err(err) => err.into(),
12189                }
12190            }
12191        }
12192        unsafe extern "system" fn SetPerformanceCount<
12193            Identity: ICoreWebView2PointerInfo_Impl,
12194            const OFFSET: isize,
12195        >(
12196            this: *mut core::ffi::c_void,
12197            performancecount: u64,
12198        ) -> windows_core::HRESULT {
12199            unsafe {
12200                let this: &Identity =
12201                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
12202                ICoreWebView2PointerInfo_Impl::SetPerformanceCount(
12203                    this,
12204                    core::mem::transmute_copy(&performancecount),
12205                )
12206                .into()
12207            }
12208        }
12209        unsafe extern "system" fn ButtonChangeKind<
12210            Identity: ICoreWebView2PointerInfo_Impl,
12211            const OFFSET: isize,
12212        >(
12213            this: *mut core::ffi::c_void,
12214            buttonchangekind: *mut i32,
12215        ) -> windows_core::HRESULT {
12216            unsafe {
12217                let this: &Identity =
12218                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
12219                match ICoreWebView2PointerInfo_Impl::ButtonChangeKind(this) {
12220                    Ok(ok__) => {
12221                        buttonchangekind.write(core::mem::transmute(ok__));
12222                        windows_core::HRESULT(0)
12223                    }
12224                    Err(err) => err.into(),
12225                }
12226            }
12227        }
12228        unsafe extern "system" fn SetButtonChangeKind<
12229            Identity: ICoreWebView2PointerInfo_Impl,
12230            const OFFSET: isize,
12231        >(
12232            this: *mut core::ffi::c_void,
12233            buttonchangekind: i32,
12234        ) -> windows_core::HRESULT {
12235            unsafe {
12236                let this: &Identity =
12237                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
12238                ICoreWebView2PointerInfo_Impl::SetButtonChangeKind(
12239                    this,
12240                    core::mem::transmute_copy(&buttonchangekind),
12241                )
12242                .into()
12243            }
12244        }
12245        unsafe extern "system" fn PenFlags<
12246            Identity: ICoreWebView2PointerInfo_Impl,
12247            const OFFSET: isize,
12248        >(
12249            this: *mut core::ffi::c_void,
12250            penflags: *mut u32,
12251        ) -> windows_core::HRESULT {
12252            unsafe {
12253                let this: &Identity =
12254                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
12255                match ICoreWebView2PointerInfo_Impl::PenFlags(this) {
12256                    Ok(ok__) => {
12257                        penflags.write(core::mem::transmute(ok__));
12258                        windows_core::HRESULT(0)
12259                    }
12260                    Err(err) => err.into(),
12261                }
12262            }
12263        }
12264        unsafe extern "system" fn SetPenFlags<
12265            Identity: ICoreWebView2PointerInfo_Impl,
12266            const OFFSET: isize,
12267        >(
12268            this: *mut core::ffi::c_void,
12269            penflags: u32,
12270        ) -> windows_core::HRESULT {
12271            unsafe {
12272                let this: &Identity =
12273                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
12274                ICoreWebView2PointerInfo_Impl::SetPenFlags(
12275                    this,
12276                    core::mem::transmute_copy(&penflags),
12277                )
12278                .into()
12279            }
12280        }
12281        unsafe extern "system" fn PenMask<
12282            Identity: ICoreWebView2PointerInfo_Impl,
12283            const OFFSET: isize,
12284        >(
12285            this: *mut core::ffi::c_void,
12286            penmask: *mut u32,
12287        ) -> windows_core::HRESULT {
12288            unsafe {
12289                let this: &Identity =
12290                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
12291                match ICoreWebView2PointerInfo_Impl::PenMask(this) {
12292                    Ok(ok__) => {
12293                        penmask.write(core::mem::transmute(ok__));
12294                        windows_core::HRESULT(0)
12295                    }
12296                    Err(err) => err.into(),
12297                }
12298            }
12299        }
12300        unsafe extern "system" fn SetPenMask<
12301            Identity: ICoreWebView2PointerInfo_Impl,
12302            const OFFSET: isize,
12303        >(
12304            this: *mut core::ffi::c_void,
12305            penmask: u32,
12306        ) -> windows_core::HRESULT {
12307            unsafe {
12308                let this: &Identity =
12309                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
12310                ICoreWebView2PointerInfo_Impl::SetPenMask(this, core::mem::transmute_copy(&penmask))
12311                    .into()
12312            }
12313        }
12314        unsafe extern "system" fn PenPressure<
12315            Identity: ICoreWebView2PointerInfo_Impl,
12316            const OFFSET: isize,
12317        >(
12318            this: *mut core::ffi::c_void,
12319            penpressure: *mut u32,
12320        ) -> windows_core::HRESULT {
12321            unsafe {
12322                let this: &Identity =
12323                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
12324                match ICoreWebView2PointerInfo_Impl::PenPressure(this) {
12325                    Ok(ok__) => {
12326                        penpressure.write(core::mem::transmute(ok__));
12327                        windows_core::HRESULT(0)
12328                    }
12329                    Err(err) => err.into(),
12330                }
12331            }
12332        }
12333        unsafe extern "system" fn SetPenPressure<
12334            Identity: ICoreWebView2PointerInfo_Impl,
12335            const OFFSET: isize,
12336        >(
12337            this: *mut core::ffi::c_void,
12338            penpressure: u32,
12339        ) -> windows_core::HRESULT {
12340            unsafe {
12341                let this: &Identity =
12342                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
12343                ICoreWebView2PointerInfo_Impl::SetPenPressure(
12344                    this,
12345                    core::mem::transmute_copy(&penpressure),
12346                )
12347                .into()
12348            }
12349        }
12350        unsafe extern "system" fn PenRotation<
12351            Identity: ICoreWebView2PointerInfo_Impl,
12352            const OFFSET: isize,
12353        >(
12354            this: *mut core::ffi::c_void,
12355            penrotation: *mut u32,
12356        ) -> windows_core::HRESULT {
12357            unsafe {
12358                let this: &Identity =
12359                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
12360                match ICoreWebView2PointerInfo_Impl::PenRotation(this) {
12361                    Ok(ok__) => {
12362                        penrotation.write(core::mem::transmute(ok__));
12363                        windows_core::HRESULT(0)
12364                    }
12365                    Err(err) => err.into(),
12366                }
12367            }
12368        }
12369        unsafe extern "system" fn SetPenRotation<
12370            Identity: ICoreWebView2PointerInfo_Impl,
12371            const OFFSET: isize,
12372        >(
12373            this: *mut core::ffi::c_void,
12374            penrotation: u32,
12375        ) -> windows_core::HRESULT {
12376            unsafe {
12377                let this: &Identity =
12378                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
12379                ICoreWebView2PointerInfo_Impl::SetPenRotation(
12380                    this,
12381                    core::mem::transmute_copy(&penrotation),
12382                )
12383                .into()
12384            }
12385        }
12386        unsafe extern "system" fn PenTiltX<
12387            Identity: ICoreWebView2PointerInfo_Impl,
12388            const OFFSET: isize,
12389        >(
12390            this: *mut core::ffi::c_void,
12391            pentiltx: *mut i32,
12392        ) -> windows_core::HRESULT {
12393            unsafe {
12394                let this: &Identity =
12395                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
12396                match ICoreWebView2PointerInfo_Impl::PenTiltX(this) {
12397                    Ok(ok__) => {
12398                        pentiltx.write(core::mem::transmute(ok__));
12399                        windows_core::HRESULT(0)
12400                    }
12401                    Err(err) => err.into(),
12402                }
12403            }
12404        }
12405        unsafe extern "system" fn SetPenTiltX<
12406            Identity: ICoreWebView2PointerInfo_Impl,
12407            const OFFSET: isize,
12408        >(
12409            this: *mut core::ffi::c_void,
12410            pentiltx: i32,
12411        ) -> windows_core::HRESULT {
12412            unsafe {
12413                let this: &Identity =
12414                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
12415                ICoreWebView2PointerInfo_Impl::SetPenTiltX(
12416                    this,
12417                    core::mem::transmute_copy(&pentiltx),
12418                )
12419                .into()
12420            }
12421        }
12422        unsafe extern "system" fn PenTiltY<
12423            Identity: ICoreWebView2PointerInfo_Impl,
12424            const OFFSET: isize,
12425        >(
12426            this: *mut core::ffi::c_void,
12427            pentilty: *mut i32,
12428        ) -> windows_core::HRESULT {
12429            unsafe {
12430                let this: &Identity =
12431                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
12432                match ICoreWebView2PointerInfo_Impl::PenTiltY(this) {
12433                    Ok(ok__) => {
12434                        pentilty.write(core::mem::transmute(ok__));
12435                        windows_core::HRESULT(0)
12436                    }
12437                    Err(err) => err.into(),
12438                }
12439            }
12440        }
12441        unsafe extern "system" fn SetPenTiltY<
12442            Identity: ICoreWebView2PointerInfo_Impl,
12443            const OFFSET: isize,
12444        >(
12445            this: *mut core::ffi::c_void,
12446            pentilty: i32,
12447        ) -> windows_core::HRESULT {
12448            unsafe {
12449                let this: &Identity =
12450                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
12451                ICoreWebView2PointerInfo_Impl::SetPenTiltY(
12452                    this,
12453                    core::mem::transmute_copy(&pentilty),
12454                )
12455                .into()
12456            }
12457        }
12458        unsafe extern "system" fn TouchFlags<
12459            Identity: ICoreWebView2PointerInfo_Impl,
12460            const OFFSET: isize,
12461        >(
12462            this: *mut core::ffi::c_void,
12463            touchflags: *mut u32,
12464        ) -> windows_core::HRESULT {
12465            unsafe {
12466                let this: &Identity =
12467                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
12468                match ICoreWebView2PointerInfo_Impl::TouchFlags(this) {
12469                    Ok(ok__) => {
12470                        touchflags.write(core::mem::transmute(ok__));
12471                        windows_core::HRESULT(0)
12472                    }
12473                    Err(err) => err.into(),
12474                }
12475            }
12476        }
12477        unsafe extern "system" fn SetTouchFlags<
12478            Identity: ICoreWebView2PointerInfo_Impl,
12479            const OFFSET: isize,
12480        >(
12481            this: *mut core::ffi::c_void,
12482            touchflags: u32,
12483        ) -> windows_core::HRESULT {
12484            unsafe {
12485                let this: &Identity =
12486                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
12487                ICoreWebView2PointerInfo_Impl::SetTouchFlags(
12488                    this,
12489                    core::mem::transmute_copy(&touchflags),
12490                )
12491                .into()
12492            }
12493        }
12494        unsafe extern "system" fn TouchMask<
12495            Identity: ICoreWebView2PointerInfo_Impl,
12496            const OFFSET: isize,
12497        >(
12498            this: *mut core::ffi::c_void,
12499            touchmask: *mut u32,
12500        ) -> windows_core::HRESULT {
12501            unsafe {
12502                let this: &Identity =
12503                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
12504                match ICoreWebView2PointerInfo_Impl::TouchMask(this) {
12505                    Ok(ok__) => {
12506                        touchmask.write(core::mem::transmute(ok__));
12507                        windows_core::HRESULT(0)
12508                    }
12509                    Err(err) => err.into(),
12510                }
12511            }
12512        }
12513        unsafe extern "system" fn SetTouchMask<
12514            Identity: ICoreWebView2PointerInfo_Impl,
12515            const OFFSET: isize,
12516        >(
12517            this: *mut core::ffi::c_void,
12518            touchmask: u32,
12519        ) -> windows_core::HRESULT {
12520            unsafe {
12521                let this: &Identity =
12522                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
12523                ICoreWebView2PointerInfo_Impl::SetTouchMask(
12524                    this,
12525                    core::mem::transmute_copy(&touchmask),
12526                )
12527                .into()
12528            }
12529        }
12530        unsafe extern "system" fn TouchContact<
12531            Identity: ICoreWebView2PointerInfo_Impl,
12532            const OFFSET: isize,
12533        >(
12534            this: *mut core::ffi::c_void,
12535            touchcontact: *mut windows::Win32::Foundation::RECT,
12536        ) -> windows_core::HRESULT {
12537            unsafe {
12538                let this: &Identity =
12539                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
12540                match ICoreWebView2PointerInfo_Impl::TouchContact(this) {
12541                    Ok(ok__) => {
12542                        touchcontact.write(core::mem::transmute(ok__));
12543                        windows_core::HRESULT(0)
12544                    }
12545                    Err(err) => err.into(),
12546                }
12547            }
12548        }
12549        unsafe extern "system" fn SetTouchContact<
12550            Identity: ICoreWebView2PointerInfo_Impl,
12551            const OFFSET: isize,
12552        >(
12553            this: *mut core::ffi::c_void,
12554            touchcontact: windows::Win32::Foundation::RECT,
12555        ) -> windows_core::HRESULT {
12556            unsafe {
12557                let this: &Identity =
12558                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
12559                ICoreWebView2PointerInfo_Impl::SetTouchContact(
12560                    this,
12561                    core::mem::transmute(&touchcontact),
12562                )
12563                .into()
12564            }
12565        }
12566        unsafe extern "system" fn TouchContactRaw<
12567            Identity: ICoreWebView2PointerInfo_Impl,
12568            const OFFSET: isize,
12569        >(
12570            this: *mut core::ffi::c_void,
12571            touchcontactraw: *mut windows::Win32::Foundation::RECT,
12572        ) -> windows_core::HRESULT {
12573            unsafe {
12574                let this: &Identity =
12575                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
12576                match ICoreWebView2PointerInfo_Impl::TouchContactRaw(this) {
12577                    Ok(ok__) => {
12578                        touchcontactraw.write(core::mem::transmute(ok__));
12579                        windows_core::HRESULT(0)
12580                    }
12581                    Err(err) => err.into(),
12582                }
12583            }
12584        }
12585        unsafe extern "system" fn SetTouchContactRaw<
12586            Identity: ICoreWebView2PointerInfo_Impl,
12587            const OFFSET: isize,
12588        >(
12589            this: *mut core::ffi::c_void,
12590            touchcontactraw: windows::Win32::Foundation::RECT,
12591        ) -> windows_core::HRESULT {
12592            unsafe {
12593                let this: &Identity =
12594                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
12595                ICoreWebView2PointerInfo_Impl::SetTouchContactRaw(
12596                    this,
12597                    core::mem::transmute(&touchcontactraw),
12598                )
12599                .into()
12600            }
12601        }
12602        unsafe extern "system" fn TouchOrientation<
12603            Identity: ICoreWebView2PointerInfo_Impl,
12604            const OFFSET: isize,
12605        >(
12606            this: *mut core::ffi::c_void,
12607            touchorientation: *mut u32,
12608        ) -> windows_core::HRESULT {
12609            unsafe {
12610                let this: &Identity =
12611                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
12612                match ICoreWebView2PointerInfo_Impl::TouchOrientation(this) {
12613                    Ok(ok__) => {
12614                        touchorientation.write(core::mem::transmute(ok__));
12615                        windows_core::HRESULT(0)
12616                    }
12617                    Err(err) => err.into(),
12618                }
12619            }
12620        }
12621        unsafe extern "system" fn SetTouchOrientation<
12622            Identity: ICoreWebView2PointerInfo_Impl,
12623            const OFFSET: isize,
12624        >(
12625            this: *mut core::ffi::c_void,
12626            touchorientation: u32,
12627        ) -> windows_core::HRESULT {
12628            unsafe {
12629                let this: &Identity =
12630                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
12631                ICoreWebView2PointerInfo_Impl::SetTouchOrientation(
12632                    this,
12633                    core::mem::transmute_copy(&touchorientation),
12634                )
12635                .into()
12636            }
12637        }
12638        unsafe extern "system" fn TouchPressure<
12639            Identity: ICoreWebView2PointerInfo_Impl,
12640            const OFFSET: isize,
12641        >(
12642            this: *mut core::ffi::c_void,
12643            touchpressure: *mut u32,
12644        ) -> windows_core::HRESULT {
12645            unsafe {
12646                let this: &Identity =
12647                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
12648                match ICoreWebView2PointerInfo_Impl::TouchPressure(this) {
12649                    Ok(ok__) => {
12650                        touchpressure.write(core::mem::transmute(ok__));
12651                        windows_core::HRESULT(0)
12652                    }
12653                    Err(err) => err.into(),
12654                }
12655            }
12656        }
12657        unsafe extern "system" fn SetTouchPressure<
12658            Identity: ICoreWebView2PointerInfo_Impl,
12659            const OFFSET: isize,
12660        >(
12661            this: *mut core::ffi::c_void,
12662            touchpressure: u32,
12663        ) -> windows_core::HRESULT {
12664            unsafe {
12665                let this: &Identity =
12666                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
12667                ICoreWebView2PointerInfo_Impl::SetTouchPressure(
12668                    this,
12669                    core::mem::transmute_copy(&touchpressure),
12670                )
12671                .into()
12672            }
12673        }
12674        Self {
12675            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
12676            PointerKind: PointerKind::<Identity, OFFSET>,
12677            SetPointerKind: SetPointerKind::<Identity, OFFSET>,
12678            PointerId: PointerId::<Identity, OFFSET>,
12679            SetPointerId: SetPointerId::<Identity, OFFSET>,
12680            FrameId: FrameId::<Identity, OFFSET>,
12681            SetFrameId: SetFrameId::<Identity, OFFSET>,
12682            PointerFlags: PointerFlags::<Identity, OFFSET>,
12683            SetPointerFlags: SetPointerFlags::<Identity, OFFSET>,
12684            PointerDeviceRect: PointerDeviceRect::<Identity, OFFSET>,
12685            SetPointerDeviceRect: SetPointerDeviceRect::<Identity, OFFSET>,
12686            DisplayRect: DisplayRect::<Identity, OFFSET>,
12687            SetDisplayRect: SetDisplayRect::<Identity, OFFSET>,
12688            PixelLocation: PixelLocation::<Identity, OFFSET>,
12689            SetPixelLocation: SetPixelLocation::<Identity, OFFSET>,
12690            HimetricLocation: HimetricLocation::<Identity, OFFSET>,
12691            SetHimetricLocation: SetHimetricLocation::<Identity, OFFSET>,
12692            PixelLocationRaw: PixelLocationRaw::<Identity, OFFSET>,
12693            SetPixelLocationRaw: SetPixelLocationRaw::<Identity, OFFSET>,
12694            HimetricLocationRaw: HimetricLocationRaw::<Identity, OFFSET>,
12695            SetHimetricLocationRaw: SetHimetricLocationRaw::<Identity, OFFSET>,
12696            Time: Time::<Identity, OFFSET>,
12697            SetTime: SetTime::<Identity, OFFSET>,
12698            HistoryCount: HistoryCount::<Identity, OFFSET>,
12699            SetHistoryCount: SetHistoryCount::<Identity, OFFSET>,
12700            InputData: InputData::<Identity, OFFSET>,
12701            SetInputData: SetInputData::<Identity, OFFSET>,
12702            KeyStates: KeyStates::<Identity, OFFSET>,
12703            SetKeyStates: SetKeyStates::<Identity, OFFSET>,
12704            PerformanceCount: PerformanceCount::<Identity, OFFSET>,
12705            SetPerformanceCount: SetPerformanceCount::<Identity, OFFSET>,
12706            ButtonChangeKind: ButtonChangeKind::<Identity, OFFSET>,
12707            SetButtonChangeKind: SetButtonChangeKind::<Identity, OFFSET>,
12708            PenFlags: PenFlags::<Identity, OFFSET>,
12709            SetPenFlags: SetPenFlags::<Identity, OFFSET>,
12710            PenMask: PenMask::<Identity, OFFSET>,
12711            SetPenMask: SetPenMask::<Identity, OFFSET>,
12712            PenPressure: PenPressure::<Identity, OFFSET>,
12713            SetPenPressure: SetPenPressure::<Identity, OFFSET>,
12714            PenRotation: PenRotation::<Identity, OFFSET>,
12715            SetPenRotation: SetPenRotation::<Identity, OFFSET>,
12716            PenTiltX: PenTiltX::<Identity, OFFSET>,
12717            SetPenTiltX: SetPenTiltX::<Identity, OFFSET>,
12718            PenTiltY: PenTiltY::<Identity, OFFSET>,
12719            SetPenTiltY: SetPenTiltY::<Identity, OFFSET>,
12720            TouchFlags: TouchFlags::<Identity, OFFSET>,
12721            SetTouchFlags: SetTouchFlags::<Identity, OFFSET>,
12722            TouchMask: TouchMask::<Identity, OFFSET>,
12723            SetTouchMask: SetTouchMask::<Identity, OFFSET>,
12724            TouchContact: TouchContact::<Identity, OFFSET>,
12725            SetTouchContact: SetTouchContact::<Identity, OFFSET>,
12726            TouchContactRaw: TouchContactRaw::<Identity, OFFSET>,
12727            SetTouchContactRaw: SetTouchContactRaw::<Identity, OFFSET>,
12728            TouchOrientation: TouchOrientation::<Identity, OFFSET>,
12729            SetTouchOrientation: SetTouchOrientation::<Identity, OFFSET>,
12730            TouchPressure: TouchPressure::<Identity, OFFSET>,
12731            SetTouchPressure: SetTouchPressure::<Identity, OFFSET>,
12732        }
12733    }
12734    pub fn matches(iid: &windows_core::GUID) -> bool {
12735        iid == &<ICoreWebView2PointerInfo as windows_core::Interface>::IID
12736    }
12737}
12738impl windows_core::RuntimeName for ICoreWebView2PointerInfo {}
12739windows_core::imp::define_interface!(
12740    ICoreWebView2ProcessFailedEventArgs,
12741    ICoreWebView2ProcessFailedEventArgs_Vtbl,
12742    0x8155a9a4_1474_4a86_8cae_151b0fa6b8ca
12743);
12744windows_core::imp::interface_hierarchy!(
12745    ICoreWebView2ProcessFailedEventArgs,
12746    windows_core::IUnknown
12747);
12748impl ICoreWebView2ProcessFailedEventArgs {
12749    pub unsafe fn ProcessFailedKind(
12750        &self,
12751    ) -> windows_core::Result<COREWEBVIEW2_PROCESS_FAILED_KIND> {
12752        unsafe {
12753            let mut result__ = core::mem::zeroed();
12754            (windows_core::Interface::vtable(self).ProcessFailedKind)(
12755                windows_core::Interface::as_raw(self),
12756                &mut result__,
12757            )
12758            .map(|| result__)
12759        }
12760    }
12761}
12762#[repr(C)]
12763#[doc(hidden)]
12764pub struct ICoreWebView2ProcessFailedEventArgs_Vtbl {
12765    pub base__: windows_core::IUnknown_Vtbl,
12766    pub ProcessFailedKind: unsafe extern "system" fn(
12767        *mut core::ffi::c_void,
12768        *mut COREWEBVIEW2_PROCESS_FAILED_KIND,
12769    ) -> windows_core::HRESULT,
12770}
12771pub trait ICoreWebView2ProcessFailedEventArgs_Impl: windows_core::IUnknownImpl {
12772    fn ProcessFailedKind(&self) -> windows_core::Result<COREWEBVIEW2_PROCESS_FAILED_KIND>;
12773}
12774impl ICoreWebView2ProcessFailedEventArgs_Vtbl {
12775    pub const fn new<Identity: ICoreWebView2ProcessFailedEventArgs_Impl, const OFFSET: isize>(
12776    ) -> Self {
12777        unsafe extern "system" fn ProcessFailedKind<
12778            Identity: ICoreWebView2ProcessFailedEventArgs_Impl,
12779            const OFFSET: isize,
12780        >(
12781            this: *mut core::ffi::c_void,
12782            processfailedkind: *mut COREWEBVIEW2_PROCESS_FAILED_KIND,
12783        ) -> windows_core::HRESULT {
12784            unsafe {
12785                let this: &Identity =
12786                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
12787                match ICoreWebView2ProcessFailedEventArgs_Impl::ProcessFailedKind(this) {
12788                    Ok(ok__) => {
12789                        processfailedkind.write(core::mem::transmute(ok__));
12790                        windows_core::HRESULT(0)
12791                    }
12792                    Err(err) => err.into(),
12793                }
12794            }
12795        }
12796        Self {
12797            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
12798            ProcessFailedKind: ProcessFailedKind::<Identity, OFFSET>,
12799        }
12800    }
12801    pub fn matches(iid: &windows_core::GUID) -> bool {
12802        iid == &<ICoreWebView2ProcessFailedEventArgs as windows_core::Interface>::IID
12803    }
12804}
12805impl windows_core::RuntimeName for ICoreWebView2ProcessFailedEventArgs {}
12806windows_core::imp::define_interface!(
12807    ICoreWebView2ProcessFailedEventArgs2,
12808    ICoreWebView2ProcessFailedEventArgs2_Vtbl,
12809    0x4dab9422_46fa_4c3e_a5d2_41d2071d3680
12810);
12811impl core::ops::Deref for ICoreWebView2ProcessFailedEventArgs2 {
12812    type Target = ICoreWebView2ProcessFailedEventArgs;
12813    fn deref(&self) -> &Self::Target {
12814        unsafe { core::mem::transmute(self) }
12815    }
12816}
12817windows_core::imp::interface_hierarchy!(
12818    ICoreWebView2ProcessFailedEventArgs2,
12819    windows_core::IUnknown,
12820    ICoreWebView2ProcessFailedEventArgs
12821);
12822impl ICoreWebView2ProcessFailedEventArgs2 {
12823    pub unsafe fn Reason(&self) -> windows_core::Result<COREWEBVIEW2_PROCESS_FAILED_REASON> {
12824        unsafe {
12825            let mut result__ = core::mem::zeroed();
12826            (windows_core::Interface::vtable(self).Reason)(
12827                windows_core::Interface::as_raw(self),
12828                &mut result__,
12829            )
12830            .map(|| result__)
12831        }
12832    }
12833    pub unsafe fn ExitCode(&self) -> windows_core::Result<i32> {
12834        unsafe {
12835            let mut result__ = core::mem::zeroed();
12836            (windows_core::Interface::vtable(self).ExitCode)(
12837                windows_core::Interface::as_raw(self),
12838                &mut result__,
12839            )
12840            .map(|| result__)
12841        }
12842    }
12843    pub unsafe fn ProcessDescription(&self) -> windows_core::Result<windows_core::PWSTR> {
12844        unsafe {
12845            let mut result__ = core::mem::zeroed();
12846            (windows_core::Interface::vtable(self).ProcessDescription)(
12847                windows_core::Interface::as_raw(self),
12848                &mut result__,
12849            )
12850            .map(|| result__)
12851        }
12852    }
12853    pub unsafe fn FrameInfosForFailedProcess(
12854        &self,
12855    ) -> windows_core::Result<ICoreWebView2FrameInfoCollection> {
12856        unsafe {
12857            let mut result__ = core::mem::zeroed();
12858            (windows_core::Interface::vtable(self).FrameInfosForFailedProcess)(
12859                windows_core::Interface::as_raw(self),
12860                &mut result__,
12861            )
12862            .and_then(|| windows_core::Type::from_abi(result__))
12863        }
12864    }
12865}
12866#[repr(C)]
12867#[doc(hidden)]
12868pub struct ICoreWebView2ProcessFailedEventArgs2_Vtbl {
12869    pub base__: ICoreWebView2ProcessFailedEventArgs_Vtbl,
12870    pub Reason: unsafe extern "system" fn(
12871        *mut core::ffi::c_void,
12872        *mut COREWEBVIEW2_PROCESS_FAILED_REASON,
12873    ) -> windows_core::HRESULT,
12874    pub ExitCode:
12875        unsafe extern "system" fn(*mut core::ffi::c_void, *mut i32) -> windows_core::HRESULT,
12876    pub ProcessDescription: unsafe extern "system" fn(
12877        *mut core::ffi::c_void,
12878        *mut windows_core::PWSTR,
12879    ) -> windows_core::HRESULT,
12880    pub FrameInfosForFailedProcess: unsafe extern "system" fn(
12881        *mut core::ffi::c_void,
12882        *mut *mut core::ffi::c_void,
12883    ) -> windows_core::HRESULT,
12884}
12885pub trait ICoreWebView2ProcessFailedEventArgs2_Impl:
12886    ICoreWebView2ProcessFailedEventArgs_Impl
12887{
12888    fn Reason(&self) -> windows_core::Result<COREWEBVIEW2_PROCESS_FAILED_REASON>;
12889    fn ExitCode(&self) -> windows_core::Result<i32>;
12890    fn ProcessDescription(&self) -> windows_core::Result<windows_core::PWSTR>;
12891    fn FrameInfosForFailedProcess(&self) -> windows_core::Result<ICoreWebView2FrameInfoCollection>;
12892}
12893impl ICoreWebView2ProcessFailedEventArgs2_Vtbl {
12894    pub const fn new<Identity: ICoreWebView2ProcessFailedEventArgs2_Impl, const OFFSET: isize>(
12895    ) -> Self {
12896        unsafe extern "system" fn Reason<
12897            Identity: ICoreWebView2ProcessFailedEventArgs2_Impl,
12898            const OFFSET: isize,
12899        >(
12900            this: *mut core::ffi::c_void,
12901            reason: *mut COREWEBVIEW2_PROCESS_FAILED_REASON,
12902        ) -> windows_core::HRESULT {
12903            unsafe {
12904                let this: &Identity =
12905                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
12906                match ICoreWebView2ProcessFailedEventArgs2_Impl::Reason(this) {
12907                    Ok(ok__) => {
12908                        reason.write(core::mem::transmute(ok__));
12909                        windows_core::HRESULT(0)
12910                    }
12911                    Err(err) => err.into(),
12912                }
12913            }
12914        }
12915        unsafe extern "system" fn ExitCode<
12916            Identity: ICoreWebView2ProcessFailedEventArgs2_Impl,
12917            const OFFSET: isize,
12918        >(
12919            this: *mut core::ffi::c_void,
12920            exitcode: *mut i32,
12921        ) -> windows_core::HRESULT {
12922            unsafe {
12923                let this: &Identity =
12924                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
12925                match ICoreWebView2ProcessFailedEventArgs2_Impl::ExitCode(this) {
12926                    Ok(ok__) => {
12927                        exitcode.write(core::mem::transmute(ok__));
12928                        windows_core::HRESULT(0)
12929                    }
12930                    Err(err) => err.into(),
12931                }
12932            }
12933        }
12934        unsafe extern "system" fn ProcessDescription<
12935            Identity: ICoreWebView2ProcessFailedEventArgs2_Impl,
12936            const OFFSET: isize,
12937        >(
12938            this: *mut core::ffi::c_void,
12939            processdescription: *mut windows_core::PWSTR,
12940        ) -> windows_core::HRESULT {
12941            unsafe {
12942                let this: &Identity =
12943                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
12944                match ICoreWebView2ProcessFailedEventArgs2_Impl::ProcessDescription(this) {
12945                    Ok(ok__) => {
12946                        processdescription.write(core::mem::transmute(ok__));
12947                        windows_core::HRESULT(0)
12948                    }
12949                    Err(err) => err.into(),
12950                }
12951            }
12952        }
12953        unsafe extern "system" fn FrameInfosForFailedProcess<
12954            Identity: ICoreWebView2ProcessFailedEventArgs2_Impl,
12955            const OFFSET: isize,
12956        >(
12957            this: *mut core::ffi::c_void,
12958            frames: *mut *mut core::ffi::c_void,
12959        ) -> windows_core::HRESULT {
12960            unsafe {
12961                let this: &Identity =
12962                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
12963                match ICoreWebView2ProcessFailedEventArgs2_Impl::FrameInfosForFailedProcess(this) {
12964                    Ok(ok__) => {
12965                        frames.write(core::mem::transmute(ok__));
12966                        windows_core::HRESULT(0)
12967                    }
12968                    Err(err) => err.into(),
12969                }
12970            }
12971        }
12972        Self {
12973            base__: ICoreWebView2ProcessFailedEventArgs_Vtbl::new::<Identity, OFFSET>(),
12974            Reason: Reason::<Identity, OFFSET>,
12975            ExitCode: ExitCode::<Identity, OFFSET>,
12976            ProcessDescription: ProcessDescription::<Identity, OFFSET>,
12977            FrameInfosForFailedProcess: FrameInfosForFailedProcess::<Identity, OFFSET>,
12978        }
12979    }
12980    pub fn matches(iid: &windows_core::GUID) -> bool {
12981        iid == &<ICoreWebView2ProcessFailedEventArgs2 as windows_core::Interface>::IID
12982            || iid == &<ICoreWebView2ProcessFailedEventArgs as windows_core::Interface>::IID
12983    }
12984}
12985impl windows_core::RuntimeName for ICoreWebView2ProcessFailedEventArgs2 {}
12986windows_core::imp::define_interface!(
12987    ICoreWebView2ProcessFailedEventHandler,
12988    ICoreWebView2ProcessFailedEventHandler_Vtbl,
12989    0x79e0aea4_990b_42d9_aa1d_0fcc2e5bc7f1
12990);
12991windows_core::imp::interface_hierarchy!(
12992    ICoreWebView2ProcessFailedEventHandler,
12993    windows_core::IUnknown
12994);
12995impl ICoreWebView2ProcessFailedEventHandler {
12996    pub unsafe fn Invoke<P0, P1>(&self, sender: P0, args: P1) -> windows_core::Result<()>
12997    where
12998        P0: windows_core::Param<ICoreWebView2>,
12999        P1: windows_core::Param<ICoreWebView2ProcessFailedEventArgs>,
13000    {
13001        unsafe {
13002            (windows_core::Interface::vtable(self).Invoke)(
13003                windows_core::Interface::as_raw(self),
13004                sender.param().abi(),
13005                args.param().abi(),
13006            )
13007            .ok()
13008        }
13009    }
13010}
13011#[repr(C)]
13012#[doc(hidden)]
13013pub struct ICoreWebView2ProcessFailedEventHandler_Vtbl {
13014    pub base__: windows_core::IUnknown_Vtbl,
13015    pub Invoke: unsafe extern "system" fn(
13016        *mut core::ffi::c_void,
13017        *mut core::ffi::c_void,
13018        *mut core::ffi::c_void,
13019    ) -> windows_core::HRESULT,
13020}
13021pub trait ICoreWebView2ProcessFailedEventHandler_Impl: windows_core::IUnknownImpl {
13022    fn Invoke(
13023        &self,
13024        sender: windows_core::Ref<ICoreWebView2>,
13025        args: windows_core::Ref<ICoreWebView2ProcessFailedEventArgs>,
13026    ) -> windows_core::Result<()>;
13027}
13028impl ICoreWebView2ProcessFailedEventHandler_Vtbl {
13029    pub const fn new<Identity: ICoreWebView2ProcessFailedEventHandler_Impl, const OFFSET: isize>(
13030    ) -> Self {
13031        unsafe extern "system" fn Invoke<
13032            Identity: ICoreWebView2ProcessFailedEventHandler_Impl,
13033            const OFFSET: isize,
13034        >(
13035            this: *mut core::ffi::c_void,
13036            sender: *mut core::ffi::c_void,
13037            args: *mut core::ffi::c_void,
13038        ) -> windows_core::HRESULT {
13039            unsafe {
13040                let this: &Identity =
13041                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
13042                ICoreWebView2ProcessFailedEventHandler_Impl::Invoke(
13043                    this,
13044                    core::mem::transmute_copy(&sender),
13045                    core::mem::transmute_copy(&args),
13046                )
13047                .into()
13048            }
13049        }
13050        Self {
13051            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
13052            Invoke: Invoke::<Identity, OFFSET>,
13053        }
13054    }
13055    pub fn matches(iid: &windows_core::GUID) -> bool {
13056        iid == &<ICoreWebView2ProcessFailedEventHandler as windows_core::Interface>::IID
13057    }
13058}
13059impl windows_core::RuntimeName for ICoreWebView2ProcessFailedEventHandler {}
13060windows_core::imp::define_interface!(
13061    ICoreWebView2RasterizationScaleChangedEventHandler,
13062    ICoreWebView2RasterizationScaleChangedEventHandler_Vtbl,
13063    0x9c98c8b1_ac53_427e_a345_3049b5524bbe
13064);
13065windows_core::imp::interface_hierarchy!(
13066    ICoreWebView2RasterizationScaleChangedEventHandler,
13067    windows_core::IUnknown
13068);
13069impl ICoreWebView2RasterizationScaleChangedEventHandler {
13070    pub unsafe fn Invoke<P0, P1>(&self, sender: P0, args: P1) -> windows_core::Result<()>
13071    where
13072        P0: windows_core::Param<ICoreWebView2Controller>,
13073        P1: windows_core::Param<windows_core::IUnknown>,
13074    {
13075        unsafe {
13076            (windows_core::Interface::vtable(self).Invoke)(
13077                windows_core::Interface::as_raw(self),
13078                sender.param().abi(),
13079                args.param().abi(),
13080            )
13081            .ok()
13082        }
13083    }
13084}
13085#[repr(C)]
13086#[doc(hidden)]
13087pub struct ICoreWebView2RasterizationScaleChangedEventHandler_Vtbl {
13088    pub base__: windows_core::IUnknown_Vtbl,
13089    pub Invoke: unsafe extern "system" fn(
13090        *mut core::ffi::c_void,
13091        *mut core::ffi::c_void,
13092        *mut core::ffi::c_void,
13093    ) -> windows_core::HRESULT,
13094}
13095pub trait ICoreWebView2RasterizationScaleChangedEventHandler_Impl:
13096    windows_core::IUnknownImpl
13097{
13098    fn Invoke(
13099        &self,
13100        sender: windows_core::Ref<ICoreWebView2Controller>,
13101        args: windows_core::Ref<windows_core::IUnknown>,
13102    ) -> windows_core::Result<()>;
13103}
13104impl ICoreWebView2RasterizationScaleChangedEventHandler_Vtbl {
13105    pub const fn new<
13106        Identity: ICoreWebView2RasterizationScaleChangedEventHandler_Impl,
13107        const OFFSET: isize,
13108    >() -> Self {
13109        unsafe extern "system" fn Invoke<
13110            Identity: ICoreWebView2RasterizationScaleChangedEventHandler_Impl,
13111            const OFFSET: isize,
13112        >(
13113            this: *mut core::ffi::c_void,
13114            sender: *mut core::ffi::c_void,
13115            args: *mut core::ffi::c_void,
13116        ) -> windows_core::HRESULT {
13117            unsafe {
13118                let this: &Identity =
13119                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
13120                ICoreWebView2RasterizationScaleChangedEventHandler_Impl::Invoke(
13121                    this,
13122                    core::mem::transmute_copy(&sender),
13123                    core::mem::transmute_copy(&args),
13124                )
13125                .into()
13126            }
13127        }
13128        Self {
13129            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
13130            Invoke: Invoke::<Identity, OFFSET>,
13131        }
13132    }
13133    pub fn matches(iid: &windows_core::GUID) -> bool {
13134        iid == &<ICoreWebView2RasterizationScaleChangedEventHandler as windows_core::Interface>::IID
13135    }
13136}
13137impl windows_core::RuntimeName for ICoreWebView2RasterizationScaleChangedEventHandler {}
13138windows_core::imp::define_interface!(
13139    ICoreWebView2ScriptDialogOpeningEventArgs,
13140    ICoreWebView2ScriptDialogOpeningEventArgs_Vtbl,
13141    0x7390bb70_abe0_4843_9529_f143b31b03d6
13142);
13143windows_core::imp::interface_hierarchy!(
13144    ICoreWebView2ScriptDialogOpeningEventArgs,
13145    windows_core::IUnknown
13146);
13147impl ICoreWebView2ScriptDialogOpeningEventArgs {
13148    pub unsafe fn Uri(&self) -> windows_core::Result<windows_core::PWSTR> {
13149        unsafe {
13150            let mut result__ = core::mem::zeroed();
13151            (windows_core::Interface::vtable(self).Uri)(
13152                windows_core::Interface::as_raw(self),
13153                &mut result__,
13154            )
13155            .map(|| result__)
13156        }
13157    }
13158    pub unsafe fn Kind(&self) -> windows_core::Result<COREWEBVIEW2_SCRIPT_DIALOG_KIND> {
13159        unsafe {
13160            let mut result__ = core::mem::zeroed();
13161            (windows_core::Interface::vtable(self).Kind)(
13162                windows_core::Interface::as_raw(self),
13163                &mut result__,
13164            )
13165            .map(|| result__)
13166        }
13167    }
13168    pub unsafe fn Message(&self) -> windows_core::Result<windows_core::PWSTR> {
13169        unsafe {
13170            let mut result__ = core::mem::zeroed();
13171            (windows_core::Interface::vtable(self).Message)(
13172                windows_core::Interface::as_raw(self),
13173                &mut result__,
13174            )
13175            .map(|| result__)
13176        }
13177    }
13178    pub unsafe fn Accept(&self) -> windows_core::Result<()> {
13179        unsafe {
13180            (windows_core::Interface::vtable(self).Accept)(windows_core::Interface::as_raw(self))
13181                .ok()
13182        }
13183    }
13184    pub unsafe fn DefaultText(&self) -> windows_core::Result<windows_core::PWSTR> {
13185        unsafe {
13186            let mut result__ = core::mem::zeroed();
13187            (windows_core::Interface::vtable(self).DefaultText)(
13188                windows_core::Interface::as_raw(self),
13189                &mut result__,
13190            )
13191            .map(|| result__)
13192        }
13193    }
13194    pub unsafe fn ResultText(&self) -> windows_core::Result<windows_core::PWSTR> {
13195        unsafe {
13196            let mut result__ = core::mem::zeroed();
13197            (windows_core::Interface::vtable(self).ResultText)(
13198                windows_core::Interface::as_raw(self),
13199                &mut result__,
13200            )
13201            .map(|| result__)
13202        }
13203    }
13204    pub unsafe fn SetResultText<P0>(&self, resulttext: P0) -> windows_core::Result<()>
13205    where
13206        P0: windows_core::Param<windows_core::PCWSTR>,
13207    {
13208        unsafe {
13209            (windows_core::Interface::vtable(self).SetResultText)(
13210                windows_core::Interface::as_raw(self),
13211                resulttext.param().abi(),
13212            )
13213            .ok()
13214        }
13215    }
13216    pub unsafe fn GetDeferral(&self) -> windows_core::Result<ICoreWebView2Deferral> {
13217        unsafe {
13218            let mut result__ = core::mem::zeroed();
13219            (windows_core::Interface::vtable(self).GetDeferral)(
13220                windows_core::Interface::as_raw(self),
13221                &mut result__,
13222            )
13223            .and_then(|| windows_core::Type::from_abi(result__))
13224        }
13225    }
13226}
13227#[repr(C)]
13228#[doc(hidden)]
13229pub struct ICoreWebView2ScriptDialogOpeningEventArgs_Vtbl {
13230    pub base__: windows_core::IUnknown_Vtbl,
13231    pub Uri: unsafe extern "system" fn(
13232        *mut core::ffi::c_void,
13233        *mut windows_core::PWSTR,
13234    ) -> windows_core::HRESULT,
13235    pub Kind: unsafe extern "system" fn(
13236        *mut core::ffi::c_void,
13237        *mut COREWEBVIEW2_SCRIPT_DIALOG_KIND,
13238    ) -> windows_core::HRESULT,
13239    pub Message: unsafe extern "system" fn(
13240        *mut core::ffi::c_void,
13241        *mut windows_core::PWSTR,
13242    ) -> windows_core::HRESULT,
13243    pub Accept: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
13244    pub DefaultText: unsafe extern "system" fn(
13245        *mut core::ffi::c_void,
13246        *mut windows_core::PWSTR,
13247    ) -> windows_core::HRESULT,
13248    pub ResultText: unsafe extern "system" fn(
13249        *mut core::ffi::c_void,
13250        *mut windows_core::PWSTR,
13251    ) -> windows_core::HRESULT,
13252    pub SetResultText: unsafe extern "system" fn(
13253        *mut core::ffi::c_void,
13254        windows_core::PCWSTR,
13255    ) -> windows_core::HRESULT,
13256    pub GetDeferral: unsafe extern "system" fn(
13257        *mut core::ffi::c_void,
13258        *mut *mut core::ffi::c_void,
13259    ) -> windows_core::HRESULT,
13260}
13261pub trait ICoreWebView2ScriptDialogOpeningEventArgs_Impl: windows_core::IUnknownImpl {
13262    fn Uri(&self) -> windows_core::Result<windows_core::PWSTR>;
13263    fn Kind(&self) -> windows_core::Result<COREWEBVIEW2_SCRIPT_DIALOG_KIND>;
13264    fn Message(&self) -> windows_core::Result<windows_core::PWSTR>;
13265    fn Accept(&self) -> windows_core::Result<()>;
13266    fn DefaultText(&self) -> windows_core::Result<windows_core::PWSTR>;
13267    fn ResultText(&self) -> windows_core::Result<windows_core::PWSTR>;
13268    fn SetResultText(&self, resulttext: &windows_core::PCWSTR) -> windows_core::Result<()>;
13269    fn GetDeferral(&self) -> windows_core::Result<ICoreWebView2Deferral>;
13270}
13271impl ICoreWebView2ScriptDialogOpeningEventArgs_Vtbl {
13272    pub const fn new<
13273        Identity: ICoreWebView2ScriptDialogOpeningEventArgs_Impl,
13274        const OFFSET: isize,
13275    >() -> Self {
13276        unsafe extern "system" fn Uri<
13277            Identity: ICoreWebView2ScriptDialogOpeningEventArgs_Impl,
13278            const OFFSET: isize,
13279        >(
13280            this: *mut core::ffi::c_void,
13281            uri: *mut windows_core::PWSTR,
13282        ) -> windows_core::HRESULT {
13283            unsafe {
13284                let this: &Identity =
13285                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
13286                match ICoreWebView2ScriptDialogOpeningEventArgs_Impl::Uri(this) {
13287                    Ok(ok__) => {
13288                        uri.write(core::mem::transmute(ok__));
13289                        windows_core::HRESULT(0)
13290                    }
13291                    Err(err) => err.into(),
13292                }
13293            }
13294        }
13295        unsafe extern "system" fn Kind<
13296            Identity: ICoreWebView2ScriptDialogOpeningEventArgs_Impl,
13297            const OFFSET: isize,
13298        >(
13299            this: *mut core::ffi::c_void,
13300            kind: *mut COREWEBVIEW2_SCRIPT_DIALOG_KIND,
13301        ) -> windows_core::HRESULT {
13302            unsafe {
13303                let this: &Identity =
13304                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
13305                match ICoreWebView2ScriptDialogOpeningEventArgs_Impl::Kind(this) {
13306                    Ok(ok__) => {
13307                        kind.write(core::mem::transmute(ok__));
13308                        windows_core::HRESULT(0)
13309                    }
13310                    Err(err) => err.into(),
13311                }
13312            }
13313        }
13314        unsafe extern "system" fn Message<
13315            Identity: ICoreWebView2ScriptDialogOpeningEventArgs_Impl,
13316            const OFFSET: isize,
13317        >(
13318            this: *mut core::ffi::c_void,
13319            message: *mut windows_core::PWSTR,
13320        ) -> windows_core::HRESULT {
13321            unsafe {
13322                let this: &Identity =
13323                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
13324                match ICoreWebView2ScriptDialogOpeningEventArgs_Impl::Message(this) {
13325                    Ok(ok__) => {
13326                        message.write(core::mem::transmute(ok__));
13327                        windows_core::HRESULT(0)
13328                    }
13329                    Err(err) => err.into(),
13330                }
13331            }
13332        }
13333        unsafe extern "system" fn Accept<
13334            Identity: ICoreWebView2ScriptDialogOpeningEventArgs_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                ICoreWebView2ScriptDialogOpeningEventArgs_Impl::Accept(this).into()
13343            }
13344        }
13345        unsafe extern "system" fn DefaultText<
13346            Identity: ICoreWebView2ScriptDialogOpeningEventArgs_Impl,
13347            const OFFSET: isize,
13348        >(
13349            this: *mut core::ffi::c_void,
13350            defaulttext: *mut windows_core::PWSTR,
13351        ) -> windows_core::HRESULT {
13352            unsafe {
13353                let this: &Identity =
13354                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
13355                match ICoreWebView2ScriptDialogOpeningEventArgs_Impl::DefaultText(this) {
13356                    Ok(ok__) => {
13357                        defaulttext.write(core::mem::transmute(ok__));
13358                        windows_core::HRESULT(0)
13359                    }
13360                    Err(err) => err.into(),
13361                }
13362            }
13363        }
13364        unsafe extern "system" fn ResultText<
13365            Identity: ICoreWebView2ScriptDialogOpeningEventArgs_Impl,
13366            const OFFSET: isize,
13367        >(
13368            this: *mut core::ffi::c_void,
13369            resulttext: *mut windows_core::PWSTR,
13370        ) -> windows_core::HRESULT {
13371            unsafe {
13372                let this: &Identity =
13373                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
13374                match ICoreWebView2ScriptDialogOpeningEventArgs_Impl::ResultText(this) {
13375                    Ok(ok__) => {
13376                        resulttext.write(core::mem::transmute(ok__));
13377                        windows_core::HRESULT(0)
13378                    }
13379                    Err(err) => err.into(),
13380                }
13381            }
13382        }
13383        unsafe extern "system" fn SetResultText<
13384            Identity: ICoreWebView2ScriptDialogOpeningEventArgs_Impl,
13385            const OFFSET: isize,
13386        >(
13387            this: *mut core::ffi::c_void,
13388            resulttext: windows_core::PCWSTR,
13389        ) -> windows_core::HRESULT {
13390            unsafe {
13391                let this: &Identity =
13392                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
13393                ICoreWebView2ScriptDialogOpeningEventArgs_Impl::SetResultText(
13394                    this,
13395                    core::mem::transmute(&resulttext),
13396                )
13397                .into()
13398            }
13399        }
13400        unsafe extern "system" fn GetDeferral<
13401            Identity: ICoreWebView2ScriptDialogOpeningEventArgs_Impl,
13402            const OFFSET: isize,
13403        >(
13404            this: *mut core::ffi::c_void,
13405            deferral: *mut *mut core::ffi::c_void,
13406        ) -> windows_core::HRESULT {
13407            unsafe {
13408                let this: &Identity =
13409                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
13410                match ICoreWebView2ScriptDialogOpeningEventArgs_Impl::GetDeferral(this) {
13411                    Ok(ok__) => {
13412                        deferral.write(core::mem::transmute(ok__));
13413                        windows_core::HRESULT(0)
13414                    }
13415                    Err(err) => err.into(),
13416                }
13417            }
13418        }
13419        Self {
13420            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
13421            Uri: Uri::<Identity, OFFSET>,
13422            Kind: Kind::<Identity, OFFSET>,
13423            Message: Message::<Identity, OFFSET>,
13424            Accept: Accept::<Identity, OFFSET>,
13425            DefaultText: DefaultText::<Identity, OFFSET>,
13426            ResultText: ResultText::<Identity, OFFSET>,
13427            SetResultText: SetResultText::<Identity, OFFSET>,
13428            GetDeferral: GetDeferral::<Identity, OFFSET>,
13429        }
13430    }
13431    pub fn matches(iid: &windows_core::GUID) -> bool {
13432        iid == &<ICoreWebView2ScriptDialogOpeningEventArgs as windows_core::Interface>::IID
13433    }
13434}
13435impl windows_core::RuntimeName for ICoreWebView2ScriptDialogOpeningEventArgs {}
13436windows_core::imp::define_interface!(
13437    ICoreWebView2ScriptDialogOpeningEventHandler,
13438    ICoreWebView2ScriptDialogOpeningEventHandler_Vtbl,
13439    0xef381bf9_afa8_4e37_91c4_8ac48524bdfb
13440);
13441windows_core::imp::interface_hierarchy!(
13442    ICoreWebView2ScriptDialogOpeningEventHandler,
13443    windows_core::IUnknown
13444);
13445impl ICoreWebView2ScriptDialogOpeningEventHandler {
13446    pub unsafe fn Invoke<P0, P1>(&self, sender: P0, args: P1) -> windows_core::Result<()>
13447    where
13448        P0: windows_core::Param<ICoreWebView2>,
13449        P1: windows_core::Param<ICoreWebView2ScriptDialogOpeningEventArgs>,
13450    {
13451        unsafe {
13452            (windows_core::Interface::vtable(self).Invoke)(
13453                windows_core::Interface::as_raw(self),
13454                sender.param().abi(),
13455                args.param().abi(),
13456            )
13457            .ok()
13458        }
13459    }
13460}
13461#[repr(C)]
13462#[doc(hidden)]
13463pub struct ICoreWebView2ScriptDialogOpeningEventHandler_Vtbl {
13464    pub base__: windows_core::IUnknown_Vtbl,
13465    pub Invoke: unsafe extern "system" fn(
13466        *mut core::ffi::c_void,
13467        *mut core::ffi::c_void,
13468        *mut core::ffi::c_void,
13469    ) -> windows_core::HRESULT,
13470}
13471pub trait ICoreWebView2ScriptDialogOpeningEventHandler_Impl: windows_core::IUnknownImpl {
13472    fn Invoke(
13473        &self,
13474        sender: windows_core::Ref<ICoreWebView2>,
13475        args: windows_core::Ref<ICoreWebView2ScriptDialogOpeningEventArgs>,
13476    ) -> windows_core::Result<()>;
13477}
13478impl ICoreWebView2ScriptDialogOpeningEventHandler_Vtbl {
13479    pub const fn new<
13480        Identity: ICoreWebView2ScriptDialogOpeningEventHandler_Impl,
13481        const OFFSET: isize,
13482    >() -> Self {
13483        unsafe extern "system" fn Invoke<
13484            Identity: ICoreWebView2ScriptDialogOpeningEventHandler_Impl,
13485            const OFFSET: isize,
13486        >(
13487            this: *mut core::ffi::c_void,
13488            sender: *mut core::ffi::c_void,
13489            args: *mut core::ffi::c_void,
13490        ) -> windows_core::HRESULT {
13491            unsafe {
13492                let this: &Identity =
13493                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
13494                ICoreWebView2ScriptDialogOpeningEventHandler_Impl::Invoke(
13495                    this,
13496                    core::mem::transmute_copy(&sender),
13497                    core::mem::transmute_copy(&args),
13498                )
13499                .into()
13500            }
13501        }
13502        Self {
13503            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
13504            Invoke: Invoke::<Identity, OFFSET>,
13505        }
13506    }
13507    pub fn matches(iid: &windows_core::GUID) -> bool {
13508        iid == &<ICoreWebView2ScriptDialogOpeningEventHandler as windows_core::Interface>::IID
13509    }
13510}
13511impl windows_core::RuntimeName for ICoreWebView2ScriptDialogOpeningEventHandler {}
13512windows_core::imp::define_interface!(
13513    ICoreWebView2Settings,
13514    ICoreWebView2Settings_Vtbl,
13515    0xe562e4f0_d7fa_43ac_8d71_c05150499f00
13516);
13517windows_core::imp::interface_hierarchy!(ICoreWebView2Settings, windows_core::IUnknown);
13518impl ICoreWebView2Settings {
13519    pub unsafe fn IsScriptEnabled(&self) -> windows_core::Result<windows_core::BOOL> {
13520        unsafe {
13521            let mut result__ = core::mem::zeroed();
13522            (windows_core::Interface::vtable(self).IsScriptEnabled)(
13523                windows_core::Interface::as_raw(self),
13524                &mut result__,
13525            )
13526            .map(|| result__)
13527        }
13528    }
13529    pub unsafe fn SetIsScriptEnabled(&self, isscriptenabled: bool) -> windows_core::Result<()> {
13530        unsafe {
13531            (windows_core::Interface::vtable(self).SetIsScriptEnabled)(
13532                windows_core::Interface::as_raw(self),
13533                isscriptenabled.into(),
13534            )
13535            .ok()
13536        }
13537    }
13538    pub unsafe fn IsWebMessageEnabled(&self) -> windows_core::Result<windows_core::BOOL> {
13539        unsafe {
13540            let mut result__ = core::mem::zeroed();
13541            (windows_core::Interface::vtable(self).IsWebMessageEnabled)(
13542                windows_core::Interface::as_raw(self),
13543                &mut result__,
13544            )
13545            .map(|| result__)
13546        }
13547    }
13548    pub unsafe fn SetIsWebMessageEnabled(
13549        &self,
13550        iswebmessageenabled: bool,
13551    ) -> windows_core::Result<()> {
13552        unsafe {
13553            (windows_core::Interface::vtable(self).SetIsWebMessageEnabled)(
13554                windows_core::Interface::as_raw(self),
13555                iswebmessageenabled.into(),
13556            )
13557            .ok()
13558        }
13559    }
13560    pub unsafe fn AreDefaultScriptDialogsEnabled(
13561        &self,
13562    ) -> windows_core::Result<windows_core::BOOL> {
13563        unsafe {
13564            let mut result__ = core::mem::zeroed();
13565            (windows_core::Interface::vtable(self).AreDefaultScriptDialogsEnabled)(
13566                windows_core::Interface::as_raw(self),
13567                &mut result__,
13568            )
13569            .map(|| result__)
13570        }
13571    }
13572    pub unsafe fn SetAreDefaultScriptDialogsEnabled(
13573        &self,
13574        aredefaultscriptdialogsenabled: bool,
13575    ) -> windows_core::Result<()> {
13576        unsafe {
13577            (windows_core::Interface::vtable(self).SetAreDefaultScriptDialogsEnabled)(
13578                windows_core::Interface::as_raw(self),
13579                aredefaultscriptdialogsenabled.into(),
13580            )
13581            .ok()
13582        }
13583    }
13584    pub unsafe fn IsStatusBarEnabled(&self) -> windows_core::Result<windows_core::BOOL> {
13585        unsafe {
13586            let mut result__ = core::mem::zeroed();
13587            (windows_core::Interface::vtable(self).IsStatusBarEnabled)(
13588                windows_core::Interface::as_raw(self),
13589                &mut result__,
13590            )
13591            .map(|| result__)
13592        }
13593    }
13594    pub unsafe fn SetIsStatusBarEnabled(
13595        &self,
13596        isstatusbarenabled: bool,
13597    ) -> windows_core::Result<()> {
13598        unsafe {
13599            (windows_core::Interface::vtable(self).SetIsStatusBarEnabled)(
13600                windows_core::Interface::as_raw(self),
13601                isstatusbarenabled.into(),
13602            )
13603            .ok()
13604        }
13605    }
13606    pub unsafe fn AreDevToolsEnabled(&self) -> windows_core::Result<windows_core::BOOL> {
13607        unsafe {
13608            let mut result__ = core::mem::zeroed();
13609            (windows_core::Interface::vtable(self).AreDevToolsEnabled)(
13610                windows_core::Interface::as_raw(self),
13611                &mut result__,
13612            )
13613            .map(|| result__)
13614        }
13615    }
13616    pub unsafe fn SetAreDevToolsEnabled(
13617        &self,
13618        aredevtoolsenabled: bool,
13619    ) -> windows_core::Result<()> {
13620        unsafe {
13621            (windows_core::Interface::vtable(self).SetAreDevToolsEnabled)(
13622                windows_core::Interface::as_raw(self),
13623                aredevtoolsenabled.into(),
13624            )
13625            .ok()
13626        }
13627    }
13628    pub unsafe fn AreDefaultContextMenusEnabled(&self) -> windows_core::Result<windows_core::BOOL> {
13629        unsafe {
13630            let mut result__ = core::mem::zeroed();
13631            (windows_core::Interface::vtable(self).AreDefaultContextMenusEnabled)(
13632                windows_core::Interface::as_raw(self),
13633                &mut result__,
13634            )
13635            .map(|| result__)
13636        }
13637    }
13638    pub unsafe fn SetAreDefaultContextMenusEnabled(
13639        &self,
13640        enabled: bool,
13641    ) -> windows_core::Result<()> {
13642        unsafe {
13643            (windows_core::Interface::vtable(self).SetAreDefaultContextMenusEnabled)(
13644                windows_core::Interface::as_raw(self),
13645                enabled.into(),
13646            )
13647            .ok()
13648        }
13649    }
13650    pub unsafe fn AreHostObjectsAllowed(&self) -> windows_core::Result<windows_core::BOOL> {
13651        unsafe {
13652            let mut result__ = core::mem::zeroed();
13653            (windows_core::Interface::vtable(self).AreHostObjectsAllowed)(
13654                windows_core::Interface::as_raw(self),
13655                &mut result__,
13656            )
13657            .map(|| result__)
13658        }
13659    }
13660    pub unsafe fn SetAreHostObjectsAllowed(&self, allowed: bool) -> windows_core::Result<()> {
13661        unsafe {
13662            (windows_core::Interface::vtable(self).SetAreHostObjectsAllowed)(
13663                windows_core::Interface::as_raw(self),
13664                allowed.into(),
13665            )
13666            .ok()
13667        }
13668    }
13669    pub unsafe fn IsZoomControlEnabled(&self) -> windows_core::Result<windows_core::BOOL> {
13670        unsafe {
13671            let mut result__ = core::mem::zeroed();
13672            (windows_core::Interface::vtable(self).IsZoomControlEnabled)(
13673                windows_core::Interface::as_raw(self),
13674                &mut result__,
13675            )
13676            .map(|| result__)
13677        }
13678    }
13679    pub unsafe fn SetIsZoomControlEnabled(&self, enabled: bool) -> windows_core::Result<()> {
13680        unsafe {
13681            (windows_core::Interface::vtable(self).SetIsZoomControlEnabled)(
13682                windows_core::Interface::as_raw(self),
13683                enabled.into(),
13684            )
13685            .ok()
13686        }
13687    }
13688    pub unsafe fn IsBuiltInErrorPageEnabled(&self) -> windows_core::Result<windows_core::BOOL> {
13689        unsafe {
13690            let mut result__ = core::mem::zeroed();
13691            (windows_core::Interface::vtable(self).IsBuiltInErrorPageEnabled)(
13692                windows_core::Interface::as_raw(self),
13693                &mut result__,
13694            )
13695            .map(|| result__)
13696        }
13697    }
13698    pub unsafe fn SetIsBuiltInErrorPageEnabled(&self, enabled: bool) -> windows_core::Result<()> {
13699        unsafe {
13700            (windows_core::Interface::vtable(self).SetIsBuiltInErrorPageEnabled)(
13701                windows_core::Interface::as_raw(self),
13702                enabled.into(),
13703            )
13704            .ok()
13705        }
13706    }
13707}
13708#[repr(C)]
13709#[doc(hidden)]
13710pub struct ICoreWebView2Settings_Vtbl {
13711    pub base__: windows_core::IUnknown_Vtbl,
13712    pub IsScriptEnabled: unsafe extern "system" fn(
13713        *mut core::ffi::c_void,
13714        *mut windows_core::BOOL,
13715    ) -> windows_core::HRESULT,
13716    pub SetIsScriptEnabled: unsafe extern "system" fn(
13717        *mut core::ffi::c_void,
13718        windows_core::BOOL,
13719    ) -> windows_core::HRESULT,
13720    pub IsWebMessageEnabled: unsafe extern "system" fn(
13721        *mut core::ffi::c_void,
13722        *mut windows_core::BOOL,
13723    ) -> windows_core::HRESULT,
13724    pub SetIsWebMessageEnabled: unsafe extern "system" fn(
13725        *mut core::ffi::c_void,
13726        windows_core::BOOL,
13727    ) -> windows_core::HRESULT,
13728    pub AreDefaultScriptDialogsEnabled: unsafe extern "system" fn(
13729        *mut core::ffi::c_void,
13730        *mut windows_core::BOOL,
13731    ) -> windows_core::HRESULT,
13732    pub SetAreDefaultScriptDialogsEnabled: unsafe extern "system" fn(
13733        *mut core::ffi::c_void,
13734        windows_core::BOOL,
13735    ) -> windows_core::HRESULT,
13736    pub IsStatusBarEnabled: unsafe extern "system" fn(
13737        *mut core::ffi::c_void,
13738        *mut windows_core::BOOL,
13739    ) -> windows_core::HRESULT,
13740    pub SetIsStatusBarEnabled: unsafe extern "system" fn(
13741        *mut core::ffi::c_void,
13742        windows_core::BOOL,
13743    ) -> windows_core::HRESULT,
13744    pub AreDevToolsEnabled: unsafe extern "system" fn(
13745        *mut core::ffi::c_void,
13746        *mut windows_core::BOOL,
13747    ) -> windows_core::HRESULT,
13748    pub SetAreDevToolsEnabled: unsafe extern "system" fn(
13749        *mut core::ffi::c_void,
13750        windows_core::BOOL,
13751    ) -> windows_core::HRESULT,
13752    pub AreDefaultContextMenusEnabled: unsafe extern "system" fn(
13753        *mut core::ffi::c_void,
13754        *mut windows_core::BOOL,
13755    ) -> windows_core::HRESULT,
13756    pub SetAreDefaultContextMenusEnabled: unsafe extern "system" fn(
13757        *mut core::ffi::c_void,
13758        windows_core::BOOL,
13759    ) -> windows_core::HRESULT,
13760    pub AreHostObjectsAllowed: unsafe extern "system" fn(
13761        *mut core::ffi::c_void,
13762        *mut windows_core::BOOL,
13763    ) -> windows_core::HRESULT,
13764    pub SetAreHostObjectsAllowed: unsafe extern "system" fn(
13765        *mut core::ffi::c_void,
13766        windows_core::BOOL,
13767    ) -> windows_core::HRESULT,
13768    pub IsZoomControlEnabled: unsafe extern "system" fn(
13769        *mut core::ffi::c_void,
13770        *mut windows_core::BOOL,
13771    ) -> windows_core::HRESULT,
13772    pub SetIsZoomControlEnabled: unsafe extern "system" fn(
13773        *mut core::ffi::c_void,
13774        windows_core::BOOL,
13775    ) -> windows_core::HRESULT,
13776    pub IsBuiltInErrorPageEnabled: unsafe extern "system" fn(
13777        *mut core::ffi::c_void,
13778        *mut windows_core::BOOL,
13779    ) -> windows_core::HRESULT,
13780    pub SetIsBuiltInErrorPageEnabled: unsafe extern "system" fn(
13781        *mut core::ffi::c_void,
13782        windows_core::BOOL,
13783    ) -> windows_core::HRESULT,
13784}
13785pub trait ICoreWebView2Settings_Impl: windows_core::IUnknownImpl {
13786    fn IsScriptEnabled(&self) -> windows_core::Result<windows_core::BOOL>;
13787    fn SetIsScriptEnabled(&self, isscriptenabled: windows_core::BOOL) -> windows_core::Result<()>;
13788    fn IsWebMessageEnabled(&self) -> windows_core::Result<windows_core::BOOL>;
13789    fn SetIsWebMessageEnabled(
13790        &self,
13791        iswebmessageenabled: windows_core::BOOL,
13792    ) -> windows_core::Result<()>;
13793    fn AreDefaultScriptDialogsEnabled(&self) -> windows_core::Result<windows_core::BOOL>;
13794    fn SetAreDefaultScriptDialogsEnabled(
13795        &self,
13796        aredefaultscriptdialogsenabled: windows_core::BOOL,
13797    ) -> windows_core::Result<()>;
13798    fn IsStatusBarEnabled(&self) -> windows_core::Result<windows_core::BOOL>;
13799    fn SetIsStatusBarEnabled(
13800        &self,
13801        isstatusbarenabled: windows_core::BOOL,
13802    ) -> windows_core::Result<()>;
13803    fn AreDevToolsEnabled(&self) -> windows_core::Result<windows_core::BOOL>;
13804    fn SetAreDevToolsEnabled(
13805        &self,
13806        aredevtoolsenabled: windows_core::BOOL,
13807    ) -> windows_core::Result<()>;
13808    fn AreDefaultContextMenusEnabled(&self) -> windows_core::Result<windows_core::BOOL>;
13809    fn SetAreDefaultContextMenusEnabled(
13810        &self,
13811        enabled: windows_core::BOOL,
13812    ) -> windows_core::Result<()>;
13813    fn AreHostObjectsAllowed(&self) -> windows_core::Result<windows_core::BOOL>;
13814    fn SetAreHostObjectsAllowed(&self, allowed: windows_core::BOOL) -> windows_core::Result<()>;
13815    fn IsZoomControlEnabled(&self) -> windows_core::Result<windows_core::BOOL>;
13816    fn SetIsZoomControlEnabled(&self, enabled: windows_core::BOOL) -> windows_core::Result<()>;
13817    fn IsBuiltInErrorPageEnabled(&self) -> windows_core::Result<windows_core::BOOL>;
13818    fn SetIsBuiltInErrorPageEnabled(&self, enabled: windows_core::BOOL)
13819        -> windows_core::Result<()>;
13820}
13821impl ICoreWebView2Settings_Vtbl {
13822    pub const fn new<Identity: ICoreWebView2Settings_Impl, const OFFSET: isize>() -> Self {
13823        unsafe extern "system" fn IsScriptEnabled<
13824            Identity: ICoreWebView2Settings_Impl,
13825            const OFFSET: isize,
13826        >(
13827            this: *mut core::ffi::c_void,
13828            isscriptenabled: *mut windows_core::BOOL,
13829        ) -> windows_core::HRESULT {
13830            unsafe {
13831                let this: &Identity =
13832                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
13833                match ICoreWebView2Settings_Impl::IsScriptEnabled(this) {
13834                    Ok(ok__) => {
13835                        isscriptenabled.write(core::mem::transmute(ok__));
13836                        windows_core::HRESULT(0)
13837                    }
13838                    Err(err) => err.into(),
13839                }
13840            }
13841        }
13842        unsafe extern "system" fn SetIsScriptEnabled<
13843            Identity: ICoreWebView2Settings_Impl,
13844            const OFFSET: isize,
13845        >(
13846            this: *mut core::ffi::c_void,
13847            isscriptenabled: windows_core::BOOL,
13848        ) -> windows_core::HRESULT {
13849            unsafe {
13850                let this: &Identity =
13851                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
13852                ICoreWebView2Settings_Impl::SetIsScriptEnabled(
13853                    this,
13854                    core::mem::transmute_copy(&isscriptenabled),
13855                )
13856                .into()
13857            }
13858        }
13859        unsafe extern "system" fn IsWebMessageEnabled<
13860            Identity: ICoreWebView2Settings_Impl,
13861            const OFFSET: isize,
13862        >(
13863            this: *mut core::ffi::c_void,
13864            iswebmessageenabled: *mut windows_core::BOOL,
13865        ) -> windows_core::HRESULT {
13866            unsafe {
13867                let this: &Identity =
13868                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
13869                match ICoreWebView2Settings_Impl::IsWebMessageEnabled(this) {
13870                    Ok(ok__) => {
13871                        iswebmessageenabled.write(core::mem::transmute(ok__));
13872                        windows_core::HRESULT(0)
13873                    }
13874                    Err(err) => err.into(),
13875                }
13876            }
13877        }
13878        unsafe extern "system" fn SetIsWebMessageEnabled<
13879            Identity: ICoreWebView2Settings_Impl,
13880            const OFFSET: isize,
13881        >(
13882            this: *mut core::ffi::c_void,
13883            iswebmessageenabled: windows_core::BOOL,
13884        ) -> windows_core::HRESULT {
13885            unsafe {
13886                let this: &Identity =
13887                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
13888                ICoreWebView2Settings_Impl::SetIsWebMessageEnabled(
13889                    this,
13890                    core::mem::transmute_copy(&iswebmessageenabled),
13891                )
13892                .into()
13893            }
13894        }
13895        unsafe extern "system" fn AreDefaultScriptDialogsEnabled<
13896            Identity: ICoreWebView2Settings_Impl,
13897            const OFFSET: isize,
13898        >(
13899            this: *mut core::ffi::c_void,
13900            aredefaultscriptdialogsenabled: *mut windows_core::BOOL,
13901        ) -> windows_core::HRESULT {
13902            unsafe {
13903                let this: &Identity =
13904                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
13905                match ICoreWebView2Settings_Impl::AreDefaultScriptDialogsEnabled(this) {
13906                    Ok(ok__) => {
13907                        aredefaultscriptdialogsenabled.write(core::mem::transmute(ok__));
13908                        windows_core::HRESULT(0)
13909                    }
13910                    Err(err) => err.into(),
13911                }
13912            }
13913        }
13914        unsafe extern "system" fn SetAreDefaultScriptDialogsEnabled<
13915            Identity: ICoreWebView2Settings_Impl,
13916            const OFFSET: isize,
13917        >(
13918            this: *mut core::ffi::c_void,
13919            aredefaultscriptdialogsenabled: windows_core::BOOL,
13920        ) -> windows_core::HRESULT {
13921            unsafe {
13922                let this: &Identity =
13923                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
13924                ICoreWebView2Settings_Impl::SetAreDefaultScriptDialogsEnabled(
13925                    this,
13926                    core::mem::transmute_copy(&aredefaultscriptdialogsenabled),
13927                )
13928                .into()
13929            }
13930        }
13931        unsafe extern "system" fn IsStatusBarEnabled<
13932            Identity: ICoreWebView2Settings_Impl,
13933            const OFFSET: isize,
13934        >(
13935            this: *mut core::ffi::c_void,
13936            isstatusbarenabled: *mut windows_core::BOOL,
13937        ) -> windows_core::HRESULT {
13938            unsafe {
13939                let this: &Identity =
13940                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
13941                match ICoreWebView2Settings_Impl::IsStatusBarEnabled(this) {
13942                    Ok(ok__) => {
13943                        isstatusbarenabled.write(core::mem::transmute(ok__));
13944                        windows_core::HRESULT(0)
13945                    }
13946                    Err(err) => err.into(),
13947                }
13948            }
13949        }
13950        unsafe extern "system" fn SetIsStatusBarEnabled<
13951            Identity: ICoreWebView2Settings_Impl,
13952            const OFFSET: isize,
13953        >(
13954            this: *mut core::ffi::c_void,
13955            isstatusbarenabled: windows_core::BOOL,
13956        ) -> windows_core::HRESULT {
13957            unsafe {
13958                let this: &Identity =
13959                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
13960                ICoreWebView2Settings_Impl::SetIsStatusBarEnabled(
13961                    this,
13962                    core::mem::transmute_copy(&isstatusbarenabled),
13963                )
13964                .into()
13965            }
13966        }
13967        unsafe extern "system" fn AreDevToolsEnabled<
13968            Identity: ICoreWebView2Settings_Impl,
13969            const OFFSET: isize,
13970        >(
13971            this: *mut core::ffi::c_void,
13972            aredevtoolsenabled: *mut windows_core::BOOL,
13973        ) -> windows_core::HRESULT {
13974            unsafe {
13975                let this: &Identity =
13976                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
13977                match ICoreWebView2Settings_Impl::AreDevToolsEnabled(this) {
13978                    Ok(ok__) => {
13979                        aredevtoolsenabled.write(core::mem::transmute(ok__));
13980                        windows_core::HRESULT(0)
13981                    }
13982                    Err(err) => err.into(),
13983                }
13984            }
13985        }
13986        unsafe extern "system" fn SetAreDevToolsEnabled<
13987            Identity: ICoreWebView2Settings_Impl,
13988            const OFFSET: isize,
13989        >(
13990            this: *mut core::ffi::c_void,
13991            aredevtoolsenabled: windows_core::BOOL,
13992        ) -> windows_core::HRESULT {
13993            unsafe {
13994                let this: &Identity =
13995                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
13996                ICoreWebView2Settings_Impl::SetAreDevToolsEnabled(
13997                    this,
13998                    core::mem::transmute_copy(&aredevtoolsenabled),
13999                )
14000                .into()
14001            }
14002        }
14003        unsafe extern "system" fn AreDefaultContextMenusEnabled<
14004            Identity: ICoreWebView2Settings_Impl,
14005            const OFFSET: isize,
14006        >(
14007            this: *mut core::ffi::c_void,
14008            enabled: *mut windows_core::BOOL,
14009        ) -> windows_core::HRESULT {
14010            unsafe {
14011                let this: &Identity =
14012                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
14013                match ICoreWebView2Settings_Impl::AreDefaultContextMenusEnabled(this) {
14014                    Ok(ok__) => {
14015                        enabled.write(core::mem::transmute(ok__));
14016                        windows_core::HRESULT(0)
14017                    }
14018                    Err(err) => err.into(),
14019                }
14020            }
14021        }
14022        unsafe extern "system" fn SetAreDefaultContextMenusEnabled<
14023            Identity: ICoreWebView2Settings_Impl,
14024            const OFFSET: isize,
14025        >(
14026            this: *mut core::ffi::c_void,
14027            enabled: windows_core::BOOL,
14028        ) -> windows_core::HRESULT {
14029            unsafe {
14030                let this: &Identity =
14031                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
14032                ICoreWebView2Settings_Impl::SetAreDefaultContextMenusEnabled(
14033                    this,
14034                    core::mem::transmute_copy(&enabled),
14035                )
14036                .into()
14037            }
14038        }
14039        unsafe extern "system" fn AreHostObjectsAllowed<
14040            Identity: ICoreWebView2Settings_Impl,
14041            const OFFSET: isize,
14042        >(
14043            this: *mut core::ffi::c_void,
14044            allowed: *mut windows_core::BOOL,
14045        ) -> windows_core::HRESULT {
14046            unsafe {
14047                let this: &Identity =
14048                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
14049                match ICoreWebView2Settings_Impl::AreHostObjectsAllowed(this) {
14050                    Ok(ok__) => {
14051                        allowed.write(core::mem::transmute(ok__));
14052                        windows_core::HRESULT(0)
14053                    }
14054                    Err(err) => err.into(),
14055                }
14056            }
14057        }
14058        unsafe extern "system" fn SetAreHostObjectsAllowed<
14059            Identity: ICoreWebView2Settings_Impl,
14060            const OFFSET: isize,
14061        >(
14062            this: *mut core::ffi::c_void,
14063            allowed: windows_core::BOOL,
14064        ) -> windows_core::HRESULT {
14065            unsafe {
14066                let this: &Identity =
14067                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
14068                ICoreWebView2Settings_Impl::SetAreHostObjectsAllowed(
14069                    this,
14070                    core::mem::transmute_copy(&allowed),
14071                )
14072                .into()
14073            }
14074        }
14075        unsafe extern "system" fn IsZoomControlEnabled<
14076            Identity: ICoreWebView2Settings_Impl,
14077            const OFFSET: isize,
14078        >(
14079            this: *mut core::ffi::c_void,
14080            enabled: *mut windows_core::BOOL,
14081        ) -> windows_core::HRESULT {
14082            unsafe {
14083                let this: &Identity =
14084                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
14085                match ICoreWebView2Settings_Impl::IsZoomControlEnabled(this) {
14086                    Ok(ok__) => {
14087                        enabled.write(core::mem::transmute(ok__));
14088                        windows_core::HRESULT(0)
14089                    }
14090                    Err(err) => err.into(),
14091                }
14092            }
14093        }
14094        unsafe extern "system" fn SetIsZoomControlEnabled<
14095            Identity: ICoreWebView2Settings_Impl,
14096            const OFFSET: isize,
14097        >(
14098            this: *mut core::ffi::c_void,
14099            enabled: windows_core::BOOL,
14100        ) -> windows_core::HRESULT {
14101            unsafe {
14102                let this: &Identity =
14103                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
14104                ICoreWebView2Settings_Impl::SetIsZoomControlEnabled(
14105                    this,
14106                    core::mem::transmute_copy(&enabled),
14107                )
14108                .into()
14109            }
14110        }
14111        unsafe extern "system" fn IsBuiltInErrorPageEnabled<
14112            Identity: ICoreWebView2Settings_Impl,
14113            const OFFSET: isize,
14114        >(
14115            this: *mut core::ffi::c_void,
14116            enabled: *mut windows_core::BOOL,
14117        ) -> windows_core::HRESULT {
14118            unsafe {
14119                let this: &Identity =
14120                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
14121                match ICoreWebView2Settings_Impl::IsBuiltInErrorPageEnabled(this) {
14122                    Ok(ok__) => {
14123                        enabled.write(core::mem::transmute(ok__));
14124                        windows_core::HRESULT(0)
14125                    }
14126                    Err(err) => err.into(),
14127                }
14128            }
14129        }
14130        unsafe extern "system" fn SetIsBuiltInErrorPageEnabled<
14131            Identity: ICoreWebView2Settings_Impl,
14132            const OFFSET: isize,
14133        >(
14134            this: *mut core::ffi::c_void,
14135            enabled: windows_core::BOOL,
14136        ) -> windows_core::HRESULT {
14137            unsafe {
14138                let this: &Identity =
14139                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
14140                ICoreWebView2Settings_Impl::SetIsBuiltInErrorPageEnabled(
14141                    this,
14142                    core::mem::transmute_copy(&enabled),
14143                )
14144                .into()
14145            }
14146        }
14147        Self {
14148            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
14149            IsScriptEnabled: IsScriptEnabled::<Identity, OFFSET>,
14150            SetIsScriptEnabled: SetIsScriptEnabled::<Identity, OFFSET>,
14151            IsWebMessageEnabled: IsWebMessageEnabled::<Identity, OFFSET>,
14152            SetIsWebMessageEnabled: SetIsWebMessageEnabled::<Identity, OFFSET>,
14153            AreDefaultScriptDialogsEnabled: AreDefaultScriptDialogsEnabled::<Identity, OFFSET>,
14154            SetAreDefaultScriptDialogsEnabled: SetAreDefaultScriptDialogsEnabled::<Identity, OFFSET>,
14155            IsStatusBarEnabled: IsStatusBarEnabled::<Identity, OFFSET>,
14156            SetIsStatusBarEnabled: SetIsStatusBarEnabled::<Identity, OFFSET>,
14157            AreDevToolsEnabled: AreDevToolsEnabled::<Identity, OFFSET>,
14158            SetAreDevToolsEnabled: SetAreDevToolsEnabled::<Identity, OFFSET>,
14159            AreDefaultContextMenusEnabled: AreDefaultContextMenusEnabled::<Identity, OFFSET>,
14160            SetAreDefaultContextMenusEnabled: SetAreDefaultContextMenusEnabled::<Identity, OFFSET>,
14161            AreHostObjectsAllowed: AreHostObjectsAllowed::<Identity, OFFSET>,
14162            SetAreHostObjectsAllowed: SetAreHostObjectsAllowed::<Identity, OFFSET>,
14163            IsZoomControlEnabled: IsZoomControlEnabled::<Identity, OFFSET>,
14164            SetIsZoomControlEnabled: SetIsZoomControlEnabled::<Identity, OFFSET>,
14165            IsBuiltInErrorPageEnabled: IsBuiltInErrorPageEnabled::<Identity, OFFSET>,
14166            SetIsBuiltInErrorPageEnabled: SetIsBuiltInErrorPageEnabled::<Identity, OFFSET>,
14167        }
14168    }
14169    pub fn matches(iid: &windows_core::GUID) -> bool {
14170        iid == &<ICoreWebView2Settings as windows_core::Interface>::IID
14171    }
14172}
14173impl windows_core::RuntimeName for ICoreWebView2Settings {}
14174windows_core::imp::define_interface!(
14175    ICoreWebView2Settings2,
14176    ICoreWebView2Settings2_Vtbl,
14177    0xee9a0f68_f46c_4e32_ac23_ef8cac224d2a
14178);
14179impl core::ops::Deref for ICoreWebView2Settings2 {
14180    type Target = ICoreWebView2Settings;
14181    fn deref(&self) -> &Self::Target {
14182        unsafe { core::mem::transmute(self) }
14183    }
14184}
14185windows_core::imp::interface_hierarchy!(
14186    ICoreWebView2Settings2,
14187    windows_core::IUnknown,
14188    ICoreWebView2Settings
14189);
14190impl ICoreWebView2Settings2 {
14191    pub unsafe fn UserAgent(&self) -> windows_core::Result<windows_core::PWSTR> {
14192        unsafe {
14193            let mut result__ = core::mem::zeroed();
14194            (windows_core::Interface::vtable(self).UserAgent)(
14195                windows_core::Interface::as_raw(self),
14196                &mut result__,
14197            )
14198            .map(|| result__)
14199        }
14200    }
14201    pub unsafe fn SetUserAgent<P0>(&self, useragent: P0) -> windows_core::Result<()>
14202    where
14203        P0: windows_core::Param<windows_core::PCWSTR>,
14204    {
14205        unsafe {
14206            (windows_core::Interface::vtable(self).SetUserAgent)(
14207                windows_core::Interface::as_raw(self),
14208                useragent.param().abi(),
14209            )
14210            .ok()
14211        }
14212    }
14213}
14214#[repr(C)]
14215#[doc(hidden)]
14216pub struct ICoreWebView2Settings2_Vtbl {
14217    pub base__: ICoreWebView2Settings_Vtbl,
14218    pub UserAgent: unsafe extern "system" fn(
14219        *mut core::ffi::c_void,
14220        *mut windows_core::PWSTR,
14221    ) -> windows_core::HRESULT,
14222    pub SetUserAgent: unsafe extern "system" fn(
14223        *mut core::ffi::c_void,
14224        windows_core::PCWSTR,
14225    ) -> windows_core::HRESULT,
14226}
14227pub trait ICoreWebView2Settings2_Impl: ICoreWebView2Settings_Impl {
14228    fn UserAgent(&self) -> windows_core::Result<windows_core::PWSTR>;
14229    fn SetUserAgent(&self, useragent: &windows_core::PCWSTR) -> windows_core::Result<()>;
14230}
14231impl ICoreWebView2Settings2_Vtbl {
14232    pub const fn new<Identity: ICoreWebView2Settings2_Impl, const OFFSET: isize>() -> Self {
14233        unsafe extern "system" fn UserAgent<
14234            Identity: ICoreWebView2Settings2_Impl,
14235            const OFFSET: isize,
14236        >(
14237            this: *mut core::ffi::c_void,
14238            useragent: *mut windows_core::PWSTR,
14239        ) -> windows_core::HRESULT {
14240            unsafe {
14241                let this: &Identity =
14242                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
14243                match ICoreWebView2Settings2_Impl::UserAgent(this) {
14244                    Ok(ok__) => {
14245                        useragent.write(core::mem::transmute(ok__));
14246                        windows_core::HRESULT(0)
14247                    }
14248                    Err(err) => err.into(),
14249                }
14250            }
14251        }
14252        unsafe extern "system" fn SetUserAgent<
14253            Identity: ICoreWebView2Settings2_Impl,
14254            const OFFSET: isize,
14255        >(
14256            this: *mut core::ffi::c_void,
14257            useragent: windows_core::PCWSTR,
14258        ) -> windows_core::HRESULT {
14259            unsafe {
14260                let this: &Identity =
14261                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
14262                ICoreWebView2Settings2_Impl::SetUserAgent(this, core::mem::transmute(&useragent))
14263                    .into()
14264            }
14265        }
14266        Self {
14267            base__: ICoreWebView2Settings_Vtbl::new::<Identity, OFFSET>(),
14268            UserAgent: UserAgent::<Identity, OFFSET>,
14269            SetUserAgent: SetUserAgent::<Identity, OFFSET>,
14270        }
14271    }
14272    pub fn matches(iid: &windows_core::GUID) -> bool {
14273        iid == &<ICoreWebView2Settings2 as windows_core::Interface>::IID
14274            || iid == &<ICoreWebView2Settings as windows_core::Interface>::IID
14275    }
14276}
14277impl windows_core::RuntimeName for ICoreWebView2Settings2 {}
14278windows_core::imp::define_interface!(
14279    ICoreWebView2Settings3,
14280    ICoreWebView2Settings3_Vtbl,
14281    0xfdb5ab74_af33_4854_84f0_0a631deb5eba
14282);
14283impl core::ops::Deref for ICoreWebView2Settings3 {
14284    type Target = ICoreWebView2Settings2;
14285    fn deref(&self) -> &Self::Target {
14286        unsafe { core::mem::transmute(self) }
14287    }
14288}
14289windows_core::imp::interface_hierarchy!(
14290    ICoreWebView2Settings3,
14291    windows_core::IUnknown,
14292    ICoreWebView2Settings,
14293    ICoreWebView2Settings2
14294);
14295impl ICoreWebView2Settings3 {
14296    pub unsafe fn AreBrowserAcceleratorKeysEnabled(
14297        &self,
14298    ) -> windows_core::Result<windows_core::BOOL> {
14299        unsafe {
14300            let mut result__ = core::mem::zeroed();
14301            (windows_core::Interface::vtable(self).AreBrowserAcceleratorKeysEnabled)(
14302                windows_core::Interface::as_raw(self),
14303                &mut result__,
14304            )
14305            .map(|| result__)
14306        }
14307    }
14308    pub unsafe fn SetAreBrowserAcceleratorKeysEnabled(
14309        &self,
14310        arebrowseracceleratorkeysenabled: bool,
14311    ) -> windows_core::Result<()> {
14312        unsafe {
14313            (windows_core::Interface::vtable(self).SetAreBrowserAcceleratorKeysEnabled)(
14314                windows_core::Interface::as_raw(self),
14315                arebrowseracceleratorkeysenabled.into(),
14316            )
14317            .ok()
14318        }
14319    }
14320}
14321#[repr(C)]
14322#[doc(hidden)]
14323pub struct ICoreWebView2Settings3_Vtbl {
14324    pub base__: ICoreWebView2Settings2_Vtbl,
14325    pub AreBrowserAcceleratorKeysEnabled: unsafe extern "system" fn(
14326        *mut core::ffi::c_void,
14327        *mut windows_core::BOOL,
14328    ) -> windows_core::HRESULT,
14329    pub SetAreBrowserAcceleratorKeysEnabled: unsafe extern "system" fn(
14330        *mut core::ffi::c_void,
14331        windows_core::BOOL,
14332    )
14333        -> windows_core::HRESULT,
14334}
14335pub trait ICoreWebView2Settings3_Impl: ICoreWebView2Settings2_Impl {
14336    fn AreBrowserAcceleratorKeysEnabled(&self) -> windows_core::Result<windows_core::BOOL>;
14337    fn SetAreBrowserAcceleratorKeysEnabled(
14338        &self,
14339        arebrowseracceleratorkeysenabled: windows_core::BOOL,
14340    ) -> windows_core::Result<()>;
14341}
14342impl ICoreWebView2Settings3_Vtbl {
14343    pub const fn new<Identity: ICoreWebView2Settings3_Impl, const OFFSET: isize>() -> Self {
14344        unsafe extern "system" fn AreBrowserAcceleratorKeysEnabled<
14345            Identity: ICoreWebView2Settings3_Impl,
14346            const OFFSET: isize,
14347        >(
14348            this: *mut core::ffi::c_void,
14349            arebrowseracceleratorkeysenabled: *mut windows_core::BOOL,
14350        ) -> windows_core::HRESULT {
14351            unsafe {
14352                let this: &Identity =
14353                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
14354                match ICoreWebView2Settings3_Impl::AreBrowserAcceleratorKeysEnabled(this) {
14355                    Ok(ok__) => {
14356                        arebrowseracceleratorkeysenabled.write(core::mem::transmute(ok__));
14357                        windows_core::HRESULT(0)
14358                    }
14359                    Err(err) => err.into(),
14360                }
14361            }
14362        }
14363        unsafe extern "system" fn SetAreBrowserAcceleratorKeysEnabled<
14364            Identity: ICoreWebView2Settings3_Impl,
14365            const OFFSET: isize,
14366        >(
14367            this: *mut core::ffi::c_void,
14368            arebrowseracceleratorkeysenabled: windows_core::BOOL,
14369        ) -> windows_core::HRESULT {
14370            unsafe {
14371                let this: &Identity =
14372                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
14373                ICoreWebView2Settings3_Impl::SetAreBrowserAcceleratorKeysEnabled(
14374                    this,
14375                    core::mem::transmute_copy(&arebrowseracceleratorkeysenabled),
14376                )
14377                .into()
14378            }
14379        }
14380        Self {
14381            base__: ICoreWebView2Settings2_Vtbl::new::<Identity, OFFSET>(),
14382            AreBrowserAcceleratorKeysEnabled: AreBrowserAcceleratorKeysEnabled::<Identity, OFFSET>,
14383            SetAreBrowserAcceleratorKeysEnabled: SetAreBrowserAcceleratorKeysEnabled::<
14384                Identity,
14385                OFFSET,
14386            >,
14387        }
14388    }
14389    pub fn matches(iid: &windows_core::GUID) -> bool {
14390        iid == &<ICoreWebView2Settings3 as windows_core::Interface>::IID
14391            || iid == &<ICoreWebView2Settings as windows_core::Interface>::IID
14392            || iid == &<ICoreWebView2Settings2 as windows_core::Interface>::IID
14393    }
14394}
14395impl windows_core::RuntimeName for ICoreWebView2Settings3 {}
14396windows_core::imp::define_interface!(
14397    ICoreWebView2SourceChangedEventArgs,
14398    ICoreWebView2SourceChangedEventArgs_Vtbl,
14399    0x31e0e545_1dba_4266_8914_f63848a1f7d7
14400);
14401windows_core::imp::interface_hierarchy!(
14402    ICoreWebView2SourceChangedEventArgs,
14403    windows_core::IUnknown
14404);
14405impl ICoreWebView2SourceChangedEventArgs {
14406    pub unsafe fn IsNewDocument(&self) -> windows_core::Result<windows_core::BOOL> {
14407        unsafe {
14408            let mut result__ = core::mem::zeroed();
14409            (windows_core::Interface::vtable(self).IsNewDocument)(
14410                windows_core::Interface::as_raw(self),
14411                &mut result__,
14412            )
14413            .map(|| result__)
14414        }
14415    }
14416}
14417#[repr(C)]
14418#[doc(hidden)]
14419pub struct ICoreWebView2SourceChangedEventArgs_Vtbl {
14420    pub base__: windows_core::IUnknown_Vtbl,
14421    pub IsNewDocument: unsafe extern "system" fn(
14422        *mut core::ffi::c_void,
14423        *mut windows_core::BOOL,
14424    ) -> windows_core::HRESULT,
14425}
14426pub trait ICoreWebView2SourceChangedEventArgs_Impl: windows_core::IUnknownImpl {
14427    fn IsNewDocument(&self) -> windows_core::Result<windows_core::BOOL>;
14428}
14429impl ICoreWebView2SourceChangedEventArgs_Vtbl {
14430    pub const fn new<Identity: ICoreWebView2SourceChangedEventArgs_Impl, const OFFSET: isize>(
14431    ) -> Self {
14432        unsafe extern "system" fn IsNewDocument<
14433            Identity: ICoreWebView2SourceChangedEventArgs_Impl,
14434            const OFFSET: isize,
14435        >(
14436            this: *mut core::ffi::c_void,
14437            isnewdocument: *mut windows_core::BOOL,
14438        ) -> windows_core::HRESULT {
14439            unsafe {
14440                let this: &Identity =
14441                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
14442                match ICoreWebView2SourceChangedEventArgs_Impl::IsNewDocument(this) {
14443                    Ok(ok__) => {
14444                        isnewdocument.write(core::mem::transmute(ok__));
14445                        windows_core::HRESULT(0)
14446                    }
14447                    Err(err) => err.into(),
14448                }
14449            }
14450        }
14451        Self {
14452            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
14453            IsNewDocument: IsNewDocument::<Identity, OFFSET>,
14454        }
14455    }
14456    pub fn matches(iid: &windows_core::GUID) -> bool {
14457        iid == &<ICoreWebView2SourceChangedEventArgs as windows_core::Interface>::IID
14458    }
14459}
14460impl windows_core::RuntimeName for ICoreWebView2SourceChangedEventArgs {}
14461windows_core::imp::define_interface!(
14462    ICoreWebView2SourceChangedEventHandler,
14463    ICoreWebView2SourceChangedEventHandler_Vtbl,
14464    0x3c067f9f_5388_4772_8b48_79f7ef1ab37c
14465);
14466windows_core::imp::interface_hierarchy!(
14467    ICoreWebView2SourceChangedEventHandler,
14468    windows_core::IUnknown
14469);
14470impl ICoreWebView2SourceChangedEventHandler {
14471    pub unsafe fn Invoke<P0, P1>(&self, sender: P0, args: P1) -> windows_core::Result<()>
14472    where
14473        P0: windows_core::Param<ICoreWebView2>,
14474        P1: windows_core::Param<ICoreWebView2SourceChangedEventArgs>,
14475    {
14476        unsafe {
14477            (windows_core::Interface::vtable(self).Invoke)(
14478                windows_core::Interface::as_raw(self),
14479                sender.param().abi(),
14480                args.param().abi(),
14481            )
14482            .ok()
14483        }
14484    }
14485}
14486#[repr(C)]
14487#[doc(hidden)]
14488pub struct ICoreWebView2SourceChangedEventHandler_Vtbl {
14489    pub base__: windows_core::IUnknown_Vtbl,
14490    pub Invoke: unsafe extern "system" fn(
14491        *mut core::ffi::c_void,
14492        *mut core::ffi::c_void,
14493        *mut core::ffi::c_void,
14494    ) -> windows_core::HRESULT,
14495}
14496pub trait ICoreWebView2SourceChangedEventHandler_Impl: windows_core::IUnknownImpl {
14497    fn Invoke(
14498        &self,
14499        sender: windows_core::Ref<ICoreWebView2>,
14500        args: windows_core::Ref<ICoreWebView2SourceChangedEventArgs>,
14501    ) -> windows_core::Result<()>;
14502}
14503impl ICoreWebView2SourceChangedEventHandler_Vtbl {
14504    pub const fn new<Identity: ICoreWebView2SourceChangedEventHandler_Impl, const OFFSET: isize>(
14505    ) -> Self {
14506        unsafe extern "system" fn Invoke<
14507            Identity: ICoreWebView2SourceChangedEventHandler_Impl,
14508            const OFFSET: isize,
14509        >(
14510            this: *mut core::ffi::c_void,
14511            sender: *mut core::ffi::c_void,
14512            args: *mut core::ffi::c_void,
14513        ) -> windows_core::HRESULT {
14514            unsafe {
14515                let this: &Identity =
14516                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
14517                ICoreWebView2SourceChangedEventHandler_Impl::Invoke(
14518                    this,
14519                    core::mem::transmute_copy(&sender),
14520                    core::mem::transmute_copy(&args),
14521                )
14522                .into()
14523            }
14524        }
14525        Self {
14526            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
14527            Invoke: Invoke::<Identity, OFFSET>,
14528        }
14529    }
14530    pub fn matches(iid: &windows_core::GUID) -> bool {
14531        iid == &<ICoreWebView2SourceChangedEventHandler as windows_core::Interface>::IID
14532    }
14533}
14534impl windows_core::RuntimeName for ICoreWebView2SourceChangedEventHandler {}
14535windows_core::imp::define_interface!(
14536    ICoreWebView2TrySuspendCompletedHandler,
14537    ICoreWebView2TrySuspendCompletedHandler_Vtbl,
14538    0x00f206a7_9d17_4605_91f6_4e8e4de192e3
14539);
14540windows_core::imp::interface_hierarchy!(
14541    ICoreWebView2TrySuspendCompletedHandler,
14542    windows_core::IUnknown
14543);
14544impl ICoreWebView2TrySuspendCompletedHandler {
14545    pub unsafe fn Invoke(
14546        &self,
14547        errorcode: windows_core::HRESULT,
14548        issuccessful: bool,
14549    ) -> windows_core::Result<()> {
14550        unsafe {
14551            (windows_core::Interface::vtable(self).Invoke)(
14552                windows_core::Interface::as_raw(self),
14553                errorcode,
14554                issuccessful.into(),
14555            )
14556            .ok()
14557        }
14558    }
14559}
14560#[repr(C)]
14561#[doc(hidden)]
14562pub struct ICoreWebView2TrySuspendCompletedHandler_Vtbl {
14563    pub base__: windows_core::IUnknown_Vtbl,
14564    pub Invoke: unsafe extern "system" fn(
14565        *mut core::ffi::c_void,
14566        windows_core::HRESULT,
14567        windows_core::BOOL,
14568    ) -> windows_core::HRESULT,
14569}
14570pub trait ICoreWebView2TrySuspendCompletedHandler_Impl: windows_core::IUnknownImpl {
14571    fn Invoke(
14572        &self,
14573        errorcode: windows_core::HRESULT,
14574        issuccessful: windows_core::BOOL,
14575    ) -> windows_core::Result<()>;
14576}
14577impl ICoreWebView2TrySuspendCompletedHandler_Vtbl {
14578    pub const fn new<
14579        Identity: ICoreWebView2TrySuspendCompletedHandler_Impl,
14580        const OFFSET: isize,
14581    >() -> Self {
14582        unsafe extern "system" fn Invoke<
14583            Identity: ICoreWebView2TrySuspendCompletedHandler_Impl,
14584            const OFFSET: isize,
14585        >(
14586            this: *mut core::ffi::c_void,
14587            errorcode: windows_core::HRESULT,
14588            issuccessful: windows_core::BOOL,
14589        ) -> windows_core::HRESULT {
14590            unsafe {
14591                let this: &Identity =
14592                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
14593                ICoreWebView2TrySuspendCompletedHandler_Impl::Invoke(
14594                    this,
14595                    core::mem::transmute_copy(&errorcode),
14596                    core::mem::transmute_copy(&issuccessful),
14597                )
14598                .into()
14599            }
14600        }
14601        Self {
14602            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
14603            Invoke: Invoke::<Identity, OFFSET>,
14604        }
14605    }
14606    pub fn matches(iid: &windows_core::GUID) -> bool {
14607        iid == &<ICoreWebView2TrySuspendCompletedHandler as windows_core::Interface>::IID
14608    }
14609}
14610impl windows_core::RuntimeName for ICoreWebView2TrySuspendCompletedHandler {}
14611windows_core::imp::define_interface!(
14612    ICoreWebView2WebMessageReceivedEventArgs,
14613    ICoreWebView2WebMessageReceivedEventArgs_Vtbl,
14614    0x0f99a40c_e962_4207_9e92_e3d542eff849
14615);
14616windows_core::imp::interface_hierarchy!(
14617    ICoreWebView2WebMessageReceivedEventArgs,
14618    windows_core::IUnknown
14619);
14620impl ICoreWebView2WebMessageReceivedEventArgs {
14621    pub unsafe fn Source(&self) -> windows_core::Result<windows_core::PWSTR> {
14622        unsafe {
14623            let mut result__ = core::mem::zeroed();
14624            (windows_core::Interface::vtable(self).Source)(
14625                windows_core::Interface::as_raw(self),
14626                &mut result__,
14627            )
14628            .map(|| result__)
14629        }
14630    }
14631    pub unsafe fn WebMessageAsJson(&self) -> windows_core::Result<windows_core::PWSTR> {
14632        unsafe {
14633            let mut result__ = core::mem::zeroed();
14634            (windows_core::Interface::vtable(self).WebMessageAsJson)(
14635                windows_core::Interface::as_raw(self),
14636                &mut result__,
14637            )
14638            .map(|| result__)
14639        }
14640    }
14641    pub unsafe fn TryGetWebMessageAsString(
14642        &self,
14643        webmessageasstring: *mut windows_core::PWSTR,
14644    ) -> windows_core::Result<()> {
14645        unsafe {
14646            (windows_core::Interface::vtable(self).TryGetWebMessageAsString)(
14647                windows_core::Interface::as_raw(self),
14648                webmessageasstring as _,
14649            )
14650            .ok()
14651        }
14652    }
14653}
14654#[repr(C)]
14655#[doc(hidden)]
14656pub struct ICoreWebView2WebMessageReceivedEventArgs_Vtbl {
14657    pub base__: windows_core::IUnknown_Vtbl,
14658    pub Source: unsafe extern "system" fn(
14659        *mut core::ffi::c_void,
14660        *mut windows_core::PWSTR,
14661    ) -> windows_core::HRESULT,
14662    pub WebMessageAsJson: unsafe extern "system" fn(
14663        *mut core::ffi::c_void,
14664        *mut windows_core::PWSTR,
14665    ) -> windows_core::HRESULT,
14666    pub TryGetWebMessageAsString: unsafe extern "system" fn(
14667        *mut core::ffi::c_void,
14668        *mut windows_core::PWSTR,
14669    ) -> windows_core::HRESULT,
14670}
14671pub trait ICoreWebView2WebMessageReceivedEventArgs_Impl: windows_core::IUnknownImpl {
14672    fn Source(&self) -> windows_core::Result<windows_core::PWSTR>;
14673    fn WebMessageAsJson(&self) -> windows_core::Result<windows_core::PWSTR>;
14674    fn TryGetWebMessageAsString(
14675        &self,
14676        webmessageasstring: *mut windows_core::PWSTR,
14677    ) -> windows_core::Result<()>;
14678}
14679impl ICoreWebView2WebMessageReceivedEventArgs_Vtbl {
14680    pub const fn new<
14681        Identity: ICoreWebView2WebMessageReceivedEventArgs_Impl,
14682        const OFFSET: isize,
14683    >() -> Self {
14684        unsafe extern "system" fn Source<
14685            Identity: ICoreWebView2WebMessageReceivedEventArgs_Impl,
14686            const OFFSET: isize,
14687        >(
14688            this: *mut core::ffi::c_void,
14689            source: *mut windows_core::PWSTR,
14690        ) -> windows_core::HRESULT {
14691            unsafe {
14692                let this: &Identity =
14693                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
14694                match ICoreWebView2WebMessageReceivedEventArgs_Impl::Source(this) {
14695                    Ok(ok__) => {
14696                        source.write(core::mem::transmute(ok__));
14697                        windows_core::HRESULT(0)
14698                    }
14699                    Err(err) => err.into(),
14700                }
14701            }
14702        }
14703        unsafe extern "system" fn WebMessageAsJson<
14704            Identity: ICoreWebView2WebMessageReceivedEventArgs_Impl,
14705            const OFFSET: isize,
14706        >(
14707            this: *mut core::ffi::c_void,
14708            webmessageasjson: *mut windows_core::PWSTR,
14709        ) -> windows_core::HRESULT {
14710            unsafe {
14711                let this: &Identity =
14712                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
14713                match ICoreWebView2WebMessageReceivedEventArgs_Impl::WebMessageAsJson(this) {
14714                    Ok(ok__) => {
14715                        webmessageasjson.write(core::mem::transmute(ok__));
14716                        windows_core::HRESULT(0)
14717                    }
14718                    Err(err) => err.into(),
14719                }
14720            }
14721        }
14722        unsafe extern "system" fn TryGetWebMessageAsString<
14723            Identity: ICoreWebView2WebMessageReceivedEventArgs_Impl,
14724            const OFFSET: isize,
14725        >(
14726            this: *mut core::ffi::c_void,
14727            webmessageasstring: *mut windows_core::PWSTR,
14728        ) -> windows_core::HRESULT {
14729            unsafe {
14730                let this: &Identity =
14731                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
14732                ICoreWebView2WebMessageReceivedEventArgs_Impl::TryGetWebMessageAsString(
14733                    this,
14734                    core::mem::transmute_copy(&webmessageasstring),
14735                )
14736                .into()
14737            }
14738        }
14739        Self {
14740            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
14741            Source: Source::<Identity, OFFSET>,
14742            WebMessageAsJson: WebMessageAsJson::<Identity, OFFSET>,
14743            TryGetWebMessageAsString: TryGetWebMessageAsString::<Identity, OFFSET>,
14744        }
14745    }
14746    pub fn matches(iid: &windows_core::GUID) -> bool {
14747        iid == &<ICoreWebView2WebMessageReceivedEventArgs as windows_core::Interface>::IID
14748    }
14749}
14750impl windows_core::RuntimeName for ICoreWebView2WebMessageReceivedEventArgs {}
14751windows_core::imp::define_interface!(
14752    ICoreWebView2WebMessageReceivedEventHandler,
14753    ICoreWebView2WebMessageReceivedEventHandler_Vtbl,
14754    0x57213f19_00e6_49fa_8e07_898ea01ecbd2
14755);
14756windows_core::imp::interface_hierarchy!(
14757    ICoreWebView2WebMessageReceivedEventHandler,
14758    windows_core::IUnknown
14759);
14760impl ICoreWebView2WebMessageReceivedEventHandler {
14761    pub unsafe fn Invoke<P0, P1>(&self, sender: P0, args: P1) -> windows_core::Result<()>
14762    where
14763        P0: windows_core::Param<ICoreWebView2>,
14764        P1: windows_core::Param<ICoreWebView2WebMessageReceivedEventArgs>,
14765    {
14766        unsafe {
14767            (windows_core::Interface::vtable(self).Invoke)(
14768                windows_core::Interface::as_raw(self),
14769                sender.param().abi(),
14770                args.param().abi(),
14771            )
14772            .ok()
14773        }
14774    }
14775}
14776#[repr(C)]
14777#[doc(hidden)]
14778pub struct ICoreWebView2WebMessageReceivedEventHandler_Vtbl {
14779    pub base__: windows_core::IUnknown_Vtbl,
14780    pub Invoke: unsafe extern "system" fn(
14781        *mut core::ffi::c_void,
14782        *mut core::ffi::c_void,
14783        *mut core::ffi::c_void,
14784    ) -> windows_core::HRESULT,
14785}
14786pub trait ICoreWebView2WebMessageReceivedEventHandler_Impl: windows_core::IUnknownImpl {
14787    fn Invoke(
14788        &self,
14789        sender: windows_core::Ref<ICoreWebView2>,
14790        args: windows_core::Ref<ICoreWebView2WebMessageReceivedEventArgs>,
14791    ) -> windows_core::Result<()>;
14792}
14793impl ICoreWebView2WebMessageReceivedEventHandler_Vtbl {
14794    pub const fn new<
14795        Identity: ICoreWebView2WebMessageReceivedEventHandler_Impl,
14796        const OFFSET: isize,
14797    >() -> Self {
14798        unsafe extern "system" fn Invoke<
14799            Identity: ICoreWebView2WebMessageReceivedEventHandler_Impl,
14800            const OFFSET: isize,
14801        >(
14802            this: *mut core::ffi::c_void,
14803            sender: *mut core::ffi::c_void,
14804            args: *mut core::ffi::c_void,
14805        ) -> windows_core::HRESULT {
14806            unsafe {
14807                let this: &Identity =
14808                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
14809                ICoreWebView2WebMessageReceivedEventHandler_Impl::Invoke(
14810                    this,
14811                    core::mem::transmute_copy(&sender),
14812                    core::mem::transmute_copy(&args),
14813                )
14814                .into()
14815            }
14816        }
14817        Self {
14818            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
14819            Invoke: Invoke::<Identity, OFFSET>,
14820        }
14821    }
14822    pub fn matches(iid: &windows_core::GUID) -> bool {
14823        iid == &<ICoreWebView2WebMessageReceivedEventHandler as windows_core::Interface>::IID
14824    }
14825}
14826impl windows_core::RuntimeName for ICoreWebView2WebMessageReceivedEventHandler {}
14827windows_core::imp::define_interface!(
14828    ICoreWebView2WebResourceRequest,
14829    ICoreWebView2WebResourceRequest_Vtbl,
14830    0x97055cd4_512c_4264_8b5f_e3f446cea6a5
14831);
14832windows_core::imp::interface_hierarchy!(ICoreWebView2WebResourceRequest, windows_core::IUnknown);
14833impl ICoreWebView2WebResourceRequest {
14834    pub unsafe fn Uri(&self) -> windows_core::Result<windows_core::PWSTR> {
14835        unsafe {
14836            let mut result__ = core::mem::zeroed();
14837            (windows_core::Interface::vtable(self).Uri)(
14838                windows_core::Interface::as_raw(self),
14839                &mut result__,
14840            )
14841            .map(|| result__)
14842        }
14843    }
14844    pub unsafe fn SetUri<P0>(&self, uri: P0) -> windows_core::Result<()>
14845    where
14846        P0: windows_core::Param<windows_core::PCWSTR>,
14847    {
14848        unsafe {
14849            (windows_core::Interface::vtable(self).SetUri)(
14850                windows_core::Interface::as_raw(self),
14851                uri.param().abi(),
14852            )
14853            .ok()
14854        }
14855    }
14856    pub unsafe fn Method(&self) -> windows_core::Result<windows_core::PWSTR> {
14857        unsafe {
14858            let mut result__ = core::mem::zeroed();
14859            (windows_core::Interface::vtable(self).Method)(
14860                windows_core::Interface::as_raw(self),
14861                &mut result__,
14862            )
14863            .map(|| result__)
14864        }
14865    }
14866    pub unsafe fn SetMethod<P0>(&self, method: P0) -> windows_core::Result<()>
14867    where
14868        P0: windows_core::Param<windows_core::PCWSTR>,
14869    {
14870        unsafe {
14871            (windows_core::Interface::vtable(self).SetMethod)(
14872                windows_core::Interface::as_raw(self),
14873                method.param().abi(),
14874            )
14875            .ok()
14876        }
14877    }
14878    pub unsafe fn Content(&self) -> windows_core::Result<windows::Win32::System::Com::IStream> {
14879        unsafe {
14880            let mut result__ = core::mem::zeroed();
14881            (windows_core::Interface::vtable(self).Content)(
14882                windows_core::Interface::as_raw(self),
14883                &mut result__,
14884            )
14885            .and_then(|| windows_core::Type::from_abi(result__))
14886        }
14887    }
14888    pub unsafe fn SetContent<P0>(&self, content: P0) -> windows_core::Result<()>
14889    where
14890        P0: windows_core::Param<windows::Win32::System::Com::IStream>,
14891    {
14892        unsafe {
14893            (windows_core::Interface::vtable(self).SetContent)(
14894                windows_core::Interface::as_raw(self),
14895                content.param().abi(),
14896            )
14897            .ok()
14898        }
14899    }
14900    pub unsafe fn Headers(&self) -> windows_core::Result<ICoreWebView2HttpRequestHeaders> {
14901        unsafe {
14902            let mut result__ = core::mem::zeroed();
14903            (windows_core::Interface::vtable(self).Headers)(
14904                windows_core::Interface::as_raw(self),
14905                &mut result__,
14906            )
14907            .and_then(|| windows_core::Type::from_abi(result__))
14908        }
14909    }
14910}
14911#[repr(C)]
14912#[doc(hidden)]
14913pub struct ICoreWebView2WebResourceRequest_Vtbl {
14914    pub base__: windows_core::IUnknown_Vtbl,
14915    pub Uri: unsafe extern "system" fn(
14916        *mut core::ffi::c_void,
14917        *mut windows_core::PWSTR,
14918    ) -> windows_core::HRESULT,
14919    pub SetUri: unsafe extern "system" fn(
14920        *mut core::ffi::c_void,
14921        windows_core::PCWSTR,
14922    ) -> windows_core::HRESULT,
14923    pub Method: unsafe extern "system" fn(
14924        *mut core::ffi::c_void,
14925        *mut windows_core::PWSTR,
14926    ) -> windows_core::HRESULT,
14927    pub SetMethod: unsafe extern "system" fn(
14928        *mut core::ffi::c_void,
14929        windows_core::PCWSTR,
14930    ) -> windows_core::HRESULT,
14931    pub Content: unsafe extern "system" fn(
14932        *mut core::ffi::c_void,
14933        *mut *mut core::ffi::c_void,
14934    ) -> windows_core::HRESULT,
14935    pub SetContent: unsafe extern "system" fn(
14936        *mut core::ffi::c_void,
14937        *mut core::ffi::c_void,
14938    ) -> windows_core::HRESULT,
14939    pub Headers: unsafe extern "system" fn(
14940        *mut core::ffi::c_void,
14941        *mut *mut core::ffi::c_void,
14942    ) -> windows_core::HRESULT,
14943}
14944pub trait ICoreWebView2WebResourceRequest_Impl: windows_core::IUnknownImpl {
14945    fn Uri(&self) -> windows_core::Result<windows_core::PWSTR>;
14946    fn SetUri(&self, uri: &windows_core::PCWSTR) -> windows_core::Result<()>;
14947    fn Method(&self) -> windows_core::Result<windows_core::PWSTR>;
14948    fn SetMethod(&self, method: &windows_core::PCWSTR) -> windows_core::Result<()>;
14949    fn Content(&self) -> windows_core::Result<windows::Win32::System::Com::IStream>;
14950    fn SetContent(
14951        &self,
14952        content: windows_core::Ref<windows::Win32::System::Com::IStream>,
14953    ) -> windows_core::Result<()>;
14954    fn Headers(&self) -> windows_core::Result<ICoreWebView2HttpRequestHeaders>;
14955}
14956impl ICoreWebView2WebResourceRequest_Vtbl {
14957    pub const fn new<Identity: ICoreWebView2WebResourceRequest_Impl, const OFFSET: isize>() -> Self
14958    {
14959        unsafe extern "system" fn Uri<
14960            Identity: ICoreWebView2WebResourceRequest_Impl,
14961            const OFFSET: isize,
14962        >(
14963            this: *mut core::ffi::c_void,
14964            uri: *mut windows_core::PWSTR,
14965        ) -> windows_core::HRESULT {
14966            unsafe {
14967                let this: &Identity =
14968                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
14969                match ICoreWebView2WebResourceRequest_Impl::Uri(this) {
14970                    Ok(ok__) => {
14971                        uri.write(core::mem::transmute(ok__));
14972                        windows_core::HRESULT(0)
14973                    }
14974                    Err(err) => err.into(),
14975                }
14976            }
14977        }
14978        unsafe extern "system" fn SetUri<
14979            Identity: ICoreWebView2WebResourceRequest_Impl,
14980            const OFFSET: isize,
14981        >(
14982            this: *mut core::ffi::c_void,
14983            uri: windows_core::PCWSTR,
14984        ) -> windows_core::HRESULT {
14985            unsafe {
14986                let this: &Identity =
14987                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
14988                ICoreWebView2WebResourceRequest_Impl::SetUri(this, core::mem::transmute(&uri))
14989                    .into()
14990            }
14991        }
14992        unsafe extern "system" fn Method<
14993            Identity: ICoreWebView2WebResourceRequest_Impl,
14994            const OFFSET: isize,
14995        >(
14996            this: *mut core::ffi::c_void,
14997            method: *mut windows_core::PWSTR,
14998        ) -> windows_core::HRESULT {
14999            unsafe {
15000                let this: &Identity =
15001                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
15002                match ICoreWebView2WebResourceRequest_Impl::Method(this) {
15003                    Ok(ok__) => {
15004                        method.write(core::mem::transmute(ok__));
15005                        windows_core::HRESULT(0)
15006                    }
15007                    Err(err) => err.into(),
15008                }
15009            }
15010        }
15011        unsafe extern "system" fn SetMethod<
15012            Identity: ICoreWebView2WebResourceRequest_Impl,
15013            const OFFSET: isize,
15014        >(
15015            this: *mut core::ffi::c_void,
15016            method: windows_core::PCWSTR,
15017        ) -> windows_core::HRESULT {
15018            unsafe {
15019                let this: &Identity =
15020                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
15021                ICoreWebView2WebResourceRequest_Impl::SetMethod(this, core::mem::transmute(&method))
15022                    .into()
15023            }
15024        }
15025        unsafe extern "system" fn Content<
15026            Identity: ICoreWebView2WebResourceRequest_Impl,
15027            const OFFSET: isize,
15028        >(
15029            this: *mut core::ffi::c_void,
15030            content: *mut *mut core::ffi::c_void,
15031        ) -> windows_core::HRESULT {
15032            unsafe {
15033                let this: &Identity =
15034                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
15035                match ICoreWebView2WebResourceRequest_Impl::Content(this) {
15036                    Ok(ok__) => {
15037                        content.write(core::mem::transmute(ok__));
15038                        windows_core::HRESULT(0)
15039                    }
15040                    Err(err) => err.into(),
15041                }
15042            }
15043        }
15044        unsafe extern "system" fn SetContent<
15045            Identity: ICoreWebView2WebResourceRequest_Impl,
15046            const OFFSET: isize,
15047        >(
15048            this: *mut core::ffi::c_void,
15049            content: *mut core::ffi::c_void,
15050        ) -> windows_core::HRESULT {
15051            unsafe {
15052                let this: &Identity =
15053                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
15054                ICoreWebView2WebResourceRequest_Impl::SetContent(
15055                    this,
15056                    core::mem::transmute_copy(&content),
15057                )
15058                .into()
15059            }
15060        }
15061        unsafe extern "system" fn Headers<
15062            Identity: ICoreWebView2WebResourceRequest_Impl,
15063            const OFFSET: isize,
15064        >(
15065            this: *mut core::ffi::c_void,
15066            headers: *mut *mut core::ffi::c_void,
15067        ) -> windows_core::HRESULT {
15068            unsafe {
15069                let this: &Identity =
15070                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
15071                match ICoreWebView2WebResourceRequest_Impl::Headers(this) {
15072                    Ok(ok__) => {
15073                        headers.write(core::mem::transmute(ok__));
15074                        windows_core::HRESULT(0)
15075                    }
15076                    Err(err) => err.into(),
15077                }
15078            }
15079        }
15080        Self {
15081            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
15082            Uri: Uri::<Identity, OFFSET>,
15083            SetUri: SetUri::<Identity, OFFSET>,
15084            Method: Method::<Identity, OFFSET>,
15085            SetMethod: SetMethod::<Identity, OFFSET>,
15086            Content: Content::<Identity, OFFSET>,
15087            SetContent: SetContent::<Identity, OFFSET>,
15088            Headers: Headers::<Identity, OFFSET>,
15089        }
15090    }
15091    pub fn matches(iid: &windows_core::GUID) -> bool {
15092        iid == &<ICoreWebView2WebResourceRequest as windows_core::Interface>::IID
15093    }
15094}
15095impl windows_core::RuntimeName for ICoreWebView2WebResourceRequest {}
15096windows_core::imp::define_interface!(
15097    ICoreWebView2WebResourceRequestedEventArgs,
15098    ICoreWebView2WebResourceRequestedEventArgs_Vtbl,
15099    0x453e667f_12c7_49d4_be6d_ddbe7956f57a
15100);
15101windows_core::imp::interface_hierarchy!(
15102    ICoreWebView2WebResourceRequestedEventArgs,
15103    windows_core::IUnknown
15104);
15105impl ICoreWebView2WebResourceRequestedEventArgs {
15106    pub unsafe fn Request(&self) -> windows_core::Result<ICoreWebView2WebResourceRequest> {
15107        unsafe {
15108            let mut result__ = core::mem::zeroed();
15109            (windows_core::Interface::vtable(self).Request)(
15110                windows_core::Interface::as_raw(self),
15111                &mut result__,
15112            )
15113            .and_then(|| windows_core::Type::from_abi(result__))
15114        }
15115    }
15116    pub unsafe fn Response(&self) -> windows_core::Result<ICoreWebView2WebResourceResponse> {
15117        unsafe {
15118            let mut result__ = core::mem::zeroed();
15119            (windows_core::Interface::vtable(self).Response)(
15120                windows_core::Interface::as_raw(self),
15121                &mut result__,
15122            )
15123            .and_then(|| windows_core::Type::from_abi(result__))
15124        }
15125    }
15126    pub unsafe fn SetResponse<P0>(&self, response: P0) -> windows_core::Result<()>
15127    where
15128        P0: windows_core::Param<ICoreWebView2WebResourceResponse>,
15129    {
15130        unsafe {
15131            (windows_core::Interface::vtable(self).SetResponse)(
15132                windows_core::Interface::as_raw(self),
15133                response.param().abi(),
15134            )
15135            .ok()
15136        }
15137    }
15138    pub unsafe fn GetDeferral(&self) -> windows_core::Result<ICoreWebView2Deferral> {
15139        unsafe {
15140            let mut result__ = core::mem::zeroed();
15141            (windows_core::Interface::vtable(self).GetDeferral)(
15142                windows_core::Interface::as_raw(self),
15143                &mut result__,
15144            )
15145            .and_then(|| windows_core::Type::from_abi(result__))
15146        }
15147    }
15148    pub unsafe fn ResourceContext(
15149        &self,
15150    ) -> windows_core::Result<COREWEBVIEW2_WEB_RESOURCE_CONTEXT> {
15151        unsafe {
15152            let mut result__ = core::mem::zeroed();
15153            (windows_core::Interface::vtable(self).ResourceContext)(
15154                windows_core::Interface::as_raw(self),
15155                &mut result__,
15156            )
15157            .map(|| result__)
15158        }
15159    }
15160}
15161#[repr(C)]
15162#[doc(hidden)]
15163pub struct ICoreWebView2WebResourceRequestedEventArgs_Vtbl {
15164    pub base__: windows_core::IUnknown_Vtbl,
15165    pub Request: unsafe extern "system" fn(
15166        *mut core::ffi::c_void,
15167        *mut *mut core::ffi::c_void,
15168    ) -> windows_core::HRESULT,
15169    pub Response: unsafe extern "system" fn(
15170        *mut core::ffi::c_void,
15171        *mut *mut core::ffi::c_void,
15172    ) -> windows_core::HRESULT,
15173    pub SetResponse: unsafe extern "system" fn(
15174        *mut core::ffi::c_void,
15175        *mut core::ffi::c_void,
15176    ) -> windows_core::HRESULT,
15177    pub GetDeferral: unsafe extern "system" fn(
15178        *mut core::ffi::c_void,
15179        *mut *mut core::ffi::c_void,
15180    ) -> windows_core::HRESULT,
15181    pub ResourceContext: unsafe extern "system" fn(
15182        *mut core::ffi::c_void,
15183        *mut COREWEBVIEW2_WEB_RESOURCE_CONTEXT,
15184    ) -> windows_core::HRESULT,
15185}
15186pub trait ICoreWebView2WebResourceRequestedEventArgs_Impl: windows_core::IUnknownImpl {
15187    fn Request(&self) -> windows_core::Result<ICoreWebView2WebResourceRequest>;
15188    fn Response(&self) -> windows_core::Result<ICoreWebView2WebResourceResponse>;
15189    fn SetResponse(
15190        &self,
15191        response: windows_core::Ref<ICoreWebView2WebResourceResponse>,
15192    ) -> windows_core::Result<()>;
15193    fn GetDeferral(&self) -> windows_core::Result<ICoreWebView2Deferral>;
15194    fn ResourceContext(&self) -> windows_core::Result<COREWEBVIEW2_WEB_RESOURCE_CONTEXT>;
15195}
15196impl ICoreWebView2WebResourceRequestedEventArgs_Vtbl {
15197    pub const fn new<
15198        Identity: ICoreWebView2WebResourceRequestedEventArgs_Impl,
15199        const OFFSET: isize,
15200    >() -> Self {
15201        unsafe extern "system" fn Request<
15202            Identity: ICoreWebView2WebResourceRequestedEventArgs_Impl,
15203            const OFFSET: isize,
15204        >(
15205            this: *mut core::ffi::c_void,
15206            request: *mut *mut core::ffi::c_void,
15207        ) -> windows_core::HRESULT {
15208            unsafe {
15209                let this: &Identity =
15210                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
15211                match ICoreWebView2WebResourceRequestedEventArgs_Impl::Request(this) {
15212                    Ok(ok__) => {
15213                        request.write(core::mem::transmute(ok__));
15214                        windows_core::HRESULT(0)
15215                    }
15216                    Err(err) => err.into(),
15217                }
15218            }
15219        }
15220        unsafe extern "system" fn Response<
15221            Identity: ICoreWebView2WebResourceRequestedEventArgs_Impl,
15222            const OFFSET: isize,
15223        >(
15224            this: *mut core::ffi::c_void,
15225            response: *mut *mut core::ffi::c_void,
15226        ) -> windows_core::HRESULT {
15227            unsafe {
15228                let this: &Identity =
15229                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
15230                match ICoreWebView2WebResourceRequestedEventArgs_Impl::Response(this) {
15231                    Ok(ok__) => {
15232                        response.write(core::mem::transmute(ok__));
15233                        windows_core::HRESULT(0)
15234                    }
15235                    Err(err) => err.into(),
15236                }
15237            }
15238        }
15239        unsafe extern "system" fn SetResponse<
15240            Identity: ICoreWebView2WebResourceRequestedEventArgs_Impl,
15241            const OFFSET: isize,
15242        >(
15243            this: *mut core::ffi::c_void,
15244            response: *mut core::ffi::c_void,
15245        ) -> windows_core::HRESULT {
15246            unsafe {
15247                let this: &Identity =
15248                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
15249                ICoreWebView2WebResourceRequestedEventArgs_Impl::SetResponse(
15250                    this,
15251                    core::mem::transmute_copy(&response),
15252                )
15253                .into()
15254            }
15255        }
15256        unsafe extern "system" fn GetDeferral<
15257            Identity: ICoreWebView2WebResourceRequestedEventArgs_Impl,
15258            const OFFSET: isize,
15259        >(
15260            this: *mut core::ffi::c_void,
15261            deferral: *mut *mut core::ffi::c_void,
15262        ) -> windows_core::HRESULT {
15263            unsafe {
15264                let this: &Identity =
15265                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
15266                match ICoreWebView2WebResourceRequestedEventArgs_Impl::GetDeferral(this) {
15267                    Ok(ok__) => {
15268                        deferral.write(core::mem::transmute(ok__));
15269                        windows_core::HRESULT(0)
15270                    }
15271                    Err(err) => err.into(),
15272                }
15273            }
15274        }
15275        unsafe extern "system" fn ResourceContext<
15276            Identity: ICoreWebView2WebResourceRequestedEventArgs_Impl,
15277            const OFFSET: isize,
15278        >(
15279            this: *mut core::ffi::c_void,
15280            context: *mut COREWEBVIEW2_WEB_RESOURCE_CONTEXT,
15281        ) -> windows_core::HRESULT {
15282            unsafe {
15283                let this: &Identity =
15284                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
15285                match ICoreWebView2WebResourceRequestedEventArgs_Impl::ResourceContext(this) {
15286                    Ok(ok__) => {
15287                        context.write(core::mem::transmute(ok__));
15288                        windows_core::HRESULT(0)
15289                    }
15290                    Err(err) => err.into(),
15291                }
15292            }
15293        }
15294        Self {
15295            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
15296            Request: Request::<Identity, OFFSET>,
15297            Response: Response::<Identity, OFFSET>,
15298            SetResponse: SetResponse::<Identity, OFFSET>,
15299            GetDeferral: GetDeferral::<Identity, OFFSET>,
15300            ResourceContext: ResourceContext::<Identity, OFFSET>,
15301        }
15302    }
15303    pub fn matches(iid: &windows_core::GUID) -> bool {
15304        iid == &<ICoreWebView2WebResourceRequestedEventArgs as windows_core::Interface>::IID
15305    }
15306}
15307impl windows_core::RuntimeName for ICoreWebView2WebResourceRequestedEventArgs {}
15308windows_core::imp::define_interface!(
15309    ICoreWebView2WebResourceRequestedEventHandler,
15310    ICoreWebView2WebResourceRequestedEventHandler_Vtbl,
15311    0xab00b74c_15f1_4646_80e8_e76341d25d71
15312);
15313windows_core::imp::interface_hierarchy!(
15314    ICoreWebView2WebResourceRequestedEventHandler,
15315    windows_core::IUnknown
15316);
15317impl ICoreWebView2WebResourceRequestedEventHandler {
15318    pub unsafe fn Invoke<P0, P1>(&self, sender: P0, args: P1) -> windows_core::Result<()>
15319    where
15320        P0: windows_core::Param<ICoreWebView2>,
15321        P1: windows_core::Param<ICoreWebView2WebResourceRequestedEventArgs>,
15322    {
15323        unsafe {
15324            (windows_core::Interface::vtable(self).Invoke)(
15325                windows_core::Interface::as_raw(self),
15326                sender.param().abi(),
15327                args.param().abi(),
15328            )
15329            .ok()
15330        }
15331    }
15332}
15333#[repr(C)]
15334#[doc(hidden)]
15335pub struct ICoreWebView2WebResourceRequestedEventHandler_Vtbl {
15336    pub base__: windows_core::IUnknown_Vtbl,
15337    pub Invoke: unsafe extern "system" fn(
15338        *mut core::ffi::c_void,
15339        *mut core::ffi::c_void,
15340        *mut core::ffi::c_void,
15341    ) -> windows_core::HRESULT,
15342}
15343pub trait ICoreWebView2WebResourceRequestedEventHandler_Impl: windows_core::IUnknownImpl {
15344    fn Invoke(
15345        &self,
15346        sender: windows_core::Ref<ICoreWebView2>,
15347        args: windows_core::Ref<ICoreWebView2WebResourceRequestedEventArgs>,
15348    ) -> windows_core::Result<()>;
15349}
15350impl ICoreWebView2WebResourceRequestedEventHandler_Vtbl {
15351    pub const fn new<
15352        Identity: ICoreWebView2WebResourceRequestedEventHandler_Impl,
15353        const OFFSET: isize,
15354    >() -> Self {
15355        unsafe extern "system" fn Invoke<
15356            Identity: ICoreWebView2WebResourceRequestedEventHandler_Impl,
15357            const OFFSET: isize,
15358        >(
15359            this: *mut core::ffi::c_void,
15360            sender: *mut core::ffi::c_void,
15361            args: *mut core::ffi::c_void,
15362        ) -> windows_core::HRESULT {
15363            unsafe {
15364                let this: &Identity =
15365                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
15366                ICoreWebView2WebResourceRequestedEventHandler_Impl::Invoke(
15367                    this,
15368                    core::mem::transmute_copy(&sender),
15369                    core::mem::transmute_copy(&args),
15370                )
15371                .into()
15372            }
15373        }
15374        Self {
15375            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
15376            Invoke: Invoke::<Identity, OFFSET>,
15377        }
15378    }
15379    pub fn matches(iid: &windows_core::GUID) -> bool {
15380        iid == &<ICoreWebView2WebResourceRequestedEventHandler as windows_core::Interface>::IID
15381    }
15382}
15383impl windows_core::RuntimeName for ICoreWebView2WebResourceRequestedEventHandler {}
15384windows_core::imp::define_interface!(
15385    ICoreWebView2WebResourceResponse,
15386    ICoreWebView2WebResourceResponse_Vtbl,
15387    0xaafcc94f_fa27_48fd_97df_830ef75aaec9
15388);
15389windows_core::imp::interface_hierarchy!(ICoreWebView2WebResourceResponse, windows_core::IUnknown);
15390impl ICoreWebView2WebResourceResponse {
15391    pub unsafe fn Content(&self) -> windows_core::Result<windows::Win32::System::Com::IStream> {
15392        unsafe {
15393            let mut result__ = core::mem::zeroed();
15394            (windows_core::Interface::vtable(self).Content)(
15395                windows_core::Interface::as_raw(self),
15396                &mut result__,
15397            )
15398            .and_then(|| windows_core::Type::from_abi(result__))
15399        }
15400    }
15401    pub unsafe fn SetContent<P0>(&self, content: P0) -> windows_core::Result<()>
15402    where
15403        P0: windows_core::Param<windows::Win32::System::Com::IStream>,
15404    {
15405        unsafe {
15406            (windows_core::Interface::vtable(self).SetContent)(
15407                windows_core::Interface::as_raw(self),
15408                content.param().abi(),
15409            )
15410            .ok()
15411        }
15412    }
15413    pub unsafe fn Headers(&self) -> windows_core::Result<ICoreWebView2HttpResponseHeaders> {
15414        unsafe {
15415            let mut result__ = core::mem::zeroed();
15416            (windows_core::Interface::vtable(self).Headers)(
15417                windows_core::Interface::as_raw(self),
15418                &mut result__,
15419            )
15420            .and_then(|| windows_core::Type::from_abi(result__))
15421        }
15422    }
15423    pub unsafe fn StatusCode(&self) -> windows_core::Result<i32> {
15424        unsafe {
15425            let mut result__ = core::mem::zeroed();
15426            (windows_core::Interface::vtable(self).StatusCode)(
15427                windows_core::Interface::as_raw(self),
15428                &mut result__,
15429            )
15430            .map(|| result__)
15431        }
15432    }
15433    pub unsafe fn SetStatusCode(&self, statuscode: i32) -> windows_core::Result<()> {
15434        unsafe {
15435            (windows_core::Interface::vtable(self).SetStatusCode)(
15436                windows_core::Interface::as_raw(self),
15437                statuscode,
15438            )
15439            .ok()
15440        }
15441    }
15442    pub unsafe fn ReasonPhrase(&self) -> windows_core::Result<windows_core::PWSTR> {
15443        unsafe {
15444            let mut result__ = core::mem::zeroed();
15445            (windows_core::Interface::vtable(self).ReasonPhrase)(
15446                windows_core::Interface::as_raw(self),
15447                &mut result__,
15448            )
15449            .map(|| result__)
15450        }
15451    }
15452    pub unsafe fn SetReasonPhrase<P0>(&self, reasonphrase: P0) -> windows_core::Result<()>
15453    where
15454        P0: windows_core::Param<windows_core::PCWSTR>,
15455    {
15456        unsafe {
15457            (windows_core::Interface::vtable(self).SetReasonPhrase)(
15458                windows_core::Interface::as_raw(self),
15459                reasonphrase.param().abi(),
15460            )
15461            .ok()
15462        }
15463    }
15464}
15465#[repr(C)]
15466#[doc(hidden)]
15467pub struct ICoreWebView2WebResourceResponse_Vtbl {
15468    pub base__: windows_core::IUnknown_Vtbl,
15469    pub Content: unsafe extern "system" fn(
15470        *mut core::ffi::c_void,
15471        *mut *mut core::ffi::c_void,
15472    ) -> windows_core::HRESULT,
15473    pub SetContent: unsafe extern "system" fn(
15474        *mut core::ffi::c_void,
15475        *mut core::ffi::c_void,
15476    ) -> windows_core::HRESULT,
15477    pub Headers: unsafe extern "system" fn(
15478        *mut core::ffi::c_void,
15479        *mut *mut core::ffi::c_void,
15480    ) -> windows_core::HRESULT,
15481    pub StatusCode:
15482        unsafe extern "system" fn(*mut core::ffi::c_void, *mut i32) -> windows_core::HRESULT,
15483    pub SetStatusCode:
15484        unsafe extern "system" fn(*mut core::ffi::c_void, i32) -> windows_core::HRESULT,
15485    pub ReasonPhrase: unsafe extern "system" fn(
15486        *mut core::ffi::c_void,
15487        *mut windows_core::PWSTR,
15488    ) -> windows_core::HRESULT,
15489    pub SetReasonPhrase: unsafe extern "system" fn(
15490        *mut core::ffi::c_void,
15491        windows_core::PCWSTR,
15492    ) -> windows_core::HRESULT,
15493}
15494pub trait ICoreWebView2WebResourceResponse_Impl: windows_core::IUnknownImpl {
15495    fn Content(&self) -> windows_core::Result<windows::Win32::System::Com::IStream>;
15496    fn SetContent(
15497        &self,
15498        content: windows_core::Ref<windows::Win32::System::Com::IStream>,
15499    ) -> windows_core::Result<()>;
15500    fn Headers(&self) -> windows_core::Result<ICoreWebView2HttpResponseHeaders>;
15501    fn StatusCode(&self) -> windows_core::Result<i32>;
15502    fn SetStatusCode(&self, statuscode: i32) -> windows_core::Result<()>;
15503    fn ReasonPhrase(&self) -> windows_core::Result<windows_core::PWSTR>;
15504    fn SetReasonPhrase(&self, reasonphrase: &windows_core::PCWSTR) -> windows_core::Result<()>;
15505}
15506impl ICoreWebView2WebResourceResponse_Vtbl {
15507    pub const fn new<Identity: ICoreWebView2WebResourceResponse_Impl, const OFFSET: isize>() -> Self
15508    {
15509        unsafe extern "system" fn Content<
15510            Identity: ICoreWebView2WebResourceResponse_Impl,
15511            const OFFSET: isize,
15512        >(
15513            this: *mut core::ffi::c_void,
15514            content: *mut *mut core::ffi::c_void,
15515        ) -> windows_core::HRESULT {
15516            unsafe {
15517                let this: &Identity =
15518                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
15519                match ICoreWebView2WebResourceResponse_Impl::Content(this) {
15520                    Ok(ok__) => {
15521                        content.write(core::mem::transmute(ok__));
15522                        windows_core::HRESULT(0)
15523                    }
15524                    Err(err) => err.into(),
15525                }
15526            }
15527        }
15528        unsafe extern "system" fn SetContent<
15529            Identity: ICoreWebView2WebResourceResponse_Impl,
15530            const OFFSET: isize,
15531        >(
15532            this: *mut core::ffi::c_void,
15533            content: *mut core::ffi::c_void,
15534        ) -> windows_core::HRESULT {
15535            unsafe {
15536                let this: &Identity =
15537                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
15538                ICoreWebView2WebResourceResponse_Impl::SetContent(
15539                    this,
15540                    core::mem::transmute_copy(&content),
15541                )
15542                .into()
15543            }
15544        }
15545        unsafe extern "system" fn Headers<
15546            Identity: ICoreWebView2WebResourceResponse_Impl,
15547            const OFFSET: isize,
15548        >(
15549            this: *mut core::ffi::c_void,
15550            headers: *mut *mut core::ffi::c_void,
15551        ) -> windows_core::HRESULT {
15552            unsafe {
15553                let this: &Identity =
15554                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
15555                match ICoreWebView2WebResourceResponse_Impl::Headers(this) {
15556                    Ok(ok__) => {
15557                        headers.write(core::mem::transmute(ok__));
15558                        windows_core::HRESULT(0)
15559                    }
15560                    Err(err) => err.into(),
15561                }
15562            }
15563        }
15564        unsafe extern "system" fn StatusCode<
15565            Identity: ICoreWebView2WebResourceResponse_Impl,
15566            const OFFSET: isize,
15567        >(
15568            this: *mut core::ffi::c_void,
15569            statuscode: *mut i32,
15570        ) -> windows_core::HRESULT {
15571            unsafe {
15572                let this: &Identity =
15573                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
15574                match ICoreWebView2WebResourceResponse_Impl::StatusCode(this) {
15575                    Ok(ok__) => {
15576                        statuscode.write(core::mem::transmute(ok__));
15577                        windows_core::HRESULT(0)
15578                    }
15579                    Err(err) => err.into(),
15580                }
15581            }
15582        }
15583        unsafe extern "system" fn SetStatusCode<
15584            Identity: ICoreWebView2WebResourceResponse_Impl,
15585            const OFFSET: isize,
15586        >(
15587            this: *mut core::ffi::c_void,
15588            statuscode: i32,
15589        ) -> windows_core::HRESULT {
15590            unsafe {
15591                let this: &Identity =
15592                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
15593                ICoreWebView2WebResourceResponse_Impl::SetStatusCode(
15594                    this,
15595                    core::mem::transmute_copy(&statuscode),
15596                )
15597                .into()
15598            }
15599        }
15600        unsafe extern "system" fn ReasonPhrase<
15601            Identity: ICoreWebView2WebResourceResponse_Impl,
15602            const OFFSET: isize,
15603        >(
15604            this: *mut core::ffi::c_void,
15605            reasonphrase: *mut windows_core::PWSTR,
15606        ) -> windows_core::HRESULT {
15607            unsafe {
15608                let this: &Identity =
15609                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
15610                match ICoreWebView2WebResourceResponse_Impl::ReasonPhrase(this) {
15611                    Ok(ok__) => {
15612                        reasonphrase.write(core::mem::transmute(ok__));
15613                        windows_core::HRESULT(0)
15614                    }
15615                    Err(err) => err.into(),
15616                }
15617            }
15618        }
15619        unsafe extern "system" fn SetReasonPhrase<
15620            Identity: ICoreWebView2WebResourceResponse_Impl,
15621            const OFFSET: isize,
15622        >(
15623            this: *mut core::ffi::c_void,
15624            reasonphrase: windows_core::PCWSTR,
15625        ) -> windows_core::HRESULT {
15626            unsafe {
15627                let this: &Identity =
15628                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
15629                ICoreWebView2WebResourceResponse_Impl::SetReasonPhrase(
15630                    this,
15631                    core::mem::transmute(&reasonphrase),
15632                )
15633                .into()
15634            }
15635        }
15636        Self {
15637            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
15638            Content: Content::<Identity, OFFSET>,
15639            SetContent: SetContent::<Identity, OFFSET>,
15640            Headers: Headers::<Identity, OFFSET>,
15641            StatusCode: StatusCode::<Identity, OFFSET>,
15642            SetStatusCode: SetStatusCode::<Identity, OFFSET>,
15643            ReasonPhrase: ReasonPhrase::<Identity, OFFSET>,
15644            SetReasonPhrase: SetReasonPhrase::<Identity, OFFSET>,
15645        }
15646    }
15647    pub fn matches(iid: &windows_core::GUID) -> bool {
15648        iid == &<ICoreWebView2WebResourceResponse as windows_core::Interface>::IID
15649    }
15650}
15651impl windows_core::RuntimeName for ICoreWebView2WebResourceResponse {}
15652windows_core::imp::define_interface!(
15653    ICoreWebView2WebResourceResponseReceivedEventArgs,
15654    ICoreWebView2WebResourceResponseReceivedEventArgs_Vtbl,
15655    0xd1db483d_6796_4b8b_80fc_13712bb716f4
15656);
15657windows_core::imp::interface_hierarchy!(
15658    ICoreWebView2WebResourceResponseReceivedEventArgs,
15659    windows_core::IUnknown
15660);
15661impl ICoreWebView2WebResourceResponseReceivedEventArgs {
15662    pub unsafe fn Request(&self) -> windows_core::Result<ICoreWebView2WebResourceRequest> {
15663        unsafe {
15664            let mut result__ = core::mem::zeroed();
15665            (windows_core::Interface::vtable(self).Request)(
15666                windows_core::Interface::as_raw(self),
15667                &mut result__,
15668            )
15669            .and_then(|| windows_core::Type::from_abi(result__))
15670        }
15671    }
15672    pub unsafe fn Response(&self) -> windows_core::Result<ICoreWebView2WebResourceResponseView> {
15673        unsafe {
15674            let mut result__ = core::mem::zeroed();
15675            (windows_core::Interface::vtable(self).Response)(
15676                windows_core::Interface::as_raw(self),
15677                &mut result__,
15678            )
15679            .and_then(|| windows_core::Type::from_abi(result__))
15680        }
15681    }
15682}
15683#[repr(C)]
15684#[doc(hidden)]
15685pub struct ICoreWebView2WebResourceResponseReceivedEventArgs_Vtbl {
15686    pub base__: windows_core::IUnknown_Vtbl,
15687    pub Request: unsafe extern "system" fn(
15688        *mut core::ffi::c_void,
15689        *mut *mut core::ffi::c_void,
15690    ) -> windows_core::HRESULT,
15691    pub Response: unsafe extern "system" fn(
15692        *mut core::ffi::c_void,
15693        *mut *mut core::ffi::c_void,
15694    ) -> windows_core::HRESULT,
15695}
15696pub trait ICoreWebView2WebResourceResponseReceivedEventArgs_Impl:
15697    windows_core::IUnknownImpl
15698{
15699    fn Request(&self) -> windows_core::Result<ICoreWebView2WebResourceRequest>;
15700    fn Response(&self) -> windows_core::Result<ICoreWebView2WebResourceResponseView>;
15701}
15702impl ICoreWebView2WebResourceResponseReceivedEventArgs_Vtbl {
15703    pub const fn new<
15704        Identity: ICoreWebView2WebResourceResponseReceivedEventArgs_Impl,
15705        const OFFSET: isize,
15706    >() -> Self {
15707        unsafe extern "system" fn Request<
15708            Identity: ICoreWebView2WebResourceResponseReceivedEventArgs_Impl,
15709            const OFFSET: isize,
15710        >(
15711            this: *mut core::ffi::c_void,
15712            request: *mut *mut core::ffi::c_void,
15713        ) -> windows_core::HRESULT {
15714            unsafe {
15715                let this: &Identity =
15716                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
15717                match ICoreWebView2WebResourceResponseReceivedEventArgs_Impl::Request(this) {
15718                    Ok(ok__) => {
15719                        request.write(core::mem::transmute(ok__));
15720                        windows_core::HRESULT(0)
15721                    }
15722                    Err(err) => err.into(),
15723                }
15724            }
15725        }
15726        unsafe extern "system" fn Response<
15727            Identity: ICoreWebView2WebResourceResponseReceivedEventArgs_Impl,
15728            const OFFSET: isize,
15729        >(
15730            this: *mut core::ffi::c_void,
15731            response: *mut *mut core::ffi::c_void,
15732        ) -> windows_core::HRESULT {
15733            unsafe {
15734                let this: &Identity =
15735                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
15736                match ICoreWebView2WebResourceResponseReceivedEventArgs_Impl::Response(this) {
15737                    Ok(ok__) => {
15738                        response.write(core::mem::transmute(ok__));
15739                        windows_core::HRESULT(0)
15740                    }
15741                    Err(err) => err.into(),
15742                }
15743            }
15744        }
15745        Self {
15746            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
15747            Request: Request::<Identity, OFFSET>,
15748            Response: Response::<Identity, OFFSET>,
15749        }
15750    }
15751    pub fn matches(iid: &windows_core::GUID) -> bool {
15752        iid == &<ICoreWebView2WebResourceResponseReceivedEventArgs as windows_core::Interface>::IID
15753    }
15754}
15755impl windows_core::RuntimeName for ICoreWebView2WebResourceResponseReceivedEventArgs {}
15756windows_core::imp::define_interface!(
15757    ICoreWebView2WebResourceResponseReceivedEventHandler,
15758    ICoreWebView2WebResourceResponseReceivedEventHandler_Vtbl,
15759    0x7de9898a_24f5_40c3_a2de_d4f458e69828
15760);
15761windows_core::imp::interface_hierarchy!(
15762    ICoreWebView2WebResourceResponseReceivedEventHandler,
15763    windows_core::IUnknown
15764);
15765impl ICoreWebView2WebResourceResponseReceivedEventHandler {
15766    pub unsafe fn Invoke<P0, P1>(&self, sender: P0, args: P1) -> windows_core::Result<()>
15767    where
15768        P0: windows_core::Param<ICoreWebView2>,
15769        P1: windows_core::Param<ICoreWebView2WebResourceResponseReceivedEventArgs>,
15770    {
15771        unsafe {
15772            (windows_core::Interface::vtable(self).Invoke)(
15773                windows_core::Interface::as_raw(self),
15774                sender.param().abi(),
15775                args.param().abi(),
15776            )
15777            .ok()
15778        }
15779    }
15780}
15781#[repr(C)]
15782#[doc(hidden)]
15783pub struct ICoreWebView2WebResourceResponseReceivedEventHandler_Vtbl {
15784    pub base__: windows_core::IUnknown_Vtbl,
15785    pub Invoke: unsafe extern "system" fn(
15786        *mut core::ffi::c_void,
15787        *mut core::ffi::c_void,
15788        *mut core::ffi::c_void,
15789    ) -> windows_core::HRESULT,
15790}
15791pub trait ICoreWebView2WebResourceResponseReceivedEventHandler_Impl:
15792    windows_core::IUnknownImpl
15793{
15794    fn Invoke(
15795        &self,
15796        sender: windows_core::Ref<ICoreWebView2>,
15797        args: windows_core::Ref<ICoreWebView2WebResourceResponseReceivedEventArgs>,
15798    ) -> windows_core::Result<()>;
15799}
15800impl ICoreWebView2WebResourceResponseReceivedEventHandler_Vtbl {
15801    pub const fn new<
15802        Identity: ICoreWebView2WebResourceResponseReceivedEventHandler_Impl,
15803        const OFFSET: isize,
15804    >() -> Self {
15805        unsafe extern "system" fn Invoke<
15806            Identity: ICoreWebView2WebResourceResponseReceivedEventHandler_Impl,
15807            const OFFSET: isize,
15808        >(
15809            this: *mut core::ffi::c_void,
15810            sender: *mut core::ffi::c_void,
15811            args: *mut core::ffi::c_void,
15812        ) -> windows_core::HRESULT {
15813            unsafe {
15814                let this: &Identity =
15815                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
15816                ICoreWebView2WebResourceResponseReceivedEventHandler_Impl::Invoke(
15817                    this,
15818                    core::mem::transmute_copy(&sender),
15819                    core::mem::transmute_copy(&args),
15820                )
15821                .into()
15822            }
15823        }
15824        Self {
15825            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
15826            Invoke: Invoke::<Identity, OFFSET>,
15827        }
15828    }
15829    pub fn matches(iid: &windows_core::GUID) -> bool {
15830        iid == & < ICoreWebView2WebResourceResponseReceivedEventHandler as windows_core::Interface >::IID
15831    }
15832}
15833impl windows_core::RuntimeName for ICoreWebView2WebResourceResponseReceivedEventHandler {}
15834windows_core::imp::define_interface!(
15835    ICoreWebView2WebResourceResponseView,
15836    ICoreWebView2WebResourceResponseView_Vtbl,
15837    0x79701053_7759_4162_8f7d_f1b3f084928d
15838);
15839windows_core::imp::interface_hierarchy!(
15840    ICoreWebView2WebResourceResponseView,
15841    windows_core::IUnknown
15842);
15843impl ICoreWebView2WebResourceResponseView {
15844    pub unsafe fn Headers(&self) -> windows_core::Result<ICoreWebView2HttpResponseHeaders> {
15845        unsafe {
15846            let mut result__ = core::mem::zeroed();
15847            (windows_core::Interface::vtable(self).Headers)(
15848                windows_core::Interface::as_raw(self),
15849                &mut result__,
15850            )
15851            .and_then(|| windows_core::Type::from_abi(result__))
15852        }
15853    }
15854    pub unsafe fn StatusCode(&self) -> windows_core::Result<i32> {
15855        unsafe {
15856            let mut result__ = core::mem::zeroed();
15857            (windows_core::Interface::vtable(self).StatusCode)(
15858                windows_core::Interface::as_raw(self),
15859                &mut result__,
15860            )
15861            .map(|| result__)
15862        }
15863    }
15864    pub unsafe fn ReasonPhrase(&self) -> windows_core::Result<windows_core::PWSTR> {
15865        unsafe {
15866            let mut result__ = core::mem::zeroed();
15867            (windows_core::Interface::vtable(self).ReasonPhrase)(
15868                windows_core::Interface::as_raw(self),
15869                &mut result__,
15870            )
15871            .map(|| result__)
15872        }
15873    }
15874    pub unsafe fn GetContent<P0>(&self, handler: P0) -> windows_core::Result<()>
15875    where
15876        P0: windows_core::Param<ICoreWebView2WebResourceResponseViewGetContentCompletedHandler>,
15877    {
15878        unsafe {
15879            (windows_core::Interface::vtable(self).GetContent)(
15880                windows_core::Interface::as_raw(self),
15881                handler.param().abi(),
15882            )
15883            .ok()
15884        }
15885    }
15886}
15887#[repr(C)]
15888#[doc(hidden)]
15889pub struct ICoreWebView2WebResourceResponseView_Vtbl {
15890    pub base__: windows_core::IUnknown_Vtbl,
15891    pub Headers: unsafe extern "system" fn(
15892        *mut core::ffi::c_void,
15893        *mut *mut core::ffi::c_void,
15894    ) -> windows_core::HRESULT,
15895    pub StatusCode:
15896        unsafe extern "system" fn(*mut core::ffi::c_void, *mut i32) -> windows_core::HRESULT,
15897    pub ReasonPhrase: unsafe extern "system" fn(
15898        *mut core::ffi::c_void,
15899        *mut windows_core::PWSTR,
15900    ) -> windows_core::HRESULT,
15901    pub GetContent: unsafe extern "system" fn(
15902        *mut core::ffi::c_void,
15903        *mut core::ffi::c_void,
15904    ) -> windows_core::HRESULT,
15905}
15906pub trait ICoreWebView2WebResourceResponseView_Impl: windows_core::IUnknownImpl {
15907    fn Headers(&self) -> windows_core::Result<ICoreWebView2HttpResponseHeaders>;
15908    fn StatusCode(&self) -> windows_core::Result<i32>;
15909    fn ReasonPhrase(&self) -> windows_core::Result<windows_core::PWSTR>;
15910    fn GetContent(
15911        &self,
15912        handler: windows_core::Ref<ICoreWebView2WebResourceResponseViewGetContentCompletedHandler>,
15913    ) -> windows_core::Result<()>;
15914}
15915impl ICoreWebView2WebResourceResponseView_Vtbl {
15916    pub const fn new<Identity: ICoreWebView2WebResourceResponseView_Impl, const OFFSET: isize>(
15917    ) -> Self {
15918        unsafe extern "system" fn Headers<
15919            Identity: ICoreWebView2WebResourceResponseView_Impl,
15920            const OFFSET: isize,
15921        >(
15922            this: *mut core::ffi::c_void,
15923            headers: *mut *mut core::ffi::c_void,
15924        ) -> windows_core::HRESULT {
15925            unsafe {
15926                let this: &Identity =
15927                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
15928                match ICoreWebView2WebResourceResponseView_Impl::Headers(this) {
15929                    Ok(ok__) => {
15930                        headers.write(core::mem::transmute(ok__));
15931                        windows_core::HRESULT(0)
15932                    }
15933                    Err(err) => err.into(),
15934                }
15935            }
15936        }
15937        unsafe extern "system" fn StatusCode<
15938            Identity: ICoreWebView2WebResourceResponseView_Impl,
15939            const OFFSET: isize,
15940        >(
15941            this: *mut core::ffi::c_void,
15942            statuscode: *mut i32,
15943        ) -> windows_core::HRESULT {
15944            unsafe {
15945                let this: &Identity =
15946                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
15947                match ICoreWebView2WebResourceResponseView_Impl::StatusCode(this) {
15948                    Ok(ok__) => {
15949                        statuscode.write(core::mem::transmute(ok__));
15950                        windows_core::HRESULT(0)
15951                    }
15952                    Err(err) => err.into(),
15953                }
15954            }
15955        }
15956        unsafe extern "system" fn ReasonPhrase<
15957            Identity: ICoreWebView2WebResourceResponseView_Impl,
15958            const OFFSET: isize,
15959        >(
15960            this: *mut core::ffi::c_void,
15961            reasonphrase: *mut windows_core::PWSTR,
15962        ) -> windows_core::HRESULT {
15963            unsafe {
15964                let this: &Identity =
15965                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
15966                match ICoreWebView2WebResourceResponseView_Impl::ReasonPhrase(this) {
15967                    Ok(ok__) => {
15968                        reasonphrase.write(core::mem::transmute(ok__));
15969                        windows_core::HRESULT(0)
15970                    }
15971                    Err(err) => err.into(),
15972                }
15973            }
15974        }
15975        unsafe extern "system" fn GetContent<
15976            Identity: ICoreWebView2WebResourceResponseView_Impl,
15977            const OFFSET: isize,
15978        >(
15979            this: *mut core::ffi::c_void,
15980            handler: *mut core::ffi::c_void,
15981        ) -> windows_core::HRESULT {
15982            unsafe {
15983                let this: &Identity =
15984                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
15985                ICoreWebView2WebResourceResponseView_Impl::GetContent(
15986                    this,
15987                    core::mem::transmute_copy(&handler),
15988                )
15989                .into()
15990            }
15991        }
15992        Self {
15993            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
15994            Headers: Headers::<Identity, OFFSET>,
15995            StatusCode: StatusCode::<Identity, OFFSET>,
15996            ReasonPhrase: ReasonPhrase::<Identity, OFFSET>,
15997            GetContent: GetContent::<Identity, OFFSET>,
15998        }
15999    }
16000    pub fn matches(iid: &windows_core::GUID) -> bool {
16001        iid == &<ICoreWebView2WebResourceResponseView as windows_core::Interface>::IID
16002    }
16003}
16004impl windows_core::RuntimeName for ICoreWebView2WebResourceResponseView {}
16005windows_core::imp::define_interface!(
16006    ICoreWebView2WebResourceResponseViewGetContentCompletedHandler,
16007    ICoreWebView2WebResourceResponseViewGetContentCompletedHandler_Vtbl,
16008    0x875738e1_9fa2_40e3_8b74_2e8972dd6fe7
16009);
16010windows_core::imp::interface_hierarchy!(
16011    ICoreWebView2WebResourceResponseViewGetContentCompletedHandler,
16012    windows_core::IUnknown
16013);
16014impl ICoreWebView2WebResourceResponseViewGetContentCompletedHandler {
16015    pub unsafe fn Invoke<P1>(
16016        &self,
16017        errorcode: windows_core::HRESULT,
16018        content: P1,
16019    ) -> windows_core::Result<()>
16020    where
16021        P1: windows_core::Param<windows::Win32::System::Com::IStream>,
16022    {
16023        unsafe {
16024            (windows_core::Interface::vtable(self).Invoke)(
16025                windows_core::Interface::as_raw(self),
16026                errorcode,
16027                content.param().abi(),
16028            )
16029            .ok()
16030        }
16031    }
16032}
16033#[repr(C)]
16034#[doc(hidden)]
16035pub struct ICoreWebView2WebResourceResponseViewGetContentCompletedHandler_Vtbl {
16036    pub base__: windows_core::IUnknown_Vtbl,
16037    pub Invoke: unsafe extern "system" fn(
16038        *mut core::ffi::c_void,
16039        windows_core::HRESULT,
16040        *mut core::ffi::c_void,
16041    ) -> windows_core::HRESULT,
16042}
16043pub trait ICoreWebView2WebResourceResponseViewGetContentCompletedHandler_Impl:
16044    windows_core::IUnknownImpl
16045{
16046    fn Invoke(
16047        &self,
16048        errorcode: windows_core::HRESULT,
16049        content: windows_core::Ref<windows::Win32::System::Com::IStream>,
16050    ) -> windows_core::Result<()>;
16051}
16052impl ICoreWebView2WebResourceResponseViewGetContentCompletedHandler_Vtbl {
16053    pub const fn new<
16054        Identity: ICoreWebView2WebResourceResponseViewGetContentCompletedHandler_Impl,
16055        const OFFSET: isize,
16056    >() -> Self {
16057        unsafe extern "system" fn Invoke<
16058            Identity: ICoreWebView2WebResourceResponseViewGetContentCompletedHandler_Impl,
16059            const OFFSET: isize,
16060        >(
16061            this: *mut core::ffi::c_void,
16062            errorcode: windows_core::HRESULT,
16063            content: *mut core::ffi::c_void,
16064        ) -> windows_core::HRESULT {
16065            unsafe {
16066                let this: &Identity =
16067                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
16068                ICoreWebView2WebResourceResponseViewGetContentCompletedHandler_Impl::Invoke(
16069                    this,
16070                    core::mem::transmute_copy(&errorcode),
16071                    core::mem::transmute_copy(&content),
16072                )
16073                .into()
16074            }
16075        }
16076        Self {
16077            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
16078            Invoke: Invoke::<Identity, OFFSET>,
16079        }
16080    }
16081    pub fn matches(iid: &windows_core::GUID) -> bool {
16082        iid == & < ICoreWebView2WebResourceResponseViewGetContentCompletedHandler as windows_core::Interface >::IID
16083    }
16084}
16085impl windows_core::RuntimeName for ICoreWebView2WebResourceResponseViewGetContentCompletedHandler {}
16086windows_core::imp::define_interface!(
16087    ICoreWebView2WindowCloseRequestedEventHandler,
16088    ICoreWebView2WindowCloseRequestedEventHandler_Vtbl,
16089    0x5c19e9e0_092f_486b_affa_ca8231913039
16090);
16091windows_core::imp::interface_hierarchy!(
16092    ICoreWebView2WindowCloseRequestedEventHandler,
16093    windows_core::IUnknown
16094);
16095impl ICoreWebView2WindowCloseRequestedEventHandler {
16096    pub unsafe fn Invoke<P0, P1>(&self, sender: P0, args: P1) -> windows_core::Result<()>
16097    where
16098        P0: windows_core::Param<ICoreWebView2>,
16099        P1: windows_core::Param<windows_core::IUnknown>,
16100    {
16101        unsafe {
16102            (windows_core::Interface::vtable(self).Invoke)(
16103                windows_core::Interface::as_raw(self),
16104                sender.param().abi(),
16105                args.param().abi(),
16106            )
16107            .ok()
16108        }
16109    }
16110}
16111#[repr(C)]
16112#[doc(hidden)]
16113pub struct ICoreWebView2WindowCloseRequestedEventHandler_Vtbl {
16114    pub base__: windows_core::IUnknown_Vtbl,
16115    pub Invoke: unsafe extern "system" fn(
16116        *mut core::ffi::c_void,
16117        *mut core::ffi::c_void,
16118        *mut core::ffi::c_void,
16119    ) -> windows_core::HRESULT,
16120}
16121pub trait ICoreWebView2WindowCloseRequestedEventHandler_Impl: windows_core::IUnknownImpl {
16122    fn Invoke(
16123        &self,
16124        sender: windows_core::Ref<ICoreWebView2>,
16125        args: windows_core::Ref<windows_core::IUnknown>,
16126    ) -> windows_core::Result<()>;
16127}
16128impl ICoreWebView2WindowCloseRequestedEventHandler_Vtbl {
16129    pub const fn new<
16130        Identity: ICoreWebView2WindowCloseRequestedEventHandler_Impl,
16131        const OFFSET: isize,
16132    >() -> Self {
16133        unsafe extern "system" fn Invoke<
16134            Identity: ICoreWebView2WindowCloseRequestedEventHandler_Impl,
16135            const OFFSET: isize,
16136        >(
16137            this: *mut core::ffi::c_void,
16138            sender: *mut core::ffi::c_void,
16139            args: *mut core::ffi::c_void,
16140        ) -> windows_core::HRESULT {
16141            unsafe {
16142                let this: &Identity =
16143                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
16144                ICoreWebView2WindowCloseRequestedEventHandler_Impl::Invoke(
16145                    this,
16146                    core::mem::transmute_copy(&sender),
16147                    core::mem::transmute_copy(&args),
16148                )
16149                .into()
16150            }
16151        }
16152        Self {
16153            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
16154            Invoke: Invoke::<Identity, OFFSET>,
16155        }
16156    }
16157    pub fn matches(iid: &windows_core::GUID) -> bool {
16158        iid == &<ICoreWebView2WindowCloseRequestedEventHandler as windows_core::Interface>::IID
16159    }
16160}
16161impl windows_core::RuntimeName for ICoreWebView2WindowCloseRequestedEventHandler {}
16162windows_core::imp::define_interface!(
16163    ICoreWebView2WindowFeatures,
16164    ICoreWebView2WindowFeatures_Vtbl,
16165    0x5eaf559f_b46e_4397_8860_e422f287ff1e
16166);
16167windows_core::imp::interface_hierarchy!(ICoreWebView2WindowFeatures, windows_core::IUnknown);
16168impl ICoreWebView2WindowFeatures {
16169    pub unsafe fn HasPosition(&self) -> windows_core::Result<windows_core::BOOL> {
16170        unsafe {
16171            let mut result__ = core::mem::zeroed();
16172            (windows_core::Interface::vtable(self).HasPosition)(
16173                windows_core::Interface::as_raw(self),
16174                &mut result__,
16175            )
16176            .map(|| result__)
16177        }
16178    }
16179    pub unsafe fn HasSize(&self) -> windows_core::Result<windows_core::BOOL> {
16180        unsafe {
16181            let mut result__ = core::mem::zeroed();
16182            (windows_core::Interface::vtable(self).HasSize)(
16183                windows_core::Interface::as_raw(self),
16184                &mut result__,
16185            )
16186            .map(|| result__)
16187        }
16188    }
16189    pub unsafe fn Left(&self) -> windows_core::Result<u32> {
16190        unsafe {
16191            let mut result__ = core::mem::zeroed();
16192            (windows_core::Interface::vtable(self).Left)(
16193                windows_core::Interface::as_raw(self),
16194                &mut result__,
16195            )
16196            .map(|| result__)
16197        }
16198    }
16199    pub unsafe fn Top(&self) -> windows_core::Result<u32> {
16200        unsafe {
16201            let mut result__ = core::mem::zeroed();
16202            (windows_core::Interface::vtable(self).Top)(
16203                windows_core::Interface::as_raw(self),
16204                &mut result__,
16205            )
16206            .map(|| result__)
16207        }
16208    }
16209    pub unsafe fn Height(&self) -> windows_core::Result<u32> {
16210        unsafe {
16211            let mut result__ = core::mem::zeroed();
16212            (windows_core::Interface::vtable(self).Height)(
16213                windows_core::Interface::as_raw(self),
16214                &mut result__,
16215            )
16216            .map(|| result__)
16217        }
16218    }
16219    pub unsafe fn Width(&self) -> windows_core::Result<u32> {
16220        unsafe {
16221            let mut result__ = core::mem::zeroed();
16222            (windows_core::Interface::vtable(self).Width)(
16223                windows_core::Interface::as_raw(self),
16224                &mut result__,
16225            )
16226            .map(|| result__)
16227        }
16228    }
16229    pub unsafe fn ShouldDisplayMenuBar(&self) -> windows_core::Result<windows_core::BOOL> {
16230        unsafe {
16231            let mut result__ = core::mem::zeroed();
16232            (windows_core::Interface::vtable(self).ShouldDisplayMenuBar)(
16233                windows_core::Interface::as_raw(self),
16234                &mut result__,
16235            )
16236            .map(|| result__)
16237        }
16238    }
16239    pub unsafe fn ShouldDisplayStatus(&self) -> windows_core::Result<windows_core::BOOL> {
16240        unsafe {
16241            let mut result__ = core::mem::zeroed();
16242            (windows_core::Interface::vtable(self).ShouldDisplayStatus)(
16243                windows_core::Interface::as_raw(self),
16244                &mut result__,
16245            )
16246            .map(|| result__)
16247        }
16248    }
16249    pub unsafe fn ShouldDisplayToolbar(&self) -> windows_core::Result<windows_core::BOOL> {
16250        unsafe {
16251            let mut result__ = core::mem::zeroed();
16252            (windows_core::Interface::vtable(self).ShouldDisplayToolbar)(
16253                windows_core::Interface::as_raw(self),
16254                &mut result__,
16255            )
16256            .map(|| result__)
16257        }
16258    }
16259    pub unsafe fn ShouldDisplayScrollBars(&self) -> windows_core::Result<windows_core::BOOL> {
16260        unsafe {
16261            let mut result__ = core::mem::zeroed();
16262            (windows_core::Interface::vtable(self).ShouldDisplayScrollBars)(
16263                windows_core::Interface::as_raw(self),
16264                &mut result__,
16265            )
16266            .map(|| result__)
16267        }
16268    }
16269}
16270#[repr(C)]
16271#[doc(hidden)]
16272pub struct ICoreWebView2WindowFeatures_Vtbl {
16273    pub base__: windows_core::IUnknown_Vtbl,
16274    pub HasPosition: unsafe extern "system" fn(
16275        *mut core::ffi::c_void,
16276        *mut windows_core::BOOL,
16277    ) -> windows_core::HRESULT,
16278    pub HasSize: unsafe extern "system" fn(
16279        *mut core::ffi::c_void,
16280        *mut windows_core::BOOL,
16281    ) -> windows_core::HRESULT,
16282    pub Left: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
16283    pub Top: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
16284    pub Height:
16285        unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
16286    pub Width: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
16287    pub ShouldDisplayMenuBar: unsafe extern "system" fn(
16288        *mut core::ffi::c_void,
16289        *mut windows_core::BOOL,
16290    ) -> windows_core::HRESULT,
16291    pub ShouldDisplayStatus: unsafe extern "system" fn(
16292        *mut core::ffi::c_void,
16293        *mut windows_core::BOOL,
16294    ) -> windows_core::HRESULT,
16295    pub ShouldDisplayToolbar: unsafe extern "system" fn(
16296        *mut core::ffi::c_void,
16297        *mut windows_core::BOOL,
16298    ) -> windows_core::HRESULT,
16299    pub ShouldDisplayScrollBars: unsafe extern "system" fn(
16300        *mut core::ffi::c_void,
16301        *mut windows_core::BOOL,
16302    ) -> windows_core::HRESULT,
16303}
16304pub trait ICoreWebView2WindowFeatures_Impl: windows_core::IUnknownImpl {
16305    fn HasPosition(&self) -> windows_core::Result<windows_core::BOOL>;
16306    fn HasSize(&self) -> windows_core::Result<windows_core::BOOL>;
16307    fn Left(&self) -> windows_core::Result<u32>;
16308    fn Top(&self) -> windows_core::Result<u32>;
16309    fn Height(&self) -> windows_core::Result<u32>;
16310    fn Width(&self) -> windows_core::Result<u32>;
16311    fn ShouldDisplayMenuBar(&self) -> windows_core::Result<windows_core::BOOL>;
16312    fn ShouldDisplayStatus(&self) -> windows_core::Result<windows_core::BOOL>;
16313    fn ShouldDisplayToolbar(&self) -> windows_core::Result<windows_core::BOOL>;
16314    fn ShouldDisplayScrollBars(&self) -> windows_core::Result<windows_core::BOOL>;
16315}
16316impl ICoreWebView2WindowFeatures_Vtbl {
16317    pub const fn new<Identity: ICoreWebView2WindowFeatures_Impl, const OFFSET: isize>() -> Self {
16318        unsafe extern "system" fn HasPosition<
16319            Identity: ICoreWebView2WindowFeatures_Impl,
16320            const OFFSET: isize,
16321        >(
16322            this: *mut core::ffi::c_void,
16323            value: *mut windows_core::BOOL,
16324        ) -> windows_core::HRESULT {
16325            unsafe {
16326                let this: &Identity =
16327                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
16328                match ICoreWebView2WindowFeatures_Impl::HasPosition(this) {
16329                    Ok(ok__) => {
16330                        value.write(core::mem::transmute(ok__));
16331                        windows_core::HRESULT(0)
16332                    }
16333                    Err(err) => err.into(),
16334                }
16335            }
16336        }
16337        unsafe extern "system" fn HasSize<
16338            Identity: ICoreWebView2WindowFeatures_Impl,
16339            const OFFSET: isize,
16340        >(
16341            this: *mut core::ffi::c_void,
16342            value: *mut windows_core::BOOL,
16343        ) -> windows_core::HRESULT {
16344            unsafe {
16345                let this: &Identity =
16346                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
16347                match ICoreWebView2WindowFeatures_Impl::HasSize(this) {
16348                    Ok(ok__) => {
16349                        value.write(core::mem::transmute(ok__));
16350                        windows_core::HRESULT(0)
16351                    }
16352                    Err(err) => err.into(),
16353                }
16354            }
16355        }
16356        unsafe extern "system" fn Left<
16357            Identity: ICoreWebView2WindowFeatures_Impl,
16358            const OFFSET: isize,
16359        >(
16360            this: *mut core::ffi::c_void,
16361            value: *mut u32,
16362        ) -> windows_core::HRESULT {
16363            unsafe {
16364                let this: &Identity =
16365                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
16366                match ICoreWebView2WindowFeatures_Impl::Left(this) {
16367                    Ok(ok__) => {
16368                        value.write(core::mem::transmute(ok__));
16369                        windows_core::HRESULT(0)
16370                    }
16371                    Err(err) => err.into(),
16372                }
16373            }
16374        }
16375        unsafe extern "system" fn Top<
16376            Identity: ICoreWebView2WindowFeatures_Impl,
16377            const OFFSET: isize,
16378        >(
16379            this: *mut core::ffi::c_void,
16380            value: *mut u32,
16381        ) -> windows_core::HRESULT {
16382            unsafe {
16383                let this: &Identity =
16384                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
16385                match ICoreWebView2WindowFeatures_Impl::Top(this) {
16386                    Ok(ok__) => {
16387                        value.write(core::mem::transmute(ok__));
16388                        windows_core::HRESULT(0)
16389                    }
16390                    Err(err) => err.into(),
16391                }
16392            }
16393        }
16394        unsafe extern "system" fn Height<
16395            Identity: ICoreWebView2WindowFeatures_Impl,
16396            const OFFSET: isize,
16397        >(
16398            this: *mut core::ffi::c_void,
16399            value: *mut u32,
16400        ) -> windows_core::HRESULT {
16401            unsafe {
16402                let this: &Identity =
16403                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
16404                match ICoreWebView2WindowFeatures_Impl::Height(this) {
16405                    Ok(ok__) => {
16406                        value.write(core::mem::transmute(ok__));
16407                        windows_core::HRESULT(0)
16408                    }
16409                    Err(err) => err.into(),
16410                }
16411            }
16412        }
16413        unsafe extern "system" fn Width<
16414            Identity: ICoreWebView2WindowFeatures_Impl,
16415            const OFFSET: isize,
16416        >(
16417            this: *mut core::ffi::c_void,
16418            value: *mut u32,
16419        ) -> windows_core::HRESULT {
16420            unsafe {
16421                let this: &Identity =
16422                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
16423                match ICoreWebView2WindowFeatures_Impl::Width(this) {
16424                    Ok(ok__) => {
16425                        value.write(core::mem::transmute(ok__));
16426                        windows_core::HRESULT(0)
16427                    }
16428                    Err(err) => err.into(),
16429                }
16430            }
16431        }
16432        unsafe extern "system" fn ShouldDisplayMenuBar<
16433            Identity: ICoreWebView2WindowFeatures_Impl,
16434            const OFFSET: isize,
16435        >(
16436            this: *mut core::ffi::c_void,
16437            value: *mut windows_core::BOOL,
16438        ) -> windows_core::HRESULT {
16439            unsafe {
16440                let this: &Identity =
16441                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
16442                match ICoreWebView2WindowFeatures_Impl::ShouldDisplayMenuBar(this) {
16443                    Ok(ok__) => {
16444                        value.write(core::mem::transmute(ok__));
16445                        windows_core::HRESULT(0)
16446                    }
16447                    Err(err) => err.into(),
16448                }
16449            }
16450        }
16451        unsafe extern "system" fn ShouldDisplayStatus<
16452            Identity: ICoreWebView2WindowFeatures_Impl,
16453            const OFFSET: isize,
16454        >(
16455            this: *mut core::ffi::c_void,
16456            value: *mut windows_core::BOOL,
16457        ) -> windows_core::HRESULT {
16458            unsafe {
16459                let this: &Identity =
16460                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
16461                match ICoreWebView2WindowFeatures_Impl::ShouldDisplayStatus(this) {
16462                    Ok(ok__) => {
16463                        value.write(core::mem::transmute(ok__));
16464                        windows_core::HRESULT(0)
16465                    }
16466                    Err(err) => err.into(),
16467                }
16468            }
16469        }
16470        unsafe extern "system" fn ShouldDisplayToolbar<
16471            Identity: ICoreWebView2WindowFeatures_Impl,
16472            const OFFSET: isize,
16473        >(
16474            this: *mut core::ffi::c_void,
16475            value: *mut windows_core::BOOL,
16476        ) -> windows_core::HRESULT {
16477            unsafe {
16478                let this: &Identity =
16479                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
16480                match ICoreWebView2WindowFeatures_Impl::ShouldDisplayToolbar(this) {
16481                    Ok(ok__) => {
16482                        value.write(core::mem::transmute(ok__));
16483                        windows_core::HRESULT(0)
16484                    }
16485                    Err(err) => err.into(),
16486                }
16487            }
16488        }
16489        unsafe extern "system" fn ShouldDisplayScrollBars<
16490            Identity: ICoreWebView2WindowFeatures_Impl,
16491            const OFFSET: isize,
16492        >(
16493            this: *mut core::ffi::c_void,
16494            value: *mut windows_core::BOOL,
16495        ) -> windows_core::HRESULT {
16496            unsafe {
16497                let this: &Identity =
16498                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
16499                match ICoreWebView2WindowFeatures_Impl::ShouldDisplayScrollBars(this) {
16500                    Ok(ok__) => {
16501                        value.write(core::mem::transmute(ok__));
16502                        windows_core::HRESULT(0)
16503                    }
16504                    Err(err) => err.into(),
16505                }
16506            }
16507        }
16508        Self {
16509            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
16510            HasPosition: HasPosition::<Identity, OFFSET>,
16511            HasSize: HasSize::<Identity, OFFSET>,
16512            Left: Left::<Identity, OFFSET>,
16513            Top: Top::<Identity, OFFSET>,
16514            Height: Height::<Identity, OFFSET>,
16515            Width: Width::<Identity, OFFSET>,
16516            ShouldDisplayMenuBar: ShouldDisplayMenuBar::<Identity, OFFSET>,
16517            ShouldDisplayStatus: ShouldDisplayStatus::<Identity, OFFSET>,
16518            ShouldDisplayToolbar: ShouldDisplayToolbar::<Identity, OFFSET>,
16519            ShouldDisplayScrollBars: ShouldDisplayScrollBars::<Identity, OFFSET>,
16520        }
16521    }
16522    pub fn matches(iid: &windows_core::GUID) -> bool {
16523        iid == &<ICoreWebView2WindowFeatures as windows_core::Interface>::IID
16524    }
16525}
16526impl windows_core::RuntimeName for ICoreWebView2WindowFeatures {}
16527windows_core::imp::define_interface!(
16528    ICoreWebView2ZoomFactorChangedEventHandler,
16529    ICoreWebView2ZoomFactorChangedEventHandler_Vtbl,
16530    0xb52d71d6_c4df_4543_a90c_64a3e60f38cb
16531);
16532windows_core::imp::interface_hierarchy!(
16533    ICoreWebView2ZoomFactorChangedEventHandler,
16534    windows_core::IUnknown
16535);
16536impl ICoreWebView2ZoomFactorChangedEventHandler {
16537    pub unsafe fn Invoke<P0, P1>(&self, sender: P0, args: P1) -> windows_core::Result<()>
16538    where
16539        P0: windows_core::Param<ICoreWebView2Controller>,
16540        P1: windows_core::Param<windows_core::IUnknown>,
16541    {
16542        unsafe {
16543            (windows_core::Interface::vtable(self).Invoke)(
16544                windows_core::Interface::as_raw(self),
16545                sender.param().abi(),
16546                args.param().abi(),
16547            )
16548            .ok()
16549        }
16550    }
16551}
16552#[repr(C)]
16553#[doc(hidden)]
16554pub struct ICoreWebView2ZoomFactorChangedEventHandler_Vtbl {
16555    pub base__: windows_core::IUnknown_Vtbl,
16556    pub Invoke: unsafe extern "system" fn(
16557        *mut core::ffi::c_void,
16558        *mut core::ffi::c_void,
16559        *mut core::ffi::c_void,
16560    ) -> windows_core::HRESULT,
16561}
16562pub trait ICoreWebView2ZoomFactorChangedEventHandler_Impl: windows_core::IUnknownImpl {
16563    fn Invoke(
16564        &self,
16565        sender: windows_core::Ref<ICoreWebView2Controller>,
16566        args: windows_core::Ref<windows_core::IUnknown>,
16567    ) -> windows_core::Result<()>;
16568}
16569impl ICoreWebView2ZoomFactorChangedEventHandler_Vtbl {
16570    pub const fn new<
16571        Identity: ICoreWebView2ZoomFactorChangedEventHandler_Impl,
16572        const OFFSET: isize,
16573    >() -> Self {
16574        unsafe extern "system" fn Invoke<
16575            Identity: ICoreWebView2ZoomFactorChangedEventHandler_Impl,
16576            const OFFSET: isize,
16577        >(
16578            this: *mut core::ffi::c_void,
16579            sender: *mut core::ffi::c_void,
16580            args: *mut core::ffi::c_void,
16581        ) -> windows_core::HRESULT {
16582            unsafe {
16583                let this: &Identity =
16584                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
16585                ICoreWebView2ZoomFactorChangedEventHandler_Impl::Invoke(
16586                    this,
16587                    core::mem::transmute_copy(&sender),
16588                    core::mem::transmute_copy(&args),
16589                )
16590                .into()
16591            }
16592        }
16593        Self {
16594            base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
16595            Invoke: Invoke::<Identity, OFFSET>,
16596        }
16597    }
16598    pub fn matches(iid: &windows_core::GUID) -> bool {
16599        iid == &<ICoreWebView2ZoomFactorChangedEventHandler as windows_core::Interface>::IID
16600    }
16601}
16602impl windows_core::RuntimeName for ICoreWebView2ZoomFactorChangedEventHandler {}
16603windows_core::imp::define_interface!(
16604    ICoreWebView2_2,
16605    ICoreWebView2_2_Vtbl,
16606    0x9e8f0cf8_e670_4b5e_b2bc_73e061e3184c
16607);
16608impl core::ops::Deref for ICoreWebView2_2 {
16609    type Target = ICoreWebView2;
16610    fn deref(&self) -> &Self::Target {
16611        unsafe { core::mem::transmute(self) }
16612    }
16613}
16614windows_core::imp::interface_hierarchy!(ICoreWebView2_2, windows_core::IUnknown, ICoreWebView2);
16615impl ICoreWebView2_2 {
16616    pub unsafe fn WebResourceResponseReceived<P0>(
16617        &self,
16618        eventhandler: P0,
16619    ) -> windows_core::Result<i64>
16620    where
16621        P0: windows_core::Param<ICoreWebView2WebResourceResponseReceivedEventHandler>,
16622    {
16623        unsafe {
16624            let mut result__ = core::mem::zeroed();
16625            (windows_core::Interface::vtable(self).WebResourceResponseReceived)(
16626                windows_core::Interface::as_raw(self),
16627                eventhandler.param().abi(),
16628                &mut result__,
16629            )
16630            .map(|| result__)
16631        }
16632    }
16633    pub unsafe fn RemoveWebResourceResponseReceived(&self, token: i64) -> windows_core::Result<()> {
16634        unsafe {
16635            (windows_core::Interface::vtable(self).RemoveWebResourceResponseReceived)(
16636                windows_core::Interface::as_raw(self),
16637                token,
16638            )
16639            .ok()
16640        }
16641    }
16642    pub unsafe fn NavigateWithWebResourceRequest<P0>(&self, request: P0) -> windows_core::Result<()>
16643    where
16644        P0: windows_core::Param<ICoreWebView2WebResourceRequest>,
16645    {
16646        unsafe {
16647            (windows_core::Interface::vtable(self).NavigateWithWebResourceRequest)(
16648                windows_core::Interface::as_raw(self),
16649                request.param().abi(),
16650            )
16651            .ok()
16652        }
16653    }
16654    pub unsafe fn DOMContentLoaded<P0>(&self, eventhandler: P0) -> windows_core::Result<i64>
16655    where
16656        P0: windows_core::Param<ICoreWebView2DOMContentLoadedEventHandler>,
16657    {
16658        unsafe {
16659            let mut result__ = core::mem::zeroed();
16660            (windows_core::Interface::vtable(self).DOMContentLoaded)(
16661                windows_core::Interface::as_raw(self),
16662                eventhandler.param().abi(),
16663                &mut result__,
16664            )
16665            .map(|| result__)
16666        }
16667    }
16668    pub unsafe fn RemoveDOMContentLoaded(&self, token: i64) -> windows_core::Result<()> {
16669        unsafe {
16670            (windows_core::Interface::vtable(self).RemoveDOMContentLoaded)(
16671                windows_core::Interface::as_raw(self),
16672                token,
16673            )
16674            .ok()
16675        }
16676    }
16677    pub unsafe fn CookieManager(&self) -> windows_core::Result<ICoreWebView2CookieManager> {
16678        unsafe {
16679            let mut result__ = core::mem::zeroed();
16680            (windows_core::Interface::vtable(self).CookieManager)(
16681                windows_core::Interface::as_raw(self),
16682                &mut result__,
16683            )
16684            .and_then(|| windows_core::Type::from_abi(result__))
16685        }
16686    }
16687    pub unsafe fn Environment(&self) -> windows_core::Result<ICoreWebView2Environment> {
16688        unsafe {
16689            let mut result__ = core::mem::zeroed();
16690            (windows_core::Interface::vtable(self).Environment)(
16691                windows_core::Interface::as_raw(self),
16692                &mut result__,
16693            )
16694            .and_then(|| windows_core::Type::from_abi(result__))
16695        }
16696    }
16697}
16698#[repr(C)]
16699#[doc(hidden)]
16700pub struct ICoreWebView2_2_Vtbl {
16701    pub base__: ICoreWebView2_Vtbl,
16702    pub WebResourceResponseReceived: unsafe extern "system" fn(
16703        *mut core::ffi::c_void,
16704        *mut core::ffi::c_void,
16705        *mut i64,
16706    ) -> windows_core::HRESULT,
16707    pub RemoveWebResourceResponseReceived:
16708        unsafe extern "system" fn(*mut core::ffi::c_void, i64) -> windows_core::HRESULT,
16709    pub NavigateWithWebResourceRequest: unsafe extern "system" fn(
16710        *mut core::ffi::c_void,
16711        *mut core::ffi::c_void,
16712    ) -> windows_core::HRESULT,
16713    pub DOMContentLoaded: unsafe extern "system" fn(
16714        *mut core::ffi::c_void,
16715        *mut core::ffi::c_void,
16716        *mut i64,
16717    ) -> windows_core::HRESULT,
16718    pub RemoveDOMContentLoaded:
16719        unsafe extern "system" fn(*mut core::ffi::c_void, i64) -> windows_core::HRESULT,
16720    pub CookieManager: unsafe extern "system" fn(
16721        *mut core::ffi::c_void,
16722        *mut *mut core::ffi::c_void,
16723    ) -> windows_core::HRESULT,
16724    pub Environment: unsafe extern "system" fn(
16725        *mut core::ffi::c_void,
16726        *mut *mut core::ffi::c_void,
16727    ) -> windows_core::HRESULT,
16728}
16729pub trait ICoreWebView2_2_Impl: ICoreWebView2_Impl {
16730    fn WebResourceResponseReceived(
16731        &self,
16732        eventhandler: windows_core::Ref<ICoreWebView2WebResourceResponseReceivedEventHandler>,
16733    ) -> windows_core::Result<i64>;
16734    fn RemoveWebResourceResponseReceived(&self, token: i64) -> windows_core::Result<()>;
16735    fn NavigateWithWebResourceRequest(
16736        &self,
16737        request: windows_core::Ref<ICoreWebView2WebResourceRequest>,
16738    ) -> windows_core::Result<()>;
16739    fn DOMContentLoaded(
16740        &self,
16741        eventhandler: windows_core::Ref<ICoreWebView2DOMContentLoadedEventHandler>,
16742    ) -> windows_core::Result<i64>;
16743    fn RemoveDOMContentLoaded(&self, token: i64) -> windows_core::Result<()>;
16744    fn CookieManager(&self) -> windows_core::Result<ICoreWebView2CookieManager>;
16745    fn Environment(&self) -> windows_core::Result<ICoreWebView2Environment>;
16746}
16747impl ICoreWebView2_2_Vtbl {
16748    pub const fn new<Identity: ICoreWebView2_2_Impl, const OFFSET: isize>() -> Self {
16749        unsafe extern "system" fn WebResourceResponseReceived<
16750            Identity: ICoreWebView2_2_Impl,
16751            const OFFSET: isize,
16752        >(
16753            this: *mut core::ffi::c_void,
16754            eventhandler: *mut core::ffi::c_void,
16755            token: *mut i64,
16756        ) -> windows_core::HRESULT {
16757            unsafe {
16758                let this: &Identity =
16759                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
16760                match ICoreWebView2_2_Impl::WebResourceResponseReceived(
16761                    this,
16762                    core::mem::transmute_copy(&eventhandler),
16763                ) {
16764                    Ok(ok__) => {
16765                        token.write(core::mem::transmute(ok__));
16766                        windows_core::HRESULT(0)
16767                    }
16768                    Err(err) => err.into(),
16769                }
16770            }
16771        }
16772        unsafe extern "system" fn RemoveWebResourceResponseReceived<
16773            Identity: ICoreWebView2_2_Impl,
16774            const OFFSET: isize,
16775        >(
16776            this: *mut core::ffi::c_void,
16777            token: i64,
16778        ) -> windows_core::HRESULT {
16779            unsafe {
16780                let this: &Identity =
16781                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
16782                ICoreWebView2_2_Impl::RemoveWebResourceResponseReceived(
16783                    this,
16784                    core::mem::transmute_copy(&token),
16785                )
16786                .into()
16787            }
16788        }
16789        unsafe extern "system" fn NavigateWithWebResourceRequest<
16790            Identity: ICoreWebView2_2_Impl,
16791            const OFFSET: isize,
16792        >(
16793            this: *mut core::ffi::c_void,
16794            request: *mut core::ffi::c_void,
16795        ) -> windows_core::HRESULT {
16796            unsafe {
16797                let this: &Identity =
16798                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
16799                ICoreWebView2_2_Impl::NavigateWithWebResourceRequest(
16800                    this,
16801                    core::mem::transmute_copy(&request),
16802                )
16803                .into()
16804            }
16805        }
16806        unsafe extern "system" fn DOMContentLoaded<
16807            Identity: ICoreWebView2_2_Impl,
16808            const OFFSET: isize,
16809        >(
16810            this: *mut core::ffi::c_void,
16811            eventhandler: *mut core::ffi::c_void,
16812            token: *mut i64,
16813        ) -> windows_core::HRESULT {
16814            unsafe {
16815                let this: &Identity =
16816                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
16817                match ICoreWebView2_2_Impl::DOMContentLoaded(
16818                    this,
16819                    core::mem::transmute_copy(&eventhandler),
16820                ) {
16821                    Ok(ok__) => {
16822                        token.write(core::mem::transmute(ok__));
16823                        windows_core::HRESULT(0)
16824                    }
16825                    Err(err) => err.into(),
16826                }
16827            }
16828        }
16829        unsafe extern "system" fn RemoveDOMContentLoaded<
16830            Identity: ICoreWebView2_2_Impl,
16831            const OFFSET: isize,
16832        >(
16833            this: *mut core::ffi::c_void,
16834            token: i64,
16835        ) -> windows_core::HRESULT {
16836            unsafe {
16837                let this: &Identity =
16838                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
16839                ICoreWebView2_2_Impl::RemoveDOMContentLoaded(
16840                    this,
16841                    core::mem::transmute_copy(&token),
16842                )
16843                .into()
16844            }
16845        }
16846        unsafe extern "system" fn CookieManager<
16847            Identity: ICoreWebView2_2_Impl,
16848            const OFFSET: isize,
16849        >(
16850            this: *mut core::ffi::c_void,
16851            cookiemanager: *mut *mut core::ffi::c_void,
16852        ) -> windows_core::HRESULT {
16853            unsafe {
16854                let this: &Identity =
16855                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
16856                match ICoreWebView2_2_Impl::CookieManager(this) {
16857                    Ok(ok__) => {
16858                        cookiemanager.write(core::mem::transmute(ok__));
16859                        windows_core::HRESULT(0)
16860                    }
16861                    Err(err) => err.into(),
16862                }
16863            }
16864        }
16865        unsafe extern "system" fn Environment<
16866            Identity: ICoreWebView2_2_Impl,
16867            const OFFSET: isize,
16868        >(
16869            this: *mut core::ffi::c_void,
16870            environment: *mut *mut core::ffi::c_void,
16871        ) -> windows_core::HRESULT {
16872            unsafe {
16873                let this: &Identity =
16874                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
16875                match ICoreWebView2_2_Impl::Environment(this) {
16876                    Ok(ok__) => {
16877                        environment.write(core::mem::transmute(ok__));
16878                        windows_core::HRESULT(0)
16879                    }
16880                    Err(err) => err.into(),
16881                }
16882            }
16883        }
16884        Self {
16885            base__: ICoreWebView2_Vtbl::new::<Identity, OFFSET>(),
16886            WebResourceResponseReceived: WebResourceResponseReceived::<Identity, OFFSET>,
16887            RemoveWebResourceResponseReceived: RemoveWebResourceResponseReceived::<Identity, OFFSET>,
16888            NavigateWithWebResourceRequest: NavigateWithWebResourceRequest::<Identity, OFFSET>,
16889            DOMContentLoaded: DOMContentLoaded::<Identity, OFFSET>,
16890            RemoveDOMContentLoaded: RemoveDOMContentLoaded::<Identity, OFFSET>,
16891            CookieManager: CookieManager::<Identity, OFFSET>,
16892            Environment: Environment::<Identity, OFFSET>,
16893        }
16894    }
16895    pub fn matches(iid: &windows_core::GUID) -> bool {
16896        iid == &<ICoreWebView2_2 as windows_core::Interface>::IID
16897            || iid == &<ICoreWebView2 as windows_core::Interface>::IID
16898    }
16899}
16900impl windows_core::RuntimeName for ICoreWebView2_2 {}
16901windows_core::imp::define_interface!(
16902    ICoreWebView2_3,
16903    ICoreWebView2_3_Vtbl,
16904    0xa0d6df20_3b92_416d_aa0c_437a9c727857
16905);
16906impl core::ops::Deref for ICoreWebView2_3 {
16907    type Target = ICoreWebView2_2;
16908    fn deref(&self) -> &Self::Target {
16909        unsafe { core::mem::transmute(self) }
16910    }
16911}
16912windows_core::imp::interface_hierarchy!(
16913    ICoreWebView2_3,
16914    windows_core::IUnknown,
16915    ICoreWebView2,
16916    ICoreWebView2_2
16917);
16918impl ICoreWebView2_3 {
16919    pub unsafe fn TrySuspend<P0>(&self, handler: P0) -> windows_core::Result<()>
16920    where
16921        P0: windows_core::Param<ICoreWebView2TrySuspendCompletedHandler>,
16922    {
16923        unsafe {
16924            (windows_core::Interface::vtable(self).TrySuspend)(
16925                windows_core::Interface::as_raw(self),
16926                handler.param().abi(),
16927            )
16928            .ok()
16929        }
16930    }
16931    pub unsafe fn Resume(&self) -> windows_core::Result<()> {
16932        unsafe {
16933            (windows_core::Interface::vtable(self).Resume)(windows_core::Interface::as_raw(self))
16934                .ok()
16935        }
16936    }
16937    pub unsafe fn IsSuspended(&self) -> windows_core::Result<windows_core::BOOL> {
16938        unsafe {
16939            let mut result__ = core::mem::zeroed();
16940            (windows_core::Interface::vtable(self).IsSuspended)(
16941                windows_core::Interface::as_raw(self),
16942                &mut result__,
16943            )
16944            .map(|| result__)
16945        }
16946    }
16947    pub unsafe fn SetVirtualHostNameToFolderMapping<P0, P1>(
16948        &self,
16949        hostname: P0,
16950        folderpath: P1,
16951        accesskind: COREWEBVIEW2_HOST_RESOURCE_ACCESS_KIND,
16952    ) -> windows_core::Result<()>
16953    where
16954        P0: windows_core::Param<windows_core::PCWSTR>,
16955        P1: windows_core::Param<windows_core::PCWSTR>,
16956    {
16957        unsafe {
16958            (windows_core::Interface::vtable(self).SetVirtualHostNameToFolderMapping)(
16959                windows_core::Interface::as_raw(self),
16960                hostname.param().abi(),
16961                folderpath.param().abi(),
16962                accesskind,
16963            )
16964            .ok()
16965        }
16966    }
16967    pub unsafe fn ClearVirtualHostNameToFolderMapping<P0>(
16968        &self,
16969        hostname: P0,
16970    ) -> windows_core::Result<()>
16971    where
16972        P0: windows_core::Param<windows_core::PCWSTR>,
16973    {
16974        unsafe {
16975            (windows_core::Interface::vtable(self).ClearVirtualHostNameToFolderMapping)(
16976                windows_core::Interface::as_raw(self),
16977                hostname.param().abi(),
16978            )
16979            .ok()
16980        }
16981    }
16982}
16983#[repr(C)]
16984#[doc(hidden)]
16985pub struct ICoreWebView2_3_Vtbl {
16986    pub base__: ICoreWebView2_2_Vtbl,
16987    pub TrySuspend: unsafe extern "system" fn(
16988        *mut core::ffi::c_void,
16989        *mut core::ffi::c_void,
16990    ) -> windows_core::HRESULT,
16991    pub Resume: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
16992    pub IsSuspended: unsafe extern "system" fn(
16993        *mut core::ffi::c_void,
16994        *mut windows_core::BOOL,
16995    ) -> windows_core::HRESULT,
16996    pub SetVirtualHostNameToFolderMapping: unsafe extern "system" fn(
16997        *mut core::ffi::c_void,
16998        windows_core::PCWSTR,
16999        windows_core::PCWSTR,
17000        COREWEBVIEW2_HOST_RESOURCE_ACCESS_KIND,
17001    ) -> windows_core::HRESULT,
17002    pub ClearVirtualHostNameToFolderMapping: unsafe extern "system" fn(
17003        *mut core::ffi::c_void,
17004        windows_core::PCWSTR,
17005    )
17006        -> windows_core::HRESULT,
17007}
17008pub trait ICoreWebView2_3_Impl: ICoreWebView2_2_Impl {
17009    fn TrySuspend(
17010        &self,
17011        handler: windows_core::Ref<ICoreWebView2TrySuspendCompletedHandler>,
17012    ) -> windows_core::Result<()>;
17013    fn Resume(&self) -> windows_core::Result<()>;
17014    fn IsSuspended(&self) -> windows_core::Result<windows_core::BOOL>;
17015    fn SetVirtualHostNameToFolderMapping(
17016        &self,
17017        hostname: &windows_core::PCWSTR,
17018        folderpath: &windows_core::PCWSTR,
17019        accesskind: COREWEBVIEW2_HOST_RESOURCE_ACCESS_KIND,
17020    ) -> windows_core::Result<()>;
17021    fn ClearVirtualHostNameToFolderMapping(
17022        &self,
17023        hostname: &windows_core::PCWSTR,
17024    ) -> windows_core::Result<()>;
17025}
17026impl ICoreWebView2_3_Vtbl {
17027    pub const fn new<Identity: ICoreWebView2_3_Impl, const OFFSET: isize>() -> Self {
17028        unsafe extern "system" fn TrySuspend<
17029            Identity: ICoreWebView2_3_Impl,
17030            const OFFSET: isize,
17031        >(
17032            this: *mut core::ffi::c_void,
17033            handler: *mut core::ffi::c_void,
17034        ) -> windows_core::HRESULT {
17035            unsafe {
17036                let this: &Identity =
17037                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
17038                ICoreWebView2_3_Impl::TrySuspend(this, core::mem::transmute_copy(&handler)).into()
17039            }
17040        }
17041        unsafe extern "system" fn Resume<Identity: ICoreWebView2_3_Impl, const OFFSET: isize>(
17042            this: *mut core::ffi::c_void,
17043        ) -> windows_core::HRESULT {
17044            unsafe {
17045                let this: &Identity =
17046                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
17047                ICoreWebView2_3_Impl::Resume(this).into()
17048            }
17049        }
17050        unsafe extern "system" fn IsSuspended<
17051            Identity: ICoreWebView2_3_Impl,
17052            const OFFSET: isize,
17053        >(
17054            this: *mut core::ffi::c_void,
17055            issuspended: *mut windows_core::BOOL,
17056        ) -> windows_core::HRESULT {
17057            unsafe {
17058                let this: &Identity =
17059                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
17060                match ICoreWebView2_3_Impl::IsSuspended(this) {
17061                    Ok(ok__) => {
17062                        issuspended.write(core::mem::transmute(ok__));
17063                        windows_core::HRESULT(0)
17064                    }
17065                    Err(err) => err.into(),
17066                }
17067            }
17068        }
17069        unsafe extern "system" fn SetVirtualHostNameToFolderMapping<
17070            Identity: ICoreWebView2_3_Impl,
17071            const OFFSET: isize,
17072        >(
17073            this: *mut core::ffi::c_void,
17074            hostname: windows_core::PCWSTR,
17075            folderpath: windows_core::PCWSTR,
17076            accesskind: COREWEBVIEW2_HOST_RESOURCE_ACCESS_KIND,
17077        ) -> windows_core::HRESULT {
17078            unsafe {
17079                let this: &Identity =
17080                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
17081                ICoreWebView2_3_Impl::SetVirtualHostNameToFolderMapping(
17082                    this,
17083                    core::mem::transmute(&hostname),
17084                    core::mem::transmute(&folderpath),
17085                    core::mem::transmute_copy(&accesskind),
17086                )
17087                .into()
17088            }
17089        }
17090        unsafe extern "system" fn ClearVirtualHostNameToFolderMapping<
17091            Identity: ICoreWebView2_3_Impl,
17092            const OFFSET: isize,
17093        >(
17094            this: *mut core::ffi::c_void,
17095            hostname: windows_core::PCWSTR,
17096        ) -> windows_core::HRESULT {
17097            unsafe {
17098                let this: &Identity =
17099                    &*((this as *const *const ()).offset(OFFSET) as *const Identity);
17100                ICoreWebView2_3_Impl::ClearVirtualHostNameToFolderMapping(
17101                    this,
17102                    core::mem::transmute(&hostname),
17103                )
17104                .into()
17105            }
17106        }
17107        Self {
17108            base__: ICoreWebView2_2_Vtbl::new::<Identity, OFFSET>(),
17109            TrySuspend: TrySuspend::<Identity, OFFSET>,
17110            Resume: Resume::<Identity, OFFSET>,
17111            IsSuspended: IsSuspended::<Identity, OFFSET>,
17112            SetVirtualHostNameToFolderMapping: SetVirtualHostNameToFolderMapping::<Identity, OFFSET>,
17113            ClearVirtualHostNameToFolderMapping: ClearVirtualHostNameToFolderMapping::<
17114                Identity,
17115                OFFSET,
17116            >,
17117        }
17118    }
17119    pub fn matches(iid: &windows_core::GUID) -> bool {
17120        iid == &<ICoreWebView2_3 as windows_core::Interface>::IID
17121            || iid == &<ICoreWebView2 as windows_core::Interface>::IID
17122            || iid == &<ICoreWebView2_2 as windows_core::Interface>::IID
17123    }
17124}
17125impl windows_core::RuntimeName for ICoreWebView2_3 {}