#![allow(
non_snake_case,
non_upper_case_globals,
non_camel_case_types,
dead_code,
clippy::all
)]
#[inline]
pub unsafe fn CompareBrowserVersions<P0, P1>(
version1: P0,
version2: P1,
result: *mut i32,
) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCWSTR>,
P1: windows_core::Param<windows_core::PCWSTR>,
{
crate::link!("webview2loader" "system" fn CompareBrowserVersions(version1 : windows_core::PCWSTR, version2 : windows_core::PCWSTR, result : *mut i32) -> windows_core::HRESULT);
unsafe {
CompareBrowserVersions(version1.param().abi(), version2.param().abi(), result as _).ok()
}
}
#[inline]
pub unsafe fn CreateCoreWebView2Environment<P0>(
environmentcreatedhandler: P0,
) -> windows_core::Result<()>
where
P0: windows_core::Param<ICoreWebView2CreateCoreWebView2EnvironmentCompletedHandler>,
{
crate::link!("webview2loader" "system" fn CreateCoreWebView2Environment(environmentcreatedhandler : * mut core::ffi::c_void) -> windows_core::HRESULT);
unsafe { CreateCoreWebView2Environment(environmentcreatedhandler.param().abi()).ok() }
}
#[inline]
pub unsafe fn CreateCoreWebView2EnvironmentWithOptions<P0, P1, P2, P3>(
browserexecutablefolder: P0,
userdatafolder: P1,
environmentoptions: P2,
environmentcreatedhandler: P3,
) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCWSTR>,
P1: windows_core::Param<windows_core::PCWSTR>,
P2: windows_core::Param<ICoreWebView2EnvironmentOptions>,
P3: windows_core::Param<ICoreWebView2CreateCoreWebView2EnvironmentCompletedHandler>,
{
crate::link!("webview2loader" "system" fn CreateCoreWebView2EnvironmentWithOptions(browserexecutablefolder : windows_core::PCWSTR, userdatafolder : windows_core::PCWSTR, environmentoptions : * mut core::ffi::c_void, environmentcreatedhandler : * mut core::ffi::c_void) -> windows_core::HRESULT);
unsafe {
CreateCoreWebView2EnvironmentWithOptions(
browserexecutablefolder.param().abi(),
userdatafolder.param().abi(),
environmentoptions.param().abi(),
environmentcreatedhandler.param().abi(),
)
.ok()
}
}
#[inline]
pub unsafe fn GetAvailableCoreWebView2BrowserVersionString<P0>(
browserexecutablefolder: P0,
versioninfo: *mut windows_core::PWSTR,
) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCWSTR>,
{
crate::link!("webview2loader" "system" fn GetAvailableCoreWebView2BrowserVersionString(browserexecutablefolder : windows_core::PCWSTR, versioninfo : *mut windows_core::PWSTR) -> windows_core::HRESULT);
unsafe {
GetAvailableCoreWebView2BrowserVersionString(
browserexecutablefolder.param().abi(),
versioninfo as _,
)
.ok()
}
}
#[repr(transparent)]
#[derive(Clone, Copy, Debug, Default, Eq, PartialEq)]
pub struct COREWEBVIEW2_BOUNDS_MODE(pub i32);
pub const COREWEBVIEW2_BOUNDS_MODE_USE_RASTERIZATION_SCALE: COREWEBVIEW2_BOUNDS_MODE =
COREWEBVIEW2_BOUNDS_MODE(1i32);
pub const COREWEBVIEW2_BOUNDS_MODE_USE_RAW_PIXELS: COREWEBVIEW2_BOUNDS_MODE =
COREWEBVIEW2_BOUNDS_MODE(0i32);
#[repr(transparent)]
#[derive(Clone, Copy, Debug, Default, Eq, PartialEq)]
pub struct COREWEBVIEW2_CAPTURE_PREVIEW_IMAGE_FORMAT(pub i32);
pub const COREWEBVIEW2_CAPTURE_PREVIEW_IMAGE_FORMAT_JPEG:
COREWEBVIEW2_CAPTURE_PREVIEW_IMAGE_FORMAT = COREWEBVIEW2_CAPTURE_PREVIEW_IMAGE_FORMAT(1i32);
pub const COREWEBVIEW2_CAPTURE_PREVIEW_IMAGE_FORMAT_PNG: COREWEBVIEW2_CAPTURE_PREVIEW_IMAGE_FORMAT =
COREWEBVIEW2_CAPTURE_PREVIEW_IMAGE_FORMAT(0i32);
#[repr(C)]
#[derive(Clone, Copy, Debug, Default, PartialEq)]
pub struct COREWEBVIEW2_COLOR {
pub A: u8,
pub R: u8,
pub G: u8,
pub B: u8,
}
#[repr(transparent)]
#[derive(Clone, Copy, Debug, Default, Eq, PartialEq)]
pub struct COREWEBVIEW2_COOKIE_SAME_SITE_KIND(pub i32);
pub const COREWEBVIEW2_COOKIE_SAME_SITE_KIND_LAX: COREWEBVIEW2_COOKIE_SAME_SITE_KIND =
COREWEBVIEW2_COOKIE_SAME_SITE_KIND(1i32);
pub const COREWEBVIEW2_COOKIE_SAME_SITE_KIND_NONE: COREWEBVIEW2_COOKIE_SAME_SITE_KIND =
COREWEBVIEW2_COOKIE_SAME_SITE_KIND(0i32);
pub const COREWEBVIEW2_COOKIE_SAME_SITE_KIND_STRICT: COREWEBVIEW2_COOKIE_SAME_SITE_KIND =
COREWEBVIEW2_COOKIE_SAME_SITE_KIND(2i32);
#[repr(transparent)]
#[derive(Clone, Copy, Debug, Default, Eq, PartialEq)]
pub struct COREWEBVIEW2_HOST_RESOURCE_ACCESS_KIND(pub i32);
pub const COREWEBVIEW2_HOST_RESOURCE_ACCESS_KIND_ALLOW: COREWEBVIEW2_HOST_RESOURCE_ACCESS_KIND =
COREWEBVIEW2_HOST_RESOURCE_ACCESS_KIND(1i32);
pub const COREWEBVIEW2_HOST_RESOURCE_ACCESS_KIND_DENY: COREWEBVIEW2_HOST_RESOURCE_ACCESS_KIND =
COREWEBVIEW2_HOST_RESOURCE_ACCESS_KIND(0i32);
pub const COREWEBVIEW2_HOST_RESOURCE_ACCESS_KIND_DENY_CORS: COREWEBVIEW2_HOST_RESOURCE_ACCESS_KIND =
COREWEBVIEW2_HOST_RESOURCE_ACCESS_KIND(2i32);
#[repr(transparent)]
#[derive(Clone, Copy, Debug, Default, Eq, PartialEq)]
pub struct COREWEBVIEW2_KEY_EVENT_KIND(pub i32);
pub const COREWEBVIEW2_KEY_EVENT_KIND_KEY_DOWN: COREWEBVIEW2_KEY_EVENT_KIND =
COREWEBVIEW2_KEY_EVENT_KIND(0i32);
pub const COREWEBVIEW2_KEY_EVENT_KIND_KEY_UP: COREWEBVIEW2_KEY_EVENT_KIND =
COREWEBVIEW2_KEY_EVENT_KIND(1i32);
pub const COREWEBVIEW2_KEY_EVENT_KIND_SYSTEM_KEY_DOWN: COREWEBVIEW2_KEY_EVENT_KIND =
COREWEBVIEW2_KEY_EVENT_KIND(2i32);
pub const COREWEBVIEW2_KEY_EVENT_KIND_SYSTEM_KEY_UP: COREWEBVIEW2_KEY_EVENT_KIND =
COREWEBVIEW2_KEY_EVENT_KIND(3i32);
#[repr(transparent)]
#[derive(Clone, Copy, Debug, Default, Eq, PartialEq)]
pub struct COREWEBVIEW2_MOUSE_EVENT_KIND(pub i32);
pub const COREWEBVIEW2_MOUSE_EVENT_KIND_HORIZONTAL_WHEEL: COREWEBVIEW2_MOUSE_EVENT_KIND =
COREWEBVIEW2_MOUSE_EVENT_KIND(526i32);
pub const COREWEBVIEW2_MOUSE_EVENT_KIND_LEAVE: COREWEBVIEW2_MOUSE_EVENT_KIND =
COREWEBVIEW2_MOUSE_EVENT_KIND(675i32);
pub const COREWEBVIEW2_MOUSE_EVENT_KIND_LEFT_BUTTON_DOUBLE_CLICK: COREWEBVIEW2_MOUSE_EVENT_KIND =
COREWEBVIEW2_MOUSE_EVENT_KIND(515i32);
pub const COREWEBVIEW2_MOUSE_EVENT_KIND_LEFT_BUTTON_DOWN: COREWEBVIEW2_MOUSE_EVENT_KIND =
COREWEBVIEW2_MOUSE_EVENT_KIND(513i32);
pub const COREWEBVIEW2_MOUSE_EVENT_KIND_LEFT_BUTTON_UP: COREWEBVIEW2_MOUSE_EVENT_KIND =
COREWEBVIEW2_MOUSE_EVENT_KIND(514i32);
pub const COREWEBVIEW2_MOUSE_EVENT_KIND_MIDDLE_BUTTON_DOUBLE_CLICK: COREWEBVIEW2_MOUSE_EVENT_KIND =
COREWEBVIEW2_MOUSE_EVENT_KIND(521i32);
pub const COREWEBVIEW2_MOUSE_EVENT_KIND_MIDDLE_BUTTON_DOWN: COREWEBVIEW2_MOUSE_EVENT_KIND =
COREWEBVIEW2_MOUSE_EVENT_KIND(519i32);
pub const COREWEBVIEW2_MOUSE_EVENT_KIND_MIDDLE_BUTTON_UP: COREWEBVIEW2_MOUSE_EVENT_KIND =
COREWEBVIEW2_MOUSE_EVENT_KIND(520i32);
pub const COREWEBVIEW2_MOUSE_EVENT_KIND_MOVE: COREWEBVIEW2_MOUSE_EVENT_KIND =
COREWEBVIEW2_MOUSE_EVENT_KIND(512i32);
pub const COREWEBVIEW2_MOUSE_EVENT_KIND_RIGHT_BUTTON_DOUBLE_CLICK: COREWEBVIEW2_MOUSE_EVENT_KIND =
COREWEBVIEW2_MOUSE_EVENT_KIND(518i32);
pub const COREWEBVIEW2_MOUSE_EVENT_KIND_RIGHT_BUTTON_DOWN: COREWEBVIEW2_MOUSE_EVENT_KIND =
COREWEBVIEW2_MOUSE_EVENT_KIND(516i32);
pub const COREWEBVIEW2_MOUSE_EVENT_KIND_RIGHT_BUTTON_UP: COREWEBVIEW2_MOUSE_EVENT_KIND =
COREWEBVIEW2_MOUSE_EVENT_KIND(517i32);
pub const COREWEBVIEW2_MOUSE_EVENT_KIND_WHEEL: COREWEBVIEW2_MOUSE_EVENT_KIND =
COREWEBVIEW2_MOUSE_EVENT_KIND(522i32);
pub const COREWEBVIEW2_MOUSE_EVENT_KIND_X_BUTTON_DOUBLE_CLICK: COREWEBVIEW2_MOUSE_EVENT_KIND =
COREWEBVIEW2_MOUSE_EVENT_KIND(525i32);
pub const COREWEBVIEW2_MOUSE_EVENT_KIND_X_BUTTON_DOWN: COREWEBVIEW2_MOUSE_EVENT_KIND =
COREWEBVIEW2_MOUSE_EVENT_KIND(523i32);
pub const COREWEBVIEW2_MOUSE_EVENT_KIND_X_BUTTON_UP: COREWEBVIEW2_MOUSE_EVENT_KIND =
COREWEBVIEW2_MOUSE_EVENT_KIND(524i32);
#[repr(transparent)]
#[derive(Clone, Copy, Debug, Default, Eq, PartialEq)]
pub struct COREWEBVIEW2_MOUSE_EVENT_VIRTUAL_KEYS(pub i32);
impl COREWEBVIEW2_MOUSE_EVENT_VIRTUAL_KEYS {
pub const fn contains(&self, other: Self) -> bool {
self.0 & other.0 == other.0
}
}
impl core::ops::BitOr for COREWEBVIEW2_MOUSE_EVENT_VIRTUAL_KEYS {
type Output = Self;
fn bitor(self, other: Self) -> Self {
Self(self.0 | other.0)
}
}
impl core::ops::BitAnd for COREWEBVIEW2_MOUSE_EVENT_VIRTUAL_KEYS {
type Output = Self;
fn bitand(self, other: Self) -> Self {
Self(self.0 & other.0)
}
}
impl core::ops::BitOrAssign for COREWEBVIEW2_MOUSE_EVENT_VIRTUAL_KEYS {
fn bitor_assign(&mut self, other: Self) {
self.0.bitor_assign(other.0)
}
}
impl core::ops::BitAndAssign for COREWEBVIEW2_MOUSE_EVENT_VIRTUAL_KEYS {
fn bitand_assign(&mut self, other: Self) {
self.0.bitand_assign(other.0)
}
}
impl core::ops::Not for COREWEBVIEW2_MOUSE_EVENT_VIRTUAL_KEYS {
type Output = Self;
fn not(self) -> Self {
Self(self.0.not())
}
}
pub const COREWEBVIEW2_MOUSE_EVENT_VIRTUAL_KEYS_CONTROL: COREWEBVIEW2_MOUSE_EVENT_VIRTUAL_KEYS =
COREWEBVIEW2_MOUSE_EVENT_VIRTUAL_KEYS(8i32);
pub const COREWEBVIEW2_MOUSE_EVENT_VIRTUAL_KEYS_LEFT_BUTTON: COREWEBVIEW2_MOUSE_EVENT_VIRTUAL_KEYS =
COREWEBVIEW2_MOUSE_EVENT_VIRTUAL_KEYS(1i32);
pub const COREWEBVIEW2_MOUSE_EVENT_VIRTUAL_KEYS_MIDDLE_BUTTON:
COREWEBVIEW2_MOUSE_EVENT_VIRTUAL_KEYS = COREWEBVIEW2_MOUSE_EVENT_VIRTUAL_KEYS(16i32);
pub const COREWEBVIEW2_MOUSE_EVENT_VIRTUAL_KEYS_NONE: COREWEBVIEW2_MOUSE_EVENT_VIRTUAL_KEYS =
COREWEBVIEW2_MOUSE_EVENT_VIRTUAL_KEYS(0i32);
pub const COREWEBVIEW2_MOUSE_EVENT_VIRTUAL_KEYS_RIGHT_BUTTON:
COREWEBVIEW2_MOUSE_EVENT_VIRTUAL_KEYS = COREWEBVIEW2_MOUSE_EVENT_VIRTUAL_KEYS(2i32);
pub const COREWEBVIEW2_MOUSE_EVENT_VIRTUAL_KEYS_SHIFT: COREWEBVIEW2_MOUSE_EVENT_VIRTUAL_KEYS =
COREWEBVIEW2_MOUSE_EVENT_VIRTUAL_KEYS(4i32);
pub const COREWEBVIEW2_MOUSE_EVENT_VIRTUAL_KEYS_X_BUTTON1: COREWEBVIEW2_MOUSE_EVENT_VIRTUAL_KEYS =
COREWEBVIEW2_MOUSE_EVENT_VIRTUAL_KEYS(32i32);
pub const COREWEBVIEW2_MOUSE_EVENT_VIRTUAL_KEYS_X_BUTTON2: COREWEBVIEW2_MOUSE_EVENT_VIRTUAL_KEYS =
COREWEBVIEW2_MOUSE_EVENT_VIRTUAL_KEYS(64i32);
#[repr(transparent)]
#[derive(Clone, Copy, Debug, Default, Eq, PartialEq)]
pub struct COREWEBVIEW2_MOVE_FOCUS_REASON(pub i32);
pub const COREWEBVIEW2_MOVE_FOCUS_REASON_NEXT: COREWEBVIEW2_MOVE_FOCUS_REASON =
COREWEBVIEW2_MOVE_FOCUS_REASON(1i32);
pub const COREWEBVIEW2_MOVE_FOCUS_REASON_PREVIOUS: COREWEBVIEW2_MOVE_FOCUS_REASON =
COREWEBVIEW2_MOVE_FOCUS_REASON(2i32);
pub const COREWEBVIEW2_MOVE_FOCUS_REASON_PROGRAMMATIC: COREWEBVIEW2_MOVE_FOCUS_REASON =
COREWEBVIEW2_MOVE_FOCUS_REASON(0i32);
#[repr(transparent)]
#[derive(Clone, Copy, Debug, Default, Eq, PartialEq)]
pub struct COREWEBVIEW2_PERMISSION_KIND(pub i32);
pub const COREWEBVIEW2_PERMISSION_KIND_CAMERA: COREWEBVIEW2_PERMISSION_KIND =
COREWEBVIEW2_PERMISSION_KIND(2i32);
pub const COREWEBVIEW2_PERMISSION_KIND_CLIPBOARD_READ: COREWEBVIEW2_PERMISSION_KIND =
COREWEBVIEW2_PERMISSION_KIND(6i32);
pub const COREWEBVIEW2_PERMISSION_KIND_GEOLOCATION: COREWEBVIEW2_PERMISSION_KIND =
COREWEBVIEW2_PERMISSION_KIND(3i32);
pub const COREWEBVIEW2_PERMISSION_KIND_MICROPHONE: COREWEBVIEW2_PERMISSION_KIND =
COREWEBVIEW2_PERMISSION_KIND(1i32);
pub const COREWEBVIEW2_PERMISSION_KIND_NOTIFICATIONS: COREWEBVIEW2_PERMISSION_KIND =
COREWEBVIEW2_PERMISSION_KIND(4i32);
pub const COREWEBVIEW2_PERMISSION_KIND_OTHER_SENSORS: COREWEBVIEW2_PERMISSION_KIND =
COREWEBVIEW2_PERMISSION_KIND(5i32);
pub const COREWEBVIEW2_PERMISSION_KIND_UNKNOWN_PERMISSION: COREWEBVIEW2_PERMISSION_KIND =
COREWEBVIEW2_PERMISSION_KIND(0i32);
#[repr(transparent)]
#[derive(Clone, Copy, Debug, Default, Eq, PartialEq)]
pub struct COREWEBVIEW2_PERMISSION_STATE(pub i32);
pub const COREWEBVIEW2_PERMISSION_STATE_ALLOW: COREWEBVIEW2_PERMISSION_STATE =
COREWEBVIEW2_PERMISSION_STATE(1i32);
pub const COREWEBVIEW2_PERMISSION_STATE_DEFAULT: COREWEBVIEW2_PERMISSION_STATE =
COREWEBVIEW2_PERMISSION_STATE(0i32);
pub const COREWEBVIEW2_PERMISSION_STATE_DENY: COREWEBVIEW2_PERMISSION_STATE =
COREWEBVIEW2_PERMISSION_STATE(2i32);
#[repr(C)]
#[derive(Clone, Copy, Debug, Default, PartialEq)]
pub struct COREWEBVIEW2_PHYSICAL_KEY_STATUS {
pub RepeatCount: u32,
pub ScanCode: u32,
pub IsExtendedKey: windows_core::BOOL,
pub IsMenuKeyDown: windows_core::BOOL,
pub WasKeyDown: windows_core::BOOL,
pub IsKeyReleased: windows_core::BOOL,
}
#[repr(transparent)]
#[derive(Clone, Copy, Debug, Default, Eq, PartialEq)]
pub struct COREWEBVIEW2_POINTER_EVENT_KIND(pub i32);
pub const COREWEBVIEW2_POINTER_EVENT_KIND_ACTIVATE: COREWEBVIEW2_POINTER_EVENT_KIND =
COREWEBVIEW2_POINTER_EVENT_KIND(587i32);
pub const COREWEBVIEW2_POINTER_EVENT_KIND_DOWN: COREWEBVIEW2_POINTER_EVENT_KIND =
COREWEBVIEW2_POINTER_EVENT_KIND(582i32);
pub const COREWEBVIEW2_POINTER_EVENT_KIND_ENTER: COREWEBVIEW2_POINTER_EVENT_KIND =
COREWEBVIEW2_POINTER_EVENT_KIND(585i32);
pub const COREWEBVIEW2_POINTER_EVENT_KIND_LEAVE: COREWEBVIEW2_POINTER_EVENT_KIND =
COREWEBVIEW2_POINTER_EVENT_KIND(586i32);
pub const COREWEBVIEW2_POINTER_EVENT_KIND_UP: COREWEBVIEW2_POINTER_EVENT_KIND =
COREWEBVIEW2_POINTER_EVENT_KIND(583i32);
pub const COREWEBVIEW2_POINTER_EVENT_KIND_UPDATE: COREWEBVIEW2_POINTER_EVENT_KIND =
COREWEBVIEW2_POINTER_EVENT_KIND(581i32);
#[repr(transparent)]
#[derive(Clone, Copy, Debug, Default, Eq, PartialEq)]
pub struct COREWEBVIEW2_PROCESS_FAILED_KIND(pub i32);
pub const COREWEBVIEW2_PROCESS_FAILED_KIND_BROWSER_PROCESS_EXITED:
COREWEBVIEW2_PROCESS_FAILED_KIND = COREWEBVIEW2_PROCESS_FAILED_KIND(0i32);
pub const COREWEBVIEW2_PROCESS_FAILED_KIND_FRAME_RENDER_PROCESS_EXITED:
COREWEBVIEW2_PROCESS_FAILED_KIND = COREWEBVIEW2_PROCESS_FAILED_KIND(3i32);
pub const COREWEBVIEW2_PROCESS_FAILED_KIND_GPU_PROCESS_EXITED: COREWEBVIEW2_PROCESS_FAILED_KIND =
COREWEBVIEW2_PROCESS_FAILED_KIND(6i32);
pub const COREWEBVIEW2_PROCESS_FAILED_KIND_PPAPI_BROKER_PROCESS_EXITED:
COREWEBVIEW2_PROCESS_FAILED_KIND = COREWEBVIEW2_PROCESS_FAILED_KIND(8i32);
pub const COREWEBVIEW2_PROCESS_FAILED_KIND_PPAPI_PLUGIN_PROCESS_EXITED:
COREWEBVIEW2_PROCESS_FAILED_KIND = COREWEBVIEW2_PROCESS_FAILED_KIND(7i32);
pub const COREWEBVIEW2_PROCESS_FAILED_KIND_RENDER_PROCESS_EXITED: COREWEBVIEW2_PROCESS_FAILED_KIND =
COREWEBVIEW2_PROCESS_FAILED_KIND(1i32);
pub const COREWEBVIEW2_PROCESS_FAILED_KIND_RENDER_PROCESS_UNRESPONSIVE:
COREWEBVIEW2_PROCESS_FAILED_KIND = COREWEBVIEW2_PROCESS_FAILED_KIND(2i32);
pub const COREWEBVIEW2_PROCESS_FAILED_KIND_SANDBOX_HELPER_PROCESS_EXITED:
COREWEBVIEW2_PROCESS_FAILED_KIND = COREWEBVIEW2_PROCESS_FAILED_KIND(5i32);
pub const COREWEBVIEW2_PROCESS_FAILED_KIND_UNKNOWN_PROCESS_EXITED:
COREWEBVIEW2_PROCESS_FAILED_KIND = COREWEBVIEW2_PROCESS_FAILED_KIND(9i32);
pub const COREWEBVIEW2_PROCESS_FAILED_KIND_UTILITY_PROCESS_EXITED:
COREWEBVIEW2_PROCESS_FAILED_KIND = COREWEBVIEW2_PROCESS_FAILED_KIND(4i32);
#[repr(transparent)]
#[derive(Clone, Copy, Debug, Default, Eq, PartialEq)]
pub struct COREWEBVIEW2_PROCESS_FAILED_REASON(pub i32);
pub const COREWEBVIEW2_PROCESS_FAILED_REASON_CRASHED: COREWEBVIEW2_PROCESS_FAILED_REASON =
COREWEBVIEW2_PROCESS_FAILED_REASON(3i32);
pub const COREWEBVIEW2_PROCESS_FAILED_REASON_LAUNCH_FAILED: COREWEBVIEW2_PROCESS_FAILED_REASON =
COREWEBVIEW2_PROCESS_FAILED_REASON(4i32);
pub const COREWEBVIEW2_PROCESS_FAILED_REASON_OUT_OF_MEMORY: COREWEBVIEW2_PROCESS_FAILED_REASON =
COREWEBVIEW2_PROCESS_FAILED_REASON(5i32);
pub const COREWEBVIEW2_PROCESS_FAILED_REASON_TERMINATED: COREWEBVIEW2_PROCESS_FAILED_REASON =
COREWEBVIEW2_PROCESS_FAILED_REASON(2i32);
pub const COREWEBVIEW2_PROCESS_FAILED_REASON_UNEXPECTED: COREWEBVIEW2_PROCESS_FAILED_REASON =
COREWEBVIEW2_PROCESS_FAILED_REASON(0i32);
pub const COREWEBVIEW2_PROCESS_FAILED_REASON_UNRESPONSIVE: COREWEBVIEW2_PROCESS_FAILED_REASON =
COREWEBVIEW2_PROCESS_FAILED_REASON(1i32);
#[repr(transparent)]
#[derive(Clone, Copy, Debug, Default, Eq, PartialEq)]
pub struct COREWEBVIEW2_SCRIPT_DIALOG_KIND(pub i32);
pub const COREWEBVIEW2_SCRIPT_DIALOG_KIND_ALERT: COREWEBVIEW2_SCRIPT_DIALOG_KIND =
COREWEBVIEW2_SCRIPT_DIALOG_KIND(0i32);
pub const COREWEBVIEW2_SCRIPT_DIALOG_KIND_BEFOREUNLOAD: COREWEBVIEW2_SCRIPT_DIALOG_KIND =
COREWEBVIEW2_SCRIPT_DIALOG_KIND(3i32);
pub const COREWEBVIEW2_SCRIPT_DIALOG_KIND_CONFIRM: COREWEBVIEW2_SCRIPT_DIALOG_KIND =
COREWEBVIEW2_SCRIPT_DIALOG_KIND(1i32);
pub const COREWEBVIEW2_SCRIPT_DIALOG_KIND_PROMPT: COREWEBVIEW2_SCRIPT_DIALOG_KIND =
COREWEBVIEW2_SCRIPT_DIALOG_KIND(2i32);
#[repr(transparent)]
#[derive(Clone, Copy, Debug, Default, Eq, PartialEq)]
pub struct COREWEBVIEW2_WEB_ERROR_STATUS(pub i32);
pub const COREWEBVIEW2_WEB_ERROR_STATUS_CANNOT_CONNECT: COREWEBVIEW2_WEB_ERROR_STATUS =
COREWEBVIEW2_WEB_ERROR_STATUS(12i32);
pub const COREWEBVIEW2_WEB_ERROR_STATUS_CERTIFICATE_COMMON_NAME_IS_INCORRECT:
COREWEBVIEW2_WEB_ERROR_STATUS = COREWEBVIEW2_WEB_ERROR_STATUS(1i32);
pub const COREWEBVIEW2_WEB_ERROR_STATUS_CERTIFICATE_EXPIRED: COREWEBVIEW2_WEB_ERROR_STATUS =
COREWEBVIEW2_WEB_ERROR_STATUS(2i32);
pub const COREWEBVIEW2_WEB_ERROR_STATUS_CERTIFICATE_IS_INVALID: COREWEBVIEW2_WEB_ERROR_STATUS =
COREWEBVIEW2_WEB_ERROR_STATUS(5i32);
pub const COREWEBVIEW2_WEB_ERROR_STATUS_CERTIFICATE_REVOKED: COREWEBVIEW2_WEB_ERROR_STATUS =
COREWEBVIEW2_WEB_ERROR_STATUS(4i32);
pub const COREWEBVIEW2_WEB_ERROR_STATUS_CLIENT_CERTIFICATE_CONTAINS_ERRORS:
COREWEBVIEW2_WEB_ERROR_STATUS = COREWEBVIEW2_WEB_ERROR_STATUS(3i32);
pub const COREWEBVIEW2_WEB_ERROR_STATUS_CONNECTION_ABORTED: COREWEBVIEW2_WEB_ERROR_STATUS =
COREWEBVIEW2_WEB_ERROR_STATUS(9i32);
pub const COREWEBVIEW2_WEB_ERROR_STATUS_CONNECTION_RESET: COREWEBVIEW2_WEB_ERROR_STATUS =
COREWEBVIEW2_WEB_ERROR_STATUS(10i32);
pub const COREWEBVIEW2_WEB_ERROR_STATUS_DISCONNECTED: COREWEBVIEW2_WEB_ERROR_STATUS =
COREWEBVIEW2_WEB_ERROR_STATUS(11i32);
pub const COREWEBVIEW2_WEB_ERROR_STATUS_ERROR_HTTP_INVALID_SERVER_RESPONSE:
COREWEBVIEW2_WEB_ERROR_STATUS = COREWEBVIEW2_WEB_ERROR_STATUS(8i32);
pub const COREWEBVIEW2_WEB_ERROR_STATUS_HOST_NAME_NOT_RESOLVED: COREWEBVIEW2_WEB_ERROR_STATUS =
COREWEBVIEW2_WEB_ERROR_STATUS(13i32);
pub const COREWEBVIEW2_WEB_ERROR_STATUS_OPERATION_CANCELED: COREWEBVIEW2_WEB_ERROR_STATUS =
COREWEBVIEW2_WEB_ERROR_STATUS(14i32);
pub const COREWEBVIEW2_WEB_ERROR_STATUS_REDIRECT_FAILED: COREWEBVIEW2_WEB_ERROR_STATUS =
COREWEBVIEW2_WEB_ERROR_STATUS(15i32);
pub const COREWEBVIEW2_WEB_ERROR_STATUS_SERVER_UNREACHABLE: COREWEBVIEW2_WEB_ERROR_STATUS =
COREWEBVIEW2_WEB_ERROR_STATUS(6i32);
pub const COREWEBVIEW2_WEB_ERROR_STATUS_TIMEOUT: COREWEBVIEW2_WEB_ERROR_STATUS =
COREWEBVIEW2_WEB_ERROR_STATUS(7i32);
pub const COREWEBVIEW2_WEB_ERROR_STATUS_UNEXPECTED_ERROR: COREWEBVIEW2_WEB_ERROR_STATUS =
COREWEBVIEW2_WEB_ERROR_STATUS(16i32);
pub const COREWEBVIEW2_WEB_ERROR_STATUS_UNKNOWN: COREWEBVIEW2_WEB_ERROR_STATUS =
COREWEBVIEW2_WEB_ERROR_STATUS(0i32);
#[repr(transparent)]
#[derive(Clone, Copy, Debug, Default, Eq, PartialEq)]
pub struct COREWEBVIEW2_WEB_RESOURCE_CONTEXT(pub i32);
pub const COREWEBVIEW2_WEB_RESOURCE_CONTEXT_ALL: COREWEBVIEW2_WEB_RESOURCE_CONTEXT =
COREWEBVIEW2_WEB_RESOURCE_CONTEXT(0i32);
pub const COREWEBVIEW2_WEB_RESOURCE_CONTEXT_CSP_VIOLATION_REPORT:
COREWEBVIEW2_WEB_RESOURCE_CONTEXT = COREWEBVIEW2_WEB_RESOURCE_CONTEXT(15i32);
pub const COREWEBVIEW2_WEB_RESOURCE_CONTEXT_DOCUMENT: COREWEBVIEW2_WEB_RESOURCE_CONTEXT =
COREWEBVIEW2_WEB_RESOURCE_CONTEXT(1i32);
pub const COREWEBVIEW2_WEB_RESOURCE_CONTEXT_EVENT_SOURCE: COREWEBVIEW2_WEB_RESOURCE_CONTEXT =
COREWEBVIEW2_WEB_RESOURCE_CONTEXT(10i32);
pub const COREWEBVIEW2_WEB_RESOURCE_CONTEXT_FETCH: COREWEBVIEW2_WEB_RESOURCE_CONTEXT =
COREWEBVIEW2_WEB_RESOURCE_CONTEXT(8i32);
pub const COREWEBVIEW2_WEB_RESOURCE_CONTEXT_FONT: COREWEBVIEW2_WEB_RESOURCE_CONTEXT =
COREWEBVIEW2_WEB_RESOURCE_CONTEXT(5i32);
pub const COREWEBVIEW2_WEB_RESOURCE_CONTEXT_IMAGE: COREWEBVIEW2_WEB_RESOURCE_CONTEXT =
COREWEBVIEW2_WEB_RESOURCE_CONTEXT(3i32);
pub const COREWEBVIEW2_WEB_RESOURCE_CONTEXT_MANIFEST: COREWEBVIEW2_WEB_RESOURCE_CONTEXT =
COREWEBVIEW2_WEB_RESOURCE_CONTEXT(12i32);
pub const COREWEBVIEW2_WEB_RESOURCE_CONTEXT_MEDIA: COREWEBVIEW2_WEB_RESOURCE_CONTEXT =
COREWEBVIEW2_WEB_RESOURCE_CONTEXT(4i32);
pub const COREWEBVIEW2_WEB_RESOURCE_CONTEXT_OTHER: COREWEBVIEW2_WEB_RESOURCE_CONTEXT =
COREWEBVIEW2_WEB_RESOURCE_CONTEXT(16i32);
pub const COREWEBVIEW2_WEB_RESOURCE_CONTEXT_PING: COREWEBVIEW2_WEB_RESOURCE_CONTEXT =
COREWEBVIEW2_WEB_RESOURCE_CONTEXT(14i32);
pub const COREWEBVIEW2_WEB_RESOURCE_CONTEXT_SCRIPT: COREWEBVIEW2_WEB_RESOURCE_CONTEXT =
COREWEBVIEW2_WEB_RESOURCE_CONTEXT(6i32);
pub const COREWEBVIEW2_WEB_RESOURCE_CONTEXT_SIGNED_EXCHANGE: COREWEBVIEW2_WEB_RESOURCE_CONTEXT =
COREWEBVIEW2_WEB_RESOURCE_CONTEXT(13i32);
pub const COREWEBVIEW2_WEB_RESOURCE_CONTEXT_STYLESHEET: COREWEBVIEW2_WEB_RESOURCE_CONTEXT =
COREWEBVIEW2_WEB_RESOURCE_CONTEXT(2i32);
pub const COREWEBVIEW2_WEB_RESOURCE_CONTEXT_TEXT_TRACK: COREWEBVIEW2_WEB_RESOURCE_CONTEXT =
COREWEBVIEW2_WEB_RESOURCE_CONTEXT(9i32);
pub const COREWEBVIEW2_WEB_RESOURCE_CONTEXT_WEBSOCKET: COREWEBVIEW2_WEB_RESOURCE_CONTEXT =
COREWEBVIEW2_WEB_RESOURCE_CONTEXT(11i32);
pub const COREWEBVIEW2_WEB_RESOURCE_CONTEXT_XML_HTTP_REQUEST: COREWEBVIEW2_WEB_RESOURCE_CONTEXT =
COREWEBVIEW2_WEB_RESOURCE_CONTEXT(7i32);
windows_core::imp::define_interface!(
ICoreWebView2,
ICoreWebView2_Vtbl,
0x76eceacb_0462_4d94_ac83_423a6793775e
);
windows_core::imp::interface_hierarchy!(ICoreWebView2, windows_core::IUnknown);
impl ICoreWebView2 {
pub unsafe fn Settings(&self) -> windows_core::Result<ICoreWebView2Settings> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).Settings)(
windows_core::Interface::as_raw(self),
&mut result__,
)
.and_then(|| windows_core::Type::from_abi(result__))
}
}
pub unsafe fn Source(&self) -> windows_core::Result<windows_core::PWSTR> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).Source)(
windows_core::Interface::as_raw(self),
&mut result__,
)
.map(|| result__)
}
}
pub unsafe fn Navigate<P0>(&self, uri: P0) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCWSTR>,
{
unsafe {
(windows_core::Interface::vtable(self).Navigate)(
windows_core::Interface::as_raw(self),
uri.param().abi(),
)
.ok()
}
}
pub unsafe fn NavigateToString<P0>(&self, htmlcontent: P0) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCWSTR>,
{
unsafe {
(windows_core::Interface::vtable(self).NavigateToString)(
windows_core::Interface::as_raw(self),
htmlcontent.param().abi(),
)
.ok()
}
}
pub unsafe fn NavigationStarting<P0>(&self, eventhandler: P0) -> windows_core::Result<i64>
where
P0: windows_core::Param<ICoreWebView2NavigationStartingEventHandler>,
{
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).NavigationStarting)(
windows_core::Interface::as_raw(self),
eventhandler.param().abi(),
&mut result__,
)
.map(|| result__)
}
}
pub unsafe fn RemoveNavigationStarting(&self, token: i64) -> windows_core::Result<()> {
unsafe {
(windows_core::Interface::vtable(self).RemoveNavigationStarting)(
windows_core::Interface::as_raw(self),
token,
)
.ok()
}
}
pub unsafe fn ContentLoading<P0>(&self, eventhandler: P0) -> windows_core::Result<i64>
where
P0: windows_core::Param<ICoreWebView2ContentLoadingEventHandler>,
{
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).ContentLoading)(
windows_core::Interface::as_raw(self),
eventhandler.param().abi(),
&mut result__,
)
.map(|| result__)
}
}
pub unsafe fn RemoveContentLoading(&self, token: i64) -> windows_core::Result<()> {
unsafe {
(windows_core::Interface::vtable(self).RemoveContentLoading)(
windows_core::Interface::as_raw(self),
token,
)
.ok()
}
}
pub unsafe fn SourceChanged<P0>(&self, eventhandler: P0) -> windows_core::Result<i64>
where
P0: windows_core::Param<ICoreWebView2SourceChangedEventHandler>,
{
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).SourceChanged)(
windows_core::Interface::as_raw(self),
eventhandler.param().abi(),
&mut result__,
)
.map(|| result__)
}
}
pub unsafe fn RemoveSourceChanged(&self, token: i64) -> windows_core::Result<()> {
unsafe {
(windows_core::Interface::vtable(self).RemoveSourceChanged)(
windows_core::Interface::as_raw(self),
token,
)
.ok()
}
}
pub unsafe fn HistoryChanged<P0>(&self, eventhandler: P0) -> windows_core::Result<i64>
where
P0: windows_core::Param<ICoreWebView2HistoryChangedEventHandler>,
{
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).HistoryChanged)(
windows_core::Interface::as_raw(self),
eventhandler.param().abi(),
&mut result__,
)
.map(|| result__)
}
}
pub unsafe fn RemoveHistoryChanged(&self, token: i64) -> windows_core::Result<()> {
unsafe {
(windows_core::Interface::vtable(self).RemoveHistoryChanged)(
windows_core::Interface::as_raw(self),
token,
)
.ok()
}
}
pub unsafe fn NavigationCompleted<P0>(&self, eventhandler: P0) -> windows_core::Result<i64>
where
P0: windows_core::Param<ICoreWebView2NavigationCompletedEventHandler>,
{
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).NavigationCompleted)(
windows_core::Interface::as_raw(self),
eventhandler.param().abi(),
&mut result__,
)
.map(|| result__)
}
}
pub unsafe fn RemoveNavigationCompleted(&self, token: i64) -> windows_core::Result<()> {
unsafe {
(windows_core::Interface::vtable(self).RemoveNavigationCompleted)(
windows_core::Interface::as_raw(self),
token,
)
.ok()
}
}
pub unsafe fn FrameNavigationStarting<P0>(&self, eventhandler: P0) -> windows_core::Result<i64>
where
P0: windows_core::Param<ICoreWebView2NavigationStartingEventHandler>,
{
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).FrameNavigationStarting)(
windows_core::Interface::as_raw(self),
eventhandler.param().abi(),
&mut result__,
)
.map(|| result__)
}
}
pub unsafe fn RemoveFrameNavigationStarting(&self, token: i64) -> windows_core::Result<()> {
unsafe {
(windows_core::Interface::vtable(self).RemoveFrameNavigationStarting)(
windows_core::Interface::as_raw(self),
token,
)
.ok()
}
}
pub unsafe fn FrameNavigationCompleted<P0>(&self, eventhandler: P0) -> windows_core::Result<i64>
where
P0: windows_core::Param<ICoreWebView2NavigationCompletedEventHandler>,
{
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).FrameNavigationCompleted)(
windows_core::Interface::as_raw(self),
eventhandler.param().abi(),
&mut result__,
)
.map(|| result__)
}
}
pub unsafe fn RemoveFrameNavigationCompleted(&self, token: i64) -> windows_core::Result<()> {
unsafe {
(windows_core::Interface::vtable(self).RemoveFrameNavigationCompleted)(
windows_core::Interface::as_raw(self),
token,
)
.ok()
}
}
pub unsafe fn ScriptDialogOpening<P0>(&self, eventhandler: P0) -> windows_core::Result<i64>
where
P0: windows_core::Param<ICoreWebView2ScriptDialogOpeningEventHandler>,
{
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).ScriptDialogOpening)(
windows_core::Interface::as_raw(self),
eventhandler.param().abi(),
&mut result__,
)
.map(|| result__)
}
}
pub unsafe fn RemoveScriptDialogOpening(&self, token: i64) -> windows_core::Result<()> {
unsafe {
(windows_core::Interface::vtable(self).RemoveScriptDialogOpening)(
windows_core::Interface::as_raw(self),
token,
)
.ok()
}
}
pub unsafe fn PermissionRequested<P0>(&self, eventhandler: P0) -> windows_core::Result<i64>
where
P0: windows_core::Param<ICoreWebView2PermissionRequestedEventHandler>,
{
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).PermissionRequested)(
windows_core::Interface::as_raw(self),
eventhandler.param().abi(),
&mut result__,
)
.map(|| result__)
}
}
pub unsafe fn RemovePermissionRequested(&self, token: i64) -> windows_core::Result<()> {
unsafe {
(windows_core::Interface::vtable(self).RemovePermissionRequested)(
windows_core::Interface::as_raw(self),
token,
)
.ok()
}
}
pub unsafe fn ProcessFailed<P0>(&self, eventhandler: P0) -> windows_core::Result<i64>
where
P0: windows_core::Param<ICoreWebView2ProcessFailedEventHandler>,
{
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).ProcessFailed)(
windows_core::Interface::as_raw(self),
eventhandler.param().abi(),
&mut result__,
)
.map(|| result__)
}
}
pub unsafe fn RemoveProcessFailed(&self, token: i64) -> windows_core::Result<()> {
unsafe {
(windows_core::Interface::vtable(self).RemoveProcessFailed)(
windows_core::Interface::as_raw(self),
token,
)
.ok()
}
}
pub unsafe fn AddScriptToExecuteOnDocumentCreated<P0, P1>(
&self,
javascript: P0,
handler: P1,
) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCWSTR>,
P1: windows_core::Param<ICoreWebView2AddScriptToExecuteOnDocumentCreatedCompletedHandler>,
{
unsafe {
(windows_core::Interface::vtable(self).AddScriptToExecuteOnDocumentCreated)(
windows_core::Interface::as_raw(self),
javascript.param().abi(),
handler.param().abi(),
)
.ok()
}
}
pub unsafe fn RemoveScriptToExecuteOnDocumentCreated<P0>(
&self,
id: P0,
) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCWSTR>,
{
unsafe {
(windows_core::Interface::vtable(self).RemoveScriptToExecuteOnDocumentCreated)(
windows_core::Interface::as_raw(self),
id.param().abi(),
)
.ok()
}
}
pub unsafe fn ExecuteScript<P0, P1>(
&self,
javascript: P0,
handler: P1,
) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCWSTR>,
P1: windows_core::Param<ICoreWebView2ExecuteScriptCompletedHandler>,
{
unsafe {
(windows_core::Interface::vtable(self).ExecuteScript)(
windows_core::Interface::as_raw(self),
javascript.param().abi(),
handler.param().abi(),
)
.ok()
}
}
pub unsafe fn CapturePreview<P1, P2>(
&self,
imageformat: COREWEBVIEW2_CAPTURE_PREVIEW_IMAGE_FORMAT,
imagestream: P1,
handler: P2,
) -> windows_core::Result<()>
where
P1: windows_core::Param<windows::Win32::System::Com::IStream>,
P2: windows_core::Param<ICoreWebView2CapturePreviewCompletedHandler>,
{
unsafe {
(windows_core::Interface::vtable(self).CapturePreview)(
windows_core::Interface::as_raw(self),
imageformat,
imagestream.param().abi(),
handler.param().abi(),
)
.ok()
}
}
pub unsafe fn Reload(&self) -> windows_core::Result<()> {
unsafe {
(windows_core::Interface::vtable(self).Reload)(windows_core::Interface::as_raw(self))
.ok()
}
}
pub unsafe fn PostWebMessageAsJson<P0>(&self, webmessageasjson: P0) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCWSTR>,
{
unsafe {
(windows_core::Interface::vtable(self).PostWebMessageAsJson)(
windows_core::Interface::as_raw(self),
webmessageasjson.param().abi(),
)
.ok()
}
}
pub unsafe fn PostWebMessageAsString<P0>(
&self,
webmessageasstring: P0,
) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCWSTR>,
{
unsafe {
(windows_core::Interface::vtable(self).PostWebMessageAsString)(
windows_core::Interface::as_raw(self),
webmessageasstring.param().abi(),
)
.ok()
}
}
pub unsafe fn WebMessageReceived<P0>(&self, handler: P0) -> windows_core::Result<i64>
where
P0: windows_core::Param<ICoreWebView2WebMessageReceivedEventHandler>,
{
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).WebMessageReceived)(
windows_core::Interface::as_raw(self),
handler.param().abi(),
&mut result__,
)
.map(|| result__)
}
}
pub unsafe fn RemoveWebMessageReceived(&self, token: i64) -> windows_core::Result<()> {
unsafe {
(windows_core::Interface::vtable(self).RemoveWebMessageReceived)(
windows_core::Interface::as_raw(self),
token,
)
.ok()
}
}
pub unsafe fn CallDevToolsProtocolMethod<P0, P1, P2>(
&self,
methodname: P0,
parametersasjson: P1,
handler: P2,
) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCWSTR>,
P1: windows_core::Param<windows_core::PCWSTR>,
P2: windows_core::Param<ICoreWebView2CallDevToolsProtocolMethodCompletedHandler>,
{
unsafe {
(windows_core::Interface::vtable(self).CallDevToolsProtocolMethod)(
windows_core::Interface::as_raw(self),
methodname.param().abi(),
parametersasjson.param().abi(),
handler.param().abi(),
)
.ok()
}
}
pub unsafe fn BrowserProcessId(&self) -> windows_core::Result<u32> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).BrowserProcessId)(
windows_core::Interface::as_raw(self),
&mut result__,
)
.map(|| result__)
}
}
pub unsafe fn CanGoBack(&self) -> windows_core::Result<windows_core::BOOL> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).CanGoBack)(
windows_core::Interface::as_raw(self),
&mut result__,
)
.map(|| result__)
}
}
pub unsafe fn CanGoForward(&self) -> windows_core::Result<windows_core::BOOL> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).CanGoForward)(
windows_core::Interface::as_raw(self),
&mut result__,
)
.map(|| result__)
}
}
pub unsafe fn GoBack(&self) -> windows_core::Result<()> {
unsafe {
(windows_core::Interface::vtable(self).GoBack)(windows_core::Interface::as_raw(self))
.ok()
}
}
pub unsafe fn GoForward(&self) -> windows_core::Result<()> {
unsafe {
(windows_core::Interface::vtable(self).GoForward)(windows_core::Interface::as_raw(self))
.ok()
}
}
pub unsafe fn GetDevToolsProtocolEventReceiver<P0>(
&self,
eventname: P0,
) -> windows_core::Result<ICoreWebView2DevToolsProtocolEventReceiver>
where
P0: windows_core::Param<windows_core::PCWSTR>,
{
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetDevToolsProtocolEventReceiver)(
windows_core::Interface::as_raw(self),
eventname.param().abi(),
&mut result__,
)
.and_then(|| windows_core::Type::from_abi(result__))
}
}
pub unsafe fn Stop(&self) -> windows_core::Result<()> {
unsafe {
(windows_core::Interface::vtable(self).Stop)(windows_core::Interface::as_raw(self)).ok()
}
}
pub unsafe fn NewWindowRequested<P0>(&self, eventhandler: P0) -> windows_core::Result<i64>
where
P0: windows_core::Param<ICoreWebView2NewWindowRequestedEventHandler>,
{
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).NewWindowRequested)(
windows_core::Interface::as_raw(self),
eventhandler.param().abi(),
&mut result__,
)
.map(|| result__)
}
}
pub unsafe fn RemoveNewWindowRequested(&self, token: i64) -> windows_core::Result<()> {
unsafe {
(windows_core::Interface::vtable(self).RemoveNewWindowRequested)(
windows_core::Interface::as_raw(self),
token,
)
.ok()
}
}
pub unsafe fn DocumentTitleChanged<P0>(&self, eventhandler: P0) -> windows_core::Result<i64>
where
P0: windows_core::Param<ICoreWebView2DocumentTitleChangedEventHandler>,
{
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).DocumentTitleChanged)(
windows_core::Interface::as_raw(self),
eventhandler.param().abi(),
&mut result__,
)
.map(|| result__)
}
}
pub unsafe fn RemoveDocumentTitleChanged(&self, token: i64) -> windows_core::Result<()> {
unsafe {
(windows_core::Interface::vtable(self).RemoveDocumentTitleChanged)(
windows_core::Interface::as_raw(self),
token,
)
.ok()
}
}
pub unsafe fn DocumentTitle(&self) -> windows_core::Result<windows_core::PWSTR> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).DocumentTitle)(
windows_core::Interface::as_raw(self),
&mut result__,
)
.map(|| result__)
}
}
pub unsafe fn AddHostObjectToScript<P0>(
&self,
name: P0,
object: *mut windows::Win32::System::Variant::VARIANT,
) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCWSTR>,
{
unsafe {
(windows_core::Interface::vtable(self).AddHostObjectToScript)(
windows_core::Interface::as_raw(self),
name.param().abi(),
core::mem::transmute(object),
)
.ok()
}
}
pub unsafe fn RemoveHostObjectFromScript<P0>(&self, name: P0) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCWSTR>,
{
unsafe {
(windows_core::Interface::vtable(self).RemoveHostObjectFromScript)(
windows_core::Interface::as_raw(self),
name.param().abi(),
)
.ok()
}
}
pub unsafe fn OpenDevToolsWindow(&self) -> windows_core::Result<()> {
unsafe {
(windows_core::Interface::vtable(self).OpenDevToolsWindow)(
windows_core::Interface::as_raw(self),
)
.ok()
}
}
pub unsafe fn ContainsFullScreenElementChanged<P0>(
&self,
eventhandler: P0,
) -> windows_core::Result<i64>
where
P0: windows_core::Param<ICoreWebView2ContainsFullScreenElementChangedEventHandler>,
{
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).ContainsFullScreenElementChanged)(
windows_core::Interface::as_raw(self),
eventhandler.param().abi(),
&mut result__,
)
.map(|| result__)
}
}
pub unsafe fn RemoveContainsFullScreenElementChanged(
&self,
token: i64,
) -> windows_core::Result<()> {
unsafe {
(windows_core::Interface::vtable(self).RemoveContainsFullScreenElementChanged)(
windows_core::Interface::as_raw(self),
token,
)
.ok()
}
}
pub unsafe fn ContainsFullScreenElement(&self) -> windows_core::Result<windows_core::BOOL> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).ContainsFullScreenElement)(
windows_core::Interface::as_raw(self),
&mut result__,
)
.map(|| result__)
}
}
pub unsafe fn WebResourceRequested<P0>(&self, eventhandler: P0) -> windows_core::Result<i64>
where
P0: windows_core::Param<ICoreWebView2WebResourceRequestedEventHandler>,
{
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).WebResourceRequested)(
windows_core::Interface::as_raw(self),
eventhandler.param().abi(),
&mut result__,
)
.map(|| result__)
}
}
pub unsafe fn RemoveWebResourceRequested(&self, token: i64) -> windows_core::Result<()> {
unsafe {
(windows_core::Interface::vtable(self).RemoveWebResourceRequested)(
windows_core::Interface::as_raw(self),
token,
)
.ok()
}
}
pub unsafe fn AddWebResourceRequestedFilter<P0>(
&self,
uri: P0,
resourcecontext: COREWEBVIEW2_WEB_RESOURCE_CONTEXT,
) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCWSTR>,
{
unsafe {
(windows_core::Interface::vtable(self).AddWebResourceRequestedFilter)(
windows_core::Interface::as_raw(self),
uri.param().abi(),
resourcecontext,
)
.ok()
}
}
pub unsafe fn RemoveWebResourceRequestedFilter<P0>(
&self,
uri: P0,
resourcecontext: COREWEBVIEW2_WEB_RESOURCE_CONTEXT,
) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCWSTR>,
{
unsafe {
(windows_core::Interface::vtable(self).RemoveWebResourceRequestedFilter)(
windows_core::Interface::as_raw(self),
uri.param().abi(),
resourcecontext,
)
.ok()
}
}
pub unsafe fn WindowCloseRequested<P0>(&self, eventhandler: P0) -> windows_core::Result<i64>
where
P0: windows_core::Param<ICoreWebView2WindowCloseRequestedEventHandler>,
{
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).WindowCloseRequested)(
windows_core::Interface::as_raw(self),
eventhandler.param().abi(),
&mut result__,
)
.map(|| result__)
}
}
pub unsafe fn RemoveWindowCloseRequested(&self, token: i64) -> windows_core::Result<()> {
unsafe {
(windows_core::Interface::vtable(self).RemoveWindowCloseRequested)(
windows_core::Interface::as_raw(self),
token,
)
.ok()
}
}
}
#[repr(C)]
#[doc(hidden)]
pub struct ICoreWebView2_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
pub Settings: unsafe extern "system" fn(
*mut core::ffi::c_void,
*mut *mut core::ffi::c_void,
) -> windows_core::HRESULT,
pub Source: unsafe extern "system" fn(
*mut core::ffi::c_void,
*mut windows_core::PWSTR,
) -> windows_core::HRESULT,
pub Navigate: unsafe extern "system" fn(
*mut core::ffi::c_void,
windows_core::PCWSTR,
) -> windows_core::HRESULT,
pub NavigateToString: unsafe extern "system" fn(
*mut core::ffi::c_void,
windows_core::PCWSTR,
) -> windows_core::HRESULT,
pub NavigationStarting: unsafe extern "system" fn(
*mut core::ffi::c_void,
*mut core::ffi::c_void,
*mut i64,
) -> windows_core::HRESULT,
pub RemoveNavigationStarting:
unsafe extern "system" fn(*mut core::ffi::c_void, i64) -> windows_core::HRESULT,
pub ContentLoading: unsafe extern "system" fn(
*mut core::ffi::c_void,
*mut core::ffi::c_void,
*mut i64,
) -> windows_core::HRESULT,
pub RemoveContentLoading:
unsafe extern "system" fn(*mut core::ffi::c_void, i64) -> windows_core::HRESULT,
pub SourceChanged: unsafe extern "system" fn(
*mut core::ffi::c_void,
*mut core::ffi::c_void,
*mut i64,
) -> windows_core::HRESULT,
pub RemoveSourceChanged:
unsafe extern "system" fn(*mut core::ffi::c_void, i64) -> windows_core::HRESULT,
pub HistoryChanged: unsafe extern "system" fn(
*mut core::ffi::c_void,
*mut core::ffi::c_void,
*mut i64,
) -> windows_core::HRESULT,
pub RemoveHistoryChanged:
unsafe extern "system" fn(*mut core::ffi::c_void, i64) -> windows_core::HRESULT,
pub NavigationCompleted: unsafe extern "system" fn(
*mut core::ffi::c_void,
*mut core::ffi::c_void,
*mut i64,
) -> windows_core::HRESULT,
pub RemoveNavigationCompleted:
unsafe extern "system" fn(*mut core::ffi::c_void, i64) -> windows_core::HRESULT,
pub FrameNavigationStarting: unsafe extern "system" fn(
*mut core::ffi::c_void,
*mut core::ffi::c_void,
*mut i64,
) -> windows_core::HRESULT,
pub RemoveFrameNavigationStarting:
unsafe extern "system" fn(*mut core::ffi::c_void, i64) -> windows_core::HRESULT,
pub FrameNavigationCompleted: unsafe extern "system" fn(
*mut core::ffi::c_void,
*mut core::ffi::c_void,
*mut i64,
) -> windows_core::HRESULT,
pub RemoveFrameNavigationCompleted:
unsafe extern "system" fn(*mut core::ffi::c_void, i64) -> windows_core::HRESULT,
pub ScriptDialogOpening: unsafe extern "system" fn(
*mut core::ffi::c_void,
*mut core::ffi::c_void,
*mut i64,
) -> windows_core::HRESULT,
pub RemoveScriptDialogOpening:
unsafe extern "system" fn(*mut core::ffi::c_void, i64) -> windows_core::HRESULT,
pub PermissionRequested: unsafe extern "system" fn(
*mut core::ffi::c_void,
*mut core::ffi::c_void,
*mut i64,
) -> windows_core::HRESULT,
pub RemovePermissionRequested:
unsafe extern "system" fn(*mut core::ffi::c_void, i64) -> windows_core::HRESULT,
pub ProcessFailed: unsafe extern "system" fn(
*mut core::ffi::c_void,
*mut core::ffi::c_void,
*mut i64,
) -> windows_core::HRESULT,
pub RemoveProcessFailed:
unsafe extern "system" fn(*mut core::ffi::c_void, i64) -> windows_core::HRESULT,
pub AddScriptToExecuteOnDocumentCreated: unsafe extern "system" fn(
*mut core::ffi::c_void,
windows_core::PCWSTR,
*mut core::ffi::c_void,
)
-> windows_core::HRESULT,
pub RemoveScriptToExecuteOnDocumentCreated: unsafe extern "system" fn(
*mut core::ffi::c_void,
windows_core::PCWSTR,
)
-> windows_core::HRESULT,
pub ExecuteScript: unsafe extern "system" fn(
*mut core::ffi::c_void,
windows_core::PCWSTR,
*mut core::ffi::c_void,
) -> windows_core::HRESULT,
pub CapturePreview: unsafe extern "system" fn(
*mut core::ffi::c_void,
COREWEBVIEW2_CAPTURE_PREVIEW_IMAGE_FORMAT,
*mut core::ffi::c_void,
*mut core::ffi::c_void,
) -> windows_core::HRESULT,
pub Reload: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
pub PostWebMessageAsJson: unsafe extern "system" fn(
*mut core::ffi::c_void,
windows_core::PCWSTR,
) -> windows_core::HRESULT,
pub PostWebMessageAsString: unsafe extern "system" fn(
*mut core::ffi::c_void,
windows_core::PCWSTR,
) -> windows_core::HRESULT,
pub WebMessageReceived: unsafe extern "system" fn(
*mut core::ffi::c_void,
*mut core::ffi::c_void,
*mut i64,
) -> windows_core::HRESULT,
pub RemoveWebMessageReceived:
unsafe extern "system" fn(*mut core::ffi::c_void, i64) -> windows_core::HRESULT,
pub CallDevToolsProtocolMethod: unsafe extern "system" fn(
*mut core::ffi::c_void,
windows_core::PCWSTR,
windows_core::PCWSTR,
*mut core::ffi::c_void,
) -> windows_core::HRESULT,
pub BrowserProcessId:
unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub CanGoBack: unsafe extern "system" fn(
*mut core::ffi::c_void,
*mut windows_core::BOOL,
) -> windows_core::HRESULT,
pub CanGoForward: unsafe extern "system" fn(
*mut core::ffi::c_void,
*mut windows_core::BOOL,
) -> windows_core::HRESULT,
pub GoBack: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
pub GoForward: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
pub GetDevToolsProtocolEventReceiver: unsafe extern "system" fn(
*mut core::ffi::c_void,
windows_core::PCWSTR,
*mut *mut core::ffi::c_void,
) -> windows_core::HRESULT,
pub Stop: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
pub NewWindowRequested: unsafe extern "system" fn(
*mut core::ffi::c_void,
*mut core::ffi::c_void,
*mut i64,
) -> windows_core::HRESULT,
pub RemoveNewWindowRequested:
unsafe extern "system" fn(*mut core::ffi::c_void, i64) -> windows_core::HRESULT,
pub DocumentTitleChanged: unsafe extern "system" fn(
*mut core::ffi::c_void,
*mut core::ffi::c_void,
*mut i64,
) -> windows_core::HRESULT,
pub RemoveDocumentTitleChanged:
unsafe extern "system" fn(*mut core::ffi::c_void, i64) -> windows_core::HRESULT,
pub DocumentTitle: unsafe extern "system" fn(
*mut core::ffi::c_void,
*mut windows_core::PWSTR,
) -> windows_core::HRESULT,
pub AddHostObjectToScript: unsafe extern "system" fn(
*mut core::ffi::c_void,
windows_core::PCWSTR,
*mut windows::Win32::System::Variant::VARIANT,
) -> windows_core::HRESULT,
pub RemoveHostObjectFromScript: unsafe extern "system" fn(
*mut core::ffi::c_void,
windows_core::PCWSTR,
) -> windows_core::HRESULT,
pub OpenDevToolsWindow:
unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
pub ContainsFullScreenElementChanged: unsafe extern "system" fn(
*mut core::ffi::c_void,
*mut core::ffi::c_void,
*mut i64,
) -> windows_core::HRESULT,
pub RemoveContainsFullScreenElementChanged:
unsafe extern "system" fn(*mut core::ffi::c_void, i64) -> windows_core::HRESULT,
pub ContainsFullScreenElement: unsafe extern "system" fn(
*mut core::ffi::c_void,
*mut windows_core::BOOL,
) -> windows_core::HRESULT,
pub WebResourceRequested: unsafe extern "system" fn(
*mut core::ffi::c_void,
*mut core::ffi::c_void,
*mut i64,
) -> windows_core::HRESULT,
pub RemoveWebResourceRequested:
unsafe extern "system" fn(*mut core::ffi::c_void, i64) -> windows_core::HRESULT,
pub AddWebResourceRequestedFilter: unsafe extern "system" fn(
*mut core::ffi::c_void,
windows_core::PCWSTR,
COREWEBVIEW2_WEB_RESOURCE_CONTEXT,
) -> windows_core::HRESULT,
pub RemoveWebResourceRequestedFilter: unsafe extern "system" fn(
*mut core::ffi::c_void,
windows_core::PCWSTR,
COREWEBVIEW2_WEB_RESOURCE_CONTEXT,
) -> windows_core::HRESULT,
pub WindowCloseRequested: unsafe extern "system" fn(
*mut core::ffi::c_void,
*mut core::ffi::c_void,
*mut i64,
) -> windows_core::HRESULT,
pub RemoveWindowCloseRequested:
unsafe extern "system" fn(*mut core::ffi::c_void, i64) -> windows_core::HRESULT,
}
pub trait ICoreWebView2_Impl: windows_core::IUnknownImpl {
fn Settings(&self) -> windows_core::Result<ICoreWebView2Settings>;
fn Source(&self) -> windows_core::Result<windows_core::PWSTR>;
fn Navigate(&self, uri: &windows_core::PCWSTR) -> windows_core::Result<()>;
fn NavigateToString(&self, htmlcontent: &windows_core::PCWSTR) -> windows_core::Result<()>;
fn NavigationStarting(
&self,
eventhandler: windows_core::Ref<ICoreWebView2NavigationStartingEventHandler>,
) -> windows_core::Result<i64>;
fn RemoveNavigationStarting(&self, token: i64) -> windows_core::Result<()>;
fn ContentLoading(
&self,
eventhandler: windows_core::Ref<ICoreWebView2ContentLoadingEventHandler>,
) -> windows_core::Result<i64>;
fn RemoveContentLoading(&self, token: i64) -> windows_core::Result<()>;
fn SourceChanged(
&self,
eventhandler: windows_core::Ref<ICoreWebView2SourceChangedEventHandler>,
) -> windows_core::Result<i64>;
fn RemoveSourceChanged(&self, token: i64) -> windows_core::Result<()>;
fn HistoryChanged(
&self,
eventhandler: windows_core::Ref<ICoreWebView2HistoryChangedEventHandler>,
) -> windows_core::Result<i64>;
fn RemoveHistoryChanged(&self, token: i64) -> windows_core::Result<()>;
fn NavigationCompleted(
&self,
eventhandler: windows_core::Ref<ICoreWebView2NavigationCompletedEventHandler>,
) -> windows_core::Result<i64>;
fn RemoveNavigationCompleted(&self, token: i64) -> windows_core::Result<()>;
fn FrameNavigationStarting(
&self,
eventhandler: windows_core::Ref<ICoreWebView2NavigationStartingEventHandler>,
) -> windows_core::Result<i64>;
fn RemoveFrameNavigationStarting(&self, token: i64) -> windows_core::Result<()>;
fn FrameNavigationCompleted(
&self,
eventhandler: windows_core::Ref<ICoreWebView2NavigationCompletedEventHandler>,
) -> windows_core::Result<i64>;
fn RemoveFrameNavigationCompleted(&self, token: i64) -> windows_core::Result<()>;
fn ScriptDialogOpening(
&self,
eventhandler: windows_core::Ref<ICoreWebView2ScriptDialogOpeningEventHandler>,
) -> windows_core::Result<i64>;
fn RemoveScriptDialogOpening(&self, token: i64) -> windows_core::Result<()>;
fn PermissionRequested(
&self,
eventhandler: windows_core::Ref<ICoreWebView2PermissionRequestedEventHandler>,
) -> windows_core::Result<i64>;
fn RemovePermissionRequested(&self, token: i64) -> windows_core::Result<()>;
fn ProcessFailed(
&self,
eventhandler: windows_core::Ref<ICoreWebView2ProcessFailedEventHandler>,
) -> windows_core::Result<i64>;
fn RemoveProcessFailed(&self, token: i64) -> windows_core::Result<()>;
fn AddScriptToExecuteOnDocumentCreated(
&self,
javascript: &windows_core::PCWSTR,
handler: windows_core::Ref<
ICoreWebView2AddScriptToExecuteOnDocumentCreatedCompletedHandler,
>,
) -> windows_core::Result<()>;
fn RemoveScriptToExecuteOnDocumentCreated(
&self,
id: &windows_core::PCWSTR,
) -> windows_core::Result<()>;
fn ExecuteScript(
&self,
javascript: &windows_core::PCWSTR,
handler: windows_core::Ref<ICoreWebView2ExecuteScriptCompletedHandler>,
) -> windows_core::Result<()>;
fn CapturePreview(
&self,
imageformat: COREWEBVIEW2_CAPTURE_PREVIEW_IMAGE_FORMAT,
imagestream: windows_core::Ref<windows::Win32::System::Com::IStream>,
handler: windows_core::Ref<ICoreWebView2CapturePreviewCompletedHandler>,
) -> windows_core::Result<()>;
fn Reload(&self) -> windows_core::Result<()>;
fn PostWebMessageAsJson(
&self,
webmessageasjson: &windows_core::PCWSTR,
) -> windows_core::Result<()>;
fn PostWebMessageAsString(
&self,
webmessageasstring: &windows_core::PCWSTR,
) -> windows_core::Result<()>;
fn WebMessageReceived(
&self,
handler: windows_core::Ref<ICoreWebView2WebMessageReceivedEventHandler>,
) -> windows_core::Result<i64>;
fn RemoveWebMessageReceived(&self, token: i64) -> windows_core::Result<()>;
fn CallDevToolsProtocolMethod(
&self,
methodname: &windows_core::PCWSTR,
parametersasjson: &windows_core::PCWSTR,
handler: windows_core::Ref<ICoreWebView2CallDevToolsProtocolMethodCompletedHandler>,
) -> windows_core::Result<()>;
fn BrowserProcessId(&self) -> windows_core::Result<u32>;
fn CanGoBack(&self) -> windows_core::Result<windows_core::BOOL>;
fn CanGoForward(&self) -> windows_core::Result<windows_core::BOOL>;
fn GoBack(&self) -> windows_core::Result<()>;
fn GoForward(&self) -> windows_core::Result<()>;
fn GetDevToolsProtocolEventReceiver(
&self,
eventname: &windows_core::PCWSTR,
) -> windows_core::Result<ICoreWebView2DevToolsProtocolEventReceiver>;
fn Stop(&self) -> windows_core::Result<()>;
fn NewWindowRequested(
&self,
eventhandler: windows_core::Ref<ICoreWebView2NewWindowRequestedEventHandler>,
) -> windows_core::Result<i64>;
fn RemoveNewWindowRequested(&self, token: i64) -> windows_core::Result<()>;
fn DocumentTitleChanged(
&self,
eventhandler: windows_core::Ref<ICoreWebView2DocumentTitleChangedEventHandler>,
) -> windows_core::Result<i64>;
fn RemoveDocumentTitleChanged(&self, token: i64) -> windows_core::Result<()>;
fn DocumentTitle(&self) -> windows_core::Result<windows_core::PWSTR>;
fn AddHostObjectToScript(
&self,
name: &windows_core::PCWSTR,
object: *mut windows::Win32::System::Variant::VARIANT,
) -> windows_core::Result<()>;
fn RemoveHostObjectFromScript(&self, name: &windows_core::PCWSTR) -> windows_core::Result<()>;
fn OpenDevToolsWindow(&self) -> windows_core::Result<()>;
fn ContainsFullScreenElementChanged(
&self,
eventhandler: windows_core::Ref<ICoreWebView2ContainsFullScreenElementChangedEventHandler>,
) -> windows_core::Result<i64>;
fn RemoveContainsFullScreenElementChanged(&self, token: i64) -> windows_core::Result<()>;
fn ContainsFullScreenElement(&self) -> windows_core::Result<windows_core::BOOL>;
fn WebResourceRequested(
&self,
eventhandler: windows_core::Ref<ICoreWebView2WebResourceRequestedEventHandler>,
) -> windows_core::Result<i64>;
fn RemoveWebResourceRequested(&self, token: i64) -> windows_core::Result<()>;
fn AddWebResourceRequestedFilter(
&self,
uri: &windows_core::PCWSTR,
resourcecontext: COREWEBVIEW2_WEB_RESOURCE_CONTEXT,
) -> windows_core::Result<()>;
fn RemoveWebResourceRequestedFilter(
&self,
uri: &windows_core::PCWSTR,
resourcecontext: COREWEBVIEW2_WEB_RESOURCE_CONTEXT,
) -> windows_core::Result<()>;
fn WindowCloseRequested(
&self,
eventhandler: windows_core::Ref<ICoreWebView2WindowCloseRequestedEventHandler>,
) -> windows_core::Result<i64>;
fn RemoveWindowCloseRequested(&self, token: i64) -> windows_core::Result<()>;
}
impl ICoreWebView2_Vtbl {
pub const fn new<Identity: ICoreWebView2_Impl, const OFFSET: isize>() -> Self {
unsafe extern "system" fn Settings<Identity: ICoreWebView2_Impl, const OFFSET: isize>(
this: *mut core::ffi::c_void,
settings: *mut *mut core::ffi::c_void,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
match ICoreWebView2_Impl::Settings(this) {
Ok(ok__) => {
settings.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn Source<Identity: ICoreWebView2_Impl, const OFFSET: isize>(
this: *mut core::ffi::c_void,
uri: *mut windows_core::PWSTR,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
match ICoreWebView2_Impl::Source(this) {
Ok(ok__) => {
uri.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn Navigate<Identity: ICoreWebView2_Impl, const OFFSET: isize>(
this: *mut core::ffi::c_void,
uri: windows_core::PCWSTR,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
ICoreWebView2_Impl::Navigate(this, core::mem::transmute(&uri)).into()
}
}
unsafe extern "system" fn NavigateToString<
Identity: ICoreWebView2_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
htmlcontent: windows_core::PCWSTR,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
ICoreWebView2_Impl::NavigateToString(this, core::mem::transmute(&htmlcontent))
.into()
}
}
unsafe extern "system" fn NavigationStarting<
Identity: ICoreWebView2_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
eventhandler: *mut core::ffi::c_void,
token: *mut i64,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
match ICoreWebView2_Impl::NavigationStarting(
this,
core::mem::transmute_copy(&eventhandler),
) {
Ok(ok__) => {
token.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn RemoveNavigationStarting<
Identity: ICoreWebView2_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
token: i64,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
ICoreWebView2_Impl::RemoveNavigationStarting(
this,
core::mem::transmute_copy(&token),
)
.into()
}
}
unsafe extern "system" fn ContentLoading<
Identity: ICoreWebView2_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
eventhandler: *mut core::ffi::c_void,
token: *mut i64,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
match ICoreWebView2_Impl::ContentLoading(
this,
core::mem::transmute_copy(&eventhandler),
) {
Ok(ok__) => {
token.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn RemoveContentLoading<
Identity: ICoreWebView2_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
token: i64,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
ICoreWebView2_Impl::RemoveContentLoading(this, core::mem::transmute_copy(&token))
.into()
}
}
unsafe extern "system" fn SourceChanged<
Identity: ICoreWebView2_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
eventhandler: *mut core::ffi::c_void,
token: *mut i64,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
match ICoreWebView2_Impl::SourceChanged(
this,
core::mem::transmute_copy(&eventhandler),
) {
Ok(ok__) => {
token.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn RemoveSourceChanged<
Identity: ICoreWebView2_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
token: i64,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
ICoreWebView2_Impl::RemoveSourceChanged(this, core::mem::transmute_copy(&token))
.into()
}
}
unsafe extern "system" fn HistoryChanged<
Identity: ICoreWebView2_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
eventhandler: *mut core::ffi::c_void,
token: *mut i64,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
match ICoreWebView2_Impl::HistoryChanged(
this,
core::mem::transmute_copy(&eventhandler),
) {
Ok(ok__) => {
token.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn RemoveHistoryChanged<
Identity: ICoreWebView2_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
token: i64,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
ICoreWebView2_Impl::RemoveHistoryChanged(this, core::mem::transmute_copy(&token))
.into()
}
}
unsafe extern "system" fn NavigationCompleted<
Identity: ICoreWebView2_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
eventhandler: *mut core::ffi::c_void,
token: *mut i64,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
match ICoreWebView2_Impl::NavigationCompleted(
this,
core::mem::transmute_copy(&eventhandler),
) {
Ok(ok__) => {
token.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn RemoveNavigationCompleted<
Identity: ICoreWebView2_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
token: i64,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
ICoreWebView2_Impl::RemoveNavigationCompleted(
this,
core::mem::transmute_copy(&token),
)
.into()
}
}
unsafe extern "system" fn FrameNavigationStarting<
Identity: ICoreWebView2_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
eventhandler: *mut core::ffi::c_void,
token: *mut i64,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
match ICoreWebView2_Impl::FrameNavigationStarting(
this,
core::mem::transmute_copy(&eventhandler),
) {
Ok(ok__) => {
token.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn RemoveFrameNavigationStarting<
Identity: ICoreWebView2_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
token: i64,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
ICoreWebView2_Impl::RemoveFrameNavigationStarting(
this,
core::mem::transmute_copy(&token),
)
.into()
}
}
unsafe extern "system" fn FrameNavigationCompleted<
Identity: ICoreWebView2_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
eventhandler: *mut core::ffi::c_void,
token: *mut i64,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
match ICoreWebView2_Impl::FrameNavigationCompleted(
this,
core::mem::transmute_copy(&eventhandler),
) {
Ok(ok__) => {
token.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn RemoveFrameNavigationCompleted<
Identity: ICoreWebView2_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
token: i64,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
ICoreWebView2_Impl::RemoveFrameNavigationCompleted(
this,
core::mem::transmute_copy(&token),
)
.into()
}
}
unsafe extern "system" fn ScriptDialogOpening<
Identity: ICoreWebView2_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
eventhandler: *mut core::ffi::c_void,
token: *mut i64,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
match ICoreWebView2_Impl::ScriptDialogOpening(
this,
core::mem::transmute_copy(&eventhandler),
) {
Ok(ok__) => {
token.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn RemoveScriptDialogOpening<
Identity: ICoreWebView2_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
token: i64,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
ICoreWebView2_Impl::RemoveScriptDialogOpening(
this,
core::mem::transmute_copy(&token),
)
.into()
}
}
unsafe extern "system" fn PermissionRequested<
Identity: ICoreWebView2_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
eventhandler: *mut core::ffi::c_void,
token: *mut i64,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
match ICoreWebView2_Impl::PermissionRequested(
this,
core::mem::transmute_copy(&eventhandler),
) {
Ok(ok__) => {
token.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn RemovePermissionRequested<
Identity: ICoreWebView2_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
token: i64,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
ICoreWebView2_Impl::RemovePermissionRequested(
this,
core::mem::transmute_copy(&token),
)
.into()
}
}
unsafe extern "system" fn ProcessFailed<
Identity: ICoreWebView2_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
eventhandler: *mut core::ffi::c_void,
token: *mut i64,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
match ICoreWebView2_Impl::ProcessFailed(
this,
core::mem::transmute_copy(&eventhandler),
) {
Ok(ok__) => {
token.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn RemoveProcessFailed<
Identity: ICoreWebView2_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
token: i64,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
ICoreWebView2_Impl::RemoveProcessFailed(this, core::mem::transmute_copy(&token))
.into()
}
}
unsafe extern "system" fn AddScriptToExecuteOnDocumentCreated<
Identity: ICoreWebView2_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
javascript: windows_core::PCWSTR,
handler: *mut core::ffi::c_void,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
ICoreWebView2_Impl::AddScriptToExecuteOnDocumentCreated(
this,
core::mem::transmute(&javascript),
core::mem::transmute_copy(&handler),
)
.into()
}
}
unsafe extern "system" fn RemoveScriptToExecuteOnDocumentCreated<
Identity: ICoreWebView2_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
id: windows_core::PCWSTR,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
ICoreWebView2_Impl::RemoveScriptToExecuteOnDocumentCreated(
this,
core::mem::transmute(&id),
)
.into()
}
}
unsafe extern "system" fn ExecuteScript<
Identity: ICoreWebView2_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
javascript: windows_core::PCWSTR,
handler: *mut core::ffi::c_void,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
ICoreWebView2_Impl::ExecuteScript(
this,
core::mem::transmute(&javascript),
core::mem::transmute_copy(&handler),
)
.into()
}
}
unsafe extern "system" fn CapturePreview<
Identity: ICoreWebView2_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
imageformat: COREWEBVIEW2_CAPTURE_PREVIEW_IMAGE_FORMAT,
imagestream: *mut core::ffi::c_void,
handler: *mut core::ffi::c_void,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
ICoreWebView2_Impl::CapturePreview(
this,
core::mem::transmute_copy(&imageformat),
core::mem::transmute_copy(&imagestream),
core::mem::transmute_copy(&handler),
)
.into()
}
}
unsafe extern "system" fn Reload<Identity: ICoreWebView2_Impl, const OFFSET: isize>(
this: *mut core::ffi::c_void,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
ICoreWebView2_Impl::Reload(this).into()
}
}
unsafe extern "system" fn PostWebMessageAsJson<
Identity: ICoreWebView2_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
webmessageasjson: windows_core::PCWSTR,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
ICoreWebView2_Impl::PostWebMessageAsJson(
this,
core::mem::transmute(&webmessageasjson),
)
.into()
}
}
unsafe extern "system" fn PostWebMessageAsString<
Identity: ICoreWebView2_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
webmessageasstring: windows_core::PCWSTR,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
ICoreWebView2_Impl::PostWebMessageAsString(
this,
core::mem::transmute(&webmessageasstring),
)
.into()
}
}
unsafe extern "system" fn WebMessageReceived<
Identity: ICoreWebView2_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
handler: *mut core::ffi::c_void,
token: *mut i64,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
match ICoreWebView2_Impl::WebMessageReceived(
this,
core::mem::transmute_copy(&handler),
) {
Ok(ok__) => {
token.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn RemoveWebMessageReceived<
Identity: ICoreWebView2_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
token: i64,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
ICoreWebView2_Impl::RemoveWebMessageReceived(
this,
core::mem::transmute_copy(&token),
)
.into()
}
}
unsafe extern "system" fn CallDevToolsProtocolMethod<
Identity: ICoreWebView2_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
methodname: windows_core::PCWSTR,
parametersasjson: windows_core::PCWSTR,
handler: *mut core::ffi::c_void,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
ICoreWebView2_Impl::CallDevToolsProtocolMethod(
this,
core::mem::transmute(&methodname),
core::mem::transmute(¶metersasjson),
core::mem::transmute_copy(&handler),
)
.into()
}
}
unsafe extern "system" fn BrowserProcessId<
Identity: ICoreWebView2_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
value: *mut u32,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
match ICoreWebView2_Impl::BrowserProcessId(this) {
Ok(ok__) => {
value.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn CanGoBack<Identity: ICoreWebView2_Impl, const OFFSET: isize>(
this: *mut core::ffi::c_void,
cangoback: *mut windows_core::BOOL,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
match ICoreWebView2_Impl::CanGoBack(this) {
Ok(ok__) => {
cangoback.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn CanGoForward<
Identity: ICoreWebView2_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
cangoforward: *mut windows_core::BOOL,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
match ICoreWebView2_Impl::CanGoForward(this) {
Ok(ok__) => {
cangoforward.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GoBack<Identity: ICoreWebView2_Impl, const OFFSET: isize>(
this: *mut core::ffi::c_void,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
ICoreWebView2_Impl::GoBack(this).into()
}
}
unsafe extern "system" fn GoForward<Identity: ICoreWebView2_Impl, const OFFSET: isize>(
this: *mut core::ffi::c_void,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
ICoreWebView2_Impl::GoForward(this).into()
}
}
unsafe extern "system" fn GetDevToolsProtocolEventReceiver<
Identity: ICoreWebView2_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
eventname: windows_core::PCWSTR,
receiver: *mut *mut core::ffi::c_void,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
match ICoreWebView2_Impl::GetDevToolsProtocolEventReceiver(
this,
core::mem::transmute(&eventname),
) {
Ok(ok__) => {
receiver.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn Stop<Identity: ICoreWebView2_Impl, const OFFSET: isize>(
this: *mut core::ffi::c_void,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
ICoreWebView2_Impl::Stop(this).into()
}
}
unsafe extern "system" fn NewWindowRequested<
Identity: ICoreWebView2_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
eventhandler: *mut core::ffi::c_void,
token: *mut i64,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
match ICoreWebView2_Impl::NewWindowRequested(
this,
core::mem::transmute_copy(&eventhandler),
) {
Ok(ok__) => {
token.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn RemoveNewWindowRequested<
Identity: ICoreWebView2_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
token: i64,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
ICoreWebView2_Impl::RemoveNewWindowRequested(
this,
core::mem::transmute_copy(&token),
)
.into()
}
}
unsafe extern "system" fn DocumentTitleChanged<
Identity: ICoreWebView2_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
eventhandler: *mut core::ffi::c_void,
token: *mut i64,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
match ICoreWebView2_Impl::DocumentTitleChanged(
this,
core::mem::transmute_copy(&eventhandler),
) {
Ok(ok__) => {
token.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn RemoveDocumentTitleChanged<
Identity: ICoreWebView2_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
token: i64,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
ICoreWebView2_Impl::RemoveDocumentTitleChanged(
this,
core::mem::transmute_copy(&token),
)
.into()
}
}
unsafe extern "system" fn DocumentTitle<
Identity: ICoreWebView2_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
title: *mut windows_core::PWSTR,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
match ICoreWebView2_Impl::DocumentTitle(this) {
Ok(ok__) => {
title.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn AddHostObjectToScript<
Identity: ICoreWebView2_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
name: windows_core::PCWSTR,
object: *mut windows::Win32::System::Variant::VARIANT,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
ICoreWebView2_Impl::AddHostObjectToScript(
this,
core::mem::transmute(&name),
core::mem::transmute_copy(&object),
)
.into()
}
}
unsafe extern "system" fn RemoveHostObjectFromScript<
Identity: ICoreWebView2_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
name: windows_core::PCWSTR,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
ICoreWebView2_Impl::RemoveHostObjectFromScript(this, core::mem::transmute(&name))
.into()
}
}
unsafe extern "system" fn OpenDevToolsWindow<
Identity: ICoreWebView2_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
ICoreWebView2_Impl::OpenDevToolsWindow(this).into()
}
}
unsafe extern "system" fn ContainsFullScreenElementChanged<
Identity: ICoreWebView2_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
eventhandler: *mut core::ffi::c_void,
token: *mut i64,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
match ICoreWebView2_Impl::ContainsFullScreenElementChanged(
this,
core::mem::transmute_copy(&eventhandler),
) {
Ok(ok__) => {
token.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn RemoveContainsFullScreenElementChanged<
Identity: ICoreWebView2_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
token: i64,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
ICoreWebView2_Impl::RemoveContainsFullScreenElementChanged(
this,
core::mem::transmute_copy(&token),
)
.into()
}
}
unsafe extern "system" fn ContainsFullScreenElement<
Identity: ICoreWebView2_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
containsfullscreenelement: *mut windows_core::BOOL,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
match ICoreWebView2_Impl::ContainsFullScreenElement(this) {
Ok(ok__) => {
containsfullscreenelement.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn WebResourceRequested<
Identity: ICoreWebView2_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
eventhandler: *mut core::ffi::c_void,
token: *mut i64,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
match ICoreWebView2_Impl::WebResourceRequested(
this,
core::mem::transmute_copy(&eventhandler),
) {
Ok(ok__) => {
token.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn RemoveWebResourceRequested<
Identity: ICoreWebView2_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
token: i64,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
ICoreWebView2_Impl::RemoveWebResourceRequested(
this,
core::mem::transmute_copy(&token),
)
.into()
}
}
unsafe extern "system" fn AddWebResourceRequestedFilter<
Identity: ICoreWebView2_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
uri: windows_core::PCWSTR,
resourcecontext: COREWEBVIEW2_WEB_RESOURCE_CONTEXT,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
ICoreWebView2_Impl::AddWebResourceRequestedFilter(
this,
core::mem::transmute(&uri),
core::mem::transmute_copy(&resourcecontext),
)
.into()
}
}
unsafe extern "system" fn RemoveWebResourceRequestedFilter<
Identity: ICoreWebView2_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
uri: windows_core::PCWSTR,
resourcecontext: COREWEBVIEW2_WEB_RESOURCE_CONTEXT,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
ICoreWebView2_Impl::RemoveWebResourceRequestedFilter(
this,
core::mem::transmute(&uri),
core::mem::transmute_copy(&resourcecontext),
)
.into()
}
}
unsafe extern "system" fn WindowCloseRequested<
Identity: ICoreWebView2_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
eventhandler: *mut core::ffi::c_void,
token: *mut i64,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
match ICoreWebView2_Impl::WindowCloseRequested(
this,
core::mem::transmute_copy(&eventhandler),
) {
Ok(ok__) => {
token.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn RemoveWindowCloseRequested<
Identity: ICoreWebView2_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
token: i64,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
ICoreWebView2_Impl::RemoveWindowCloseRequested(
this,
core::mem::transmute_copy(&token),
)
.into()
}
}
Self {
base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
Settings: Settings::<Identity, OFFSET>,
Source: Source::<Identity, OFFSET>,
Navigate: Navigate::<Identity, OFFSET>,
NavigateToString: NavigateToString::<Identity, OFFSET>,
NavigationStarting: NavigationStarting::<Identity, OFFSET>,
RemoveNavigationStarting: RemoveNavigationStarting::<Identity, OFFSET>,
ContentLoading: ContentLoading::<Identity, OFFSET>,
RemoveContentLoading: RemoveContentLoading::<Identity, OFFSET>,
SourceChanged: SourceChanged::<Identity, OFFSET>,
RemoveSourceChanged: RemoveSourceChanged::<Identity, OFFSET>,
HistoryChanged: HistoryChanged::<Identity, OFFSET>,
RemoveHistoryChanged: RemoveHistoryChanged::<Identity, OFFSET>,
NavigationCompleted: NavigationCompleted::<Identity, OFFSET>,
RemoveNavigationCompleted: RemoveNavigationCompleted::<Identity, OFFSET>,
FrameNavigationStarting: FrameNavigationStarting::<Identity, OFFSET>,
RemoveFrameNavigationStarting: RemoveFrameNavigationStarting::<Identity, OFFSET>,
FrameNavigationCompleted: FrameNavigationCompleted::<Identity, OFFSET>,
RemoveFrameNavigationCompleted: RemoveFrameNavigationCompleted::<Identity, OFFSET>,
ScriptDialogOpening: ScriptDialogOpening::<Identity, OFFSET>,
RemoveScriptDialogOpening: RemoveScriptDialogOpening::<Identity, OFFSET>,
PermissionRequested: PermissionRequested::<Identity, OFFSET>,
RemovePermissionRequested: RemovePermissionRequested::<Identity, OFFSET>,
ProcessFailed: ProcessFailed::<Identity, OFFSET>,
RemoveProcessFailed: RemoveProcessFailed::<Identity, OFFSET>,
AddScriptToExecuteOnDocumentCreated: AddScriptToExecuteOnDocumentCreated::<
Identity,
OFFSET,
>,
RemoveScriptToExecuteOnDocumentCreated: RemoveScriptToExecuteOnDocumentCreated::<
Identity,
OFFSET,
>,
ExecuteScript: ExecuteScript::<Identity, OFFSET>,
CapturePreview: CapturePreview::<Identity, OFFSET>,
Reload: Reload::<Identity, OFFSET>,
PostWebMessageAsJson: PostWebMessageAsJson::<Identity, OFFSET>,
PostWebMessageAsString: PostWebMessageAsString::<Identity, OFFSET>,
WebMessageReceived: WebMessageReceived::<Identity, OFFSET>,
RemoveWebMessageReceived: RemoveWebMessageReceived::<Identity, OFFSET>,
CallDevToolsProtocolMethod: CallDevToolsProtocolMethod::<Identity, OFFSET>,
BrowserProcessId: BrowserProcessId::<Identity, OFFSET>,
CanGoBack: CanGoBack::<Identity, OFFSET>,
CanGoForward: CanGoForward::<Identity, OFFSET>,
GoBack: GoBack::<Identity, OFFSET>,
GoForward: GoForward::<Identity, OFFSET>,
GetDevToolsProtocolEventReceiver: GetDevToolsProtocolEventReceiver::<Identity, OFFSET>,
Stop: Stop::<Identity, OFFSET>,
NewWindowRequested: NewWindowRequested::<Identity, OFFSET>,
RemoveNewWindowRequested: RemoveNewWindowRequested::<Identity, OFFSET>,
DocumentTitleChanged: DocumentTitleChanged::<Identity, OFFSET>,
RemoveDocumentTitleChanged: RemoveDocumentTitleChanged::<Identity, OFFSET>,
DocumentTitle: DocumentTitle::<Identity, OFFSET>,
AddHostObjectToScript: AddHostObjectToScript::<Identity, OFFSET>,
RemoveHostObjectFromScript: RemoveHostObjectFromScript::<Identity, OFFSET>,
OpenDevToolsWindow: OpenDevToolsWindow::<Identity, OFFSET>,
ContainsFullScreenElementChanged: ContainsFullScreenElementChanged::<Identity, OFFSET>,
RemoveContainsFullScreenElementChanged: RemoveContainsFullScreenElementChanged::<
Identity,
OFFSET,
>,
ContainsFullScreenElement: ContainsFullScreenElement::<Identity, OFFSET>,
WebResourceRequested: WebResourceRequested::<Identity, OFFSET>,
RemoveWebResourceRequested: RemoveWebResourceRequested::<Identity, OFFSET>,
AddWebResourceRequestedFilter: AddWebResourceRequestedFilter::<Identity, OFFSET>,
RemoveWebResourceRequestedFilter: RemoveWebResourceRequestedFilter::<Identity, OFFSET>,
WindowCloseRequested: WindowCloseRequested::<Identity, OFFSET>,
RemoveWindowCloseRequested: RemoveWindowCloseRequested::<Identity, OFFSET>,
}
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<ICoreWebView2 as windows_core::Interface>::IID
}
}
impl windows_core::RuntimeName for ICoreWebView2 {}
windows_core::imp::define_interface!(
ICoreWebView2AcceleratorKeyPressedEventArgs,
ICoreWebView2AcceleratorKeyPressedEventArgs_Vtbl,
0x9f760f8a_fb79_42be_9990_7b56900fa9c7
);
windows_core::imp::interface_hierarchy!(
ICoreWebView2AcceleratorKeyPressedEventArgs,
windows_core::IUnknown
);
impl ICoreWebView2AcceleratorKeyPressedEventArgs {
pub unsafe fn KeyEventKind(&self) -> windows_core::Result<COREWEBVIEW2_KEY_EVENT_KIND> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).KeyEventKind)(
windows_core::Interface::as_raw(self),
&mut result__,
)
.map(|| result__)
}
}
pub unsafe fn VirtualKey(&self) -> windows_core::Result<u32> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).VirtualKey)(
windows_core::Interface::as_raw(self),
&mut result__,
)
.map(|| result__)
}
}
pub unsafe fn KeyEventLParam(&self) -> windows_core::Result<i32> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).KeyEventLParam)(
windows_core::Interface::as_raw(self),
&mut result__,
)
.map(|| result__)
}
}
pub unsafe fn PhysicalKeyStatus(
&self,
physicalkeystatus: *mut COREWEBVIEW2_PHYSICAL_KEY_STATUS,
) -> windows_core::Result<()> {
unsafe {
(windows_core::Interface::vtable(self).PhysicalKeyStatus)(
windows_core::Interface::as_raw(self),
physicalkeystatus as _,
)
.ok()
}
}
pub unsafe fn Handled(&self) -> windows_core::Result<windows_core::BOOL> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).Handled)(
windows_core::Interface::as_raw(self),
&mut result__,
)
.map(|| result__)
}
}
pub unsafe fn SetHandled(&self, handled: bool) -> windows_core::Result<()> {
unsafe {
(windows_core::Interface::vtable(self).SetHandled)(
windows_core::Interface::as_raw(self),
handled.into(),
)
.ok()
}
}
}
#[repr(C)]
#[doc(hidden)]
pub struct ICoreWebView2AcceleratorKeyPressedEventArgs_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
pub KeyEventKind: unsafe extern "system" fn(
*mut core::ffi::c_void,
*mut COREWEBVIEW2_KEY_EVENT_KIND,
) -> windows_core::HRESULT,
pub VirtualKey:
unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub KeyEventLParam:
unsafe extern "system" fn(*mut core::ffi::c_void, *mut i32) -> windows_core::HRESULT,
pub PhysicalKeyStatus: unsafe extern "system" fn(
*mut core::ffi::c_void,
*mut COREWEBVIEW2_PHYSICAL_KEY_STATUS,
) -> windows_core::HRESULT,
pub Handled: unsafe extern "system" fn(
*mut core::ffi::c_void,
*mut windows_core::BOOL,
) -> windows_core::HRESULT,
pub SetHandled: unsafe extern "system" fn(
*mut core::ffi::c_void,
windows_core::BOOL,
) -> windows_core::HRESULT,
}
pub trait ICoreWebView2AcceleratorKeyPressedEventArgs_Impl: windows_core::IUnknownImpl {
fn KeyEventKind(&self) -> windows_core::Result<COREWEBVIEW2_KEY_EVENT_KIND>;
fn VirtualKey(&self) -> windows_core::Result<u32>;
fn KeyEventLParam(&self) -> windows_core::Result<i32>;
fn PhysicalKeyStatus(
&self,
physicalkeystatus: *mut COREWEBVIEW2_PHYSICAL_KEY_STATUS,
) -> windows_core::Result<()>;
fn Handled(&self) -> windows_core::Result<windows_core::BOOL>;
fn SetHandled(&self, handled: windows_core::BOOL) -> windows_core::Result<()>;
}
impl ICoreWebView2AcceleratorKeyPressedEventArgs_Vtbl {
pub const fn new<
Identity: ICoreWebView2AcceleratorKeyPressedEventArgs_Impl,
const OFFSET: isize,
>() -> Self {
unsafe extern "system" fn KeyEventKind<
Identity: ICoreWebView2AcceleratorKeyPressedEventArgs_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
keyeventkind: *mut COREWEBVIEW2_KEY_EVENT_KIND,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
match ICoreWebView2AcceleratorKeyPressedEventArgs_Impl::KeyEventKind(this) {
Ok(ok__) => {
keyeventkind.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn VirtualKey<
Identity: ICoreWebView2AcceleratorKeyPressedEventArgs_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
virtualkey: *mut u32,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
match ICoreWebView2AcceleratorKeyPressedEventArgs_Impl::VirtualKey(this) {
Ok(ok__) => {
virtualkey.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn KeyEventLParam<
Identity: ICoreWebView2AcceleratorKeyPressedEventArgs_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
lparam: *mut i32,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
match ICoreWebView2AcceleratorKeyPressedEventArgs_Impl::KeyEventLParam(this) {
Ok(ok__) => {
lparam.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn PhysicalKeyStatus<
Identity: ICoreWebView2AcceleratorKeyPressedEventArgs_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
physicalkeystatus: *mut COREWEBVIEW2_PHYSICAL_KEY_STATUS,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
ICoreWebView2AcceleratorKeyPressedEventArgs_Impl::PhysicalKeyStatus(
this,
core::mem::transmute_copy(&physicalkeystatus),
)
.into()
}
}
unsafe extern "system" fn Handled<
Identity: ICoreWebView2AcceleratorKeyPressedEventArgs_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
handled: *mut windows_core::BOOL,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
match ICoreWebView2AcceleratorKeyPressedEventArgs_Impl::Handled(this) {
Ok(ok__) => {
handled.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn SetHandled<
Identity: ICoreWebView2AcceleratorKeyPressedEventArgs_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
handled: windows_core::BOOL,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
ICoreWebView2AcceleratorKeyPressedEventArgs_Impl::SetHandled(
this,
core::mem::transmute_copy(&handled),
)
.into()
}
}
Self {
base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
KeyEventKind: KeyEventKind::<Identity, OFFSET>,
VirtualKey: VirtualKey::<Identity, OFFSET>,
KeyEventLParam: KeyEventLParam::<Identity, OFFSET>,
PhysicalKeyStatus: PhysicalKeyStatus::<Identity, OFFSET>,
Handled: Handled::<Identity, OFFSET>,
SetHandled: SetHandled::<Identity, OFFSET>,
}
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<ICoreWebView2AcceleratorKeyPressedEventArgs as windows_core::Interface>::IID
}
}
impl windows_core::RuntimeName for ICoreWebView2AcceleratorKeyPressedEventArgs {}
windows_core::imp::define_interface!(
ICoreWebView2AcceleratorKeyPressedEventHandler,
ICoreWebView2AcceleratorKeyPressedEventHandler_Vtbl,
0xb29c7e28_fa79_41a8_8e44_65811c76dcb2
);
windows_core::imp::interface_hierarchy!(
ICoreWebView2AcceleratorKeyPressedEventHandler,
windows_core::IUnknown
);
impl ICoreWebView2AcceleratorKeyPressedEventHandler {
pub unsafe fn Invoke<P0, P1>(&self, sender: P0, args: P1) -> windows_core::Result<()>
where
P0: windows_core::Param<ICoreWebView2Controller>,
P1: windows_core::Param<ICoreWebView2AcceleratorKeyPressedEventArgs>,
{
unsafe {
(windows_core::Interface::vtable(self).Invoke)(
windows_core::Interface::as_raw(self),
sender.param().abi(),
args.param().abi(),
)
.ok()
}
}
}
#[repr(C)]
#[doc(hidden)]
pub struct ICoreWebView2AcceleratorKeyPressedEventHandler_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
pub Invoke: unsafe extern "system" fn(
*mut core::ffi::c_void,
*mut core::ffi::c_void,
*mut core::ffi::c_void,
) -> windows_core::HRESULT,
}
pub trait ICoreWebView2AcceleratorKeyPressedEventHandler_Impl: windows_core::IUnknownImpl {
fn Invoke(
&self,
sender: windows_core::Ref<ICoreWebView2Controller>,
args: windows_core::Ref<ICoreWebView2AcceleratorKeyPressedEventArgs>,
) -> windows_core::Result<()>;
}
impl ICoreWebView2AcceleratorKeyPressedEventHandler_Vtbl {
pub const fn new<
Identity: ICoreWebView2AcceleratorKeyPressedEventHandler_Impl,
const OFFSET: isize,
>() -> Self {
unsafe extern "system" fn Invoke<
Identity: ICoreWebView2AcceleratorKeyPressedEventHandler_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
sender: *mut core::ffi::c_void,
args: *mut core::ffi::c_void,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
ICoreWebView2AcceleratorKeyPressedEventHandler_Impl::Invoke(
this,
core::mem::transmute_copy(&sender),
core::mem::transmute_copy(&args),
)
.into()
}
}
Self {
base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
Invoke: Invoke::<Identity, OFFSET>,
}
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<ICoreWebView2AcceleratorKeyPressedEventHandler as windows_core::Interface>::IID
}
}
impl windows_core::RuntimeName for ICoreWebView2AcceleratorKeyPressedEventHandler {}
windows_core::imp::define_interface!(
ICoreWebView2AddScriptToExecuteOnDocumentCreatedCompletedHandler,
ICoreWebView2AddScriptToExecuteOnDocumentCreatedCompletedHandler_Vtbl,
0xb99369f3_9b11_47b5_bc6f_8e7895fcea17
);
windows_core::imp::interface_hierarchy!(
ICoreWebView2AddScriptToExecuteOnDocumentCreatedCompletedHandler,
windows_core::IUnknown
);
impl ICoreWebView2AddScriptToExecuteOnDocumentCreatedCompletedHandler {
pub unsafe fn Invoke<P1>(
&self,
errorcode: windows_core::HRESULT,
id: P1,
) -> windows_core::Result<()>
where
P1: windows_core::Param<windows_core::PCWSTR>,
{
unsafe {
(windows_core::Interface::vtable(self).Invoke)(
windows_core::Interface::as_raw(self),
errorcode,
id.param().abi(),
)
.ok()
}
}
}
#[repr(C)]
#[doc(hidden)]
pub struct ICoreWebView2AddScriptToExecuteOnDocumentCreatedCompletedHandler_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
pub Invoke: unsafe extern "system" fn(
*mut core::ffi::c_void,
windows_core::HRESULT,
windows_core::PCWSTR,
) -> windows_core::HRESULT,
}
pub trait ICoreWebView2AddScriptToExecuteOnDocumentCreatedCompletedHandler_Impl:
windows_core::IUnknownImpl
{
fn Invoke(
&self,
errorcode: windows_core::HRESULT,
id: &windows_core::PCWSTR,
) -> windows_core::Result<()>;
}
impl ICoreWebView2AddScriptToExecuteOnDocumentCreatedCompletedHandler_Vtbl {
pub const fn new<
Identity: ICoreWebView2AddScriptToExecuteOnDocumentCreatedCompletedHandler_Impl,
const OFFSET: isize,
>() -> Self {
unsafe extern "system" fn Invoke<
Identity: ICoreWebView2AddScriptToExecuteOnDocumentCreatedCompletedHandler_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
errorcode: windows_core::HRESULT,
id: windows_core::PCWSTR,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
ICoreWebView2AddScriptToExecuteOnDocumentCreatedCompletedHandler_Impl::Invoke(
this,
core::mem::transmute_copy(&errorcode),
core::mem::transmute(&id),
)
.into()
}
}
Self {
base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
Invoke: Invoke::<Identity, OFFSET>,
}
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == & < ICoreWebView2AddScriptToExecuteOnDocumentCreatedCompletedHandler as windows_core::Interface >::IID
}
}
impl windows_core::RuntimeName
for ICoreWebView2AddScriptToExecuteOnDocumentCreatedCompletedHandler
{
}
windows_core::imp::define_interface!(
ICoreWebView2CallDevToolsProtocolMethodCompletedHandler,
ICoreWebView2CallDevToolsProtocolMethodCompletedHandler_Vtbl,
0x5c4889f0_5ef6_4c5a_952c_d8f1b92d0574
);
windows_core::imp::interface_hierarchy!(
ICoreWebView2CallDevToolsProtocolMethodCompletedHandler,
windows_core::IUnknown
);
impl ICoreWebView2CallDevToolsProtocolMethodCompletedHandler {
pub unsafe fn Invoke<P1>(
&self,
errorcode: windows_core::HRESULT,
returnobjectasjson: P1,
) -> windows_core::Result<()>
where
P1: windows_core::Param<windows_core::PCWSTR>,
{
unsafe {
(windows_core::Interface::vtable(self).Invoke)(
windows_core::Interface::as_raw(self),
errorcode,
returnobjectasjson.param().abi(),
)
.ok()
}
}
}
#[repr(C)]
#[doc(hidden)]
pub struct ICoreWebView2CallDevToolsProtocolMethodCompletedHandler_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
pub Invoke: unsafe extern "system" fn(
*mut core::ffi::c_void,
windows_core::HRESULT,
windows_core::PCWSTR,
) -> windows_core::HRESULT,
}
pub trait ICoreWebView2CallDevToolsProtocolMethodCompletedHandler_Impl:
windows_core::IUnknownImpl
{
fn Invoke(
&self,
errorcode: windows_core::HRESULT,
returnobjectasjson: &windows_core::PCWSTR,
) -> windows_core::Result<()>;
}
impl ICoreWebView2CallDevToolsProtocolMethodCompletedHandler_Vtbl {
pub const fn new<
Identity: ICoreWebView2CallDevToolsProtocolMethodCompletedHandler_Impl,
const OFFSET: isize,
>() -> Self {
unsafe extern "system" fn Invoke<
Identity: ICoreWebView2CallDevToolsProtocolMethodCompletedHandler_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
errorcode: windows_core::HRESULT,
returnobjectasjson: windows_core::PCWSTR,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
ICoreWebView2CallDevToolsProtocolMethodCompletedHandler_Impl::Invoke(
this,
core::mem::transmute_copy(&errorcode),
core::mem::transmute(&returnobjectasjson),
)
.into()
}
}
Self {
base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
Invoke: Invoke::<Identity, OFFSET>,
}
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == & < ICoreWebView2CallDevToolsProtocolMethodCompletedHandler as windows_core::Interface >::IID
}
}
impl windows_core::RuntimeName for ICoreWebView2CallDevToolsProtocolMethodCompletedHandler {}
windows_core::imp::define_interface!(
ICoreWebView2CapturePreviewCompletedHandler,
ICoreWebView2CapturePreviewCompletedHandler_Vtbl,
0x697e05e9_3d8f_45fa_96f4_8ffe1ededaf5
);
windows_core::imp::interface_hierarchy!(
ICoreWebView2CapturePreviewCompletedHandler,
windows_core::IUnknown
);
impl ICoreWebView2CapturePreviewCompletedHandler {
pub unsafe fn Invoke(&self, errorcode: windows_core::HRESULT) -> windows_core::Result<()> {
unsafe {
(windows_core::Interface::vtable(self).Invoke)(
windows_core::Interface::as_raw(self),
errorcode,
)
.ok()
}
}
}
#[repr(C)]
#[doc(hidden)]
pub struct ICoreWebView2CapturePreviewCompletedHandler_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
pub Invoke: unsafe extern "system" fn(
*mut core::ffi::c_void,
windows_core::HRESULT,
) -> windows_core::HRESULT,
}
pub trait ICoreWebView2CapturePreviewCompletedHandler_Impl: windows_core::IUnknownImpl {
fn Invoke(&self, errorcode: windows_core::HRESULT) -> windows_core::Result<()>;
}
impl ICoreWebView2CapturePreviewCompletedHandler_Vtbl {
pub const fn new<
Identity: ICoreWebView2CapturePreviewCompletedHandler_Impl,
const OFFSET: isize,
>() -> Self {
unsafe extern "system" fn Invoke<
Identity: ICoreWebView2CapturePreviewCompletedHandler_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
errorcode: windows_core::HRESULT,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
ICoreWebView2CapturePreviewCompletedHandler_Impl::Invoke(
this,
core::mem::transmute_copy(&errorcode),
)
.into()
}
}
Self {
base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
Invoke: Invoke::<Identity, OFFSET>,
}
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<ICoreWebView2CapturePreviewCompletedHandler as windows_core::Interface>::IID
}
}
impl windows_core::RuntimeName for ICoreWebView2CapturePreviewCompletedHandler {}
windows_core::imp::define_interface!(
ICoreWebView2CompositionController,
ICoreWebView2CompositionController_Vtbl,
0x3df9b733_b9ae_4a15_86b4_eb9ee9826469
);
windows_core::imp::interface_hierarchy!(ICoreWebView2CompositionController, windows_core::IUnknown);
impl ICoreWebView2CompositionController {
pub unsafe fn RootVisualTarget(&self) -> windows_core::Result<windows_core::IUnknown> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).RootVisualTarget)(
windows_core::Interface::as_raw(self),
&mut result__,
)
.and_then(|| windows_core::Type::from_abi(result__))
}
}
pub unsafe fn SetRootVisualTarget<P0>(&self, target: P0) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::IUnknown>,
{
unsafe {
(windows_core::Interface::vtable(self).SetRootVisualTarget)(
windows_core::Interface::as_raw(self),
target.param().abi(),
)
.ok()
}
}
pub unsafe fn SendMouseInput(
&self,
eventkind: COREWEBVIEW2_MOUSE_EVENT_KIND,
virtualkeys: COREWEBVIEW2_MOUSE_EVENT_VIRTUAL_KEYS,
mousedata: u32,
point: windows::Win32::Foundation::POINT,
) -> windows_core::Result<()> {
unsafe {
(windows_core::Interface::vtable(self).SendMouseInput)(
windows_core::Interface::as_raw(self),
eventkind,
virtualkeys,
mousedata,
core::mem::transmute(point),
)
.ok()
}
}
pub unsafe fn SendPointerInput<P1>(
&self,
eventkind: COREWEBVIEW2_POINTER_EVENT_KIND,
pointerinfo: P1,
) -> windows_core::Result<()>
where
P1: windows_core::Param<ICoreWebView2PointerInfo>,
{
unsafe {
(windows_core::Interface::vtable(self).SendPointerInput)(
windows_core::Interface::as_raw(self),
eventkind,
pointerinfo.param().abi(),
)
.ok()
}
}
pub unsafe fn Cursor(
&self,
) -> windows_core::Result<windows::Win32::UI::WindowsAndMessaging::HCURSOR> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).Cursor)(
windows_core::Interface::as_raw(self),
&mut result__,
)
.map(|| result__)
}
}
pub unsafe fn SystemCursorId(&self) -> windows_core::Result<u32> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).SystemCursorId)(
windows_core::Interface::as_raw(self),
&mut result__,
)
.map(|| result__)
}
}
pub unsafe fn CursorChanged<P0>(&self, eventhandler: P0) -> windows_core::Result<i64>
where
P0: windows_core::Param<ICoreWebView2CursorChangedEventHandler>,
{
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).CursorChanged)(
windows_core::Interface::as_raw(self),
eventhandler.param().abi(),
&mut result__,
)
.map(|| result__)
}
}
pub unsafe fn RemoveCursorChanged(&self, token: i64) -> windows_core::Result<()> {
unsafe {
(windows_core::Interface::vtable(self).RemoveCursorChanged)(
windows_core::Interface::as_raw(self),
token,
)
.ok()
}
}
}
#[repr(C)]
#[doc(hidden)]
pub struct ICoreWebView2CompositionController_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
pub RootVisualTarget: unsafe extern "system" fn(
*mut core::ffi::c_void,
*mut *mut core::ffi::c_void,
) -> windows_core::HRESULT,
pub SetRootVisualTarget: unsafe extern "system" fn(
*mut core::ffi::c_void,
*mut core::ffi::c_void,
) -> windows_core::HRESULT,
pub SendMouseInput: unsafe extern "system" fn(
*mut core::ffi::c_void,
COREWEBVIEW2_MOUSE_EVENT_KIND,
COREWEBVIEW2_MOUSE_EVENT_VIRTUAL_KEYS,
u32,
windows::Win32::Foundation::POINT,
) -> windows_core::HRESULT,
pub SendPointerInput: unsafe extern "system" fn(
*mut core::ffi::c_void,
COREWEBVIEW2_POINTER_EVENT_KIND,
*mut core::ffi::c_void,
) -> windows_core::HRESULT,
pub Cursor: unsafe extern "system" fn(
*mut core::ffi::c_void,
*mut windows::Win32::UI::WindowsAndMessaging::HCURSOR,
) -> windows_core::HRESULT,
pub SystemCursorId:
unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub CursorChanged: unsafe extern "system" fn(
*mut core::ffi::c_void,
*mut core::ffi::c_void,
*mut i64,
) -> windows_core::HRESULT,
pub RemoveCursorChanged:
unsafe extern "system" fn(*mut core::ffi::c_void, i64) -> windows_core::HRESULT,
}
pub trait ICoreWebView2CompositionController_Impl: windows_core::IUnknownImpl {
fn RootVisualTarget(&self) -> windows_core::Result<windows_core::IUnknown>;
fn SetRootVisualTarget(
&self,
target: windows_core::Ref<windows_core::IUnknown>,
) -> windows_core::Result<()>;
fn SendMouseInput(
&self,
eventkind: COREWEBVIEW2_MOUSE_EVENT_KIND,
virtualkeys: COREWEBVIEW2_MOUSE_EVENT_VIRTUAL_KEYS,
mousedata: u32,
point: &windows::Win32::Foundation::POINT,
) -> windows_core::Result<()>;
fn SendPointerInput(
&self,
eventkind: COREWEBVIEW2_POINTER_EVENT_KIND,
pointerinfo: windows_core::Ref<ICoreWebView2PointerInfo>,
) -> windows_core::Result<()>;
fn Cursor(&self) -> windows_core::Result<windows::Win32::UI::WindowsAndMessaging::HCURSOR>;
fn SystemCursorId(&self) -> windows_core::Result<u32>;
fn CursorChanged(
&self,
eventhandler: windows_core::Ref<ICoreWebView2CursorChangedEventHandler>,
) -> windows_core::Result<i64>;
fn RemoveCursorChanged(&self, token: i64) -> windows_core::Result<()>;
}
impl ICoreWebView2CompositionController_Vtbl {
pub const fn new<Identity: ICoreWebView2CompositionController_Impl, const OFFSET: isize>(
) -> Self {
unsafe extern "system" fn RootVisualTarget<
Identity: ICoreWebView2CompositionController_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
target: *mut *mut core::ffi::c_void,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
match ICoreWebView2CompositionController_Impl::RootVisualTarget(this) {
Ok(ok__) => {
target.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn SetRootVisualTarget<
Identity: ICoreWebView2CompositionController_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
target: *mut core::ffi::c_void,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
ICoreWebView2CompositionController_Impl::SetRootVisualTarget(
this,
core::mem::transmute_copy(&target),
)
.into()
}
}
unsafe extern "system" fn SendMouseInput<
Identity: ICoreWebView2CompositionController_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
eventkind: COREWEBVIEW2_MOUSE_EVENT_KIND,
virtualkeys: COREWEBVIEW2_MOUSE_EVENT_VIRTUAL_KEYS,
mousedata: u32,
point: windows::Win32::Foundation::POINT,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
ICoreWebView2CompositionController_Impl::SendMouseInput(
this,
core::mem::transmute_copy(&eventkind),
core::mem::transmute_copy(&virtualkeys),
core::mem::transmute_copy(&mousedata),
core::mem::transmute(&point),
)
.into()
}
}
unsafe extern "system" fn SendPointerInput<
Identity: ICoreWebView2CompositionController_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
eventkind: COREWEBVIEW2_POINTER_EVENT_KIND,
pointerinfo: *mut core::ffi::c_void,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
ICoreWebView2CompositionController_Impl::SendPointerInput(
this,
core::mem::transmute_copy(&eventkind),
core::mem::transmute_copy(&pointerinfo),
)
.into()
}
}
unsafe extern "system" fn Cursor<
Identity: ICoreWebView2CompositionController_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
cursor: *mut windows::Win32::UI::WindowsAndMessaging::HCURSOR,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
match ICoreWebView2CompositionController_Impl::Cursor(this) {
Ok(ok__) => {
cursor.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn SystemCursorId<
Identity: ICoreWebView2CompositionController_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
systemcursorid: *mut u32,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
match ICoreWebView2CompositionController_Impl::SystemCursorId(this) {
Ok(ok__) => {
systemcursorid.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn CursorChanged<
Identity: ICoreWebView2CompositionController_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
eventhandler: *mut core::ffi::c_void,
token: *mut i64,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
match ICoreWebView2CompositionController_Impl::CursorChanged(
this,
core::mem::transmute_copy(&eventhandler),
) {
Ok(ok__) => {
token.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn RemoveCursorChanged<
Identity: ICoreWebView2CompositionController_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
token: i64,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
ICoreWebView2CompositionController_Impl::RemoveCursorChanged(
this,
core::mem::transmute_copy(&token),
)
.into()
}
}
Self {
base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
RootVisualTarget: RootVisualTarget::<Identity, OFFSET>,
SetRootVisualTarget: SetRootVisualTarget::<Identity, OFFSET>,
SendMouseInput: SendMouseInput::<Identity, OFFSET>,
SendPointerInput: SendPointerInput::<Identity, OFFSET>,
Cursor: Cursor::<Identity, OFFSET>,
SystemCursorId: SystemCursorId::<Identity, OFFSET>,
CursorChanged: CursorChanged::<Identity, OFFSET>,
RemoveCursorChanged: RemoveCursorChanged::<Identity, OFFSET>,
}
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<ICoreWebView2CompositionController as windows_core::Interface>::IID
}
}
impl windows_core::RuntimeName for ICoreWebView2CompositionController {}
windows_core::imp::define_interface!(
ICoreWebView2CompositionController2,
ICoreWebView2CompositionController2_Vtbl,
0x0b6a3d24_49cb_4806_ba20_b5e0734a7b26
);
impl core::ops::Deref for ICoreWebView2CompositionController2 {
type Target = ICoreWebView2CompositionController;
fn deref(&self) -> &Self::Target {
unsafe { core::mem::transmute(self) }
}
}
windows_core::imp::interface_hierarchy!(
ICoreWebView2CompositionController2,
windows_core::IUnknown,
ICoreWebView2CompositionController
);
impl ICoreWebView2CompositionController2 {
pub unsafe fn UIAProvider(&self) -> windows_core::Result<windows_core::IUnknown> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).UIAProvider)(
windows_core::Interface::as_raw(self),
&mut result__,
)
.and_then(|| windows_core::Type::from_abi(result__))
}
}
}
#[repr(C)]
#[doc(hidden)]
pub struct ICoreWebView2CompositionController2_Vtbl {
pub base__: ICoreWebView2CompositionController_Vtbl,
pub UIAProvider: unsafe extern "system" fn(
*mut core::ffi::c_void,
*mut *mut core::ffi::c_void,
) -> windows_core::HRESULT,
}
pub trait ICoreWebView2CompositionController2_Impl:
ICoreWebView2CompositionController_Impl
{
fn UIAProvider(&self) -> windows_core::Result<windows_core::IUnknown>;
}
impl ICoreWebView2CompositionController2_Vtbl {
pub const fn new<Identity: ICoreWebView2CompositionController2_Impl, const OFFSET: isize>(
) -> Self {
unsafe extern "system" fn UIAProvider<
Identity: ICoreWebView2CompositionController2_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
provider: *mut *mut core::ffi::c_void,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
match ICoreWebView2CompositionController2_Impl::UIAProvider(this) {
Ok(ok__) => {
provider.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
Self {
base__: ICoreWebView2CompositionController_Vtbl::new::<Identity, OFFSET>(),
UIAProvider: UIAProvider::<Identity, OFFSET>,
}
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<ICoreWebView2CompositionController2 as windows_core::Interface>::IID
|| iid == &<ICoreWebView2CompositionController as windows_core::Interface>::IID
}
}
impl windows_core::RuntimeName for ICoreWebView2CompositionController2 {}
windows_core::imp::define_interface!(
ICoreWebView2CompositionControllerInterop,
ICoreWebView2CompositionControllerInterop_Vtbl,
0x8e9922ce_9c80_42e6_bad7_fcebf291a495
);
windows_core::imp::interface_hierarchy!(
ICoreWebView2CompositionControllerInterop,
windows_core::IUnknown
);
impl ICoreWebView2CompositionControllerInterop {
pub unsafe fn UIAProvider(&self) -> windows_core::Result<windows_core::IUnknown> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).UIAProvider)(
windows_core::Interface::as_raw(self),
&mut result__,
)
.and_then(|| windows_core::Type::from_abi(result__))
}
}
pub unsafe fn RootVisualTarget(&self) -> windows_core::Result<windows_core::IUnknown> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).RootVisualTarget)(
windows_core::Interface::as_raw(self),
&mut result__,
)
.and_then(|| windows_core::Type::from_abi(result__))
}
}
pub unsafe fn SetRootVisualTarget<P0>(&self, target: P0) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::IUnknown>,
{
unsafe {
(windows_core::Interface::vtable(self).SetRootVisualTarget)(
windows_core::Interface::as_raw(self),
target.param().abi(),
)
.ok()
}
}
}
#[repr(C)]
#[doc(hidden)]
pub struct ICoreWebView2CompositionControllerInterop_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
pub UIAProvider: unsafe extern "system" fn(
*mut core::ffi::c_void,
*mut *mut core::ffi::c_void,
) -> windows_core::HRESULT,
pub RootVisualTarget: unsafe extern "system" fn(
*mut core::ffi::c_void,
*mut *mut core::ffi::c_void,
) -> windows_core::HRESULT,
pub SetRootVisualTarget: unsafe extern "system" fn(
*mut core::ffi::c_void,
*mut core::ffi::c_void,
) -> windows_core::HRESULT,
}
pub trait ICoreWebView2CompositionControllerInterop_Impl: windows_core::IUnknownImpl {
fn UIAProvider(&self) -> windows_core::Result<windows_core::IUnknown>;
fn RootVisualTarget(&self) -> windows_core::Result<windows_core::IUnknown>;
fn SetRootVisualTarget(
&self,
target: windows_core::Ref<windows_core::IUnknown>,
) -> windows_core::Result<()>;
}
impl ICoreWebView2CompositionControllerInterop_Vtbl {
pub const fn new<
Identity: ICoreWebView2CompositionControllerInterop_Impl,
const OFFSET: isize,
>() -> Self {
unsafe extern "system" fn UIAProvider<
Identity: ICoreWebView2CompositionControllerInterop_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
provider: *mut *mut core::ffi::c_void,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
match ICoreWebView2CompositionControllerInterop_Impl::UIAProvider(this) {
Ok(ok__) => {
provider.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn RootVisualTarget<
Identity: ICoreWebView2CompositionControllerInterop_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
target: *mut *mut core::ffi::c_void,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
match ICoreWebView2CompositionControllerInterop_Impl::RootVisualTarget(this) {
Ok(ok__) => {
target.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn SetRootVisualTarget<
Identity: ICoreWebView2CompositionControllerInterop_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
target: *mut core::ffi::c_void,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
ICoreWebView2CompositionControllerInterop_Impl::SetRootVisualTarget(
this,
core::mem::transmute_copy(&target),
)
.into()
}
}
Self {
base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
UIAProvider: UIAProvider::<Identity, OFFSET>,
RootVisualTarget: RootVisualTarget::<Identity, OFFSET>,
SetRootVisualTarget: SetRootVisualTarget::<Identity, OFFSET>,
}
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<ICoreWebView2CompositionControllerInterop as windows_core::Interface>::IID
}
}
impl windows_core::RuntimeName for ICoreWebView2CompositionControllerInterop {}
windows_core::imp::define_interface!(
ICoreWebView2ContainsFullScreenElementChangedEventHandler,
ICoreWebView2ContainsFullScreenElementChangedEventHandler_Vtbl,
0xe45d98b1_afef_45be_8baf_6c7728867f73
);
windows_core::imp::interface_hierarchy!(
ICoreWebView2ContainsFullScreenElementChangedEventHandler,
windows_core::IUnknown
);
impl ICoreWebView2ContainsFullScreenElementChangedEventHandler {
pub unsafe fn Invoke<P0, P1>(&self, sender: P0, args: P1) -> windows_core::Result<()>
where
P0: windows_core::Param<ICoreWebView2>,
P1: windows_core::Param<windows_core::IUnknown>,
{
unsafe {
(windows_core::Interface::vtable(self).Invoke)(
windows_core::Interface::as_raw(self),
sender.param().abi(),
args.param().abi(),
)
.ok()
}
}
}
#[repr(C)]
#[doc(hidden)]
pub struct ICoreWebView2ContainsFullScreenElementChangedEventHandler_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
pub Invoke: unsafe extern "system" fn(
*mut core::ffi::c_void,
*mut core::ffi::c_void,
*mut core::ffi::c_void,
) -> windows_core::HRESULT,
}
pub trait ICoreWebView2ContainsFullScreenElementChangedEventHandler_Impl:
windows_core::IUnknownImpl
{
fn Invoke(
&self,
sender: windows_core::Ref<ICoreWebView2>,
args: windows_core::Ref<windows_core::IUnknown>,
) -> windows_core::Result<()>;
}
impl ICoreWebView2ContainsFullScreenElementChangedEventHandler_Vtbl {
pub const fn new<
Identity: ICoreWebView2ContainsFullScreenElementChangedEventHandler_Impl,
const OFFSET: isize,
>() -> Self {
unsafe extern "system" fn Invoke<
Identity: ICoreWebView2ContainsFullScreenElementChangedEventHandler_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
sender: *mut core::ffi::c_void,
args: *mut core::ffi::c_void,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
ICoreWebView2ContainsFullScreenElementChangedEventHandler_Impl::Invoke(
this,
core::mem::transmute_copy(&sender),
core::mem::transmute_copy(&args),
)
.into()
}
}
Self {
base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
Invoke: Invoke::<Identity, OFFSET>,
}
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == & < ICoreWebView2ContainsFullScreenElementChangedEventHandler as windows_core::Interface >::IID
}
}
impl windows_core::RuntimeName for ICoreWebView2ContainsFullScreenElementChangedEventHandler {}
windows_core::imp::define_interface!(
ICoreWebView2ContentLoadingEventArgs,
ICoreWebView2ContentLoadingEventArgs_Vtbl,
0x0c8a1275_9b6b_4901_87ad_70df25bafa6e
);
windows_core::imp::interface_hierarchy!(
ICoreWebView2ContentLoadingEventArgs,
windows_core::IUnknown
);
impl ICoreWebView2ContentLoadingEventArgs {
pub unsafe fn IsErrorPage(&self) -> windows_core::Result<windows_core::BOOL> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).IsErrorPage)(
windows_core::Interface::as_raw(self),
&mut result__,
)
.map(|| result__)
}
}
pub unsafe fn NavigationId(&self) -> windows_core::Result<u64> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).NavigationId)(
windows_core::Interface::as_raw(self),
&mut result__,
)
.map(|| result__)
}
}
}
#[repr(C)]
#[doc(hidden)]
pub struct ICoreWebView2ContentLoadingEventArgs_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
pub IsErrorPage: unsafe extern "system" fn(
*mut core::ffi::c_void,
*mut windows_core::BOOL,
) -> windows_core::HRESULT,
pub NavigationId:
unsafe extern "system" fn(*mut core::ffi::c_void, *mut u64) -> windows_core::HRESULT,
}
pub trait ICoreWebView2ContentLoadingEventArgs_Impl: windows_core::IUnknownImpl {
fn IsErrorPage(&self) -> windows_core::Result<windows_core::BOOL>;
fn NavigationId(&self) -> windows_core::Result<u64>;
}
impl ICoreWebView2ContentLoadingEventArgs_Vtbl {
pub const fn new<Identity: ICoreWebView2ContentLoadingEventArgs_Impl, const OFFSET: isize>(
) -> Self {
unsafe extern "system" fn IsErrorPage<
Identity: ICoreWebView2ContentLoadingEventArgs_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
iserrorpage: *mut windows_core::BOOL,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
match ICoreWebView2ContentLoadingEventArgs_Impl::IsErrorPage(this) {
Ok(ok__) => {
iserrorpage.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn NavigationId<
Identity: ICoreWebView2ContentLoadingEventArgs_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
navigationid: *mut u64,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
match ICoreWebView2ContentLoadingEventArgs_Impl::NavigationId(this) {
Ok(ok__) => {
navigationid.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
Self {
base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
IsErrorPage: IsErrorPage::<Identity, OFFSET>,
NavigationId: NavigationId::<Identity, OFFSET>,
}
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<ICoreWebView2ContentLoadingEventArgs as windows_core::Interface>::IID
}
}
impl windows_core::RuntimeName for ICoreWebView2ContentLoadingEventArgs {}
windows_core::imp::define_interface!(
ICoreWebView2ContentLoadingEventHandler,
ICoreWebView2ContentLoadingEventHandler_Vtbl,
0x364471e7_f2be_4910_bdba_d72077d51c4b
);
windows_core::imp::interface_hierarchy!(
ICoreWebView2ContentLoadingEventHandler,
windows_core::IUnknown
);
impl ICoreWebView2ContentLoadingEventHandler {
pub unsafe fn Invoke<P0, P1>(&self, sender: P0, args: P1) -> windows_core::Result<()>
where
P0: windows_core::Param<ICoreWebView2>,
P1: windows_core::Param<ICoreWebView2ContentLoadingEventArgs>,
{
unsafe {
(windows_core::Interface::vtable(self).Invoke)(
windows_core::Interface::as_raw(self),
sender.param().abi(),
args.param().abi(),
)
.ok()
}
}
}
#[repr(C)]
#[doc(hidden)]
pub struct ICoreWebView2ContentLoadingEventHandler_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
pub Invoke: unsafe extern "system" fn(
*mut core::ffi::c_void,
*mut core::ffi::c_void,
*mut core::ffi::c_void,
) -> windows_core::HRESULT,
}
pub trait ICoreWebView2ContentLoadingEventHandler_Impl: windows_core::IUnknownImpl {
fn Invoke(
&self,
sender: windows_core::Ref<ICoreWebView2>,
args: windows_core::Ref<ICoreWebView2ContentLoadingEventArgs>,
) -> windows_core::Result<()>;
}
impl ICoreWebView2ContentLoadingEventHandler_Vtbl {
pub const fn new<
Identity: ICoreWebView2ContentLoadingEventHandler_Impl,
const OFFSET: isize,
>() -> Self {
unsafe extern "system" fn Invoke<
Identity: ICoreWebView2ContentLoadingEventHandler_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
sender: *mut core::ffi::c_void,
args: *mut core::ffi::c_void,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
ICoreWebView2ContentLoadingEventHandler_Impl::Invoke(
this,
core::mem::transmute_copy(&sender),
core::mem::transmute_copy(&args),
)
.into()
}
}
Self {
base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
Invoke: Invoke::<Identity, OFFSET>,
}
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<ICoreWebView2ContentLoadingEventHandler as windows_core::Interface>::IID
}
}
impl windows_core::RuntimeName for ICoreWebView2ContentLoadingEventHandler {}
windows_core::imp::define_interface!(
ICoreWebView2Controller,
ICoreWebView2Controller_Vtbl,
0x4d00c0d1_9434_4eb6_8078_8697a560334f
);
windows_core::imp::interface_hierarchy!(ICoreWebView2Controller, windows_core::IUnknown);
impl ICoreWebView2Controller {
pub unsafe fn IsVisible(&self) -> windows_core::Result<windows_core::BOOL> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).IsVisible)(
windows_core::Interface::as_raw(self),
&mut result__,
)
.map(|| result__)
}
}
pub unsafe fn SetIsVisible(&self, isvisible: bool) -> windows_core::Result<()> {
unsafe {
(windows_core::Interface::vtable(self).SetIsVisible)(
windows_core::Interface::as_raw(self),
isvisible.into(),
)
.ok()
}
}
pub unsafe fn Bounds(&self) -> windows_core::Result<windows::Win32::Foundation::RECT> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).Bounds)(
windows_core::Interface::as_raw(self),
&mut result__,
)
.map(|| result__)
}
}
pub unsafe fn SetBounds(
&self,
bounds: windows::Win32::Foundation::RECT,
) -> windows_core::Result<()> {
unsafe {
(windows_core::Interface::vtable(self).SetBounds)(
windows_core::Interface::as_raw(self),
core::mem::transmute(bounds),
)
.ok()
}
}
pub unsafe fn ZoomFactor(&self) -> windows_core::Result<f64> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).ZoomFactor)(
windows_core::Interface::as_raw(self),
&mut result__,
)
.map(|| result__)
}
}
pub unsafe fn SetZoomFactor(&self, zoomfactor: f64) -> windows_core::Result<()> {
unsafe {
(windows_core::Interface::vtable(self).SetZoomFactor)(
windows_core::Interface::as_raw(self),
zoomfactor,
)
.ok()
}
}
pub unsafe fn ZoomFactorChanged<P0>(&self, eventhandler: P0) -> windows_core::Result<i64>
where
P0: windows_core::Param<ICoreWebView2ZoomFactorChangedEventHandler>,
{
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).ZoomFactorChanged)(
windows_core::Interface::as_raw(self),
eventhandler.param().abi(),
&mut result__,
)
.map(|| result__)
}
}
pub unsafe fn RemoveZoomFactorChanged(&self, token: i64) -> windows_core::Result<()> {
unsafe {
(windows_core::Interface::vtable(self).RemoveZoomFactorChanged)(
windows_core::Interface::as_raw(self),
token,
)
.ok()
}
}
pub unsafe fn SetBoundsAndZoomFactor(
&self,
bounds: windows::Win32::Foundation::RECT,
zoomfactor: f64,
) -> windows_core::Result<()> {
unsafe {
(windows_core::Interface::vtable(self).SetBoundsAndZoomFactor)(
windows_core::Interface::as_raw(self),
core::mem::transmute(bounds),
zoomfactor,
)
.ok()
}
}
pub unsafe fn MoveFocus(
&self,
reason: COREWEBVIEW2_MOVE_FOCUS_REASON,
) -> windows_core::Result<()> {
unsafe {
(windows_core::Interface::vtable(self).MoveFocus)(
windows_core::Interface::as_raw(self),
reason,
)
.ok()
}
}
pub unsafe fn MoveFocusRequested<P0>(&self, eventhandler: P0) -> windows_core::Result<i64>
where
P0: windows_core::Param<ICoreWebView2MoveFocusRequestedEventHandler>,
{
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).MoveFocusRequested)(
windows_core::Interface::as_raw(self),
eventhandler.param().abi(),
&mut result__,
)
.map(|| result__)
}
}
pub unsafe fn RemoveMoveFocusRequested(&self, token: i64) -> windows_core::Result<()> {
unsafe {
(windows_core::Interface::vtable(self).RemoveMoveFocusRequested)(
windows_core::Interface::as_raw(self),
token,
)
.ok()
}
}
pub unsafe fn GotFocus<P0>(&self, eventhandler: P0) -> windows_core::Result<i64>
where
P0: windows_core::Param<ICoreWebView2FocusChangedEventHandler>,
{
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GotFocus)(
windows_core::Interface::as_raw(self),
eventhandler.param().abi(),
&mut result__,
)
.map(|| result__)
}
}
pub unsafe fn RemoveGotFocus(&self, token: i64) -> windows_core::Result<()> {
unsafe {
(windows_core::Interface::vtable(self).RemoveGotFocus)(
windows_core::Interface::as_raw(self),
token,
)
.ok()
}
}
pub unsafe fn LostFocus<P0>(&self, eventhandler: P0) -> windows_core::Result<i64>
where
P0: windows_core::Param<ICoreWebView2FocusChangedEventHandler>,
{
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).LostFocus)(
windows_core::Interface::as_raw(self),
eventhandler.param().abi(),
&mut result__,
)
.map(|| result__)
}
}
pub unsafe fn RemoveLostFocus(&self, token: i64) -> windows_core::Result<()> {
unsafe {
(windows_core::Interface::vtable(self).RemoveLostFocus)(
windows_core::Interface::as_raw(self),
token,
)
.ok()
}
}
pub unsafe fn AcceleratorKeyPressed<P0>(&self, eventhandler: P0) -> windows_core::Result<i64>
where
P0: windows_core::Param<ICoreWebView2AcceleratorKeyPressedEventHandler>,
{
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).AcceleratorKeyPressed)(
windows_core::Interface::as_raw(self),
eventhandler.param().abi(),
&mut result__,
)
.map(|| result__)
}
}
pub unsafe fn RemoveAcceleratorKeyPressed(&self, token: i64) -> windows_core::Result<()> {
unsafe {
(windows_core::Interface::vtable(self).RemoveAcceleratorKeyPressed)(
windows_core::Interface::as_raw(self),
token,
)
.ok()
}
}
pub unsafe fn ParentWindow(&self) -> windows_core::Result<windows::Win32::Foundation::HWND> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).ParentWindow)(
windows_core::Interface::as_raw(self),
&mut result__,
)
.map(|| result__)
}
}
pub unsafe fn SetParentWindow(
&self,
parentwindow: windows::Win32::Foundation::HWND,
) -> windows_core::Result<()> {
unsafe {
(windows_core::Interface::vtable(self).SetParentWindow)(
windows_core::Interface::as_raw(self),
parentwindow,
)
.ok()
}
}
pub unsafe fn NotifyParentWindowPositionChanged(&self) -> windows_core::Result<()> {
unsafe {
(windows_core::Interface::vtable(self).NotifyParentWindowPositionChanged)(
windows_core::Interface::as_raw(self),
)
.ok()
}
}
pub unsafe fn Close(&self) -> windows_core::Result<()> {
unsafe {
(windows_core::Interface::vtable(self).Close)(windows_core::Interface::as_raw(self))
.ok()
}
}
pub unsafe fn CoreWebView2(&self) -> windows_core::Result<ICoreWebView2> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).CoreWebView2)(
windows_core::Interface::as_raw(self),
&mut result__,
)
.and_then(|| windows_core::Type::from_abi(result__))
}
}
}
#[repr(C)]
#[doc(hidden)]
pub struct ICoreWebView2Controller_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
pub IsVisible: unsafe extern "system" fn(
*mut core::ffi::c_void,
*mut windows_core::BOOL,
) -> windows_core::HRESULT,
pub SetIsVisible: unsafe extern "system" fn(
*mut core::ffi::c_void,
windows_core::BOOL,
) -> windows_core::HRESULT,
pub Bounds: unsafe extern "system" fn(
*mut core::ffi::c_void,
*mut windows::Win32::Foundation::RECT,
) -> windows_core::HRESULT,
pub SetBounds: unsafe extern "system" fn(
*mut core::ffi::c_void,
windows::Win32::Foundation::RECT,
) -> windows_core::HRESULT,
pub ZoomFactor:
unsafe extern "system" fn(*mut core::ffi::c_void, *mut f64) -> windows_core::HRESULT,
pub SetZoomFactor:
unsafe extern "system" fn(*mut core::ffi::c_void, f64) -> windows_core::HRESULT,
pub ZoomFactorChanged: unsafe extern "system" fn(
*mut core::ffi::c_void,
*mut core::ffi::c_void,
*mut i64,
) -> windows_core::HRESULT,
pub RemoveZoomFactorChanged:
unsafe extern "system" fn(*mut core::ffi::c_void, i64) -> windows_core::HRESULT,
pub SetBoundsAndZoomFactor: unsafe extern "system" fn(
*mut core::ffi::c_void,
windows::Win32::Foundation::RECT,
f64,
) -> windows_core::HRESULT,
pub MoveFocus: unsafe extern "system" fn(
*mut core::ffi::c_void,
COREWEBVIEW2_MOVE_FOCUS_REASON,
) -> windows_core::HRESULT,
pub MoveFocusRequested: unsafe extern "system" fn(
*mut core::ffi::c_void,
*mut core::ffi::c_void,
*mut i64,
) -> windows_core::HRESULT,
pub RemoveMoveFocusRequested:
unsafe extern "system" fn(*mut core::ffi::c_void, i64) -> windows_core::HRESULT,
pub GotFocus: unsafe extern "system" fn(
*mut core::ffi::c_void,
*mut core::ffi::c_void,
*mut i64,
) -> windows_core::HRESULT,
pub RemoveGotFocus:
unsafe extern "system" fn(*mut core::ffi::c_void, i64) -> windows_core::HRESULT,
pub LostFocus: unsafe extern "system" fn(
*mut core::ffi::c_void,
*mut core::ffi::c_void,
*mut i64,
) -> windows_core::HRESULT,
pub RemoveLostFocus:
unsafe extern "system" fn(*mut core::ffi::c_void, i64) -> windows_core::HRESULT,
pub AcceleratorKeyPressed: unsafe extern "system" fn(
*mut core::ffi::c_void,
*mut core::ffi::c_void,
*mut i64,
) -> windows_core::HRESULT,
pub RemoveAcceleratorKeyPressed:
unsafe extern "system" fn(*mut core::ffi::c_void, i64) -> windows_core::HRESULT,
pub ParentWindow: unsafe extern "system" fn(
*mut core::ffi::c_void,
*mut windows::Win32::Foundation::HWND,
) -> windows_core::HRESULT,
pub SetParentWindow: unsafe extern "system" fn(
*mut core::ffi::c_void,
windows::Win32::Foundation::HWND,
) -> windows_core::HRESULT,
pub NotifyParentWindowPositionChanged:
unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
pub Close: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
pub CoreWebView2: unsafe extern "system" fn(
*mut core::ffi::c_void,
*mut *mut core::ffi::c_void,
) -> windows_core::HRESULT,
}
pub trait ICoreWebView2Controller_Impl: windows_core::IUnknownImpl {
fn IsVisible(&self) -> windows_core::Result<windows_core::BOOL>;
fn SetIsVisible(&self, isvisible: windows_core::BOOL) -> windows_core::Result<()>;
fn Bounds(&self) -> windows_core::Result<windows::Win32::Foundation::RECT>;
fn SetBounds(&self, bounds: &windows::Win32::Foundation::RECT) -> windows_core::Result<()>;
fn ZoomFactor(&self) -> windows_core::Result<f64>;
fn SetZoomFactor(&self, zoomfactor: f64) -> windows_core::Result<()>;
fn ZoomFactorChanged(
&self,
eventhandler: windows_core::Ref<ICoreWebView2ZoomFactorChangedEventHandler>,
) -> windows_core::Result<i64>;
fn RemoveZoomFactorChanged(&self, token: i64) -> windows_core::Result<()>;
fn SetBoundsAndZoomFactor(
&self,
bounds: &windows::Win32::Foundation::RECT,
zoomfactor: f64,
) -> windows_core::Result<()>;
fn MoveFocus(&self, reason: COREWEBVIEW2_MOVE_FOCUS_REASON) -> windows_core::Result<()>;
fn MoveFocusRequested(
&self,
eventhandler: windows_core::Ref<ICoreWebView2MoveFocusRequestedEventHandler>,
) -> windows_core::Result<i64>;
fn RemoveMoveFocusRequested(&self, token: i64) -> windows_core::Result<()>;
fn GotFocus(
&self,
eventhandler: windows_core::Ref<ICoreWebView2FocusChangedEventHandler>,
) -> windows_core::Result<i64>;
fn RemoveGotFocus(&self, token: i64) -> windows_core::Result<()>;
fn LostFocus(
&self,
eventhandler: windows_core::Ref<ICoreWebView2FocusChangedEventHandler>,
) -> windows_core::Result<i64>;
fn RemoveLostFocus(&self, token: i64) -> windows_core::Result<()>;
fn AcceleratorKeyPressed(
&self,
eventhandler: windows_core::Ref<ICoreWebView2AcceleratorKeyPressedEventHandler>,
) -> windows_core::Result<i64>;
fn RemoveAcceleratorKeyPressed(&self, token: i64) -> windows_core::Result<()>;
fn ParentWindow(&self) -> windows_core::Result<windows::Win32::Foundation::HWND>;
fn SetParentWindow(
&self,
parentwindow: windows::Win32::Foundation::HWND,
) -> windows_core::Result<()>;
fn NotifyParentWindowPositionChanged(&self) -> windows_core::Result<()>;
fn Close(&self) -> windows_core::Result<()>;
fn CoreWebView2(&self) -> windows_core::Result<ICoreWebView2>;
}
impl ICoreWebView2Controller_Vtbl {
pub const fn new<Identity: ICoreWebView2Controller_Impl, const OFFSET: isize>() -> Self {
unsafe extern "system" fn IsVisible<
Identity: ICoreWebView2Controller_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
isvisible: *mut windows_core::BOOL,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
match ICoreWebView2Controller_Impl::IsVisible(this) {
Ok(ok__) => {
isvisible.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn SetIsVisible<
Identity: ICoreWebView2Controller_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
isvisible: windows_core::BOOL,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
ICoreWebView2Controller_Impl::SetIsVisible(
this,
core::mem::transmute_copy(&isvisible),
)
.into()
}
}
unsafe extern "system" fn Bounds<
Identity: ICoreWebView2Controller_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
bounds: *mut windows::Win32::Foundation::RECT,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
match ICoreWebView2Controller_Impl::Bounds(this) {
Ok(ok__) => {
bounds.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn SetBounds<
Identity: ICoreWebView2Controller_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
bounds: windows::Win32::Foundation::RECT,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
ICoreWebView2Controller_Impl::SetBounds(this, core::mem::transmute(&bounds)).into()
}
}
unsafe extern "system" fn ZoomFactor<
Identity: ICoreWebView2Controller_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
zoomfactor: *mut f64,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
match ICoreWebView2Controller_Impl::ZoomFactor(this) {
Ok(ok__) => {
zoomfactor.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn SetZoomFactor<
Identity: ICoreWebView2Controller_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
zoomfactor: f64,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
ICoreWebView2Controller_Impl::SetZoomFactor(
this,
core::mem::transmute_copy(&zoomfactor),
)
.into()
}
}
unsafe extern "system" fn ZoomFactorChanged<
Identity: ICoreWebView2Controller_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
eventhandler: *mut core::ffi::c_void,
token: *mut i64,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
match ICoreWebView2Controller_Impl::ZoomFactorChanged(
this,
core::mem::transmute_copy(&eventhandler),
) {
Ok(ok__) => {
token.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn RemoveZoomFactorChanged<
Identity: ICoreWebView2Controller_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
token: i64,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
ICoreWebView2Controller_Impl::RemoveZoomFactorChanged(
this,
core::mem::transmute_copy(&token),
)
.into()
}
}
unsafe extern "system" fn SetBoundsAndZoomFactor<
Identity: ICoreWebView2Controller_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
bounds: windows::Win32::Foundation::RECT,
zoomfactor: f64,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
ICoreWebView2Controller_Impl::SetBoundsAndZoomFactor(
this,
core::mem::transmute(&bounds),
core::mem::transmute_copy(&zoomfactor),
)
.into()
}
}
unsafe extern "system" fn MoveFocus<
Identity: ICoreWebView2Controller_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
reason: COREWEBVIEW2_MOVE_FOCUS_REASON,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
ICoreWebView2Controller_Impl::MoveFocus(this, core::mem::transmute_copy(&reason))
.into()
}
}
unsafe extern "system" fn MoveFocusRequested<
Identity: ICoreWebView2Controller_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
eventhandler: *mut core::ffi::c_void,
token: *mut i64,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
match ICoreWebView2Controller_Impl::MoveFocusRequested(
this,
core::mem::transmute_copy(&eventhandler),
) {
Ok(ok__) => {
token.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn RemoveMoveFocusRequested<
Identity: ICoreWebView2Controller_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
token: i64,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
ICoreWebView2Controller_Impl::RemoveMoveFocusRequested(
this,
core::mem::transmute_copy(&token),
)
.into()
}
}
unsafe extern "system" fn GotFocus<
Identity: ICoreWebView2Controller_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
eventhandler: *mut core::ffi::c_void,
token: *mut i64,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
match ICoreWebView2Controller_Impl::GotFocus(
this,
core::mem::transmute_copy(&eventhandler),
) {
Ok(ok__) => {
token.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn RemoveGotFocus<
Identity: ICoreWebView2Controller_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
token: i64,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
ICoreWebView2Controller_Impl::RemoveGotFocus(
this,
core::mem::transmute_copy(&token),
)
.into()
}
}
unsafe extern "system" fn LostFocus<
Identity: ICoreWebView2Controller_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
eventhandler: *mut core::ffi::c_void,
token: *mut i64,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
match ICoreWebView2Controller_Impl::LostFocus(
this,
core::mem::transmute_copy(&eventhandler),
) {
Ok(ok__) => {
token.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn RemoveLostFocus<
Identity: ICoreWebView2Controller_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
token: i64,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
ICoreWebView2Controller_Impl::RemoveLostFocus(
this,
core::mem::transmute_copy(&token),
)
.into()
}
}
unsafe extern "system" fn AcceleratorKeyPressed<
Identity: ICoreWebView2Controller_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
eventhandler: *mut core::ffi::c_void,
token: *mut i64,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
match ICoreWebView2Controller_Impl::AcceleratorKeyPressed(
this,
core::mem::transmute_copy(&eventhandler),
) {
Ok(ok__) => {
token.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn RemoveAcceleratorKeyPressed<
Identity: ICoreWebView2Controller_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
token: i64,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
ICoreWebView2Controller_Impl::RemoveAcceleratorKeyPressed(
this,
core::mem::transmute_copy(&token),
)
.into()
}
}
unsafe extern "system" fn ParentWindow<
Identity: ICoreWebView2Controller_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
parentwindow: *mut windows::Win32::Foundation::HWND,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
match ICoreWebView2Controller_Impl::ParentWindow(this) {
Ok(ok__) => {
parentwindow.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn SetParentWindow<
Identity: ICoreWebView2Controller_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
parentwindow: windows::Win32::Foundation::HWND,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
ICoreWebView2Controller_Impl::SetParentWindow(
this,
core::mem::transmute_copy(&parentwindow),
)
.into()
}
}
unsafe extern "system" fn NotifyParentWindowPositionChanged<
Identity: ICoreWebView2Controller_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
ICoreWebView2Controller_Impl::NotifyParentWindowPositionChanged(this).into()
}
}
unsafe extern "system" fn Close<
Identity: ICoreWebView2Controller_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
ICoreWebView2Controller_Impl::Close(this).into()
}
}
unsafe extern "system" fn CoreWebView2<
Identity: ICoreWebView2Controller_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
corewebview2: *mut *mut core::ffi::c_void,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
match ICoreWebView2Controller_Impl::CoreWebView2(this) {
Ok(ok__) => {
corewebview2.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
Self {
base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
IsVisible: IsVisible::<Identity, OFFSET>,
SetIsVisible: SetIsVisible::<Identity, OFFSET>,
Bounds: Bounds::<Identity, OFFSET>,
SetBounds: SetBounds::<Identity, OFFSET>,
ZoomFactor: ZoomFactor::<Identity, OFFSET>,
SetZoomFactor: SetZoomFactor::<Identity, OFFSET>,
ZoomFactorChanged: ZoomFactorChanged::<Identity, OFFSET>,
RemoveZoomFactorChanged: RemoveZoomFactorChanged::<Identity, OFFSET>,
SetBoundsAndZoomFactor: SetBoundsAndZoomFactor::<Identity, OFFSET>,
MoveFocus: MoveFocus::<Identity, OFFSET>,
MoveFocusRequested: MoveFocusRequested::<Identity, OFFSET>,
RemoveMoveFocusRequested: RemoveMoveFocusRequested::<Identity, OFFSET>,
GotFocus: GotFocus::<Identity, OFFSET>,
RemoveGotFocus: RemoveGotFocus::<Identity, OFFSET>,
LostFocus: LostFocus::<Identity, OFFSET>,
RemoveLostFocus: RemoveLostFocus::<Identity, OFFSET>,
AcceleratorKeyPressed: AcceleratorKeyPressed::<Identity, OFFSET>,
RemoveAcceleratorKeyPressed: RemoveAcceleratorKeyPressed::<Identity, OFFSET>,
ParentWindow: ParentWindow::<Identity, OFFSET>,
SetParentWindow: SetParentWindow::<Identity, OFFSET>,
NotifyParentWindowPositionChanged: NotifyParentWindowPositionChanged::<Identity, OFFSET>,
Close: Close::<Identity, OFFSET>,
CoreWebView2: CoreWebView2::<Identity, OFFSET>,
}
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<ICoreWebView2Controller as windows_core::Interface>::IID
}
}
impl windows_core::RuntimeName for ICoreWebView2Controller {}
windows_core::imp::define_interface!(
ICoreWebView2Controller2,
ICoreWebView2Controller2_Vtbl,
0xc979903e_d4ca_4228_92eb_47ee3fa96eab
);
impl core::ops::Deref for ICoreWebView2Controller2 {
type Target = ICoreWebView2Controller;
fn deref(&self) -> &Self::Target {
unsafe { core::mem::transmute(self) }
}
}
windows_core::imp::interface_hierarchy!(
ICoreWebView2Controller2,
windows_core::IUnknown,
ICoreWebView2Controller
);
impl ICoreWebView2Controller2 {
pub unsafe fn DefaultBackgroundColor(&self) -> windows_core::Result<COREWEBVIEW2_COLOR> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).DefaultBackgroundColor)(
windows_core::Interface::as_raw(self),
&mut result__,
)
.map(|| result__)
}
}
pub unsafe fn SetDefaultBackgroundColor(
&self,
backgroundcolor: COREWEBVIEW2_COLOR,
) -> windows_core::Result<()> {
unsafe {
(windows_core::Interface::vtable(self).SetDefaultBackgroundColor)(
windows_core::Interface::as_raw(self),
core::mem::transmute(backgroundcolor),
)
.ok()
}
}
}
#[repr(C)]
#[doc(hidden)]
pub struct ICoreWebView2Controller2_Vtbl {
pub base__: ICoreWebView2Controller_Vtbl,
pub DefaultBackgroundColor: unsafe extern "system" fn(
*mut core::ffi::c_void,
*mut COREWEBVIEW2_COLOR,
) -> windows_core::HRESULT,
pub SetDefaultBackgroundColor: unsafe extern "system" fn(
*mut core::ffi::c_void,
COREWEBVIEW2_COLOR,
) -> windows_core::HRESULT,
}
pub trait ICoreWebView2Controller2_Impl: ICoreWebView2Controller_Impl {
fn DefaultBackgroundColor(&self) -> windows_core::Result<COREWEBVIEW2_COLOR>;
fn SetDefaultBackgroundColor(
&self,
backgroundcolor: &COREWEBVIEW2_COLOR,
) -> windows_core::Result<()>;
}
impl ICoreWebView2Controller2_Vtbl {
pub const fn new<Identity: ICoreWebView2Controller2_Impl, const OFFSET: isize>() -> Self {
unsafe extern "system" fn DefaultBackgroundColor<
Identity: ICoreWebView2Controller2_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
backgroundcolor: *mut COREWEBVIEW2_COLOR,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
match ICoreWebView2Controller2_Impl::DefaultBackgroundColor(this) {
Ok(ok__) => {
backgroundcolor.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn SetDefaultBackgroundColor<
Identity: ICoreWebView2Controller2_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
backgroundcolor: COREWEBVIEW2_COLOR,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
ICoreWebView2Controller2_Impl::SetDefaultBackgroundColor(
this,
core::mem::transmute(&backgroundcolor),
)
.into()
}
}
Self {
base__: ICoreWebView2Controller_Vtbl::new::<Identity, OFFSET>(),
DefaultBackgroundColor: DefaultBackgroundColor::<Identity, OFFSET>,
SetDefaultBackgroundColor: SetDefaultBackgroundColor::<Identity, OFFSET>,
}
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<ICoreWebView2Controller2 as windows_core::Interface>::IID
|| iid == &<ICoreWebView2Controller as windows_core::Interface>::IID
}
}
impl windows_core::RuntimeName for ICoreWebView2Controller2 {}
windows_core::imp::define_interface!(
ICoreWebView2Controller3,
ICoreWebView2Controller3_Vtbl,
0xf9614724_5d2b_41dc_aef7_73d62b51543b
);
impl core::ops::Deref for ICoreWebView2Controller3 {
type Target = ICoreWebView2Controller2;
fn deref(&self) -> &Self::Target {
unsafe { core::mem::transmute(self) }
}
}
windows_core::imp::interface_hierarchy!(
ICoreWebView2Controller3,
windows_core::IUnknown,
ICoreWebView2Controller,
ICoreWebView2Controller2
);
impl ICoreWebView2Controller3 {
pub unsafe fn RasterizationScale(&self) -> windows_core::Result<f64> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).RasterizationScale)(
windows_core::Interface::as_raw(self),
&mut result__,
)
.map(|| result__)
}
}
pub unsafe fn SetRasterizationScale(&self, scale: f64) -> windows_core::Result<()> {
unsafe {
(windows_core::Interface::vtable(self).SetRasterizationScale)(
windows_core::Interface::as_raw(self),
scale,
)
.ok()
}
}
pub unsafe fn ShouldDetectMonitorScaleChanges(
&self,
) -> windows_core::Result<windows_core::BOOL> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).ShouldDetectMonitorScaleChanges)(
windows_core::Interface::as_raw(self),
&mut result__,
)
.map(|| result__)
}
}
pub unsafe fn SetShouldDetectMonitorScaleChanges(
&self,
value: bool,
) -> windows_core::Result<()> {
unsafe {
(windows_core::Interface::vtable(self).SetShouldDetectMonitorScaleChanges)(
windows_core::Interface::as_raw(self),
value.into(),
)
.ok()
}
}
pub unsafe fn RasterizationScaleChanged<P0>(
&self,
eventhandler: P0,
) -> windows_core::Result<i64>
where
P0: windows_core::Param<ICoreWebView2RasterizationScaleChangedEventHandler>,
{
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).RasterizationScaleChanged)(
windows_core::Interface::as_raw(self),
eventhandler.param().abi(),
&mut result__,
)
.map(|| result__)
}
}
pub unsafe fn RemoveRasterizationScaleChanged(&self, token: i64) -> windows_core::Result<()> {
unsafe {
(windows_core::Interface::vtable(self).RemoveRasterizationScaleChanged)(
windows_core::Interface::as_raw(self),
token,
)
.ok()
}
}
pub unsafe fn BoundsMode(&self) -> windows_core::Result<COREWEBVIEW2_BOUNDS_MODE> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).BoundsMode)(
windows_core::Interface::as_raw(self),
&mut result__,
)
.map(|| result__)
}
}
pub unsafe fn SetBoundsMode(
&self,
boundsmode: COREWEBVIEW2_BOUNDS_MODE,
) -> windows_core::Result<()> {
unsafe {
(windows_core::Interface::vtable(self).SetBoundsMode)(
windows_core::Interface::as_raw(self),
boundsmode,
)
.ok()
}
}
}
#[repr(C)]
#[doc(hidden)]
pub struct ICoreWebView2Controller3_Vtbl {
pub base__: ICoreWebView2Controller2_Vtbl,
pub RasterizationScale:
unsafe extern "system" fn(*mut core::ffi::c_void, *mut f64) -> windows_core::HRESULT,
pub SetRasterizationScale:
unsafe extern "system" fn(*mut core::ffi::c_void, f64) -> windows_core::HRESULT,
pub ShouldDetectMonitorScaleChanges: unsafe extern "system" fn(
*mut core::ffi::c_void,
*mut windows_core::BOOL,
) -> windows_core::HRESULT,
pub SetShouldDetectMonitorScaleChanges: unsafe extern "system" fn(
*mut core::ffi::c_void,
windows_core::BOOL,
) -> windows_core::HRESULT,
pub RasterizationScaleChanged: unsafe extern "system" fn(
*mut core::ffi::c_void,
*mut core::ffi::c_void,
*mut i64,
) -> windows_core::HRESULT,
pub RemoveRasterizationScaleChanged:
unsafe extern "system" fn(*mut core::ffi::c_void, i64) -> windows_core::HRESULT,
pub BoundsMode: unsafe extern "system" fn(
*mut core::ffi::c_void,
*mut COREWEBVIEW2_BOUNDS_MODE,
) -> windows_core::HRESULT,
pub SetBoundsMode: unsafe extern "system" fn(
*mut core::ffi::c_void,
COREWEBVIEW2_BOUNDS_MODE,
) -> windows_core::HRESULT,
}
pub trait ICoreWebView2Controller3_Impl: ICoreWebView2Controller2_Impl {
fn RasterizationScale(&self) -> windows_core::Result<f64>;
fn SetRasterizationScale(&self, scale: f64) -> windows_core::Result<()>;
fn ShouldDetectMonitorScaleChanges(&self) -> windows_core::Result<windows_core::BOOL>;
fn SetShouldDetectMonitorScaleChanges(
&self,
value: windows_core::BOOL,
) -> windows_core::Result<()>;
fn RasterizationScaleChanged(
&self,
eventhandler: windows_core::Ref<ICoreWebView2RasterizationScaleChangedEventHandler>,
) -> windows_core::Result<i64>;
fn RemoveRasterizationScaleChanged(&self, token: i64) -> windows_core::Result<()>;
fn BoundsMode(&self) -> windows_core::Result<COREWEBVIEW2_BOUNDS_MODE>;
fn SetBoundsMode(&self, boundsmode: COREWEBVIEW2_BOUNDS_MODE) -> windows_core::Result<()>;
}
impl ICoreWebView2Controller3_Vtbl {
pub const fn new<Identity: ICoreWebView2Controller3_Impl, const OFFSET: isize>() -> Self {
unsafe extern "system" fn RasterizationScale<
Identity: ICoreWebView2Controller3_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
scale: *mut f64,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
match ICoreWebView2Controller3_Impl::RasterizationScale(this) {
Ok(ok__) => {
scale.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn SetRasterizationScale<
Identity: ICoreWebView2Controller3_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
scale: f64,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
ICoreWebView2Controller3_Impl::SetRasterizationScale(
this,
core::mem::transmute_copy(&scale),
)
.into()
}
}
unsafe extern "system" fn ShouldDetectMonitorScaleChanges<
Identity: ICoreWebView2Controller3_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
value: *mut windows_core::BOOL,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
match ICoreWebView2Controller3_Impl::ShouldDetectMonitorScaleChanges(this) {
Ok(ok__) => {
value.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn SetShouldDetectMonitorScaleChanges<
Identity: ICoreWebView2Controller3_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
value: windows_core::BOOL,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
ICoreWebView2Controller3_Impl::SetShouldDetectMonitorScaleChanges(
this,
core::mem::transmute_copy(&value),
)
.into()
}
}
unsafe extern "system" fn RasterizationScaleChanged<
Identity: ICoreWebView2Controller3_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
eventhandler: *mut core::ffi::c_void,
token: *mut i64,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
match ICoreWebView2Controller3_Impl::RasterizationScaleChanged(
this,
core::mem::transmute_copy(&eventhandler),
) {
Ok(ok__) => {
token.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn RemoveRasterizationScaleChanged<
Identity: ICoreWebView2Controller3_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
token: i64,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
ICoreWebView2Controller3_Impl::RemoveRasterizationScaleChanged(
this,
core::mem::transmute_copy(&token),
)
.into()
}
}
unsafe extern "system" fn BoundsMode<
Identity: ICoreWebView2Controller3_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
boundsmode: *mut COREWEBVIEW2_BOUNDS_MODE,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
match ICoreWebView2Controller3_Impl::BoundsMode(this) {
Ok(ok__) => {
boundsmode.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn SetBoundsMode<
Identity: ICoreWebView2Controller3_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
boundsmode: COREWEBVIEW2_BOUNDS_MODE,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
ICoreWebView2Controller3_Impl::SetBoundsMode(
this,
core::mem::transmute_copy(&boundsmode),
)
.into()
}
}
Self {
base__: ICoreWebView2Controller2_Vtbl::new::<Identity, OFFSET>(),
RasterizationScale: RasterizationScale::<Identity, OFFSET>,
SetRasterizationScale: SetRasterizationScale::<Identity, OFFSET>,
ShouldDetectMonitorScaleChanges: ShouldDetectMonitorScaleChanges::<Identity, OFFSET>,
SetShouldDetectMonitorScaleChanges: SetShouldDetectMonitorScaleChanges::<
Identity,
OFFSET,
>,
RasterizationScaleChanged: RasterizationScaleChanged::<Identity, OFFSET>,
RemoveRasterizationScaleChanged: RemoveRasterizationScaleChanged::<Identity, OFFSET>,
BoundsMode: BoundsMode::<Identity, OFFSET>,
SetBoundsMode: SetBoundsMode::<Identity, OFFSET>,
}
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<ICoreWebView2Controller3 as windows_core::Interface>::IID
|| iid == &<ICoreWebView2Controller as windows_core::Interface>::IID
|| iid == &<ICoreWebView2Controller2 as windows_core::Interface>::IID
}
}
impl windows_core::RuntimeName for ICoreWebView2Controller3 {}
windows_core::imp::define_interface!(
ICoreWebView2Cookie,
ICoreWebView2Cookie_Vtbl,
0xad26d6be_1486_43e6_bf87_a2034006ca21
);
windows_core::imp::interface_hierarchy!(ICoreWebView2Cookie, windows_core::IUnknown);
impl ICoreWebView2Cookie {
pub unsafe fn Name(&self) -> windows_core::Result<windows_core::PWSTR> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).Name)(
windows_core::Interface::as_raw(self),
&mut result__,
)
.map(|| result__)
}
}
pub unsafe fn Value(&self) -> windows_core::Result<windows_core::PWSTR> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).Value)(
windows_core::Interface::as_raw(self),
&mut result__,
)
.map(|| result__)
}
}
pub unsafe fn SetValue<P0>(&self, value: P0) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCWSTR>,
{
unsafe {
(windows_core::Interface::vtable(self).SetValue)(
windows_core::Interface::as_raw(self),
value.param().abi(),
)
.ok()
}
}
pub unsafe fn Domain(&self) -> windows_core::Result<windows_core::PWSTR> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).Domain)(
windows_core::Interface::as_raw(self),
&mut result__,
)
.map(|| result__)
}
}
pub unsafe fn Path(&self) -> windows_core::Result<windows_core::PWSTR> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).Path)(
windows_core::Interface::as_raw(self),
&mut result__,
)
.map(|| result__)
}
}
pub unsafe fn Expires(&self) -> windows_core::Result<f64> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).Expires)(
windows_core::Interface::as_raw(self),
&mut result__,
)
.map(|| result__)
}
}
pub unsafe fn SetExpires(&self, expires: f64) -> windows_core::Result<()> {
unsafe {
(windows_core::Interface::vtable(self).SetExpires)(
windows_core::Interface::as_raw(self),
expires,
)
.ok()
}
}
pub unsafe fn IsHttpOnly(&self) -> windows_core::Result<windows_core::BOOL> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).IsHttpOnly)(
windows_core::Interface::as_raw(self),
&mut result__,
)
.map(|| result__)
}
}
pub unsafe fn SetIsHttpOnly(&self, ishttponly: bool) -> windows_core::Result<()> {
unsafe {
(windows_core::Interface::vtable(self).SetIsHttpOnly)(
windows_core::Interface::as_raw(self),
ishttponly.into(),
)
.ok()
}
}
pub unsafe fn SameSite(&self) -> windows_core::Result<COREWEBVIEW2_COOKIE_SAME_SITE_KIND> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).SameSite)(
windows_core::Interface::as_raw(self),
&mut result__,
)
.map(|| result__)
}
}
pub unsafe fn SetSameSite(
&self,
samesite: COREWEBVIEW2_COOKIE_SAME_SITE_KIND,
) -> windows_core::Result<()> {
unsafe {
(windows_core::Interface::vtable(self).SetSameSite)(
windows_core::Interface::as_raw(self),
samesite,
)
.ok()
}
}
pub unsafe fn IsSecure(&self) -> windows_core::Result<windows_core::BOOL> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).IsSecure)(
windows_core::Interface::as_raw(self),
&mut result__,
)
.map(|| result__)
}
}
pub unsafe fn SetIsSecure(&self, issecure: bool) -> windows_core::Result<()> {
unsafe {
(windows_core::Interface::vtable(self).SetIsSecure)(
windows_core::Interface::as_raw(self),
issecure.into(),
)
.ok()
}
}
pub unsafe fn IsSession(&self) -> windows_core::Result<windows_core::BOOL> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).IsSession)(
windows_core::Interface::as_raw(self),
&mut result__,
)
.map(|| result__)
}
}
}
#[repr(C)]
#[doc(hidden)]
pub struct ICoreWebView2Cookie_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
pub Name: unsafe extern "system" fn(
*mut core::ffi::c_void,
*mut windows_core::PWSTR,
) -> windows_core::HRESULT,
pub Value: unsafe extern "system" fn(
*mut core::ffi::c_void,
*mut windows_core::PWSTR,
) -> windows_core::HRESULT,
pub SetValue: unsafe extern "system" fn(
*mut core::ffi::c_void,
windows_core::PCWSTR,
) -> windows_core::HRESULT,
pub Domain: unsafe extern "system" fn(
*mut core::ffi::c_void,
*mut windows_core::PWSTR,
) -> windows_core::HRESULT,
pub Path: unsafe extern "system" fn(
*mut core::ffi::c_void,
*mut windows_core::PWSTR,
) -> windows_core::HRESULT,
pub Expires:
unsafe extern "system" fn(*mut core::ffi::c_void, *mut f64) -> windows_core::HRESULT,
pub SetExpires: unsafe extern "system" fn(*mut core::ffi::c_void, f64) -> windows_core::HRESULT,
pub IsHttpOnly: unsafe extern "system" fn(
*mut core::ffi::c_void,
*mut windows_core::BOOL,
) -> windows_core::HRESULT,
pub SetIsHttpOnly: unsafe extern "system" fn(
*mut core::ffi::c_void,
windows_core::BOOL,
) -> windows_core::HRESULT,
pub SameSite: unsafe extern "system" fn(
*mut core::ffi::c_void,
*mut COREWEBVIEW2_COOKIE_SAME_SITE_KIND,
) -> windows_core::HRESULT,
pub SetSameSite: unsafe extern "system" fn(
*mut core::ffi::c_void,
COREWEBVIEW2_COOKIE_SAME_SITE_KIND,
) -> windows_core::HRESULT,
pub IsSecure: unsafe extern "system" fn(
*mut core::ffi::c_void,
*mut windows_core::BOOL,
) -> windows_core::HRESULT,
pub SetIsSecure: unsafe extern "system" fn(
*mut core::ffi::c_void,
windows_core::BOOL,
) -> windows_core::HRESULT,
pub IsSession: unsafe extern "system" fn(
*mut core::ffi::c_void,
*mut windows_core::BOOL,
) -> windows_core::HRESULT,
}
pub trait ICoreWebView2Cookie_Impl: windows_core::IUnknownImpl {
fn Name(&self) -> windows_core::Result<windows_core::PWSTR>;
fn Value(&self) -> windows_core::Result<windows_core::PWSTR>;
fn SetValue(&self, value: &windows_core::PCWSTR) -> windows_core::Result<()>;
fn Domain(&self) -> windows_core::Result<windows_core::PWSTR>;
fn Path(&self) -> windows_core::Result<windows_core::PWSTR>;
fn Expires(&self) -> windows_core::Result<f64>;
fn SetExpires(&self, expires: f64) -> windows_core::Result<()>;
fn IsHttpOnly(&self) -> windows_core::Result<windows_core::BOOL>;
fn SetIsHttpOnly(&self, ishttponly: windows_core::BOOL) -> windows_core::Result<()>;
fn SameSite(&self) -> windows_core::Result<COREWEBVIEW2_COOKIE_SAME_SITE_KIND>;
fn SetSameSite(&self, samesite: COREWEBVIEW2_COOKIE_SAME_SITE_KIND)
-> windows_core::Result<()>;
fn IsSecure(&self) -> windows_core::Result<windows_core::BOOL>;
fn SetIsSecure(&self, issecure: windows_core::BOOL) -> windows_core::Result<()>;
fn IsSession(&self) -> windows_core::Result<windows_core::BOOL>;
}
impl ICoreWebView2Cookie_Vtbl {
pub const fn new<Identity: ICoreWebView2Cookie_Impl, const OFFSET: isize>() -> Self {
unsafe extern "system" fn Name<Identity: ICoreWebView2Cookie_Impl, const OFFSET: isize>(
this: *mut core::ffi::c_void,
name: *mut windows_core::PWSTR,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
match ICoreWebView2Cookie_Impl::Name(this) {
Ok(ok__) => {
name.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn Value<Identity: ICoreWebView2Cookie_Impl, const OFFSET: isize>(
this: *mut core::ffi::c_void,
value: *mut windows_core::PWSTR,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
match ICoreWebView2Cookie_Impl::Value(this) {
Ok(ok__) => {
value.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn SetValue<
Identity: ICoreWebView2Cookie_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
value: windows_core::PCWSTR,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
ICoreWebView2Cookie_Impl::SetValue(this, core::mem::transmute(&value)).into()
}
}
unsafe extern "system" fn Domain<
Identity: ICoreWebView2Cookie_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
domain: *mut windows_core::PWSTR,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
match ICoreWebView2Cookie_Impl::Domain(this) {
Ok(ok__) => {
domain.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn Path<Identity: ICoreWebView2Cookie_Impl, const OFFSET: isize>(
this: *mut core::ffi::c_void,
path: *mut windows_core::PWSTR,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
match ICoreWebView2Cookie_Impl::Path(this) {
Ok(ok__) => {
path.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn Expires<
Identity: ICoreWebView2Cookie_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
expires: *mut f64,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
match ICoreWebView2Cookie_Impl::Expires(this) {
Ok(ok__) => {
expires.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn SetExpires<
Identity: ICoreWebView2Cookie_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
expires: f64,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
ICoreWebView2Cookie_Impl::SetExpires(this, core::mem::transmute_copy(&expires))
.into()
}
}
unsafe extern "system" fn IsHttpOnly<
Identity: ICoreWebView2Cookie_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
ishttponly: *mut windows_core::BOOL,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
match ICoreWebView2Cookie_Impl::IsHttpOnly(this) {
Ok(ok__) => {
ishttponly.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn SetIsHttpOnly<
Identity: ICoreWebView2Cookie_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
ishttponly: windows_core::BOOL,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
ICoreWebView2Cookie_Impl::SetIsHttpOnly(
this,
core::mem::transmute_copy(&ishttponly),
)
.into()
}
}
unsafe extern "system" fn SameSite<
Identity: ICoreWebView2Cookie_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
samesite: *mut COREWEBVIEW2_COOKIE_SAME_SITE_KIND,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
match ICoreWebView2Cookie_Impl::SameSite(this) {
Ok(ok__) => {
samesite.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn SetSameSite<
Identity: ICoreWebView2Cookie_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
samesite: COREWEBVIEW2_COOKIE_SAME_SITE_KIND,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
ICoreWebView2Cookie_Impl::SetSameSite(this, core::mem::transmute_copy(&samesite))
.into()
}
}
unsafe extern "system" fn IsSecure<
Identity: ICoreWebView2Cookie_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
issecure: *mut windows_core::BOOL,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
match ICoreWebView2Cookie_Impl::IsSecure(this) {
Ok(ok__) => {
issecure.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn SetIsSecure<
Identity: ICoreWebView2Cookie_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
issecure: windows_core::BOOL,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
ICoreWebView2Cookie_Impl::SetIsSecure(this, core::mem::transmute_copy(&issecure))
.into()
}
}
unsafe extern "system" fn IsSession<
Identity: ICoreWebView2Cookie_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
issession: *mut windows_core::BOOL,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
match ICoreWebView2Cookie_Impl::IsSession(this) {
Ok(ok__) => {
issession.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
Self {
base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
Name: Name::<Identity, OFFSET>,
Value: Value::<Identity, OFFSET>,
SetValue: SetValue::<Identity, OFFSET>,
Domain: Domain::<Identity, OFFSET>,
Path: Path::<Identity, OFFSET>,
Expires: Expires::<Identity, OFFSET>,
SetExpires: SetExpires::<Identity, OFFSET>,
IsHttpOnly: IsHttpOnly::<Identity, OFFSET>,
SetIsHttpOnly: SetIsHttpOnly::<Identity, OFFSET>,
SameSite: SameSite::<Identity, OFFSET>,
SetSameSite: SetSameSite::<Identity, OFFSET>,
IsSecure: IsSecure::<Identity, OFFSET>,
SetIsSecure: SetIsSecure::<Identity, OFFSET>,
IsSession: IsSession::<Identity, OFFSET>,
}
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<ICoreWebView2Cookie as windows_core::Interface>::IID
}
}
impl windows_core::RuntimeName for ICoreWebView2Cookie {}
windows_core::imp::define_interface!(
ICoreWebView2CookieList,
ICoreWebView2CookieList_Vtbl,
0xf7f6f714_5d2a_43c6_9503_346ece02d186
);
windows_core::imp::interface_hierarchy!(ICoreWebView2CookieList, windows_core::IUnknown);
impl ICoreWebView2CookieList {
pub unsafe fn Count(&self) -> windows_core::Result<u32> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).Count)(
windows_core::Interface::as_raw(self),
&mut result__,
)
.map(|| result__)
}
}
pub unsafe fn GetValueAtIndex(&self, index: u32) -> windows_core::Result<ICoreWebView2Cookie> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetValueAtIndex)(
windows_core::Interface::as_raw(self),
index,
&mut result__,
)
.and_then(|| windows_core::Type::from_abi(result__))
}
}
}
#[repr(C)]
#[doc(hidden)]
pub struct ICoreWebView2CookieList_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
pub Count: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub GetValueAtIndex: unsafe extern "system" fn(
*mut core::ffi::c_void,
u32,
*mut *mut core::ffi::c_void,
) -> windows_core::HRESULT,
}
pub trait ICoreWebView2CookieList_Impl: windows_core::IUnknownImpl {
fn Count(&self) -> windows_core::Result<u32>;
fn GetValueAtIndex(&self, index: u32) -> windows_core::Result<ICoreWebView2Cookie>;
}
impl ICoreWebView2CookieList_Vtbl {
pub const fn new<Identity: ICoreWebView2CookieList_Impl, const OFFSET: isize>() -> Self {
unsafe extern "system" fn Count<
Identity: ICoreWebView2CookieList_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
count: *mut u32,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
match ICoreWebView2CookieList_Impl::Count(this) {
Ok(ok__) => {
count.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetValueAtIndex<
Identity: ICoreWebView2CookieList_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
index: u32,
cookie: *mut *mut core::ffi::c_void,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
match ICoreWebView2CookieList_Impl::GetValueAtIndex(
this,
core::mem::transmute_copy(&index),
) {
Ok(ok__) => {
cookie.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
Self {
base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
Count: Count::<Identity, OFFSET>,
GetValueAtIndex: GetValueAtIndex::<Identity, OFFSET>,
}
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<ICoreWebView2CookieList as windows_core::Interface>::IID
}
}
impl windows_core::RuntimeName for ICoreWebView2CookieList {}
windows_core::imp::define_interface!(
ICoreWebView2CookieManager,
ICoreWebView2CookieManager_Vtbl,
0x177cd9e7_b6f5_451a_94a0_5d7a3a4c4141
);
windows_core::imp::interface_hierarchy!(ICoreWebView2CookieManager, windows_core::IUnknown);
impl ICoreWebView2CookieManager {
pub unsafe fn CreateCookie<P0, P1, P2, P3>(
&self,
name: P0,
value: P1,
domain: P2,
path: P3,
) -> windows_core::Result<ICoreWebView2Cookie>
where
P0: windows_core::Param<windows_core::PCWSTR>,
P1: windows_core::Param<windows_core::PCWSTR>,
P2: windows_core::Param<windows_core::PCWSTR>,
P3: windows_core::Param<windows_core::PCWSTR>,
{
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).CreateCookie)(
windows_core::Interface::as_raw(self),
name.param().abi(),
value.param().abi(),
domain.param().abi(),
path.param().abi(),
&mut result__,
)
.and_then(|| windows_core::Type::from_abi(result__))
}
}
pub unsafe fn CopyCookie<P0>(
&self,
cookieparam: P0,
) -> windows_core::Result<ICoreWebView2Cookie>
where
P0: windows_core::Param<ICoreWebView2Cookie>,
{
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).CopyCookie)(
windows_core::Interface::as_raw(self),
cookieparam.param().abi(),
&mut result__,
)
.and_then(|| windows_core::Type::from_abi(result__))
}
}
pub unsafe fn GetCookies<P0, P1>(&self, uri: P0, handler: P1) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCWSTR>,
P1: windows_core::Param<ICoreWebView2GetCookiesCompletedHandler>,
{
unsafe {
(windows_core::Interface::vtable(self).GetCookies)(
windows_core::Interface::as_raw(self),
uri.param().abi(),
handler.param().abi(),
)
.ok()
}
}
pub unsafe fn AddOrUpdateCookie<P0>(&self, cookie: P0) -> windows_core::Result<()>
where
P0: windows_core::Param<ICoreWebView2Cookie>,
{
unsafe {
(windows_core::Interface::vtable(self).AddOrUpdateCookie)(
windows_core::Interface::as_raw(self),
cookie.param().abi(),
)
.ok()
}
}
pub unsafe fn DeleteCookie<P0>(&self, cookie: P0) -> windows_core::Result<()>
where
P0: windows_core::Param<ICoreWebView2Cookie>,
{
unsafe {
(windows_core::Interface::vtable(self).DeleteCookie)(
windows_core::Interface::as_raw(self),
cookie.param().abi(),
)
.ok()
}
}
pub unsafe fn DeleteCookies<P0, P1>(&self, name: P0, uri: P1) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCWSTR>,
P1: windows_core::Param<windows_core::PCWSTR>,
{
unsafe {
(windows_core::Interface::vtable(self).DeleteCookies)(
windows_core::Interface::as_raw(self),
name.param().abi(),
uri.param().abi(),
)
.ok()
}
}
pub unsafe fn DeleteCookiesWithDomainAndPath<P0, P1, P2>(
&self,
name: P0,
domain: P1,
path: P2,
) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCWSTR>,
P1: windows_core::Param<windows_core::PCWSTR>,
P2: windows_core::Param<windows_core::PCWSTR>,
{
unsafe {
(windows_core::Interface::vtable(self).DeleteCookiesWithDomainAndPath)(
windows_core::Interface::as_raw(self),
name.param().abi(),
domain.param().abi(),
path.param().abi(),
)
.ok()
}
}
pub unsafe fn DeleteAllCookies(&self) -> windows_core::Result<()> {
unsafe {
(windows_core::Interface::vtable(self).DeleteAllCookies)(
windows_core::Interface::as_raw(self),
)
.ok()
}
}
}
#[repr(C)]
#[doc(hidden)]
pub struct ICoreWebView2CookieManager_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
pub CreateCookie: unsafe extern "system" fn(
*mut core::ffi::c_void,
windows_core::PCWSTR,
windows_core::PCWSTR,
windows_core::PCWSTR,
windows_core::PCWSTR,
*mut *mut core::ffi::c_void,
) -> windows_core::HRESULT,
pub CopyCookie: unsafe extern "system" fn(
*mut core::ffi::c_void,
*mut core::ffi::c_void,
*mut *mut core::ffi::c_void,
) -> windows_core::HRESULT,
pub GetCookies: unsafe extern "system" fn(
*mut core::ffi::c_void,
windows_core::PCWSTR,
*mut core::ffi::c_void,
) -> windows_core::HRESULT,
pub AddOrUpdateCookie: unsafe extern "system" fn(
*mut core::ffi::c_void,
*mut core::ffi::c_void,
) -> windows_core::HRESULT,
pub DeleteCookie: unsafe extern "system" fn(
*mut core::ffi::c_void,
*mut core::ffi::c_void,
) -> windows_core::HRESULT,
pub DeleteCookies: unsafe extern "system" fn(
*mut core::ffi::c_void,
windows_core::PCWSTR,
windows_core::PCWSTR,
) -> windows_core::HRESULT,
pub DeleteCookiesWithDomainAndPath: unsafe extern "system" fn(
*mut core::ffi::c_void,
windows_core::PCWSTR,
windows_core::PCWSTR,
windows_core::PCWSTR,
) -> windows_core::HRESULT,
pub DeleteAllCookies:
unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
}
pub trait ICoreWebView2CookieManager_Impl: windows_core::IUnknownImpl {
fn CreateCookie(
&self,
name: &windows_core::PCWSTR,
value: &windows_core::PCWSTR,
domain: &windows_core::PCWSTR,
path: &windows_core::PCWSTR,
) -> windows_core::Result<ICoreWebView2Cookie>;
fn CopyCookie(
&self,
cookieparam: windows_core::Ref<ICoreWebView2Cookie>,
) -> windows_core::Result<ICoreWebView2Cookie>;
fn GetCookies(
&self,
uri: &windows_core::PCWSTR,
handler: windows_core::Ref<ICoreWebView2GetCookiesCompletedHandler>,
) -> windows_core::Result<()>;
fn AddOrUpdateCookie(
&self,
cookie: windows_core::Ref<ICoreWebView2Cookie>,
) -> windows_core::Result<()>;
fn DeleteCookie(
&self,
cookie: windows_core::Ref<ICoreWebView2Cookie>,
) -> windows_core::Result<()>;
fn DeleteCookies(
&self,
name: &windows_core::PCWSTR,
uri: &windows_core::PCWSTR,
) -> windows_core::Result<()>;
fn DeleteCookiesWithDomainAndPath(
&self,
name: &windows_core::PCWSTR,
domain: &windows_core::PCWSTR,
path: &windows_core::PCWSTR,
) -> windows_core::Result<()>;
fn DeleteAllCookies(&self) -> windows_core::Result<()>;
}
impl ICoreWebView2CookieManager_Vtbl {
pub const fn new<Identity: ICoreWebView2CookieManager_Impl, const OFFSET: isize>() -> Self {
unsafe extern "system" fn CreateCookie<
Identity: ICoreWebView2CookieManager_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
name: windows_core::PCWSTR,
value: windows_core::PCWSTR,
domain: windows_core::PCWSTR,
path: windows_core::PCWSTR,
cookie: *mut *mut core::ffi::c_void,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
match ICoreWebView2CookieManager_Impl::CreateCookie(
this,
core::mem::transmute(&name),
core::mem::transmute(&value),
core::mem::transmute(&domain),
core::mem::transmute(&path),
) {
Ok(ok__) => {
cookie.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn CopyCookie<
Identity: ICoreWebView2CookieManager_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
cookieparam: *mut core::ffi::c_void,
cookie: *mut *mut core::ffi::c_void,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
match ICoreWebView2CookieManager_Impl::CopyCookie(
this,
core::mem::transmute_copy(&cookieparam),
) {
Ok(ok__) => {
cookie.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetCookies<
Identity: ICoreWebView2CookieManager_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
uri: windows_core::PCWSTR,
handler: *mut core::ffi::c_void,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
ICoreWebView2CookieManager_Impl::GetCookies(
this,
core::mem::transmute(&uri),
core::mem::transmute_copy(&handler),
)
.into()
}
}
unsafe extern "system" fn AddOrUpdateCookie<
Identity: ICoreWebView2CookieManager_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
cookie: *mut core::ffi::c_void,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
ICoreWebView2CookieManager_Impl::AddOrUpdateCookie(
this,
core::mem::transmute_copy(&cookie),
)
.into()
}
}
unsafe extern "system" fn DeleteCookie<
Identity: ICoreWebView2CookieManager_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
cookie: *mut core::ffi::c_void,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
ICoreWebView2CookieManager_Impl::DeleteCookie(
this,
core::mem::transmute_copy(&cookie),
)
.into()
}
}
unsafe extern "system" fn DeleteCookies<
Identity: ICoreWebView2CookieManager_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
name: windows_core::PCWSTR,
uri: windows_core::PCWSTR,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
ICoreWebView2CookieManager_Impl::DeleteCookies(
this,
core::mem::transmute(&name),
core::mem::transmute(&uri),
)
.into()
}
}
unsafe extern "system" fn DeleteCookiesWithDomainAndPath<
Identity: ICoreWebView2CookieManager_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
name: windows_core::PCWSTR,
domain: windows_core::PCWSTR,
path: windows_core::PCWSTR,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
ICoreWebView2CookieManager_Impl::DeleteCookiesWithDomainAndPath(
this,
core::mem::transmute(&name),
core::mem::transmute(&domain),
core::mem::transmute(&path),
)
.into()
}
}
unsafe extern "system" fn DeleteAllCookies<
Identity: ICoreWebView2CookieManager_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
ICoreWebView2CookieManager_Impl::DeleteAllCookies(this).into()
}
}
Self {
base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
CreateCookie: CreateCookie::<Identity, OFFSET>,
CopyCookie: CopyCookie::<Identity, OFFSET>,
GetCookies: GetCookies::<Identity, OFFSET>,
AddOrUpdateCookie: AddOrUpdateCookie::<Identity, OFFSET>,
DeleteCookie: DeleteCookie::<Identity, OFFSET>,
DeleteCookies: DeleteCookies::<Identity, OFFSET>,
DeleteCookiesWithDomainAndPath: DeleteCookiesWithDomainAndPath::<Identity, OFFSET>,
DeleteAllCookies: DeleteAllCookies::<Identity, OFFSET>,
}
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<ICoreWebView2CookieManager as windows_core::Interface>::IID
}
}
impl windows_core::RuntimeName for ICoreWebView2CookieManager {}
windows_core::imp::define_interface!(
ICoreWebView2CreateCoreWebView2CompositionControllerCompletedHandler,
ICoreWebView2CreateCoreWebView2CompositionControllerCompletedHandler_Vtbl,
0x02fab84b_1428_4fb7_ad45_1b2e64736184
);
windows_core::imp::interface_hierarchy!(
ICoreWebView2CreateCoreWebView2CompositionControllerCompletedHandler,
windows_core::IUnknown
);
impl ICoreWebView2CreateCoreWebView2CompositionControllerCompletedHandler {
pub unsafe fn Invoke<P1>(
&self,
errorcode: windows_core::HRESULT,
webview: P1,
) -> windows_core::Result<()>
where
P1: windows_core::Param<ICoreWebView2CompositionController>,
{
unsafe {
(windows_core::Interface::vtable(self).Invoke)(
windows_core::Interface::as_raw(self),
errorcode,
webview.param().abi(),
)
.ok()
}
}
}
#[repr(C)]
#[doc(hidden)]
pub struct ICoreWebView2CreateCoreWebView2CompositionControllerCompletedHandler_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
pub Invoke: unsafe extern "system" fn(
*mut core::ffi::c_void,
windows_core::HRESULT,
*mut core::ffi::c_void,
) -> windows_core::HRESULT,
}
pub trait ICoreWebView2CreateCoreWebView2CompositionControllerCompletedHandler_Impl:
windows_core::IUnknownImpl
{
fn Invoke(
&self,
errorcode: windows_core::HRESULT,
webview: windows_core::Ref<ICoreWebView2CompositionController>,
) -> windows_core::Result<()>;
}
impl ICoreWebView2CreateCoreWebView2CompositionControllerCompletedHandler_Vtbl {
pub const fn new<
Identity: ICoreWebView2CreateCoreWebView2CompositionControllerCompletedHandler_Impl,
const OFFSET: isize,
>() -> Self {
unsafe extern "system" fn Invoke<
Identity: ICoreWebView2CreateCoreWebView2CompositionControllerCompletedHandler_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
errorcode: windows_core::HRESULT,
webview: *mut core::ffi::c_void,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
ICoreWebView2CreateCoreWebView2CompositionControllerCompletedHandler_Impl::Invoke(
this,
core::mem::transmute_copy(&errorcode),
core::mem::transmute_copy(&webview),
)
.into()
}
}
Self {
base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
Invoke: Invoke::<Identity, OFFSET>,
}
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == & < ICoreWebView2CreateCoreWebView2CompositionControllerCompletedHandler as windows_core::Interface >::IID
}
}
impl windows_core::RuntimeName
for ICoreWebView2CreateCoreWebView2CompositionControllerCompletedHandler
{
}
windows_core::imp::define_interface!(
ICoreWebView2CreateCoreWebView2ControllerCompletedHandler,
ICoreWebView2CreateCoreWebView2ControllerCompletedHandler_Vtbl,
0x6c4819f3_c9b7_4260_8127_c9f5bde7f68c
);
windows_core::imp::interface_hierarchy!(
ICoreWebView2CreateCoreWebView2ControllerCompletedHandler,
windows_core::IUnknown
);
impl ICoreWebView2CreateCoreWebView2ControllerCompletedHandler {
pub unsafe fn Invoke<P1>(
&self,
errorcode: windows_core::HRESULT,
createdcontroller: P1,
) -> windows_core::Result<()>
where
P1: windows_core::Param<ICoreWebView2Controller>,
{
unsafe {
(windows_core::Interface::vtable(self).Invoke)(
windows_core::Interface::as_raw(self),
errorcode,
createdcontroller.param().abi(),
)
.ok()
}
}
}
#[repr(C)]
#[doc(hidden)]
pub struct ICoreWebView2CreateCoreWebView2ControllerCompletedHandler_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
pub Invoke: unsafe extern "system" fn(
*mut core::ffi::c_void,
windows_core::HRESULT,
*mut core::ffi::c_void,
) -> windows_core::HRESULT,
}
pub trait ICoreWebView2CreateCoreWebView2ControllerCompletedHandler_Impl:
windows_core::IUnknownImpl
{
fn Invoke(
&self,
errorcode: windows_core::HRESULT,
createdcontroller: windows_core::Ref<ICoreWebView2Controller>,
) -> windows_core::Result<()>;
}
impl ICoreWebView2CreateCoreWebView2ControllerCompletedHandler_Vtbl {
pub const fn new<
Identity: ICoreWebView2CreateCoreWebView2ControllerCompletedHandler_Impl,
const OFFSET: isize,
>() -> Self {
unsafe extern "system" fn Invoke<
Identity: ICoreWebView2CreateCoreWebView2ControllerCompletedHandler_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
errorcode: windows_core::HRESULT,
createdcontroller: *mut core::ffi::c_void,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
ICoreWebView2CreateCoreWebView2ControllerCompletedHandler_Impl::Invoke(
this,
core::mem::transmute_copy(&errorcode),
core::mem::transmute_copy(&createdcontroller),
)
.into()
}
}
Self {
base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
Invoke: Invoke::<Identity, OFFSET>,
}
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == & < ICoreWebView2CreateCoreWebView2ControllerCompletedHandler as windows_core::Interface >::IID
}
}
impl windows_core::RuntimeName for ICoreWebView2CreateCoreWebView2ControllerCompletedHandler {}
windows_core::imp::define_interface!(
ICoreWebView2CreateCoreWebView2EnvironmentCompletedHandler,
ICoreWebView2CreateCoreWebView2EnvironmentCompletedHandler_Vtbl,
0x4e8a3389_c9d8_4bd2_b6b5_124fee6cc14d
);
windows_core::imp::interface_hierarchy!(
ICoreWebView2CreateCoreWebView2EnvironmentCompletedHandler,
windows_core::IUnknown
);
impl ICoreWebView2CreateCoreWebView2EnvironmentCompletedHandler {
pub unsafe fn Invoke<P1>(
&self,
errorcode: windows_core::HRESULT,
createdenvironment: P1,
) -> windows_core::Result<()>
where
P1: windows_core::Param<ICoreWebView2Environment>,
{
unsafe {
(windows_core::Interface::vtable(self).Invoke)(
windows_core::Interface::as_raw(self),
errorcode,
createdenvironment.param().abi(),
)
.ok()
}
}
}
#[repr(C)]
#[doc(hidden)]
pub struct ICoreWebView2CreateCoreWebView2EnvironmentCompletedHandler_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
pub Invoke: unsafe extern "system" fn(
*mut core::ffi::c_void,
windows_core::HRESULT,
*mut core::ffi::c_void,
) -> windows_core::HRESULT,
}
pub trait ICoreWebView2CreateCoreWebView2EnvironmentCompletedHandler_Impl:
windows_core::IUnknownImpl
{
fn Invoke(
&self,
errorcode: windows_core::HRESULT,
createdenvironment: windows_core::Ref<ICoreWebView2Environment>,
) -> windows_core::Result<()>;
}
impl ICoreWebView2CreateCoreWebView2EnvironmentCompletedHandler_Vtbl {
pub const fn new<
Identity: ICoreWebView2CreateCoreWebView2EnvironmentCompletedHandler_Impl,
const OFFSET: isize,
>() -> Self {
unsafe extern "system" fn Invoke<
Identity: ICoreWebView2CreateCoreWebView2EnvironmentCompletedHandler_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
errorcode: windows_core::HRESULT,
createdenvironment: *mut core::ffi::c_void,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
ICoreWebView2CreateCoreWebView2EnvironmentCompletedHandler_Impl::Invoke(
this,
core::mem::transmute_copy(&errorcode),
core::mem::transmute_copy(&createdenvironment),
)
.into()
}
}
Self {
base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
Invoke: Invoke::<Identity, OFFSET>,
}
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == & < ICoreWebView2CreateCoreWebView2EnvironmentCompletedHandler as windows_core::Interface >::IID
}
}
impl windows_core::RuntimeName for ICoreWebView2CreateCoreWebView2EnvironmentCompletedHandler {}
windows_core::imp::define_interface!(
ICoreWebView2CursorChangedEventHandler,
ICoreWebView2CursorChangedEventHandler_Vtbl,
0x9da43ccc_26e1_4dad_b56c_d8961c94c571
);
windows_core::imp::interface_hierarchy!(
ICoreWebView2CursorChangedEventHandler,
windows_core::IUnknown
);
impl ICoreWebView2CursorChangedEventHandler {
pub unsafe fn Invoke<P0, P1>(&self, sender: P0, args: P1) -> windows_core::Result<()>
where
P0: windows_core::Param<ICoreWebView2CompositionController>,
P1: windows_core::Param<windows_core::IUnknown>,
{
unsafe {
(windows_core::Interface::vtable(self).Invoke)(
windows_core::Interface::as_raw(self),
sender.param().abi(),
args.param().abi(),
)
.ok()
}
}
}
#[repr(C)]
#[doc(hidden)]
pub struct ICoreWebView2CursorChangedEventHandler_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
pub Invoke: unsafe extern "system" fn(
*mut core::ffi::c_void,
*mut core::ffi::c_void,
*mut core::ffi::c_void,
) -> windows_core::HRESULT,
}
pub trait ICoreWebView2CursorChangedEventHandler_Impl: windows_core::IUnknownImpl {
fn Invoke(
&self,
sender: windows_core::Ref<ICoreWebView2CompositionController>,
args: windows_core::Ref<windows_core::IUnknown>,
) -> windows_core::Result<()>;
}
impl ICoreWebView2CursorChangedEventHandler_Vtbl {
pub const fn new<Identity: ICoreWebView2CursorChangedEventHandler_Impl, const OFFSET: isize>(
) -> Self {
unsafe extern "system" fn Invoke<
Identity: ICoreWebView2CursorChangedEventHandler_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
sender: *mut core::ffi::c_void,
args: *mut core::ffi::c_void,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
ICoreWebView2CursorChangedEventHandler_Impl::Invoke(
this,
core::mem::transmute_copy(&sender),
core::mem::transmute_copy(&args),
)
.into()
}
}
Self {
base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
Invoke: Invoke::<Identity, OFFSET>,
}
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<ICoreWebView2CursorChangedEventHandler as windows_core::Interface>::IID
}
}
impl windows_core::RuntimeName for ICoreWebView2CursorChangedEventHandler {}
windows_core::imp::define_interface!(
ICoreWebView2DOMContentLoadedEventArgs,
ICoreWebView2DOMContentLoadedEventArgs_Vtbl,
0x16b1e21a_c503_44f2_84c9_70aba5031283
);
windows_core::imp::interface_hierarchy!(
ICoreWebView2DOMContentLoadedEventArgs,
windows_core::IUnknown
);
impl ICoreWebView2DOMContentLoadedEventArgs {
pub unsafe fn NavigationId(&self) -> windows_core::Result<u64> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).NavigationId)(
windows_core::Interface::as_raw(self),
&mut result__,
)
.map(|| result__)
}
}
}
#[repr(C)]
#[doc(hidden)]
pub struct ICoreWebView2DOMContentLoadedEventArgs_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
pub NavigationId:
unsafe extern "system" fn(*mut core::ffi::c_void, *mut u64) -> windows_core::HRESULT,
}
pub trait ICoreWebView2DOMContentLoadedEventArgs_Impl: windows_core::IUnknownImpl {
fn NavigationId(&self) -> windows_core::Result<u64>;
}
impl ICoreWebView2DOMContentLoadedEventArgs_Vtbl {
pub const fn new<Identity: ICoreWebView2DOMContentLoadedEventArgs_Impl, const OFFSET: isize>(
) -> Self {
unsafe extern "system" fn NavigationId<
Identity: ICoreWebView2DOMContentLoadedEventArgs_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
navigationid: *mut u64,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
match ICoreWebView2DOMContentLoadedEventArgs_Impl::NavigationId(this) {
Ok(ok__) => {
navigationid.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
Self {
base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
NavigationId: NavigationId::<Identity, OFFSET>,
}
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<ICoreWebView2DOMContentLoadedEventArgs as windows_core::Interface>::IID
}
}
impl windows_core::RuntimeName for ICoreWebView2DOMContentLoadedEventArgs {}
windows_core::imp::define_interface!(
ICoreWebView2DOMContentLoadedEventHandler,
ICoreWebView2DOMContentLoadedEventHandler_Vtbl,
0x4bac7e9c_199e_49ed_87ed_249303acf019
);
windows_core::imp::interface_hierarchy!(
ICoreWebView2DOMContentLoadedEventHandler,
windows_core::IUnknown
);
impl ICoreWebView2DOMContentLoadedEventHandler {
pub unsafe fn Invoke<P0, P1>(&self, sender: P0, args: P1) -> windows_core::Result<()>
where
P0: windows_core::Param<ICoreWebView2>,
P1: windows_core::Param<ICoreWebView2DOMContentLoadedEventArgs>,
{
unsafe {
(windows_core::Interface::vtable(self).Invoke)(
windows_core::Interface::as_raw(self),
sender.param().abi(),
args.param().abi(),
)
.ok()
}
}
}
#[repr(C)]
#[doc(hidden)]
pub struct ICoreWebView2DOMContentLoadedEventHandler_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
pub Invoke: unsafe extern "system" fn(
*mut core::ffi::c_void,
*mut core::ffi::c_void,
*mut core::ffi::c_void,
) -> windows_core::HRESULT,
}
pub trait ICoreWebView2DOMContentLoadedEventHandler_Impl: windows_core::IUnknownImpl {
fn Invoke(
&self,
sender: windows_core::Ref<ICoreWebView2>,
args: windows_core::Ref<ICoreWebView2DOMContentLoadedEventArgs>,
) -> windows_core::Result<()>;
}
impl ICoreWebView2DOMContentLoadedEventHandler_Vtbl {
pub const fn new<
Identity: ICoreWebView2DOMContentLoadedEventHandler_Impl,
const OFFSET: isize,
>() -> Self {
unsafe extern "system" fn Invoke<
Identity: ICoreWebView2DOMContentLoadedEventHandler_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
sender: *mut core::ffi::c_void,
args: *mut core::ffi::c_void,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
ICoreWebView2DOMContentLoadedEventHandler_Impl::Invoke(
this,
core::mem::transmute_copy(&sender),
core::mem::transmute_copy(&args),
)
.into()
}
}
Self {
base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
Invoke: Invoke::<Identity, OFFSET>,
}
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<ICoreWebView2DOMContentLoadedEventHandler as windows_core::Interface>::IID
}
}
impl windows_core::RuntimeName for ICoreWebView2DOMContentLoadedEventHandler {}
windows_core::imp::define_interface!(
ICoreWebView2Deferral,
ICoreWebView2Deferral_Vtbl,
0xc10e7f7b_b585_46f0_a623_8befbf3e4ee0
);
windows_core::imp::interface_hierarchy!(ICoreWebView2Deferral, windows_core::IUnknown);
impl ICoreWebView2Deferral {
pub unsafe fn Complete(&self) -> windows_core::Result<()> {
unsafe {
(windows_core::Interface::vtable(self).Complete)(windows_core::Interface::as_raw(self))
.ok()
}
}
}
#[repr(C)]
#[doc(hidden)]
pub struct ICoreWebView2Deferral_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
pub Complete: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
}
pub trait ICoreWebView2Deferral_Impl: windows_core::IUnknownImpl {
fn Complete(&self) -> windows_core::Result<()>;
}
impl ICoreWebView2Deferral_Vtbl {
pub const fn new<Identity: ICoreWebView2Deferral_Impl, const OFFSET: isize>() -> Self {
unsafe extern "system" fn Complete<
Identity: ICoreWebView2Deferral_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
ICoreWebView2Deferral_Impl::Complete(this).into()
}
}
Self {
base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
Complete: Complete::<Identity, OFFSET>,
}
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<ICoreWebView2Deferral as windows_core::Interface>::IID
}
}
impl windows_core::RuntimeName for ICoreWebView2Deferral {}
windows_core::imp::define_interface!(
ICoreWebView2DevToolsProtocolEventReceivedEventArgs,
ICoreWebView2DevToolsProtocolEventReceivedEventArgs_Vtbl,
0x653c2959_bb3a_4377_8632_b58ada4e66c4
);
windows_core::imp::interface_hierarchy!(
ICoreWebView2DevToolsProtocolEventReceivedEventArgs,
windows_core::IUnknown
);
impl ICoreWebView2DevToolsProtocolEventReceivedEventArgs {
pub unsafe fn ParameterObjectAsJson(&self) -> windows_core::Result<windows_core::PWSTR> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).ParameterObjectAsJson)(
windows_core::Interface::as_raw(self),
&mut result__,
)
.map(|| result__)
}
}
}
#[repr(C)]
#[doc(hidden)]
pub struct ICoreWebView2DevToolsProtocolEventReceivedEventArgs_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
pub ParameterObjectAsJson: unsafe extern "system" fn(
*mut core::ffi::c_void,
*mut windows_core::PWSTR,
) -> windows_core::HRESULT,
}
pub trait ICoreWebView2DevToolsProtocolEventReceivedEventArgs_Impl:
windows_core::IUnknownImpl
{
fn ParameterObjectAsJson(&self) -> windows_core::Result<windows_core::PWSTR>;
}
impl ICoreWebView2DevToolsProtocolEventReceivedEventArgs_Vtbl {
pub const fn new<
Identity: ICoreWebView2DevToolsProtocolEventReceivedEventArgs_Impl,
const OFFSET: isize,
>() -> Self {
unsafe extern "system" fn ParameterObjectAsJson<
Identity: ICoreWebView2DevToolsProtocolEventReceivedEventArgs_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
parameterobjectasjson: *mut windows_core::PWSTR,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
match ICoreWebView2DevToolsProtocolEventReceivedEventArgs_Impl:: ParameterObjectAsJson ( this , ) { Ok ( ok__ ) => { parameterobjectasjson . write ( core::mem::transmute ( ok__ ) ) ; windows_core::HRESULT ( 0 ) } Err ( err ) => err . into ( ) }
}
}
Self {
base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
ParameterObjectAsJson: ParameterObjectAsJson::<Identity, OFFSET>,
}
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == & < ICoreWebView2DevToolsProtocolEventReceivedEventArgs as windows_core::Interface >::IID
}
}
impl windows_core::RuntimeName for ICoreWebView2DevToolsProtocolEventReceivedEventArgs {}
windows_core::imp::define_interface!(
ICoreWebView2DevToolsProtocolEventReceivedEventHandler,
ICoreWebView2DevToolsProtocolEventReceivedEventHandler_Vtbl,
0xe2fda4be_5456_406c_a261_3d452138362c
);
windows_core::imp::interface_hierarchy!(
ICoreWebView2DevToolsProtocolEventReceivedEventHandler,
windows_core::IUnknown
);
impl ICoreWebView2DevToolsProtocolEventReceivedEventHandler {
pub unsafe fn Invoke<P0, P1>(&self, sender: P0, args: P1) -> windows_core::Result<()>
where
P0: windows_core::Param<ICoreWebView2>,
P1: windows_core::Param<ICoreWebView2DevToolsProtocolEventReceivedEventArgs>,
{
unsafe {
(windows_core::Interface::vtable(self).Invoke)(
windows_core::Interface::as_raw(self),
sender.param().abi(),
args.param().abi(),
)
.ok()
}
}
}
#[repr(C)]
#[doc(hidden)]
pub struct ICoreWebView2DevToolsProtocolEventReceivedEventHandler_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
pub Invoke: unsafe extern "system" fn(
*mut core::ffi::c_void,
*mut core::ffi::c_void,
*mut core::ffi::c_void,
) -> windows_core::HRESULT,
}
pub trait ICoreWebView2DevToolsProtocolEventReceivedEventHandler_Impl:
windows_core::IUnknownImpl
{
fn Invoke(
&self,
sender: windows_core::Ref<ICoreWebView2>,
args: windows_core::Ref<ICoreWebView2DevToolsProtocolEventReceivedEventArgs>,
) -> windows_core::Result<()>;
}
impl ICoreWebView2DevToolsProtocolEventReceivedEventHandler_Vtbl {
pub const fn new<
Identity: ICoreWebView2DevToolsProtocolEventReceivedEventHandler_Impl,
const OFFSET: isize,
>() -> Self {
unsafe extern "system" fn Invoke<
Identity: ICoreWebView2DevToolsProtocolEventReceivedEventHandler_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
sender: *mut core::ffi::c_void,
args: *mut core::ffi::c_void,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
ICoreWebView2DevToolsProtocolEventReceivedEventHandler_Impl::Invoke(
this,
core::mem::transmute_copy(&sender),
core::mem::transmute_copy(&args),
)
.into()
}
}
Self {
base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
Invoke: Invoke::<Identity, OFFSET>,
}
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == & < ICoreWebView2DevToolsProtocolEventReceivedEventHandler as windows_core::Interface >::IID
}
}
impl windows_core::RuntimeName for ICoreWebView2DevToolsProtocolEventReceivedEventHandler {}
windows_core::imp::define_interface!(
ICoreWebView2DevToolsProtocolEventReceiver,
ICoreWebView2DevToolsProtocolEventReceiver_Vtbl,
0xb32ca51a_8371_45e9_9317_af021d080367
);
windows_core::imp::interface_hierarchy!(
ICoreWebView2DevToolsProtocolEventReceiver,
windows_core::IUnknown
);
impl ICoreWebView2DevToolsProtocolEventReceiver {
pub unsafe fn DevToolsProtocolEventReceived<P0>(&self, handler: P0) -> windows_core::Result<i64>
where
P0: windows_core::Param<ICoreWebView2DevToolsProtocolEventReceivedEventHandler>,
{
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).DevToolsProtocolEventReceived)(
windows_core::Interface::as_raw(self),
handler.param().abi(),
&mut result__,
)
.map(|| result__)
}
}
pub unsafe fn RemoveDevToolsProtocolEventReceived(
&self,
token: i64,
) -> windows_core::Result<()> {
unsafe {
(windows_core::Interface::vtable(self).RemoveDevToolsProtocolEventReceived)(
windows_core::Interface::as_raw(self),
token,
)
.ok()
}
}
}
#[repr(C)]
#[doc(hidden)]
pub struct ICoreWebView2DevToolsProtocolEventReceiver_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
pub DevToolsProtocolEventReceived: unsafe extern "system" fn(
*mut core::ffi::c_void,
*mut core::ffi::c_void,
*mut i64,
) -> windows_core::HRESULT,
pub RemoveDevToolsProtocolEventReceived:
unsafe extern "system" fn(*mut core::ffi::c_void, i64) -> windows_core::HRESULT,
}
pub trait ICoreWebView2DevToolsProtocolEventReceiver_Impl: windows_core::IUnknownImpl {
fn DevToolsProtocolEventReceived(
&self,
handler: windows_core::Ref<ICoreWebView2DevToolsProtocolEventReceivedEventHandler>,
) -> windows_core::Result<i64>;
fn RemoveDevToolsProtocolEventReceived(&self, token: i64) -> windows_core::Result<()>;
}
impl ICoreWebView2DevToolsProtocolEventReceiver_Vtbl {
pub const fn new<
Identity: ICoreWebView2DevToolsProtocolEventReceiver_Impl,
const OFFSET: isize,
>() -> Self {
unsafe extern "system" fn DevToolsProtocolEventReceived<
Identity: ICoreWebView2DevToolsProtocolEventReceiver_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
handler: *mut core::ffi::c_void,
token: *mut i64,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
match ICoreWebView2DevToolsProtocolEventReceiver_Impl::DevToolsProtocolEventReceived(
this,
core::mem::transmute_copy(&handler),
) {
Ok(ok__) => {
token.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn RemoveDevToolsProtocolEventReceived<
Identity: ICoreWebView2DevToolsProtocolEventReceiver_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
token: i64,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
ICoreWebView2DevToolsProtocolEventReceiver_Impl:: RemoveDevToolsProtocolEventReceived ( this , core::mem::transmute_copy ( & token ) , ) . into ( )
}
}
Self {
base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
DevToolsProtocolEventReceived: DevToolsProtocolEventReceived::<Identity, OFFSET>,
RemoveDevToolsProtocolEventReceived: RemoveDevToolsProtocolEventReceived::<
Identity,
OFFSET,
>,
}
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<ICoreWebView2DevToolsProtocolEventReceiver as windows_core::Interface>::IID
}
}
impl windows_core::RuntimeName for ICoreWebView2DevToolsProtocolEventReceiver {}
windows_core::imp::define_interface!(
ICoreWebView2DocumentTitleChangedEventHandler,
ICoreWebView2DocumentTitleChangedEventHandler_Vtbl,
0xf5f2b923_953e_4042_9f95_f3a118e1afd4
);
windows_core::imp::interface_hierarchy!(
ICoreWebView2DocumentTitleChangedEventHandler,
windows_core::IUnknown
);
impl ICoreWebView2DocumentTitleChangedEventHandler {
pub unsafe fn Invoke<P0, P1>(&self, sender: P0, args: P1) -> windows_core::Result<()>
where
P0: windows_core::Param<ICoreWebView2>,
P1: windows_core::Param<windows_core::IUnknown>,
{
unsafe {
(windows_core::Interface::vtable(self).Invoke)(
windows_core::Interface::as_raw(self),
sender.param().abi(),
args.param().abi(),
)
.ok()
}
}
}
#[repr(C)]
#[doc(hidden)]
pub struct ICoreWebView2DocumentTitleChangedEventHandler_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
pub Invoke: unsafe extern "system" fn(
*mut core::ffi::c_void,
*mut core::ffi::c_void,
*mut core::ffi::c_void,
) -> windows_core::HRESULT,
}
pub trait ICoreWebView2DocumentTitleChangedEventHandler_Impl: windows_core::IUnknownImpl {
fn Invoke(
&self,
sender: windows_core::Ref<ICoreWebView2>,
args: windows_core::Ref<windows_core::IUnknown>,
) -> windows_core::Result<()>;
}
impl ICoreWebView2DocumentTitleChangedEventHandler_Vtbl {
pub const fn new<
Identity: ICoreWebView2DocumentTitleChangedEventHandler_Impl,
const OFFSET: isize,
>() -> Self {
unsafe extern "system" fn Invoke<
Identity: ICoreWebView2DocumentTitleChangedEventHandler_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
sender: *mut core::ffi::c_void,
args: *mut core::ffi::c_void,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
ICoreWebView2DocumentTitleChangedEventHandler_Impl::Invoke(
this,
core::mem::transmute_copy(&sender),
core::mem::transmute_copy(&args),
)
.into()
}
}
Self {
base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
Invoke: Invoke::<Identity, OFFSET>,
}
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<ICoreWebView2DocumentTitleChangedEventHandler as windows_core::Interface>::IID
}
}
impl windows_core::RuntimeName for ICoreWebView2DocumentTitleChangedEventHandler {}
windows_core::imp::define_interface!(
ICoreWebView2Environment,
ICoreWebView2Environment_Vtbl,
0xb96d755e_0319_4e92_a296_23436f46a1fc
);
windows_core::imp::interface_hierarchy!(ICoreWebView2Environment, windows_core::IUnknown);
impl ICoreWebView2Environment {
pub unsafe fn CreateCoreWebView2Controller<P1>(
&self,
parentwindow: windows::Win32::Foundation::HWND,
handler: P1,
) -> windows_core::Result<()>
where
P1: windows_core::Param<ICoreWebView2CreateCoreWebView2ControllerCompletedHandler>,
{
unsafe {
(windows_core::Interface::vtable(self).CreateCoreWebView2Controller)(
windows_core::Interface::as_raw(self),
parentwindow,
handler.param().abi(),
)
.ok()
}
}
pub unsafe fn CreateWebResourceResponse<P0, P2, P3>(
&self,
content: P0,
statuscode: i32,
reasonphrase: P2,
headers: P3,
) -> windows_core::Result<ICoreWebView2WebResourceResponse>
where
P0: windows_core::Param<windows::Win32::System::Com::IStream>,
P2: windows_core::Param<windows_core::PCWSTR>,
P3: windows_core::Param<windows_core::PCWSTR>,
{
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).CreateWebResourceResponse)(
windows_core::Interface::as_raw(self),
content.param().abi(),
statuscode,
reasonphrase.param().abi(),
headers.param().abi(),
&mut result__,
)
.and_then(|| windows_core::Type::from_abi(result__))
}
}
pub unsafe fn BrowserVersionString(&self) -> windows_core::Result<windows_core::PWSTR> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).BrowserVersionString)(
windows_core::Interface::as_raw(self),
&mut result__,
)
.map(|| result__)
}
}
pub unsafe fn NewBrowserVersionAvailable<P0>(
&self,
eventhandler: P0,
) -> windows_core::Result<i64>
where
P0: windows_core::Param<ICoreWebView2NewBrowserVersionAvailableEventHandler>,
{
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).NewBrowserVersionAvailable)(
windows_core::Interface::as_raw(self),
eventhandler.param().abi(),
&mut result__,
)
.map(|| result__)
}
}
pub unsafe fn RemoveNewBrowserVersionAvailable(&self, token: i64) -> windows_core::Result<()> {
unsafe {
(windows_core::Interface::vtable(self).RemoveNewBrowserVersionAvailable)(
windows_core::Interface::as_raw(self),
token,
)
.ok()
}
}
}
#[repr(C)]
#[doc(hidden)]
pub struct ICoreWebView2Environment_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
pub CreateCoreWebView2Controller: unsafe extern "system" fn(
*mut core::ffi::c_void,
windows::Win32::Foundation::HWND,
*mut core::ffi::c_void,
) -> windows_core::HRESULT,
pub CreateWebResourceResponse: unsafe extern "system" fn(
*mut core::ffi::c_void,
*mut core::ffi::c_void,
i32,
windows_core::PCWSTR,
windows_core::PCWSTR,
*mut *mut core::ffi::c_void,
) -> windows_core::HRESULT,
pub BrowserVersionString: unsafe extern "system" fn(
*mut core::ffi::c_void,
*mut windows_core::PWSTR,
) -> windows_core::HRESULT,
pub NewBrowserVersionAvailable: unsafe extern "system" fn(
*mut core::ffi::c_void,
*mut core::ffi::c_void,
*mut i64,
) -> windows_core::HRESULT,
pub RemoveNewBrowserVersionAvailable:
unsafe extern "system" fn(*mut core::ffi::c_void, i64) -> windows_core::HRESULT,
}
pub trait ICoreWebView2Environment_Impl: windows_core::IUnknownImpl {
fn CreateCoreWebView2Controller(
&self,
parentwindow: windows::Win32::Foundation::HWND,
handler: windows_core::Ref<ICoreWebView2CreateCoreWebView2ControllerCompletedHandler>,
) -> windows_core::Result<()>;
fn CreateWebResourceResponse(
&self,
content: windows_core::Ref<windows::Win32::System::Com::IStream>,
statuscode: i32,
reasonphrase: &windows_core::PCWSTR,
headers: &windows_core::PCWSTR,
) -> windows_core::Result<ICoreWebView2WebResourceResponse>;
fn BrowserVersionString(&self) -> windows_core::Result<windows_core::PWSTR>;
fn NewBrowserVersionAvailable(
&self,
eventhandler: windows_core::Ref<ICoreWebView2NewBrowserVersionAvailableEventHandler>,
) -> windows_core::Result<i64>;
fn RemoveNewBrowserVersionAvailable(&self, token: i64) -> windows_core::Result<()>;
}
impl ICoreWebView2Environment_Vtbl {
pub const fn new<Identity: ICoreWebView2Environment_Impl, const OFFSET: isize>() -> Self {
unsafe extern "system" fn CreateCoreWebView2Controller<
Identity: ICoreWebView2Environment_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
parentwindow: windows::Win32::Foundation::HWND,
handler: *mut core::ffi::c_void,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
ICoreWebView2Environment_Impl::CreateCoreWebView2Controller(
this,
core::mem::transmute_copy(&parentwindow),
core::mem::transmute_copy(&handler),
)
.into()
}
}
unsafe extern "system" fn CreateWebResourceResponse<
Identity: ICoreWebView2Environment_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
content: *mut core::ffi::c_void,
statuscode: i32,
reasonphrase: windows_core::PCWSTR,
headers: windows_core::PCWSTR,
response: *mut *mut core::ffi::c_void,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
match ICoreWebView2Environment_Impl::CreateWebResourceResponse(
this,
core::mem::transmute_copy(&content),
core::mem::transmute_copy(&statuscode),
core::mem::transmute(&reasonphrase),
core::mem::transmute(&headers),
) {
Ok(ok__) => {
response.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn BrowserVersionString<
Identity: ICoreWebView2Environment_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
versioninfo: *mut windows_core::PWSTR,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
match ICoreWebView2Environment_Impl::BrowserVersionString(this) {
Ok(ok__) => {
versioninfo.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn NewBrowserVersionAvailable<
Identity: ICoreWebView2Environment_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
eventhandler: *mut core::ffi::c_void,
token: *mut i64,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
match ICoreWebView2Environment_Impl::NewBrowserVersionAvailable(
this,
core::mem::transmute_copy(&eventhandler),
) {
Ok(ok__) => {
token.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn RemoveNewBrowserVersionAvailable<
Identity: ICoreWebView2Environment_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
token: i64,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
ICoreWebView2Environment_Impl::RemoveNewBrowserVersionAvailable(
this,
core::mem::transmute_copy(&token),
)
.into()
}
}
Self {
base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
CreateCoreWebView2Controller: CreateCoreWebView2Controller::<Identity, OFFSET>,
CreateWebResourceResponse: CreateWebResourceResponse::<Identity, OFFSET>,
BrowserVersionString: BrowserVersionString::<Identity, OFFSET>,
NewBrowserVersionAvailable: NewBrowserVersionAvailable::<Identity, OFFSET>,
RemoveNewBrowserVersionAvailable: RemoveNewBrowserVersionAvailable::<Identity, OFFSET>,
}
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<ICoreWebView2Environment as windows_core::Interface>::IID
}
}
impl windows_core::RuntimeName for ICoreWebView2Environment {}
windows_core::imp::define_interface!(
ICoreWebView2Environment2,
ICoreWebView2Environment2_Vtbl,
0x41f3632b_5ef4_404f_ad82_2d606c5a9a21
);
impl core::ops::Deref for ICoreWebView2Environment2 {
type Target = ICoreWebView2Environment;
fn deref(&self) -> &Self::Target {
unsafe { core::mem::transmute(self) }
}
}
windows_core::imp::interface_hierarchy!(
ICoreWebView2Environment2,
windows_core::IUnknown,
ICoreWebView2Environment
);
impl ICoreWebView2Environment2 {
pub unsafe fn CreateWebResourceRequest<P0, P1, P2, P3>(
&self,
uri: P0,
method: P1,
postdata: P2,
headers: P3,
) -> windows_core::Result<ICoreWebView2WebResourceRequest>
where
P0: windows_core::Param<windows_core::PCWSTR>,
P1: windows_core::Param<windows_core::PCWSTR>,
P2: windows_core::Param<windows::Win32::System::Com::IStream>,
P3: windows_core::Param<windows_core::PCWSTR>,
{
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).CreateWebResourceRequest)(
windows_core::Interface::as_raw(self),
uri.param().abi(),
method.param().abi(),
postdata.param().abi(),
headers.param().abi(),
&mut result__,
)
.and_then(|| windows_core::Type::from_abi(result__))
}
}
}
#[repr(C)]
#[doc(hidden)]
pub struct ICoreWebView2Environment2_Vtbl {
pub base__: ICoreWebView2Environment_Vtbl,
pub CreateWebResourceRequest: unsafe extern "system" fn(
*mut core::ffi::c_void,
windows_core::PCWSTR,
windows_core::PCWSTR,
*mut core::ffi::c_void,
windows_core::PCWSTR,
*mut *mut core::ffi::c_void,
) -> windows_core::HRESULT,
}
pub trait ICoreWebView2Environment2_Impl: ICoreWebView2Environment_Impl {
fn CreateWebResourceRequest(
&self,
uri: &windows_core::PCWSTR,
method: &windows_core::PCWSTR,
postdata: windows_core::Ref<windows::Win32::System::Com::IStream>,
headers: &windows_core::PCWSTR,
) -> windows_core::Result<ICoreWebView2WebResourceRequest>;
}
impl ICoreWebView2Environment2_Vtbl {
pub const fn new<Identity: ICoreWebView2Environment2_Impl, const OFFSET: isize>() -> Self {
unsafe extern "system" fn CreateWebResourceRequest<
Identity: ICoreWebView2Environment2_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
uri: windows_core::PCWSTR,
method: windows_core::PCWSTR,
postdata: *mut core::ffi::c_void,
headers: windows_core::PCWSTR,
request: *mut *mut core::ffi::c_void,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
match ICoreWebView2Environment2_Impl::CreateWebResourceRequest(
this,
core::mem::transmute(&uri),
core::mem::transmute(&method),
core::mem::transmute_copy(&postdata),
core::mem::transmute(&headers),
) {
Ok(ok__) => {
request.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
Self {
base__: ICoreWebView2Environment_Vtbl::new::<Identity, OFFSET>(),
CreateWebResourceRequest: CreateWebResourceRequest::<Identity, OFFSET>,
}
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<ICoreWebView2Environment2 as windows_core::Interface>::IID
|| iid == &<ICoreWebView2Environment as windows_core::Interface>::IID
}
}
impl windows_core::RuntimeName for ICoreWebView2Environment2 {}
windows_core::imp::define_interface!(
ICoreWebView2Environment3,
ICoreWebView2Environment3_Vtbl,
0x80a22ae3_be7c_4ce2_afe1_5a50056cdeeb
);
impl core::ops::Deref for ICoreWebView2Environment3 {
type Target = ICoreWebView2Environment2;
fn deref(&self) -> &Self::Target {
unsafe { core::mem::transmute(self) }
}
}
windows_core::imp::interface_hierarchy!(
ICoreWebView2Environment3,
windows_core::IUnknown,
ICoreWebView2Environment,
ICoreWebView2Environment2
);
impl ICoreWebView2Environment3 {
pub unsafe fn CreateCoreWebView2CompositionController<P1>(
&self,
parentwindow: windows::Win32::Foundation::HWND,
handler: P1,
) -> windows_core::Result<()>
where
P1: windows_core::Param<
ICoreWebView2CreateCoreWebView2CompositionControllerCompletedHandler,
>,
{
unsafe {
(windows_core::Interface::vtable(self).CreateCoreWebView2CompositionController)(
windows_core::Interface::as_raw(self),
parentwindow,
handler.param().abi(),
)
.ok()
}
}
pub unsafe fn CreateCoreWebView2PointerInfo(
&self,
) -> windows_core::Result<ICoreWebView2PointerInfo> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).CreateCoreWebView2PointerInfo)(
windows_core::Interface::as_raw(self),
&mut result__,
)
.and_then(|| windows_core::Type::from_abi(result__))
}
}
}
#[repr(C)]
#[doc(hidden)]
pub struct ICoreWebView2Environment3_Vtbl {
pub base__: ICoreWebView2Environment2_Vtbl,
pub CreateCoreWebView2CompositionController: unsafe extern "system" fn(
*mut core::ffi::c_void,
windows::Win32::Foundation::HWND,
*mut core::ffi::c_void,
)
-> windows_core::HRESULT,
pub CreateCoreWebView2PointerInfo: unsafe extern "system" fn(
*mut core::ffi::c_void,
*mut *mut core::ffi::c_void,
) -> windows_core::HRESULT,
}
pub trait ICoreWebView2Environment3_Impl: ICoreWebView2Environment2_Impl {
fn CreateCoreWebView2CompositionController(
&self,
parentwindow: windows::Win32::Foundation::HWND,
handler: windows_core::Ref<
ICoreWebView2CreateCoreWebView2CompositionControllerCompletedHandler,
>,
) -> windows_core::Result<()>;
fn CreateCoreWebView2PointerInfo(&self) -> windows_core::Result<ICoreWebView2PointerInfo>;
}
impl ICoreWebView2Environment3_Vtbl {
pub const fn new<Identity: ICoreWebView2Environment3_Impl, const OFFSET: isize>() -> Self {
unsafe extern "system" fn CreateCoreWebView2CompositionController<
Identity: ICoreWebView2Environment3_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
parentwindow: windows::Win32::Foundation::HWND,
handler: *mut core::ffi::c_void,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
ICoreWebView2Environment3_Impl::CreateCoreWebView2CompositionController(
this,
core::mem::transmute_copy(&parentwindow),
core::mem::transmute_copy(&handler),
)
.into()
}
}
unsafe extern "system" fn CreateCoreWebView2PointerInfo<
Identity: ICoreWebView2Environment3_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
pointerinfo: *mut *mut core::ffi::c_void,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
match ICoreWebView2Environment3_Impl::CreateCoreWebView2PointerInfo(this) {
Ok(ok__) => {
pointerinfo.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
Self {
base__: ICoreWebView2Environment2_Vtbl::new::<Identity, OFFSET>(),
CreateCoreWebView2CompositionController: CreateCoreWebView2CompositionController::<
Identity,
OFFSET,
>,
CreateCoreWebView2PointerInfo: CreateCoreWebView2PointerInfo::<Identity, OFFSET>,
}
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<ICoreWebView2Environment3 as windows_core::Interface>::IID
|| iid == &<ICoreWebView2Environment as windows_core::Interface>::IID
|| iid == &<ICoreWebView2Environment2 as windows_core::Interface>::IID
}
}
impl windows_core::RuntimeName for ICoreWebView2Environment3 {}
windows_core::imp::define_interface!(
ICoreWebView2Environment4,
ICoreWebView2Environment4_Vtbl,
0x20944379_6dcf_41d6_a0a0_abc0fc50de0d
);
impl core::ops::Deref for ICoreWebView2Environment4 {
type Target = ICoreWebView2Environment3;
fn deref(&self) -> &Self::Target {
unsafe { core::mem::transmute(self) }
}
}
windows_core::imp::interface_hierarchy!(
ICoreWebView2Environment4,
windows_core::IUnknown,
ICoreWebView2Environment,
ICoreWebView2Environment2,
ICoreWebView2Environment3
);
impl ICoreWebView2Environment4 {
pub unsafe fn GetProviderForHwnd(
&self,
hwnd: windows::Win32::Foundation::HWND,
) -> windows_core::Result<windows_core::IUnknown> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetProviderForHwnd)(
windows_core::Interface::as_raw(self),
hwnd,
&mut result__,
)
.and_then(|| windows_core::Type::from_abi(result__))
}
}
}
#[repr(C)]
#[doc(hidden)]
pub struct ICoreWebView2Environment4_Vtbl {
pub base__: ICoreWebView2Environment3_Vtbl,
pub GetProviderForHwnd: unsafe extern "system" fn(
*mut core::ffi::c_void,
windows::Win32::Foundation::HWND,
*mut *mut core::ffi::c_void,
) -> windows_core::HRESULT,
}
pub trait ICoreWebView2Environment4_Impl: ICoreWebView2Environment3_Impl {
fn GetProviderForHwnd(
&self,
hwnd: windows::Win32::Foundation::HWND,
) -> windows_core::Result<windows_core::IUnknown>;
}
impl ICoreWebView2Environment4_Vtbl {
pub const fn new<Identity: ICoreWebView2Environment4_Impl, const OFFSET: isize>() -> Self {
unsafe extern "system" fn GetProviderForHwnd<
Identity: ICoreWebView2Environment4_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
hwnd: windows::Win32::Foundation::HWND,
provider: *mut *mut core::ffi::c_void,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
match ICoreWebView2Environment4_Impl::GetProviderForHwnd(
this,
core::mem::transmute_copy(&hwnd),
) {
Ok(ok__) => {
provider.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
Self {
base__: ICoreWebView2Environment3_Vtbl::new::<Identity, OFFSET>(),
GetProviderForHwnd: GetProviderForHwnd::<Identity, OFFSET>,
}
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<ICoreWebView2Environment4 as windows_core::Interface>::IID
|| iid == &<ICoreWebView2Environment as windows_core::Interface>::IID
|| iid == &<ICoreWebView2Environment2 as windows_core::Interface>::IID
|| iid == &<ICoreWebView2Environment3 as windows_core::Interface>::IID
}
}
impl windows_core::RuntimeName for ICoreWebView2Environment4 {}
windows_core::imp::define_interface!(
ICoreWebView2EnvironmentInterop,
ICoreWebView2EnvironmentInterop_Vtbl,
0xee503a63_c1e2_4fbf_8a4d_824e95f8bb13
);
windows_core::imp::interface_hierarchy!(ICoreWebView2EnvironmentInterop, windows_core::IUnknown);
impl ICoreWebView2EnvironmentInterop {
pub unsafe fn GetProviderForHwnd(
&self,
hwnd: windows::Win32::Foundation::HWND,
) -> windows_core::Result<windows_core::IUnknown> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetProviderForHwnd)(
windows_core::Interface::as_raw(self),
hwnd,
&mut result__,
)
.and_then(|| windows_core::Type::from_abi(result__))
}
}
}
#[repr(C)]
#[doc(hidden)]
pub struct ICoreWebView2EnvironmentInterop_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
pub GetProviderForHwnd: unsafe extern "system" fn(
*mut core::ffi::c_void,
windows::Win32::Foundation::HWND,
*mut *mut core::ffi::c_void,
) -> windows_core::HRESULT,
}
pub trait ICoreWebView2EnvironmentInterop_Impl: windows_core::IUnknownImpl {
fn GetProviderForHwnd(
&self,
hwnd: windows::Win32::Foundation::HWND,
) -> windows_core::Result<windows_core::IUnknown>;
}
impl ICoreWebView2EnvironmentInterop_Vtbl {
pub const fn new<Identity: ICoreWebView2EnvironmentInterop_Impl, const OFFSET: isize>() -> Self
{
unsafe extern "system" fn GetProviderForHwnd<
Identity: ICoreWebView2EnvironmentInterop_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
hwnd: windows::Win32::Foundation::HWND,
provider: *mut *mut core::ffi::c_void,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
match ICoreWebView2EnvironmentInterop_Impl::GetProviderForHwnd(
this,
core::mem::transmute_copy(&hwnd),
) {
Ok(ok__) => {
provider.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
Self {
base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
GetProviderForHwnd: GetProviderForHwnd::<Identity, OFFSET>,
}
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<ICoreWebView2EnvironmentInterop as windows_core::Interface>::IID
}
}
impl windows_core::RuntimeName for ICoreWebView2EnvironmentInterop {}
windows_core::imp::define_interface!(
ICoreWebView2EnvironmentOptions,
ICoreWebView2EnvironmentOptions_Vtbl,
0x2fde08a8_1e9a_4766_8c05_95a9ceb9d1c5
);
windows_core::imp::interface_hierarchy!(ICoreWebView2EnvironmentOptions, windows_core::IUnknown);
impl ICoreWebView2EnvironmentOptions {
pub unsafe fn AdditionalBrowserArguments(&self) -> windows_core::Result<windows_core::PWSTR> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).AdditionalBrowserArguments)(
windows_core::Interface::as_raw(self),
&mut result__,
)
.map(|| result__)
}
}
pub unsafe fn SetAdditionalBrowserArguments<P0>(&self, value: P0) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCWSTR>,
{
unsafe {
(windows_core::Interface::vtable(self).SetAdditionalBrowserArguments)(
windows_core::Interface::as_raw(self),
value.param().abi(),
)
.ok()
}
}
pub unsafe fn Language(&self) -> windows_core::Result<windows_core::PWSTR> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).Language)(
windows_core::Interface::as_raw(self),
&mut result__,
)
.map(|| result__)
}
}
pub unsafe fn SetLanguage<P0>(&self, value: P0) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCWSTR>,
{
unsafe {
(windows_core::Interface::vtable(self).SetLanguage)(
windows_core::Interface::as_raw(self),
value.param().abi(),
)
.ok()
}
}
pub unsafe fn TargetCompatibleBrowserVersion(
&self,
) -> windows_core::Result<windows_core::PWSTR> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).TargetCompatibleBrowserVersion)(
windows_core::Interface::as_raw(self),
&mut result__,
)
.map(|| result__)
}
}
pub unsafe fn SetTargetCompatibleBrowserVersion<P0>(
&self,
value: P0,
) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCWSTR>,
{
unsafe {
(windows_core::Interface::vtable(self).SetTargetCompatibleBrowserVersion)(
windows_core::Interface::as_raw(self),
value.param().abi(),
)
.ok()
}
}
pub unsafe fn AllowSingleSignOnUsingOSPrimaryAccount(
&self,
) -> windows_core::Result<windows_core::BOOL> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).AllowSingleSignOnUsingOSPrimaryAccount)(
windows_core::Interface::as_raw(self),
&mut result__,
)
.map(|| result__)
}
}
pub unsafe fn SetAllowSingleSignOnUsingOSPrimaryAccount(
&self,
allow: bool,
) -> windows_core::Result<()> {
unsafe {
(windows_core::Interface::vtable(self).SetAllowSingleSignOnUsingOSPrimaryAccount)(
windows_core::Interface::as_raw(self),
allow.into(),
)
.ok()
}
}
}
#[repr(C)]
#[doc(hidden)]
pub struct ICoreWebView2EnvironmentOptions_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
pub AdditionalBrowserArguments: unsafe extern "system" fn(
*mut core::ffi::c_void,
*mut windows_core::PWSTR,
) -> windows_core::HRESULT,
pub SetAdditionalBrowserArguments: unsafe extern "system" fn(
*mut core::ffi::c_void,
windows_core::PCWSTR,
) -> windows_core::HRESULT,
pub Language: unsafe extern "system" fn(
*mut core::ffi::c_void,
*mut windows_core::PWSTR,
) -> windows_core::HRESULT,
pub SetLanguage: unsafe extern "system" fn(
*mut core::ffi::c_void,
windows_core::PCWSTR,
) -> windows_core::HRESULT,
pub TargetCompatibleBrowserVersion: unsafe extern "system" fn(
*mut core::ffi::c_void,
*mut windows_core::PWSTR,
) -> windows_core::HRESULT,
pub SetTargetCompatibleBrowserVersion: unsafe extern "system" fn(
*mut core::ffi::c_void,
windows_core::PCWSTR,
) -> windows_core::HRESULT,
pub AllowSingleSignOnUsingOSPrimaryAccount: unsafe extern "system" fn(
*mut core::ffi::c_void,
*mut windows_core::BOOL,
)
-> windows_core::HRESULT,
pub SetAllowSingleSignOnUsingOSPrimaryAccount:
unsafe extern "system" fn(
*mut core::ffi::c_void,
windows_core::BOOL,
) -> windows_core::HRESULT,
}
pub trait ICoreWebView2EnvironmentOptions_Impl: windows_core::IUnknownImpl {
fn AdditionalBrowserArguments(&self) -> windows_core::Result<windows_core::PWSTR>;
fn SetAdditionalBrowserArguments(
&self,
value: &windows_core::PCWSTR,
) -> windows_core::Result<()>;
fn Language(&self) -> windows_core::Result<windows_core::PWSTR>;
fn SetLanguage(&self, value: &windows_core::PCWSTR) -> windows_core::Result<()>;
fn TargetCompatibleBrowserVersion(&self) -> windows_core::Result<windows_core::PWSTR>;
fn SetTargetCompatibleBrowserVersion(
&self,
value: &windows_core::PCWSTR,
) -> windows_core::Result<()>;
fn AllowSingleSignOnUsingOSPrimaryAccount(&self) -> windows_core::Result<windows_core::BOOL>;
fn SetAllowSingleSignOnUsingOSPrimaryAccount(
&self,
allow: windows_core::BOOL,
) -> windows_core::Result<()>;
}
impl ICoreWebView2EnvironmentOptions_Vtbl {
pub const fn new<Identity: ICoreWebView2EnvironmentOptions_Impl, const OFFSET: isize>() -> Self
{
unsafe extern "system" fn AdditionalBrowserArguments<
Identity: ICoreWebView2EnvironmentOptions_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
value: *mut windows_core::PWSTR,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
match ICoreWebView2EnvironmentOptions_Impl::AdditionalBrowserArguments(this) {
Ok(ok__) => {
value.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn SetAdditionalBrowserArguments<
Identity: ICoreWebView2EnvironmentOptions_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
value: windows_core::PCWSTR,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
ICoreWebView2EnvironmentOptions_Impl::SetAdditionalBrowserArguments(
this,
core::mem::transmute(&value),
)
.into()
}
}
unsafe extern "system" fn Language<
Identity: ICoreWebView2EnvironmentOptions_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
value: *mut windows_core::PWSTR,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
match ICoreWebView2EnvironmentOptions_Impl::Language(this) {
Ok(ok__) => {
value.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn SetLanguage<
Identity: ICoreWebView2EnvironmentOptions_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
value: windows_core::PCWSTR,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
ICoreWebView2EnvironmentOptions_Impl::SetLanguage(
this,
core::mem::transmute(&value),
)
.into()
}
}
unsafe extern "system" fn TargetCompatibleBrowserVersion<
Identity: ICoreWebView2EnvironmentOptions_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
value: *mut windows_core::PWSTR,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
match ICoreWebView2EnvironmentOptions_Impl::TargetCompatibleBrowserVersion(this) {
Ok(ok__) => {
value.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn SetTargetCompatibleBrowserVersion<
Identity: ICoreWebView2EnvironmentOptions_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
value: windows_core::PCWSTR,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
ICoreWebView2EnvironmentOptions_Impl::SetTargetCompatibleBrowserVersion(
this,
core::mem::transmute(&value),
)
.into()
}
}
unsafe extern "system" fn AllowSingleSignOnUsingOSPrimaryAccount<
Identity: ICoreWebView2EnvironmentOptions_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
allow: *mut windows_core::BOOL,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
match ICoreWebView2EnvironmentOptions_Impl::AllowSingleSignOnUsingOSPrimaryAccount(
this,
) {
Ok(ok__) => {
allow.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn SetAllowSingleSignOnUsingOSPrimaryAccount<
Identity: ICoreWebView2EnvironmentOptions_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
allow: windows_core::BOOL,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
ICoreWebView2EnvironmentOptions_Impl::SetAllowSingleSignOnUsingOSPrimaryAccount(
this,
core::mem::transmute_copy(&allow),
)
.into()
}
}
Self {
base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
AdditionalBrowserArguments: AdditionalBrowserArguments::<Identity, OFFSET>,
SetAdditionalBrowserArguments: SetAdditionalBrowserArguments::<Identity, OFFSET>,
Language: Language::<Identity, OFFSET>,
SetLanguage: SetLanguage::<Identity, OFFSET>,
TargetCompatibleBrowserVersion: TargetCompatibleBrowserVersion::<Identity, OFFSET>,
SetTargetCompatibleBrowserVersion: SetTargetCompatibleBrowserVersion::<Identity, OFFSET>,
AllowSingleSignOnUsingOSPrimaryAccount: AllowSingleSignOnUsingOSPrimaryAccount::<
Identity,
OFFSET,
>,
SetAllowSingleSignOnUsingOSPrimaryAccount: SetAllowSingleSignOnUsingOSPrimaryAccount::<
Identity,
OFFSET,
>,
}
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<ICoreWebView2EnvironmentOptions as windows_core::Interface>::IID
}
}
impl windows_core::RuntimeName for ICoreWebView2EnvironmentOptions {}
windows_core::imp::define_interface!(
ICoreWebView2ExecuteScriptCompletedHandler,
ICoreWebView2ExecuteScriptCompletedHandler_Vtbl,
0x49511172_cc67_4bca_9923_137112f4c4cc
);
windows_core::imp::interface_hierarchy!(
ICoreWebView2ExecuteScriptCompletedHandler,
windows_core::IUnknown
);
impl ICoreWebView2ExecuteScriptCompletedHandler {
pub unsafe fn Invoke<P1>(
&self,
errorcode: windows_core::HRESULT,
resultobjectasjson: P1,
) -> windows_core::Result<()>
where
P1: windows_core::Param<windows_core::PCWSTR>,
{
unsafe {
(windows_core::Interface::vtable(self).Invoke)(
windows_core::Interface::as_raw(self),
errorcode,
resultobjectasjson.param().abi(),
)
.ok()
}
}
}
#[repr(C)]
#[doc(hidden)]
pub struct ICoreWebView2ExecuteScriptCompletedHandler_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
pub Invoke: unsafe extern "system" fn(
*mut core::ffi::c_void,
windows_core::HRESULT,
windows_core::PCWSTR,
) -> windows_core::HRESULT,
}
pub trait ICoreWebView2ExecuteScriptCompletedHandler_Impl: windows_core::IUnknownImpl {
fn Invoke(
&self,
errorcode: windows_core::HRESULT,
resultobjectasjson: &windows_core::PCWSTR,
) -> windows_core::Result<()>;
}
impl ICoreWebView2ExecuteScriptCompletedHandler_Vtbl {
pub const fn new<
Identity: ICoreWebView2ExecuteScriptCompletedHandler_Impl,
const OFFSET: isize,
>() -> Self {
unsafe extern "system" fn Invoke<
Identity: ICoreWebView2ExecuteScriptCompletedHandler_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
errorcode: windows_core::HRESULT,
resultobjectasjson: windows_core::PCWSTR,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
ICoreWebView2ExecuteScriptCompletedHandler_Impl::Invoke(
this,
core::mem::transmute_copy(&errorcode),
core::mem::transmute(&resultobjectasjson),
)
.into()
}
}
Self {
base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
Invoke: Invoke::<Identity, OFFSET>,
}
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<ICoreWebView2ExecuteScriptCompletedHandler as windows_core::Interface>::IID
}
}
impl windows_core::RuntimeName for ICoreWebView2ExecuteScriptCompletedHandler {}
windows_core::imp::define_interface!(
ICoreWebView2FocusChangedEventHandler,
ICoreWebView2FocusChangedEventHandler_Vtbl,
0x05ea24bd_6452_4926_9014_4b82b498135d
);
windows_core::imp::interface_hierarchy!(
ICoreWebView2FocusChangedEventHandler,
windows_core::IUnknown
);
impl ICoreWebView2FocusChangedEventHandler {
pub unsafe fn Invoke<P0, P1>(&self, sender: P0, args: P1) -> windows_core::Result<()>
where
P0: windows_core::Param<ICoreWebView2Controller>,
P1: windows_core::Param<windows_core::IUnknown>,
{
unsafe {
(windows_core::Interface::vtable(self).Invoke)(
windows_core::Interface::as_raw(self),
sender.param().abi(),
args.param().abi(),
)
.ok()
}
}
}
#[repr(C)]
#[doc(hidden)]
pub struct ICoreWebView2FocusChangedEventHandler_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
pub Invoke: unsafe extern "system" fn(
*mut core::ffi::c_void,
*mut core::ffi::c_void,
*mut core::ffi::c_void,
) -> windows_core::HRESULT,
}
pub trait ICoreWebView2FocusChangedEventHandler_Impl: windows_core::IUnknownImpl {
fn Invoke(
&self,
sender: windows_core::Ref<ICoreWebView2Controller>,
args: windows_core::Ref<windows_core::IUnknown>,
) -> windows_core::Result<()>;
}
impl ICoreWebView2FocusChangedEventHandler_Vtbl {
pub const fn new<Identity: ICoreWebView2FocusChangedEventHandler_Impl, const OFFSET: isize>(
) -> Self {
unsafe extern "system" fn Invoke<
Identity: ICoreWebView2FocusChangedEventHandler_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
sender: *mut core::ffi::c_void,
args: *mut core::ffi::c_void,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
ICoreWebView2FocusChangedEventHandler_Impl::Invoke(
this,
core::mem::transmute_copy(&sender),
core::mem::transmute_copy(&args),
)
.into()
}
}
Self {
base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
Invoke: Invoke::<Identity, OFFSET>,
}
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<ICoreWebView2FocusChangedEventHandler as windows_core::Interface>::IID
}
}
impl windows_core::RuntimeName for ICoreWebView2FocusChangedEventHandler {}
windows_core::imp::define_interface!(
ICoreWebView2FrameInfo,
ICoreWebView2FrameInfo_Vtbl,
0xda86b8a1_bdf3_4f11_9955_528cefa59727
);
windows_core::imp::interface_hierarchy!(ICoreWebView2FrameInfo, windows_core::IUnknown);
impl ICoreWebView2FrameInfo {
pub unsafe fn Name(&self) -> windows_core::Result<windows_core::PWSTR> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).Name)(
windows_core::Interface::as_raw(self),
&mut result__,
)
.map(|| result__)
}
}
pub unsafe fn Source(&self) -> windows_core::Result<windows_core::PWSTR> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).Source)(
windows_core::Interface::as_raw(self),
&mut result__,
)
.map(|| result__)
}
}
}
#[repr(C)]
#[doc(hidden)]
pub struct ICoreWebView2FrameInfo_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
pub Name: unsafe extern "system" fn(
*mut core::ffi::c_void,
*mut windows_core::PWSTR,
) -> windows_core::HRESULT,
pub Source: unsafe extern "system" fn(
*mut core::ffi::c_void,
*mut windows_core::PWSTR,
) -> windows_core::HRESULT,
}
pub trait ICoreWebView2FrameInfo_Impl: windows_core::IUnknownImpl {
fn Name(&self) -> windows_core::Result<windows_core::PWSTR>;
fn Source(&self) -> windows_core::Result<windows_core::PWSTR>;
}
impl ICoreWebView2FrameInfo_Vtbl {
pub const fn new<Identity: ICoreWebView2FrameInfo_Impl, const OFFSET: isize>() -> Self {
unsafe extern "system" fn Name<
Identity: ICoreWebView2FrameInfo_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
name: *mut windows_core::PWSTR,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
match ICoreWebView2FrameInfo_Impl::Name(this) {
Ok(ok__) => {
name.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn Source<
Identity: ICoreWebView2FrameInfo_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
source: *mut windows_core::PWSTR,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
match ICoreWebView2FrameInfo_Impl::Source(this) {
Ok(ok__) => {
source.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
Self {
base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
Name: Name::<Identity, OFFSET>,
Source: Source::<Identity, OFFSET>,
}
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<ICoreWebView2FrameInfo as windows_core::Interface>::IID
}
}
impl windows_core::RuntimeName for ICoreWebView2FrameInfo {}
windows_core::imp::define_interface!(
ICoreWebView2FrameInfoCollection,
ICoreWebView2FrameInfoCollection_Vtbl,
0x8f834154_d38e_4d90_affb_6800a7272839
);
windows_core::imp::interface_hierarchy!(ICoreWebView2FrameInfoCollection, windows_core::IUnknown);
impl ICoreWebView2FrameInfoCollection {
pub unsafe fn GetIterator(
&self,
) -> windows_core::Result<ICoreWebView2FrameInfoCollectionIterator> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetIterator)(
windows_core::Interface::as_raw(self),
&mut result__,
)
.and_then(|| windows_core::Type::from_abi(result__))
}
}
}
#[repr(C)]
#[doc(hidden)]
pub struct ICoreWebView2FrameInfoCollection_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
pub GetIterator: unsafe extern "system" fn(
*mut core::ffi::c_void,
*mut *mut core::ffi::c_void,
) -> windows_core::HRESULT,
}
pub trait ICoreWebView2FrameInfoCollection_Impl: windows_core::IUnknownImpl {
fn GetIterator(&self) -> windows_core::Result<ICoreWebView2FrameInfoCollectionIterator>;
}
impl ICoreWebView2FrameInfoCollection_Vtbl {
pub const fn new<Identity: ICoreWebView2FrameInfoCollection_Impl, const OFFSET: isize>() -> Self
{
unsafe extern "system" fn GetIterator<
Identity: ICoreWebView2FrameInfoCollection_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
iterator: *mut *mut core::ffi::c_void,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
match ICoreWebView2FrameInfoCollection_Impl::GetIterator(this) {
Ok(ok__) => {
iterator.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
Self {
base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
GetIterator: GetIterator::<Identity, OFFSET>,
}
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<ICoreWebView2FrameInfoCollection as windows_core::Interface>::IID
}
}
impl windows_core::RuntimeName for ICoreWebView2FrameInfoCollection {}
windows_core::imp::define_interface!(
ICoreWebView2FrameInfoCollectionIterator,
ICoreWebView2FrameInfoCollectionIterator_Vtbl,
0x1bf89e2d_1b2b_4629_b28f_05099b41bb03
);
windows_core::imp::interface_hierarchy!(
ICoreWebView2FrameInfoCollectionIterator,
windows_core::IUnknown
);
impl ICoreWebView2FrameInfoCollectionIterator {
pub unsafe fn HasCurrent(&self) -> windows_core::Result<windows_core::BOOL> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).HasCurrent)(
windows_core::Interface::as_raw(self),
&mut result__,
)
.map(|| result__)
}
}
pub unsafe fn GetCurrent(&self) -> windows_core::Result<ICoreWebView2FrameInfo> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetCurrent)(
windows_core::Interface::as_raw(self),
&mut result__,
)
.and_then(|| windows_core::Type::from_abi(result__))
}
}
pub unsafe fn MoveNext(&self, hasnext: *mut windows_core::BOOL) -> windows_core::Result<()> {
unsafe {
(windows_core::Interface::vtable(self).MoveNext)(
windows_core::Interface::as_raw(self),
hasnext as _,
)
.ok()
}
}
}
#[repr(C)]
#[doc(hidden)]
pub struct ICoreWebView2FrameInfoCollectionIterator_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
pub HasCurrent: unsafe extern "system" fn(
*mut core::ffi::c_void,
*mut windows_core::BOOL,
) -> windows_core::HRESULT,
pub GetCurrent: unsafe extern "system" fn(
*mut core::ffi::c_void,
*mut *mut core::ffi::c_void,
) -> windows_core::HRESULT,
pub MoveNext: unsafe extern "system" fn(
*mut core::ffi::c_void,
*mut windows_core::BOOL,
) -> windows_core::HRESULT,
}
pub trait ICoreWebView2FrameInfoCollectionIterator_Impl: windows_core::IUnknownImpl {
fn HasCurrent(&self) -> windows_core::Result<windows_core::BOOL>;
fn GetCurrent(&self) -> windows_core::Result<ICoreWebView2FrameInfo>;
fn MoveNext(&self, hasnext: *mut windows_core::BOOL) -> windows_core::Result<()>;
}
impl ICoreWebView2FrameInfoCollectionIterator_Vtbl {
pub const fn new<
Identity: ICoreWebView2FrameInfoCollectionIterator_Impl,
const OFFSET: isize,
>() -> Self {
unsafe extern "system" fn HasCurrent<
Identity: ICoreWebView2FrameInfoCollectionIterator_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
hascurrent: *mut windows_core::BOOL,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
match ICoreWebView2FrameInfoCollectionIterator_Impl::HasCurrent(this) {
Ok(ok__) => {
hascurrent.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetCurrent<
Identity: ICoreWebView2FrameInfoCollectionIterator_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
frameinfo: *mut *mut core::ffi::c_void,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
match ICoreWebView2FrameInfoCollectionIterator_Impl::GetCurrent(this) {
Ok(ok__) => {
frameinfo.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn MoveNext<
Identity: ICoreWebView2FrameInfoCollectionIterator_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
hasnext: *mut windows_core::BOOL,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
ICoreWebView2FrameInfoCollectionIterator_Impl::MoveNext(
this,
core::mem::transmute_copy(&hasnext),
)
.into()
}
}
Self {
base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
HasCurrent: HasCurrent::<Identity, OFFSET>,
GetCurrent: GetCurrent::<Identity, OFFSET>,
MoveNext: MoveNext::<Identity, OFFSET>,
}
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<ICoreWebView2FrameInfoCollectionIterator as windows_core::Interface>::IID
}
}
impl windows_core::RuntimeName for ICoreWebView2FrameInfoCollectionIterator {}
windows_core::imp::define_interface!(
ICoreWebView2GetCookiesCompletedHandler,
ICoreWebView2GetCookiesCompletedHandler_Vtbl,
0x5a4f5069_5c15_47c3_8646_f4de1c116670
);
windows_core::imp::interface_hierarchy!(
ICoreWebView2GetCookiesCompletedHandler,
windows_core::IUnknown
);
impl ICoreWebView2GetCookiesCompletedHandler {
pub unsafe fn Invoke<P1>(
&self,
result: windows_core::HRESULT,
cookielist: P1,
) -> windows_core::Result<()>
where
P1: windows_core::Param<ICoreWebView2CookieList>,
{
unsafe {
(windows_core::Interface::vtable(self).Invoke)(
windows_core::Interface::as_raw(self),
result,
cookielist.param().abi(),
)
.ok()
}
}
}
#[repr(C)]
#[doc(hidden)]
pub struct ICoreWebView2GetCookiesCompletedHandler_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
pub Invoke: unsafe extern "system" fn(
*mut core::ffi::c_void,
windows_core::HRESULT,
*mut core::ffi::c_void,
) -> windows_core::HRESULT,
}
pub trait ICoreWebView2GetCookiesCompletedHandler_Impl: windows_core::IUnknownImpl {
fn Invoke(
&self,
result: windows_core::HRESULT,
cookielist: windows_core::Ref<ICoreWebView2CookieList>,
) -> windows_core::Result<()>;
}
impl ICoreWebView2GetCookiesCompletedHandler_Vtbl {
pub const fn new<
Identity: ICoreWebView2GetCookiesCompletedHandler_Impl,
const OFFSET: isize,
>() -> Self {
unsafe extern "system" fn Invoke<
Identity: ICoreWebView2GetCookiesCompletedHandler_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
result: windows_core::HRESULT,
cookielist: *mut core::ffi::c_void,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
ICoreWebView2GetCookiesCompletedHandler_Impl::Invoke(
this,
core::mem::transmute_copy(&result),
core::mem::transmute_copy(&cookielist),
)
.into()
}
}
Self {
base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
Invoke: Invoke::<Identity, OFFSET>,
}
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<ICoreWebView2GetCookiesCompletedHandler as windows_core::Interface>::IID
}
}
impl windows_core::RuntimeName for ICoreWebView2GetCookiesCompletedHandler {}
windows_core::imp::define_interface!(
ICoreWebView2HistoryChangedEventHandler,
ICoreWebView2HistoryChangedEventHandler_Vtbl,
0xc79a420c_efd9_4058_9295_3e8b4bcab645
);
windows_core::imp::interface_hierarchy!(
ICoreWebView2HistoryChangedEventHandler,
windows_core::IUnknown
);
impl ICoreWebView2HistoryChangedEventHandler {
pub unsafe fn Invoke<P0, P1>(&self, sender: P0, args: P1) -> windows_core::Result<()>
where
P0: windows_core::Param<ICoreWebView2>,
P1: windows_core::Param<windows_core::IUnknown>,
{
unsafe {
(windows_core::Interface::vtable(self).Invoke)(
windows_core::Interface::as_raw(self),
sender.param().abi(),
args.param().abi(),
)
.ok()
}
}
}
#[repr(C)]
#[doc(hidden)]
pub struct ICoreWebView2HistoryChangedEventHandler_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
pub Invoke: unsafe extern "system" fn(
*mut core::ffi::c_void,
*mut core::ffi::c_void,
*mut core::ffi::c_void,
) -> windows_core::HRESULT,
}
pub trait ICoreWebView2HistoryChangedEventHandler_Impl: windows_core::IUnknownImpl {
fn Invoke(
&self,
sender: windows_core::Ref<ICoreWebView2>,
args: windows_core::Ref<windows_core::IUnknown>,
) -> windows_core::Result<()>;
}
impl ICoreWebView2HistoryChangedEventHandler_Vtbl {
pub const fn new<
Identity: ICoreWebView2HistoryChangedEventHandler_Impl,
const OFFSET: isize,
>() -> Self {
unsafe extern "system" fn Invoke<
Identity: ICoreWebView2HistoryChangedEventHandler_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
sender: *mut core::ffi::c_void,
args: *mut core::ffi::c_void,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
ICoreWebView2HistoryChangedEventHandler_Impl::Invoke(
this,
core::mem::transmute_copy(&sender),
core::mem::transmute_copy(&args),
)
.into()
}
}
Self {
base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
Invoke: Invoke::<Identity, OFFSET>,
}
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<ICoreWebView2HistoryChangedEventHandler as windows_core::Interface>::IID
}
}
impl windows_core::RuntimeName for ICoreWebView2HistoryChangedEventHandler {}
windows_core::imp::define_interface!(
ICoreWebView2HttpHeadersCollectionIterator,
ICoreWebView2HttpHeadersCollectionIterator_Vtbl,
0x0702fc30_f43b_47bb_ab52_a42cb552ad9f
);
windows_core::imp::interface_hierarchy!(
ICoreWebView2HttpHeadersCollectionIterator,
windows_core::IUnknown
);
impl ICoreWebView2HttpHeadersCollectionIterator {
pub unsafe fn GetCurrentHeader(
&self,
name: *mut windows_core::PWSTR,
value: *mut windows_core::PWSTR,
) -> windows_core::Result<()> {
unsafe {
(windows_core::Interface::vtable(self).GetCurrentHeader)(
windows_core::Interface::as_raw(self),
name as _,
value as _,
)
.ok()
}
}
pub unsafe fn HasCurrentHeader(&self) -> windows_core::Result<windows_core::BOOL> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).HasCurrentHeader)(
windows_core::Interface::as_raw(self),
&mut result__,
)
.map(|| result__)
}
}
pub unsafe fn MoveNext(&self, hasnext: *mut windows_core::BOOL) -> windows_core::Result<()> {
unsafe {
(windows_core::Interface::vtable(self).MoveNext)(
windows_core::Interface::as_raw(self),
hasnext as _,
)
.ok()
}
}
}
#[repr(C)]
#[doc(hidden)]
pub struct ICoreWebView2HttpHeadersCollectionIterator_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
pub GetCurrentHeader: unsafe extern "system" fn(
*mut core::ffi::c_void,
*mut windows_core::PWSTR,
*mut windows_core::PWSTR,
) -> windows_core::HRESULT,
pub HasCurrentHeader: unsafe extern "system" fn(
*mut core::ffi::c_void,
*mut windows_core::BOOL,
) -> windows_core::HRESULT,
pub MoveNext: unsafe extern "system" fn(
*mut core::ffi::c_void,
*mut windows_core::BOOL,
) -> windows_core::HRESULT,
}
pub trait ICoreWebView2HttpHeadersCollectionIterator_Impl: windows_core::IUnknownImpl {
fn GetCurrentHeader(
&self,
name: *mut windows_core::PWSTR,
value: *mut windows_core::PWSTR,
) -> windows_core::Result<()>;
fn HasCurrentHeader(&self) -> windows_core::Result<windows_core::BOOL>;
fn MoveNext(&self, hasnext: *mut windows_core::BOOL) -> windows_core::Result<()>;
}
impl ICoreWebView2HttpHeadersCollectionIterator_Vtbl {
pub const fn new<
Identity: ICoreWebView2HttpHeadersCollectionIterator_Impl,
const OFFSET: isize,
>() -> Self {
unsafe extern "system" fn GetCurrentHeader<
Identity: ICoreWebView2HttpHeadersCollectionIterator_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
name: *mut windows_core::PWSTR,
value: *mut windows_core::PWSTR,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
ICoreWebView2HttpHeadersCollectionIterator_Impl::GetCurrentHeader(
this,
core::mem::transmute_copy(&name),
core::mem::transmute_copy(&value),
)
.into()
}
}
unsafe extern "system" fn HasCurrentHeader<
Identity: ICoreWebView2HttpHeadersCollectionIterator_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
hascurrent: *mut windows_core::BOOL,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
match ICoreWebView2HttpHeadersCollectionIterator_Impl::HasCurrentHeader(this) {
Ok(ok__) => {
hascurrent.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn MoveNext<
Identity: ICoreWebView2HttpHeadersCollectionIterator_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
hasnext: *mut windows_core::BOOL,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
ICoreWebView2HttpHeadersCollectionIterator_Impl::MoveNext(
this,
core::mem::transmute_copy(&hasnext),
)
.into()
}
}
Self {
base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
GetCurrentHeader: GetCurrentHeader::<Identity, OFFSET>,
HasCurrentHeader: HasCurrentHeader::<Identity, OFFSET>,
MoveNext: MoveNext::<Identity, OFFSET>,
}
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<ICoreWebView2HttpHeadersCollectionIterator as windows_core::Interface>::IID
}
}
impl windows_core::RuntimeName for ICoreWebView2HttpHeadersCollectionIterator {}
windows_core::imp::define_interface!(
ICoreWebView2HttpRequestHeaders,
ICoreWebView2HttpRequestHeaders_Vtbl,
0xe86cac0e_5523_465c_b536_8fb9fc8c8c60
);
windows_core::imp::interface_hierarchy!(ICoreWebView2HttpRequestHeaders, windows_core::IUnknown);
impl ICoreWebView2HttpRequestHeaders {
pub unsafe fn GetHeader<P0>(
&self,
name: P0,
value: *mut windows_core::PWSTR,
) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCWSTR>,
{
unsafe {
(windows_core::Interface::vtable(self).GetHeader)(
windows_core::Interface::as_raw(self),
name.param().abi(),
value as _,
)
.ok()
}
}
pub unsafe fn GetHeaders<P0>(
&self,
name: P0,
) -> windows_core::Result<ICoreWebView2HttpHeadersCollectionIterator>
where
P0: windows_core::Param<windows_core::PCWSTR>,
{
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetHeaders)(
windows_core::Interface::as_raw(self),
name.param().abi(),
&mut result__,
)
.and_then(|| windows_core::Type::from_abi(result__))
}
}
pub unsafe fn Contains<P0>(
&self,
name: P0,
contains: *mut windows_core::BOOL,
) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCWSTR>,
{
unsafe {
(windows_core::Interface::vtable(self).Contains)(
windows_core::Interface::as_raw(self),
name.param().abi(),
contains as _,
)
.ok()
}
}
pub unsafe fn SetHeader<P0, P1>(&self, name: P0, value: P1) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCWSTR>,
P1: windows_core::Param<windows_core::PCWSTR>,
{
unsafe {
(windows_core::Interface::vtable(self).SetHeader)(
windows_core::Interface::as_raw(self),
name.param().abi(),
value.param().abi(),
)
.ok()
}
}
pub unsafe fn RemoveHeader<P0>(&self, name: P0) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCWSTR>,
{
unsafe {
(windows_core::Interface::vtable(self).RemoveHeader)(
windows_core::Interface::as_raw(self),
name.param().abi(),
)
.ok()
}
}
pub unsafe fn GetIterator(
&self,
) -> windows_core::Result<ICoreWebView2HttpHeadersCollectionIterator> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetIterator)(
windows_core::Interface::as_raw(self),
&mut result__,
)
.and_then(|| windows_core::Type::from_abi(result__))
}
}
}
#[repr(C)]
#[doc(hidden)]
pub struct ICoreWebView2HttpRequestHeaders_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
pub GetHeader: unsafe extern "system" fn(
*mut core::ffi::c_void,
windows_core::PCWSTR,
*mut windows_core::PWSTR,
) -> windows_core::HRESULT,
pub GetHeaders: unsafe extern "system" fn(
*mut core::ffi::c_void,
windows_core::PCWSTR,
*mut *mut core::ffi::c_void,
) -> windows_core::HRESULT,
pub Contains: unsafe extern "system" fn(
*mut core::ffi::c_void,
windows_core::PCWSTR,
*mut windows_core::BOOL,
) -> windows_core::HRESULT,
pub SetHeader: unsafe extern "system" fn(
*mut core::ffi::c_void,
windows_core::PCWSTR,
windows_core::PCWSTR,
) -> windows_core::HRESULT,
pub RemoveHeader: unsafe extern "system" fn(
*mut core::ffi::c_void,
windows_core::PCWSTR,
) -> windows_core::HRESULT,
pub GetIterator: unsafe extern "system" fn(
*mut core::ffi::c_void,
*mut *mut core::ffi::c_void,
) -> windows_core::HRESULT,
}
pub trait ICoreWebView2HttpRequestHeaders_Impl: windows_core::IUnknownImpl {
fn GetHeader(
&self,
name: &windows_core::PCWSTR,
value: *mut windows_core::PWSTR,
) -> windows_core::Result<()>;
fn GetHeaders(
&self,
name: &windows_core::PCWSTR,
) -> windows_core::Result<ICoreWebView2HttpHeadersCollectionIterator>;
fn Contains(
&self,
name: &windows_core::PCWSTR,
contains: *mut windows_core::BOOL,
) -> windows_core::Result<()>;
fn SetHeader(
&self,
name: &windows_core::PCWSTR,
value: &windows_core::PCWSTR,
) -> windows_core::Result<()>;
fn RemoveHeader(&self, name: &windows_core::PCWSTR) -> windows_core::Result<()>;
fn GetIterator(&self) -> windows_core::Result<ICoreWebView2HttpHeadersCollectionIterator>;
}
impl ICoreWebView2HttpRequestHeaders_Vtbl {
pub const fn new<Identity: ICoreWebView2HttpRequestHeaders_Impl, const OFFSET: isize>() -> Self
{
unsafe extern "system" fn GetHeader<
Identity: ICoreWebView2HttpRequestHeaders_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
name: windows_core::PCWSTR,
value: *mut windows_core::PWSTR,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
ICoreWebView2HttpRequestHeaders_Impl::GetHeader(
this,
core::mem::transmute(&name),
core::mem::transmute_copy(&value),
)
.into()
}
}
unsafe extern "system" fn GetHeaders<
Identity: ICoreWebView2HttpRequestHeaders_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
name: windows_core::PCWSTR,
iterator: *mut *mut core::ffi::c_void,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
match ICoreWebView2HttpRequestHeaders_Impl::GetHeaders(
this,
core::mem::transmute(&name),
) {
Ok(ok__) => {
iterator.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn Contains<
Identity: ICoreWebView2HttpRequestHeaders_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
name: windows_core::PCWSTR,
contains: *mut windows_core::BOOL,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
ICoreWebView2HttpRequestHeaders_Impl::Contains(
this,
core::mem::transmute(&name),
core::mem::transmute_copy(&contains),
)
.into()
}
}
unsafe extern "system" fn SetHeader<
Identity: ICoreWebView2HttpRequestHeaders_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
name: windows_core::PCWSTR,
value: windows_core::PCWSTR,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
ICoreWebView2HttpRequestHeaders_Impl::SetHeader(
this,
core::mem::transmute(&name),
core::mem::transmute(&value),
)
.into()
}
}
unsafe extern "system" fn RemoveHeader<
Identity: ICoreWebView2HttpRequestHeaders_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
name: windows_core::PCWSTR,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
ICoreWebView2HttpRequestHeaders_Impl::RemoveHeader(
this,
core::mem::transmute(&name),
)
.into()
}
}
unsafe extern "system" fn GetIterator<
Identity: ICoreWebView2HttpRequestHeaders_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
iterator: *mut *mut core::ffi::c_void,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
match ICoreWebView2HttpRequestHeaders_Impl::GetIterator(this) {
Ok(ok__) => {
iterator.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
Self {
base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
GetHeader: GetHeader::<Identity, OFFSET>,
GetHeaders: GetHeaders::<Identity, OFFSET>,
Contains: Contains::<Identity, OFFSET>,
SetHeader: SetHeader::<Identity, OFFSET>,
RemoveHeader: RemoveHeader::<Identity, OFFSET>,
GetIterator: GetIterator::<Identity, OFFSET>,
}
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<ICoreWebView2HttpRequestHeaders as windows_core::Interface>::IID
}
}
impl windows_core::RuntimeName for ICoreWebView2HttpRequestHeaders {}
windows_core::imp::define_interface!(
ICoreWebView2HttpResponseHeaders,
ICoreWebView2HttpResponseHeaders_Vtbl,
0x03c5ff5a_9b45_4a88_881c_89a9f328619c
);
windows_core::imp::interface_hierarchy!(ICoreWebView2HttpResponseHeaders, windows_core::IUnknown);
impl ICoreWebView2HttpResponseHeaders {
pub unsafe fn AppendHeader<P0, P1>(&self, name: P0, value: P1) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCWSTR>,
P1: windows_core::Param<windows_core::PCWSTR>,
{
unsafe {
(windows_core::Interface::vtable(self).AppendHeader)(
windows_core::Interface::as_raw(self),
name.param().abi(),
value.param().abi(),
)
.ok()
}
}
pub unsafe fn Contains<P0>(
&self,
name: P0,
contains: *mut windows_core::BOOL,
) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCWSTR>,
{
unsafe {
(windows_core::Interface::vtable(self).Contains)(
windows_core::Interface::as_raw(self),
name.param().abi(),
contains as _,
)
.ok()
}
}
pub unsafe fn GetHeader<P0>(
&self,
name: P0,
value: *mut windows_core::PWSTR,
) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCWSTR>,
{
unsafe {
(windows_core::Interface::vtable(self).GetHeader)(
windows_core::Interface::as_raw(self),
name.param().abi(),
value as _,
)
.ok()
}
}
pub unsafe fn GetHeaders<P0>(
&self,
name: P0,
) -> windows_core::Result<ICoreWebView2HttpHeadersCollectionIterator>
where
P0: windows_core::Param<windows_core::PCWSTR>,
{
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetHeaders)(
windows_core::Interface::as_raw(self),
name.param().abi(),
&mut result__,
)
.and_then(|| windows_core::Type::from_abi(result__))
}
}
pub unsafe fn GetIterator(
&self,
) -> windows_core::Result<ICoreWebView2HttpHeadersCollectionIterator> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetIterator)(
windows_core::Interface::as_raw(self),
&mut result__,
)
.and_then(|| windows_core::Type::from_abi(result__))
}
}
}
#[repr(C)]
#[doc(hidden)]
pub struct ICoreWebView2HttpResponseHeaders_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
pub AppendHeader: unsafe extern "system" fn(
*mut core::ffi::c_void,
windows_core::PCWSTR,
windows_core::PCWSTR,
) -> windows_core::HRESULT,
pub Contains: unsafe extern "system" fn(
*mut core::ffi::c_void,
windows_core::PCWSTR,
*mut windows_core::BOOL,
) -> windows_core::HRESULT,
pub GetHeader: unsafe extern "system" fn(
*mut core::ffi::c_void,
windows_core::PCWSTR,
*mut windows_core::PWSTR,
) -> windows_core::HRESULT,
pub GetHeaders: unsafe extern "system" fn(
*mut core::ffi::c_void,
windows_core::PCWSTR,
*mut *mut core::ffi::c_void,
) -> windows_core::HRESULT,
pub GetIterator: unsafe extern "system" fn(
*mut core::ffi::c_void,
*mut *mut core::ffi::c_void,
) -> windows_core::HRESULT,
}
pub trait ICoreWebView2HttpResponseHeaders_Impl: windows_core::IUnknownImpl {
fn AppendHeader(
&self,
name: &windows_core::PCWSTR,
value: &windows_core::PCWSTR,
) -> windows_core::Result<()>;
fn Contains(
&self,
name: &windows_core::PCWSTR,
contains: *mut windows_core::BOOL,
) -> windows_core::Result<()>;
fn GetHeader(
&self,
name: &windows_core::PCWSTR,
value: *mut windows_core::PWSTR,
) -> windows_core::Result<()>;
fn GetHeaders(
&self,
name: &windows_core::PCWSTR,
) -> windows_core::Result<ICoreWebView2HttpHeadersCollectionIterator>;
fn GetIterator(&self) -> windows_core::Result<ICoreWebView2HttpHeadersCollectionIterator>;
}
impl ICoreWebView2HttpResponseHeaders_Vtbl {
pub const fn new<Identity: ICoreWebView2HttpResponseHeaders_Impl, const OFFSET: isize>() -> Self
{
unsafe extern "system" fn AppendHeader<
Identity: ICoreWebView2HttpResponseHeaders_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
name: windows_core::PCWSTR,
value: windows_core::PCWSTR,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
ICoreWebView2HttpResponseHeaders_Impl::AppendHeader(
this,
core::mem::transmute(&name),
core::mem::transmute(&value),
)
.into()
}
}
unsafe extern "system" fn Contains<
Identity: ICoreWebView2HttpResponseHeaders_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
name: windows_core::PCWSTR,
contains: *mut windows_core::BOOL,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
ICoreWebView2HttpResponseHeaders_Impl::Contains(
this,
core::mem::transmute(&name),
core::mem::transmute_copy(&contains),
)
.into()
}
}
unsafe extern "system" fn GetHeader<
Identity: ICoreWebView2HttpResponseHeaders_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
name: windows_core::PCWSTR,
value: *mut windows_core::PWSTR,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
ICoreWebView2HttpResponseHeaders_Impl::GetHeader(
this,
core::mem::transmute(&name),
core::mem::transmute_copy(&value),
)
.into()
}
}
unsafe extern "system" fn GetHeaders<
Identity: ICoreWebView2HttpResponseHeaders_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
name: windows_core::PCWSTR,
iterator: *mut *mut core::ffi::c_void,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
match ICoreWebView2HttpResponseHeaders_Impl::GetHeaders(
this,
core::mem::transmute(&name),
) {
Ok(ok__) => {
iterator.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetIterator<
Identity: ICoreWebView2HttpResponseHeaders_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
iterator: *mut *mut core::ffi::c_void,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
match ICoreWebView2HttpResponseHeaders_Impl::GetIterator(this) {
Ok(ok__) => {
iterator.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
Self {
base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
AppendHeader: AppendHeader::<Identity, OFFSET>,
Contains: Contains::<Identity, OFFSET>,
GetHeader: GetHeader::<Identity, OFFSET>,
GetHeaders: GetHeaders::<Identity, OFFSET>,
GetIterator: GetIterator::<Identity, OFFSET>,
}
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<ICoreWebView2HttpResponseHeaders as windows_core::Interface>::IID
}
}
impl windows_core::RuntimeName for ICoreWebView2HttpResponseHeaders {}
windows_core::imp::define_interface!(
ICoreWebView2Interop,
ICoreWebView2Interop_Vtbl,
0x912b34a7_d10b_49c4_af18_7cb7e604e01a
);
windows_core::imp::interface_hierarchy!(ICoreWebView2Interop, windows_core::IUnknown);
impl ICoreWebView2Interop {
pub unsafe fn AddHostObjectToScript<P0>(
&self,
name: P0,
object: *mut windows::Win32::System::Variant::VARIANT,
) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCWSTR>,
{
unsafe {
(windows_core::Interface::vtable(self).AddHostObjectToScript)(
windows_core::Interface::as_raw(self),
name.param().abi(),
core::mem::transmute(object),
)
.ok()
}
}
}
#[repr(C)]
#[doc(hidden)]
pub struct ICoreWebView2Interop_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
pub AddHostObjectToScript: unsafe extern "system" fn(
*mut core::ffi::c_void,
windows_core::PCWSTR,
*mut windows::Win32::System::Variant::VARIANT,
) -> windows_core::HRESULT,
}
pub trait ICoreWebView2Interop_Impl: windows_core::IUnknownImpl {
fn AddHostObjectToScript(
&self,
name: &windows_core::PCWSTR,
object: *mut windows::Win32::System::Variant::VARIANT,
) -> windows_core::Result<()>;
}
impl ICoreWebView2Interop_Vtbl {
pub const fn new<Identity: ICoreWebView2Interop_Impl, const OFFSET: isize>() -> Self {
unsafe extern "system" fn AddHostObjectToScript<
Identity: ICoreWebView2Interop_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
name: windows_core::PCWSTR,
object: *mut windows::Win32::System::Variant::VARIANT,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
ICoreWebView2Interop_Impl::AddHostObjectToScript(
this,
core::mem::transmute(&name),
core::mem::transmute_copy(&object),
)
.into()
}
}
Self {
base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
AddHostObjectToScript: AddHostObjectToScript::<Identity, OFFSET>,
}
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<ICoreWebView2Interop as windows_core::Interface>::IID
}
}
impl windows_core::RuntimeName for ICoreWebView2Interop {}
windows_core::imp::define_interface!(
ICoreWebView2MoveFocusRequestedEventArgs,
ICoreWebView2MoveFocusRequestedEventArgs_Vtbl,
0x2d6aa13b_3839_4a15_92fc_d88b3c0d9c9d
);
windows_core::imp::interface_hierarchy!(
ICoreWebView2MoveFocusRequestedEventArgs,
windows_core::IUnknown
);
impl ICoreWebView2MoveFocusRequestedEventArgs {
pub unsafe fn Reason(&self) -> windows_core::Result<COREWEBVIEW2_MOVE_FOCUS_REASON> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).Reason)(
windows_core::Interface::as_raw(self),
&mut result__,
)
.map(|| result__)
}
}
pub unsafe fn Handled(&self) -> windows_core::Result<windows_core::BOOL> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).Handled)(
windows_core::Interface::as_raw(self),
&mut result__,
)
.map(|| result__)
}
}
pub unsafe fn SetHandled(&self, value: bool) -> windows_core::Result<()> {
unsafe {
(windows_core::Interface::vtable(self).SetHandled)(
windows_core::Interface::as_raw(self),
value.into(),
)
.ok()
}
}
}
#[repr(C)]
#[doc(hidden)]
pub struct ICoreWebView2MoveFocusRequestedEventArgs_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
pub Reason: unsafe extern "system" fn(
*mut core::ffi::c_void,
*mut COREWEBVIEW2_MOVE_FOCUS_REASON,
) -> windows_core::HRESULT,
pub Handled: unsafe extern "system" fn(
*mut core::ffi::c_void,
*mut windows_core::BOOL,
) -> windows_core::HRESULT,
pub SetHandled: unsafe extern "system" fn(
*mut core::ffi::c_void,
windows_core::BOOL,
) -> windows_core::HRESULT,
}
pub trait ICoreWebView2MoveFocusRequestedEventArgs_Impl: windows_core::IUnknownImpl {
fn Reason(&self) -> windows_core::Result<COREWEBVIEW2_MOVE_FOCUS_REASON>;
fn Handled(&self) -> windows_core::Result<windows_core::BOOL>;
fn SetHandled(&self, value: windows_core::BOOL) -> windows_core::Result<()>;
}
impl ICoreWebView2MoveFocusRequestedEventArgs_Vtbl {
pub const fn new<
Identity: ICoreWebView2MoveFocusRequestedEventArgs_Impl,
const OFFSET: isize,
>() -> Self {
unsafe extern "system" fn Reason<
Identity: ICoreWebView2MoveFocusRequestedEventArgs_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
reason: *mut COREWEBVIEW2_MOVE_FOCUS_REASON,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
match ICoreWebView2MoveFocusRequestedEventArgs_Impl::Reason(this) {
Ok(ok__) => {
reason.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn Handled<
Identity: ICoreWebView2MoveFocusRequestedEventArgs_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
value: *mut windows_core::BOOL,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
match ICoreWebView2MoveFocusRequestedEventArgs_Impl::Handled(this) {
Ok(ok__) => {
value.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn SetHandled<
Identity: ICoreWebView2MoveFocusRequestedEventArgs_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
value: windows_core::BOOL,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
ICoreWebView2MoveFocusRequestedEventArgs_Impl::SetHandled(
this,
core::mem::transmute_copy(&value),
)
.into()
}
}
Self {
base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
Reason: Reason::<Identity, OFFSET>,
Handled: Handled::<Identity, OFFSET>,
SetHandled: SetHandled::<Identity, OFFSET>,
}
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<ICoreWebView2MoveFocusRequestedEventArgs as windows_core::Interface>::IID
}
}
impl windows_core::RuntimeName for ICoreWebView2MoveFocusRequestedEventArgs {}
windows_core::imp::define_interface!(
ICoreWebView2MoveFocusRequestedEventHandler,
ICoreWebView2MoveFocusRequestedEventHandler_Vtbl,
0x69035451_6dc7_4cb8_9bce_b2bd70ad289f
);
windows_core::imp::interface_hierarchy!(
ICoreWebView2MoveFocusRequestedEventHandler,
windows_core::IUnknown
);
impl ICoreWebView2MoveFocusRequestedEventHandler {
pub unsafe fn Invoke<P0, P1>(&self, sender: P0, args: P1) -> windows_core::Result<()>
where
P0: windows_core::Param<ICoreWebView2Controller>,
P1: windows_core::Param<ICoreWebView2MoveFocusRequestedEventArgs>,
{
unsafe {
(windows_core::Interface::vtable(self).Invoke)(
windows_core::Interface::as_raw(self),
sender.param().abi(),
args.param().abi(),
)
.ok()
}
}
}
#[repr(C)]
#[doc(hidden)]
pub struct ICoreWebView2MoveFocusRequestedEventHandler_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
pub Invoke: unsafe extern "system" fn(
*mut core::ffi::c_void,
*mut core::ffi::c_void,
*mut core::ffi::c_void,
) -> windows_core::HRESULT,
}
pub trait ICoreWebView2MoveFocusRequestedEventHandler_Impl: windows_core::IUnknownImpl {
fn Invoke(
&self,
sender: windows_core::Ref<ICoreWebView2Controller>,
args: windows_core::Ref<ICoreWebView2MoveFocusRequestedEventArgs>,
) -> windows_core::Result<()>;
}
impl ICoreWebView2MoveFocusRequestedEventHandler_Vtbl {
pub const fn new<
Identity: ICoreWebView2MoveFocusRequestedEventHandler_Impl,
const OFFSET: isize,
>() -> Self {
unsafe extern "system" fn Invoke<
Identity: ICoreWebView2MoveFocusRequestedEventHandler_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
sender: *mut core::ffi::c_void,
args: *mut core::ffi::c_void,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
ICoreWebView2MoveFocusRequestedEventHandler_Impl::Invoke(
this,
core::mem::transmute_copy(&sender),
core::mem::transmute_copy(&args),
)
.into()
}
}
Self {
base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
Invoke: Invoke::<Identity, OFFSET>,
}
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<ICoreWebView2MoveFocusRequestedEventHandler as windows_core::Interface>::IID
}
}
impl windows_core::RuntimeName for ICoreWebView2MoveFocusRequestedEventHandler {}
windows_core::imp::define_interface!(
ICoreWebView2NavigationCompletedEventArgs,
ICoreWebView2NavigationCompletedEventArgs_Vtbl,
0x30d68b7d_20d9_4752_a9ca_ec8448fbb5c1
);
windows_core::imp::interface_hierarchy!(
ICoreWebView2NavigationCompletedEventArgs,
windows_core::IUnknown
);
impl ICoreWebView2NavigationCompletedEventArgs {
pub unsafe fn IsSuccess(&self) -> windows_core::Result<windows_core::BOOL> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).IsSuccess)(
windows_core::Interface::as_raw(self),
&mut result__,
)
.map(|| result__)
}
}
pub unsafe fn WebErrorStatus(&self) -> windows_core::Result<COREWEBVIEW2_WEB_ERROR_STATUS> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).WebErrorStatus)(
windows_core::Interface::as_raw(self),
&mut result__,
)
.map(|| result__)
}
}
pub unsafe fn NavigationId(&self) -> windows_core::Result<u64> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).NavigationId)(
windows_core::Interface::as_raw(self),
&mut result__,
)
.map(|| result__)
}
}
}
#[repr(C)]
#[doc(hidden)]
pub struct ICoreWebView2NavigationCompletedEventArgs_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
pub IsSuccess: unsafe extern "system" fn(
*mut core::ffi::c_void,
*mut windows_core::BOOL,
) -> windows_core::HRESULT,
pub WebErrorStatus: unsafe extern "system" fn(
*mut core::ffi::c_void,
*mut COREWEBVIEW2_WEB_ERROR_STATUS,
) -> windows_core::HRESULT,
pub NavigationId:
unsafe extern "system" fn(*mut core::ffi::c_void, *mut u64) -> windows_core::HRESULT,
}
pub trait ICoreWebView2NavigationCompletedEventArgs_Impl: windows_core::IUnknownImpl {
fn IsSuccess(&self) -> windows_core::Result<windows_core::BOOL>;
fn WebErrorStatus(&self) -> windows_core::Result<COREWEBVIEW2_WEB_ERROR_STATUS>;
fn NavigationId(&self) -> windows_core::Result<u64>;
}
impl ICoreWebView2NavigationCompletedEventArgs_Vtbl {
pub const fn new<
Identity: ICoreWebView2NavigationCompletedEventArgs_Impl,
const OFFSET: isize,
>() -> Self {
unsafe extern "system" fn IsSuccess<
Identity: ICoreWebView2NavigationCompletedEventArgs_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
issuccess: *mut windows_core::BOOL,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
match ICoreWebView2NavigationCompletedEventArgs_Impl::IsSuccess(this) {
Ok(ok__) => {
issuccess.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn WebErrorStatus<
Identity: ICoreWebView2NavigationCompletedEventArgs_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
weberrorstatus: *mut COREWEBVIEW2_WEB_ERROR_STATUS,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
match ICoreWebView2NavigationCompletedEventArgs_Impl::WebErrorStatus(this) {
Ok(ok__) => {
weberrorstatus.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn NavigationId<
Identity: ICoreWebView2NavigationCompletedEventArgs_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
navigationid: *mut u64,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
match ICoreWebView2NavigationCompletedEventArgs_Impl::NavigationId(this) {
Ok(ok__) => {
navigationid.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
Self {
base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
IsSuccess: IsSuccess::<Identity, OFFSET>,
WebErrorStatus: WebErrorStatus::<Identity, OFFSET>,
NavigationId: NavigationId::<Identity, OFFSET>,
}
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<ICoreWebView2NavigationCompletedEventArgs as windows_core::Interface>::IID
}
}
impl windows_core::RuntimeName for ICoreWebView2NavigationCompletedEventArgs {}
windows_core::imp::define_interface!(
ICoreWebView2NavigationCompletedEventHandler,
ICoreWebView2NavigationCompletedEventHandler_Vtbl,
0xd33a35bf_1c49_4f98_93ab_006e0533fe1c
);
windows_core::imp::interface_hierarchy!(
ICoreWebView2NavigationCompletedEventHandler,
windows_core::IUnknown
);
impl ICoreWebView2NavigationCompletedEventHandler {
pub unsafe fn Invoke<P0, P1>(&self, sender: P0, args: P1) -> windows_core::Result<()>
where
P0: windows_core::Param<ICoreWebView2>,
P1: windows_core::Param<ICoreWebView2NavigationCompletedEventArgs>,
{
unsafe {
(windows_core::Interface::vtable(self).Invoke)(
windows_core::Interface::as_raw(self),
sender.param().abi(),
args.param().abi(),
)
.ok()
}
}
}
#[repr(C)]
#[doc(hidden)]
pub struct ICoreWebView2NavigationCompletedEventHandler_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
pub Invoke: unsafe extern "system" fn(
*mut core::ffi::c_void,
*mut core::ffi::c_void,
*mut core::ffi::c_void,
) -> windows_core::HRESULT,
}
pub trait ICoreWebView2NavigationCompletedEventHandler_Impl: windows_core::IUnknownImpl {
fn Invoke(
&self,
sender: windows_core::Ref<ICoreWebView2>,
args: windows_core::Ref<ICoreWebView2NavigationCompletedEventArgs>,
) -> windows_core::Result<()>;
}
impl ICoreWebView2NavigationCompletedEventHandler_Vtbl {
pub const fn new<
Identity: ICoreWebView2NavigationCompletedEventHandler_Impl,
const OFFSET: isize,
>() -> Self {
unsafe extern "system" fn Invoke<
Identity: ICoreWebView2NavigationCompletedEventHandler_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
sender: *mut core::ffi::c_void,
args: *mut core::ffi::c_void,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
ICoreWebView2NavigationCompletedEventHandler_Impl::Invoke(
this,
core::mem::transmute_copy(&sender),
core::mem::transmute_copy(&args),
)
.into()
}
}
Self {
base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
Invoke: Invoke::<Identity, OFFSET>,
}
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<ICoreWebView2NavigationCompletedEventHandler as windows_core::Interface>::IID
}
}
impl windows_core::RuntimeName for ICoreWebView2NavigationCompletedEventHandler {}
windows_core::imp::define_interface!(
ICoreWebView2NavigationStartingEventArgs,
ICoreWebView2NavigationStartingEventArgs_Vtbl,
0x5b495469_e119_438a_9b18_7604f25f2e49
);
windows_core::imp::interface_hierarchy!(
ICoreWebView2NavigationStartingEventArgs,
windows_core::IUnknown
);
impl ICoreWebView2NavigationStartingEventArgs {
pub unsafe fn Uri(&self) -> windows_core::Result<windows_core::PWSTR> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).Uri)(
windows_core::Interface::as_raw(self),
&mut result__,
)
.map(|| result__)
}
}
pub unsafe fn IsUserInitiated(&self) -> windows_core::Result<windows_core::BOOL> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).IsUserInitiated)(
windows_core::Interface::as_raw(self),
&mut result__,
)
.map(|| result__)
}
}
pub unsafe fn IsRedirected(&self) -> windows_core::Result<windows_core::BOOL> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).IsRedirected)(
windows_core::Interface::as_raw(self),
&mut result__,
)
.map(|| result__)
}
}
pub unsafe fn RequestHeaders(&self) -> windows_core::Result<ICoreWebView2HttpRequestHeaders> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).RequestHeaders)(
windows_core::Interface::as_raw(self),
&mut result__,
)
.and_then(|| windows_core::Type::from_abi(result__))
}
}
pub unsafe fn Cancel(&self) -> windows_core::Result<windows_core::BOOL> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).Cancel)(
windows_core::Interface::as_raw(self),
&mut result__,
)
.map(|| result__)
}
}
pub unsafe fn SetCancel(&self, cancel: bool) -> windows_core::Result<()> {
unsafe {
(windows_core::Interface::vtable(self).SetCancel)(
windows_core::Interface::as_raw(self),
cancel.into(),
)
.ok()
}
}
pub unsafe fn NavigationId(&self) -> windows_core::Result<u64> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).NavigationId)(
windows_core::Interface::as_raw(self),
&mut result__,
)
.map(|| result__)
}
}
}
#[repr(C)]
#[doc(hidden)]
pub struct ICoreWebView2NavigationStartingEventArgs_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
pub Uri: unsafe extern "system" fn(
*mut core::ffi::c_void,
*mut windows_core::PWSTR,
) -> windows_core::HRESULT,
pub IsUserInitiated: unsafe extern "system" fn(
*mut core::ffi::c_void,
*mut windows_core::BOOL,
) -> windows_core::HRESULT,
pub IsRedirected: unsafe extern "system" fn(
*mut core::ffi::c_void,
*mut windows_core::BOOL,
) -> windows_core::HRESULT,
pub RequestHeaders: unsafe extern "system" fn(
*mut core::ffi::c_void,
*mut *mut core::ffi::c_void,
) -> windows_core::HRESULT,
pub Cancel: unsafe extern "system" fn(
*mut core::ffi::c_void,
*mut windows_core::BOOL,
) -> windows_core::HRESULT,
pub SetCancel: unsafe extern "system" fn(
*mut core::ffi::c_void,
windows_core::BOOL,
) -> windows_core::HRESULT,
pub NavigationId:
unsafe extern "system" fn(*mut core::ffi::c_void, *mut u64) -> windows_core::HRESULT,
}
pub trait ICoreWebView2NavigationStartingEventArgs_Impl: windows_core::IUnknownImpl {
fn Uri(&self) -> windows_core::Result<windows_core::PWSTR>;
fn IsUserInitiated(&self) -> windows_core::Result<windows_core::BOOL>;
fn IsRedirected(&self) -> windows_core::Result<windows_core::BOOL>;
fn RequestHeaders(&self) -> windows_core::Result<ICoreWebView2HttpRequestHeaders>;
fn Cancel(&self) -> windows_core::Result<windows_core::BOOL>;
fn SetCancel(&self, cancel: windows_core::BOOL) -> windows_core::Result<()>;
fn NavigationId(&self) -> windows_core::Result<u64>;
}
impl ICoreWebView2NavigationStartingEventArgs_Vtbl {
pub const fn new<
Identity: ICoreWebView2NavigationStartingEventArgs_Impl,
const OFFSET: isize,
>() -> Self {
unsafe extern "system" fn Uri<
Identity: ICoreWebView2NavigationStartingEventArgs_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
uri: *mut windows_core::PWSTR,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
match ICoreWebView2NavigationStartingEventArgs_Impl::Uri(this) {
Ok(ok__) => {
uri.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn IsUserInitiated<
Identity: ICoreWebView2NavigationStartingEventArgs_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
isuserinitiated: *mut windows_core::BOOL,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
match ICoreWebView2NavigationStartingEventArgs_Impl::IsUserInitiated(this) {
Ok(ok__) => {
isuserinitiated.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn IsRedirected<
Identity: ICoreWebView2NavigationStartingEventArgs_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
isredirected: *mut windows_core::BOOL,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
match ICoreWebView2NavigationStartingEventArgs_Impl::IsRedirected(this) {
Ok(ok__) => {
isredirected.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn RequestHeaders<
Identity: ICoreWebView2NavigationStartingEventArgs_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
requestheaders: *mut *mut core::ffi::c_void,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
match ICoreWebView2NavigationStartingEventArgs_Impl::RequestHeaders(this) {
Ok(ok__) => {
requestheaders.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn Cancel<
Identity: ICoreWebView2NavigationStartingEventArgs_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
cancel: *mut windows_core::BOOL,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
match ICoreWebView2NavigationStartingEventArgs_Impl::Cancel(this) {
Ok(ok__) => {
cancel.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn SetCancel<
Identity: ICoreWebView2NavigationStartingEventArgs_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
cancel: windows_core::BOOL,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
ICoreWebView2NavigationStartingEventArgs_Impl::SetCancel(
this,
core::mem::transmute_copy(&cancel),
)
.into()
}
}
unsafe extern "system" fn NavigationId<
Identity: ICoreWebView2NavigationStartingEventArgs_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
navigationid: *mut u64,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
match ICoreWebView2NavigationStartingEventArgs_Impl::NavigationId(this) {
Ok(ok__) => {
navigationid.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
Self {
base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
Uri: Uri::<Identity, OFFSET>,
IsUserInitiated: IsUserInitiated::<Identity, OFFSET>,
IsRedirected: IsRedirected::<Identity, OFFSET>,
RequestHeaders: RequestHeaders::<Identity, OFFSET>,
Cancel: Cancel::<Identity, OFFSET>,
SetCancel: SetCancel::<Identity, OFFSET>,
NavigationId: NavigationId::<Identity, OFFSET>,
}
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<ICoreWebView2NavigationStartingEventArgs as windows_core::Interface>::IID
}
}
impl windows_core::RuntimeName for ICoreWebView2NavigationStartingEventArgs {}
windows_core::imp::define_interface!(
ICoreWebView2NavigationStartingEventHandler,
ICoreWebView2NavigationStartingEventHandler_Vtbl,
0x9adbe429_f36d_432b_9ddc_f8881fbd76e3
);
windows_core::imp::interface_hierarchy!(
ICoreWebView2NavigationStartingEventHandler,
windows_core::IUnknown
);
impl ICoreWebView2NavigationStartingEventHandler {
pub unsafe fn Invoke<P0, P1>(&self, sender: P0, args: P1) -> windows_core::Result<()>
where
P0: windows_core::Param<ICoreWebView2>,
P1: windows_core::Param<ICoreWebView2NavigationStartingEventArgs>,
{
unsafe {
(windows_core::Interface::vtable(self).Invoke)(
windows_core::Interface::as_raw(self),
sender.param().abi(),
args.param().abi(),
)
.ok()
}
}
}
#[repr(C)]
#[doc(hidden)]
pub struct ICoreWebView2NavigationStartingEventHandler_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
pub Invoke: unsafe extern "system" fn(
*mut core::ffi::c_void,
*mut core::ffi::c_void,
*mut core::ffi::c_void,
) -> windows_core::HRESULT,
}
pub trait ICoreWebView2NavigationStartingEventHandler_Impl: windows_core::IUnknownImpl {
fn Invoke(
&self,
sender: windows_core::Ref<ICoreWebView2>,
args: windows_core::Ref<ICoreWebView2NavigationStartingEventArgs>,
) -> windows_core::Result<()>;
}
impl ICoreWebView2NavigationStartingEventHandler_Vtbl {
pub const fn new<
Identity: ICoreWebView2NavigationStartingEventHandler_Impl,
const OFFSET: isize,
>() -> Self {
unsafe extern "system" fn Invoke<
Identity: ICoreWebView2NavigationStartingEventHandler_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
sender: *mut core::ffi::c_void,
args: *mut core::ffi::c_void,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
ICoreWebView2NavigationStartingEventHandler_Impl::Invoke(
this,
core::mem::transmute_copy(&sender),
core::mem::transmute_copy(&args),
)
.into()
}
}
Self {
base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
Invoke: Invoke::<Identity, OFFSET>,
}
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<ICoreWebView2NavigationStartingEventHandler as windows_core::Interface>::IID
}
}
impl windows_core::RuntimeName for ICoreWebView2NavigationStartingEventHandler {}
windows_core::imp::define_interface!(
ICoreWebView2NewBrowserVersionAvailableEventHandler,
ICoreWebView2NewBrowserVersionAvailableEventHandler_Vtbl,
0xf9a2976e_d34e_44fc_adee_81b6b57ca914
);
windows_core::imp::interface_hierarchy!(
ICoreWebView2NewBrowserVersionAvailableEventHandler,
windows_core::IUnknown
);
impl ICoreWebView2NewBrowserVersionAvailableEventHandler {
pub unsafe fn Invoke<P0, P1>(&self, sender: P0, args: P1) -> windows_core::Result<()>
where
P0: windows_core::Param<ICoreWebView2Environment>,
P1: windows_core::Param<windows_core::IUnknown>,
{
unsafe {
(windows_core::Interface::vtable(self).Invoke)(
windows_core::Interface::as_raw(self),
sender.param().abi(),
args.param().abi(),
)
.ok()
}
}
}
#[repr(C)]
#[doc(hidden)]
pub struct ICoreWebView2NewBrowserVersionAvailableEventHandler_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
pub Invoke: unsafe extern "system" fn(
*mut core::ffi::c_void,
*mut core::ffi::c_void,
*mut core::ffi::c_void,
) -> windows_core::HRESULT,
}
pub trait ICoreWebView2NewBrowserVersionAvailableEventHandler_Impl:
windows_core::IUnknownImpl
{
fn Invoke(
&self,
sender: windows_core::Ref<ICoreWebView2Environment>,
args: windows_core::Ref<windows_core::IUnknown>,
) -> windows_core::Result<()>;
}
impl ICoreWebView2NewBrowserVersionAvailableEventHandler_Vtbl {
pub const fn new<
Identity: ICoreWebView2NewBrowserVersionAvailableEventHandler_Impl,
const OFFSET: isize,
>() -> Self {
unsafe extern "system" fn Invoke<
Identity: ICoreWebView2NewBrowserVersionAvailableEventHandler_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
sender: *mut core::ffi::c_void,
args: *mut core::ffi::c_void,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
ICoreWebView2NewBrowserVersionAvailableEventHandler_Impl::Invoke(
this,
core::mem::transmute_copy(&sender),
core::mem::transmute_copy(&args),
)
.into()
}
}
Self {
base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
Invoke: Invoke::<Identity, OFFSET>,
}
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == & < ICoreWebView2NewBrowserVersionAvailableEventHandler as windows_core::Interface >::IID
}
}
impl windows_core::RuntimeName for ICoreWebView2NewBrowserVersionAvailableEventHandler {}
windows_core::imp::define_interface!(
ICoreWebView2NewWindowRequestedEventArgs,
ICoreWebView2NewWindowRequestedEventArgs_Vtbl,
0x34acb11c_fc37_4418_9132_f9c21d1eafb9
);
windows_core::imp::interface_hierarchy!(
ICoreWebView2NewWindowRequestedEventArgs,
windows_core::IUnknown
);
impl ICoreWebView2NewWindowRequestedEventArgs {
pub unsafe fn Uri(&self) -> windows_core::Result<windows_core::PWSTR> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).Uri)(
windows_core::Interface::as_raw(self),
&mut result__,
)
.map(|| result__)
}
}
pub unsafe fn SetNewWindow<P0>(&self, newwindow: P0) -> windows_core::Result<()>
where
P0: windows_core::Param<ICoreWebView2>,
{
unsafe {
(windows_core::Interface::vtable(self).SetNewWindow)(
windows_core::Interface::as_raw(self),
newwindow.param().abi(),
)
.ok()
}
}
pub unsafe fn NewWindow(&self) -> windows_core::Result<ICoreWebView2> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).NewWindow)(
windows_core::Interface::as_raw(self),
&mut result__,
)
.and_then(|| windows_core::Type::from_abi(result__))
}
}
pub unsafe fn SetHandled(&self, handled: bool) -> windows_core::Result<()> {
unsafe {
(windows_core::Interface::vtable(self).SetHandled)(
windows_core::Interface::as_raw(self),
handled.into(),
)
.ok()
}
}
pub unsafe fn Handled(&self) -> windows_core::Result<windows_core::BOOL> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).Handled)(
windows_core::Interface::as_raw(self),
&mut result__,
)
.map(|| result__)
}
}
pub unsafe fn IsUserInitiated(&self) -> windows_core::Result<windows_core::BOOL> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).IsUserInitiated)(
windows_core::Interface::as_raw(self),
&mut result__,
)
.map(|| result__)
}
}
pub unsafe fn GetDeferral(&self) -> windows_core::Result<ICoreWebView2Deferral> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetDeferral)(
windows_core::Interface::as_raw(self),
&mut result__,
)
.and_then(|| windows_core::Type::from_abi(result__))
}
}
pub unsafe fn WindowFeatures(&self) -> windows_core::Result<ICoreWebView2WindowFeatures> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).WindowFeatures)(
windows_core::Interface::as_raw(self),
&mut result__,
)
.and_then(|| windows_core::Type::from_abi(result__))
}
}
}
#[repr(C)]
#[doc(hidden)]
pub struct ICoreWebView2NewWindowRequestedEventArgs_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
pub Uri: unsafe extern "system" fn(
*mut core::ffi::c_void,
*mut windows_core::PWSTR,
) -> windows_core::HRESULT,
pub SetNewWindow: unsafe extern "system" fn(
*mut core::ffi::c_void,
*mut core::ffi::c_void,
) -> windows_core::HRESULT,
pub NewWindow: unsafe extern "system" fn(
*mut core::ffi::c_void,
*mut *mut core::ffi::c_void,
) -> windows_core::HRESULT,
pub SetHandled: unsafe extern "system" fn(
*mut core::ffi::c_void,
windows_core::BOOL,
) -> windows_core::HRESULT,
pub Handled: unsafe extern "system" fn(
*mut core::ffi::c_void,
*mut windows_core::BOOL,
) -> windows_core::HRESULT,
pub IsUserInitiated: unsafe extern "system" fn(
*mut core::ffi::c_void,
*mut windows_core::BOOL,
) -> windows_core::HRESULT,
pub GetDeferral: unsafe extern "system" fn(
*mut core::ffi::c_void,
*mut *mut core::ffi::c_void,
) -> windows_core::HRESULT,
pub WindowFeatures: unsafe extern "system" fn(
*mut core::ffi::c_void,
*mut *mut core::ffi::c_void,
) -> windows_core::HRESULT,
}
pub trait ICoreWebView2NewWindowRequestedEventArgs_Impl: windows_core::IUnknownImpl {
fn Uri(&self) -> windows_core::Result<windows_core::PWSTR>;
fn SetNewWindow(&self, newwindow: windows_core::Ref<ICoreWebView2>)
-> windows_core::Result<()>;
fn NewWindow(&self) -> windows_core::Result<ICoreWebView2>;
fn SetHandled(&self, handled: windows_core::BOOL) -> windows_core::Result<()>;
fn Handled(&self) -> windows_core::Result<windows_core::BOOL>;
fn IsUserInitiated(&self) -> windows_core::Result<windows_core::BOOL>;
fn GetDeferral(&self) -> windows_core::Result<ICoreWebView2Deferral>;
fn WindowFeatures(&self) -> windows_core::Result<ICoreWebView2WindowFeatures>;
}
impl ICoreWebView2NewWindowRequestedEventArgs_Vtbl {
pub const fn new<
Identity: ICoreWebView2NewWindowRequestedEventArgs_Impl,
const OFFSET: isize,
>() -> Self {
unsafe extern "system" fn Uri<
Identity: ICoreWebView2NewWindowRequestedEventArgs_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
uri: *mut windows_core::PWSTR,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
match ICoreWebView2NewWindowRequestedEventArgs_Impl::Uri(this) {
Ok(ok__) => {
uri.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn SetNewWindow<
Identity: ICoreWebView2NewWindowRequestedEventArgs_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
newwindow: *mut core::ffi::c_void,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
ICoreWebView2NewWindowRequestedEventArgs_Impl::SetNewWindow(
this,
core::mem::transmute_copy(&newwindow),
)
.into()
}
}
unsafe extern "system" fn NewWindow<
Identity: ICoreWebView2NewWindowRequestedEventArgs_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
newwindow: *mut *mut core::ffi::c_void,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
match ICoreWebView2NewWindowRequestedEventArgs_Impl::NewWindow(this) {
Ok(ok__) => {
newwindow.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn SetHandled<
Identity: ICoreWebView2NewWindowRequestedEventArgs_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
handled: windows_core::BOOL,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
ICoreWebView2NewWindowRequestedEventArgs_Impl::SetHandled(
this,
core::mem::transmute_copy(&handled),
)
.into()
}
}
unsafe extern "system" fn Handled<
Identity: ICoreWebView2NewWindowRequestedEventArgs_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
handled: *mut windows_core::BOOL,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
match ICoreWebView2NewWindowRequestedEventArgs_Impl::Handled(this) {
Ok(ok__) => {
handled.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn IsUserInitiated<
Identity: ICoreWebView2NewWindowRequestedEventArgs_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
isuserinitiated: *mut windows_core::BOOL,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
match ICoreWebView2NewWindowRequestedEventArgs_Impl::IsUserInitiated(this) {
Ok(ok__) => {
isuserinitiated.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetDeferral<
Identity: ICoreWebView2NewWindowRequestedEventArgs_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
deferral: *mut *mut core::ffi::c_void,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
match ICoreWebView2NewWindowRequestedEventArgs_Impl::GetDeferral(this) {
Ok(ok__) => {
deferral.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn WindowFeatures<
Identity: ICoreWebView2NewWindowRequestedEventArgs_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
value: *mut *mut core::ffi::c_void,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
match ICoreWebView2NewWindowRequestedEventArgs_Impl::WindowFeatures(this) {
Ok(ok__) => {
value.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
Self {
base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
Uri: Uri::<Identity, OFFSET>,
SetNewWindow: SetNewWindow::<Identity, OFFSET>,
NewWindow: NewWindow::<Identity, OFFSET>,
SetHandled: SetHandled::<Identity, OFFSET>,
Handled: Handled::<Identity, OFFSET>,
IsUserInitiated: IsUserInitiated::<Identity, OFFSET>,
GetDeferral: GetDeferral::<Identity, OFFSET>,
WindowFeatures: WindowFeatures::<Identity, OFFSET>,
}
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<ICoreWebView2NewWindowRequestedEventArgs as windows_core::Interface>::IID
}
}
impl windows_core::RuntimeName for ICoreWebView2NewWindowRequestedEventArgs {}
windows_core::imp::define_interface!(
ICoreWebView2NewWindowRequestedEventHandler,
ICoreWebView2NewWindowRequestedEventHandler_Vtbl,
0xd4c185fe_c81c_4989_97af_2d3fa7ab5651
);
windows_core::imp::interface_hierarchy!(
ICoreWebView2NewWindowRequestedEventHandler,
windows_core::IUnknown
);
impl ICoreWebView2NewWindowRequestedEventHandler {
pub unsafe fn Invoke<P0, P1>(&self, sender: P0, args: P1) -> windows_core::Result<()>
where
P0: windows_core::Param<ICoreWebView2>,
P1: windows_core::Param<ICoreWebView2NewWindowRequestedEventArgs>,
{
unsafe {
(windows_core::Interface::vtable(self).Invoke)(
windows_core::Interface::as_raw(self),
sender.param().abi(),
args.param().abi(),
)
.ok()
}
}
}
#[repr(C)]
#[doc(hidden)]
pub struct ICoreWebView2NewWindowRequestedEventHandler_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
pub Invoke: unsafe extern "system" fn(
*mut core::ffi::c_void,
*mut core::ffi::c_void,
*mut core::ffi::c_void,
) -> windows_core::HRESULT,
}
pub trait ICoreWebView2NewWindowRequestedEventHandler_Impl: windows_core::IUnknownImpl {
fn Invoke(
&self,
sender: windows_core::Ref<ICoreWebView2>,
args: windows_core::Ref<ICoreWebView2NewWindowRequestedEventArgs>,
) -> windows_core::Result<()>;
}
impl ICoreWebView2NewWindowRequestedEventHandler_Vtbl {
pub const fn new<
Identity: ICoreWebView2NewWindowRequestedEventHandler_Impl,
const OFFSET: isize,
>() -> Self {
unsafe extern "system" fn Invoke<
Identity: ICoreWebView2NewWindowRequestedEventHandler_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
sender: *mut core::ffi::c_void,
args: *mut core::ffi::c_void,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
ICoreWebView2NewWindowRequestedEventHandler_Impl::Invoke(
this,
core::mem::transmute_copy(&sender),
core::mem::transmute_copy(&args),
)
.into()
}
}
Self {
base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
Invoke: Invoke::<Identity, OFFSET>,
}
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<ICoreWebView2NewWindowRequestedEventHandler as windows_core::Interface>::IID
}
}
impl windows_core::RuntimeName for ICoreWebView2NewWindowRequestedEventHandler {}
windows_core::imp::define_interface!(
ICoreWebView2PermissionRequestedEventArgs,
ICoreWebView2PermissionRequestedEventArgs_Vtbl,
0x973ae2ef_ff18_4894_8fb2_3c758f046810
);
windows_core::imp::interface_hierarchy!(
ICoreWebView2PermissionRequestedEventArgs,
windows_core::IUnknown
);
impl ICoreWebView2PermissionRequestedEventArgs {
pub unsafe fn Uri(&self) -> windows_core::Result<windows_core::PWSTR> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).Uri)(
windows_core::Interface::as_raw(self),
&mut result__,
)
.map(|| result__)
}
}
pub unsafe fn PermissionKind(&self) -> windows_core::Result<COREWEBVIEW2_PERMISSION_KIND> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).PermissionKind)(
windows_core::Interface::as_raw(self),
&mut result__,
)
.map(|| result__)
}
}
pub unsafe fn IsUserInitiated(&self) -> windows_core::Result<windows_core::BOOL> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).IsUserInitiated)(
windows_core::Interface::as_raw(self),
&mut result__,
)
.map(|| result__)
}
}
pub unsafe fn State(&self) -> windows_core::Result<COREWEBVIEW2_PERMISSION_STATE> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).State)(
windows_core::Interface::as_raw(self),
&mut result__,
)
.map(|| result__)
}
}
pub unsafe fn SetState(
&self,
state: COREWEBVIEW2_PERMISSION_STATE,
) -> windows_core::Result<()> {
unsafe {
(windows_core::Interface::vtable(self).SetState)(
windows_core::Interface::as_raw(self),
state,
)
.ok()
}
}
pub unsafe fn GetDeferral(&self) -> windows_core::Result<ICoreWebView2Deferral> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetDeferral)(
windows_core::Interface::as_raw(self),
&mut result__,
)
.and_then(|| windows_core::Type::from_abi(result__))
}
}
}
#[repr(C)]
#[doc(hidden)]
pub struct ICoreWebView2PermissionRequestedEventArgs_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
pub Uri: unsafe extern "system" fn(
*mut core::ffi::c_void,
*mut windows_core::PWSTR,
) -> windows_core::HRESULT,
pub PermissionKind: unsafe extern "system" fn(
*mut core::ffi::c_void,
*mut COREWEBVIEW2_PERMISSION_KIND,
) -> windows_core::HRESULT,
pub IsUserInitiated: unsafe extern "system" fn(
*mut core::ffi::c_void,
*mut windows_core::BOOL,
) -> windows_core::HRESULT,
pub State: unsafe extern "system" fn(
*mut core::ffi::c_void,
*mut COREWEBVIEW2_PERMISSION_STATE,
) -> windows_core::HRESULT,
pub SetState: unsafe extern "system" fn(
*mut core::ffi::c_void,
COREWEBVIEW2_PERMISSION_STATE,
) -> windows_core::HRESULT,
pub GetDeferral: unsafe extern "system" fn(
*mut core::ffi::c_void,
*mut *mut core::ffi::c_void,
) -> windows_core::HRESULT,
}
pub trait ICoreWebView2PermissionRequestedEventArgs_Impl: windows_core::IUnknownImpl {
fn Uri(&self) -> windows_core::Result<windows_core::PWSTR>;
fn PermissionKind(&self) -> windows_core::Result<COREWEBVIEW2_PERMISSION_KIND>;
fn IsUserInitiated(&self) -> windows_core::Result<windows_core::BOOL>;
fn State(&self) -> windows_core::Result<COREWEBVIEW2_PERMISSION_STATE>;
fn SetState(&self, state: COREWEBVIEW2_PERMISSION_STATE) -> windows_core::Result<()>;
fn GetDeferral(&self) -> windows_core::Result<ICoreWebView2Deferral>;
}
impl ICoreWebView2PermissionRequestedEventArgs_Vtbl {
pub const fn new<
Identity: ICoreWebView2PermissionRequestedEventArgs_Impl,
const OFFSET: isize,
>() -> Self {
unsafe extern "system" fn Uri<
Identity: ICoreWebView2PermissionRequestedEventArgs_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
uri: *mut windows_core::PWSTR,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
match ICoreWebView2PermissionRequestedEventArgs_Impl::Uri(this) {
Ok(ok__) => {
uri.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn PermissionKind<
Identity: ICoreWebView2PermissionRequestedEventArgs_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
permissionkind: *mut COREWEBVIEW2_PERMISSION_KIND,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
match ICoreWebView2PermissionRequestedEventArgs_Impl::PermissionKind(this) {
Ok(ok__) => {
permissionkind.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn IsUserInitiated<
Identity: ICoreWebView2PermissionRequestedEventArgs_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
isuserinitiated: *mut windows_core::BOOL,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
match ICoreWebView2PermissionRequestedEventArgs_Impl::IsUserInitiated(this) {
Ok(ok__) => {
isuserinitiated.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn State<
Identity: ICoreWebView2PermissionRequestedEventArgs_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
state: *mut COREWEBVIEW2_PERMISSION_STATE,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
match ICoreWebView2PermissionRequestedEventArgs_Impl::State(this) {
Ok(ok__) => {
state.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn SetState<
Identity: ICoreWebView2PermissionRequestedEventArgs_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
state: COREWEBVIEW2_PERMISSION_STATE,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
ICoreWebView2PermissionRequestedEventArgs_Impl::SetState(
this,
core::mem::transmute_copy(&state),
)
.into()
}
}
unsafe extern "system" fn GetDeferral<
Identity: ICoreWebView2PermissionRequestedEventArgs_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
deferral: *mut *mut core::ffi::c_void,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
match ICoreWebView2PermissionRequestedEventArgs_Impl::GetDeferral(this) {
Ok(ok__) => {
deferral.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
Self {
base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
Uri: Uri::<Identity, OFFSET>,
PermissionKind: PermissionKind::<Identity, OFFSET>,
IsUserInitiated: IsUserInitiated::<Identity, OFFSET>,
State: State::<Identity, OFFSET>,
SetState: SetState::<Identity, OFFSET>,
GetDeferral: GetDeferral::<Identity, OFFSET>,
}
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<ICoreWebView2PermissionRequestedEventArgs as windows_core::Interface>::IID
}
}
impl windows_core::RuntimeName for ICoreWebView2PermissionRequestedEventArgs {}
windows_core::imp::define_interface!(
ICoreWebView2PermissionRequestedEventHandler,
ICoreWebView2PermissionRequestedEventHandler_Vtbl,
0x15e1c6a3_c72a_4df3_91d7_d097fbec6bfd
);
windows_core::imp::interface_hierarchy!(
ICoreWebView2PermissionRequestedEventHandler,
windows_core::IUnknown
);
impl ICoreWebView2PermissionRequestedEventHandler {
pub unsafe fn Invoke<P0, P1>(&self, sender: P0, args: P1) -> windows_core::Result<()>
where
P0: windows_core::Param<ICoreWebView2>,
P1: windows_core::Param<ICoreWebView2PermissionRequestedEventArgs>,
{
unsafe {
(windows_core::Interface::vtable(self).Invoke)(
windows_core::Interface::as_raw(self),
sender.param().abi(),
args.param().abi(),
)
.ok()
}
}
}
#[repr(C)]
#[doc(hidden)]
pub struct ICoreWebView2PermissionRequestedEventHandler_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
pub Invoke: unsafe extern "system" fn(
*mut core::ffi::c_void,
*mut core::ffi::c_void,
*mut core::ffi::c_void,
) -> windows_core::HRESULT,
}
pub trait ICoreWebView2PermissionRequestedEventHandler_Impl: windows_core::IUnknownImpl {
fn Invoke(
&self,
sender: windows_core::Ref<ICoreWebView2>,
args: windows_core::Ref<ICoreWebView2PermissionRequestedEventArgs>,
) -> windows_core::Result<()>;
}
impl ICoreWebView2PermissionRequestedEventHandler_Vtbl {
pub const fn new<
Identity: ICoreWebView2PermissionRequestedEventHandler_Impl,
const OFFSET: isize,
>() -> Self {
unsafe extern "system" fn Invoke<
Identity: ICoreWebView2PermissionRequestedEventHandler_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
sender: *mut core::ffi::c_void,
args: *mut core::ffi::c_void,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
ICoreWebView2PermissionRequestedEventHandler_Impl::Invoke(
this,
core::mem::transmute_copy(&sender),
core::mem::transmute_copy(&args),
)
.into()
}
}
Self {
base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
Invoke: Invoke::<Identity, OFFSET>,
}
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<ICoreWebView2PermissionRequestedEventHandler as windows_core::Interface>::IID
}
}
impl windows_core::RuntimeName for ICoreWebView2PermissionRequestedEventHandler {}
windows_core::imp::define_interface!(
ICoreWebView2PointerInfo,
ICoreWebView2PointerInfo_Vtbl,
0xe6995887_d10d_4f5d_9359_4ce46e4f96b9
);
windows_core::imp::interface_hierarchy!(ICoreWebView2PointerInfo, windows_core::IUnknown);
impl ICoreWebView2PointerInfo {
pub unsafe fn PointerKind(&self) -> windows_core::Result<u32> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).PointerKind)(
windows_core::Interface::as_raw(self),
&mut result__,
)
.map(|| result__)
}
}
pub unsafe fn SetPointerKind(&self, pointerkind: u32) -> windows_core::Result<()> {
unsafe {
(windows_core::Interface::vtable(self).SetPointerKind)(
windows_core::Interface::as_raw(self),
pointerkind,
)
.ok()
}
}
pub unsafe fn PointerId(&self) -> windows_core::Result<u32> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).PointerId)(
windows_core::Interface::as_raw(self),
&mut result__,
)
.map(|| result__)
}
}
pub unsafe fn SetPointerId(&self, pointerid: u32) -> windows_core::Result<()> {
unsafe {
(windows_core::Interface::vtable(self).SetPointerId)(
windows_core::Interface::as_raw(self),
pointerid,
)
.ok()
}
}
pub unsafe fn FrameId(&self) -> windows_core::Result<u32> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).FrameId)(
windows_core::Interface::as_raw(self),
&mut result__,
)
.map(|| result__)
}
}
pub unsafe fn SetFrameId(&self, frameid: u32) -> windows_core::Result<()> {
unsafe {
(windows_core::Interface::vtable(self).SetFrameId)(
windows_core::Interface::as_raw(self),
frameid,
)
.ok()
}
}
pub unsafe fn PointerFlags(&self) -> windows_core::Result<u32> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).PointerFlags)(
windows_core::Interface::as_raw(self),
&mut result__,
)
.map(|| result__)
}
}
pub unsafe fn SetPointerFlags(&self, pointerflags: u32) -> windows_core::Result<()> {
unsafe {
(windows_core::Interface::vtable(self).SetPointerFlags)(
windows_core::Interface::as_raw(self),
pointerflags,
)
.ok()
}
}
pub unsafe fn PointerDeviceRect(
&self,
) -> windows_core::Result<windows::Win32::Foundation::RECT> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).PointerDeviceRect)(
windows_core::Interface::as_raw(self),
&mut result__,
)
.map(|| result__)
}
}
pub unsafe fn SetPointerDeviceRect(
&self,
pointerdevicerect: windows::Win32::Foundation::RECT,
) -> windows_core::Result<()> {
unsafe {
(windows_core::Interface::vtable(self).SetPointerDeviceRect)(
windows_core::Interface::as_raw(self),
core::mem::transmute(pointerdevicerect),
)
.ok()
}
}
pub unsafe fn DisplayRect(&self) -> windows_core::Result<windows::Win32::Foundation::RECT> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).DisplayRect)(
windows_core::Interface::as_raw(self),
&mut result__,
)
.map(|| result__)
}
}
pub unsafe fn SetDisplayRect(
&self,
displayrect: windows::Win32::Foundation::RECT,
) -> windows_core::Result<()> {
unsafe {
(windows_core::Interface::vtable(self).SetDisplayRect)(
windows_core::Interface::as_raw(self),
core::mem::transmute(displayrect),
)
.ok()
}
}
pub unsafe fn PixelLocation(&self) -> windows_core::Result<windows::Win32::Foundation::POINT> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).PixelLocation)(
windows_core::Interface::as_raw(self),
&mut result__,
)
.map(|| result__)
}
}
pub unsafe fn SetPixelLocation(
&self,
pixellocation: windows::Win32::Foundation::POINT,
) -> windows_core::Result<()> {
unsafe {
(windows_core::Interface::vtable(self).SetPixelLocation)(
windows_core::Interface::as_raw(self),
core::mem::transmute(pixellocation),
)
.ok()
}
}
pub unsafe fn HimetricLocation(
&self,
) -> windows_core::Result<windows::Win32::Foundation::POINT> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).HimetricLocation)(
windows_core::Interface::as_raw(self),
&mut result__,
)
.map(|| result__)
}
}
pub unsafe fn SetHimetricLocation(
&self,
himetriclocation: windows::Win32::Foundation::POINT,
) -> windows_core::Result<()> {
unsafe {
(windows_core::Interface::vtable(self).SetHimetricLocation)(
windows_core::Interface::as_raw(self),
core::mem::transmute(himetriclocation),
)
.ok()
}
}
pub unsafe fn PixelLocationRaw(
&self,
) -> windows_core::Result<windows::Win32::Foundation::POINT> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).PixelLocationRaw)(
windows_core::Interface::as_raw(self),
&mut result__,
)
.map(|| result__)
}
}
pub unsafe fn SetPixelLocationRaw(
&self,
pixellocationraw: windows::Win32::Foundation::POINT,
) -> windows_core::Result<()> {
unsafe {
(windows_core::Interface::vtable(self).SetPixelLocationRaw)(
windows_core::Interface::as_raw(self),
core::mem::transmute(pixellocationraw),
)
.ok()
}
}
pub unsafe fn HimetricLocationRaw(
&self,
) -> windows_core::Result<windows::Win32::Foundation::POINT> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).HimetricLocationRaw)(
windows_core::Interface::as_raw(self),
&mut result__,
)
.map(|| result__)
}
}
pub unsafe fn SetHimetricLocationRaw(
&self,
himetriclocationraw: windows::Win32::Foundation::POINT,
) -> windows_core::Result<()> {
unsafe {
(windows_core::Interface::vtable(self).SetHimetricLocationRaw)(
windows_core::Interface::as_raw(self),
core::mem::transmute(himetriclocationraw),
)
.ok()
}
}
pub unsafe fn Time(&self) -> windows_core::Result<u32> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).Time)(
windows_core::Interface::as_raw(self),
&mut result__,
)
.map(|| result__)
}
}
pub unsafe fn SetTime(&self, time: u32) -> windows_core::Result<()> {
unsafe {
(windows_core::Interface::vtable(self).SetTime)(
windows_core::Interface::as_raw(self),
time,
)
.ok()
}
}
pub unsafe fn HistoryCount(&self) -> windows_core::Result<u32> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).HistoryCount)(
windows_core::Interface::as_raw(self),
&mut result__,
)
.map(|| result__)
}
}
pub unsafe fn SetHistoryCount(&self, historycount: u32) -> windows_core::Result<()> {
unsafe {
(windows_core::Interface::vtable(self).SetHistoryCount)(
windows_core::Interface::as_raw(self),
historycount,
)
.ok()
}
}
pub unsafe fn InputData(&self) -> windows_core::Result<i32> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).InputData)(
windows_core::Interface::as_raw(self),
&mut result__,
)
.map(|| result__)
}
}
pub unsafe fn SetInputData(&self, inputdata: i32) -> windows_core::Result<()> {
unsafe {
(windows_core::Interface::vtable(self).SetInputData)(
windows_core::Interface::as_raw(self),
inputdata,
)
.ok()
}
}
pub unsafe fn KeyStates(&self) -> windows_core::Result<u32> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).KeyStates)(
windows_core::Interface::as_raw(self),
&mut result__,
)
.map(|| result__)
}
}
pub unsafe fn SetKeyStates(&self, keystates: u32) -> windows_core::Result<()> {
unsafe {
(windows_core::Interface::vtable(self).SetKeyStates)(
windows_core::Interface::as_raw(self),
keystates,
)
.ok()
}
}
pub unsafe fn PerformanceCount(&self) -> windows_core::Result<u64> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).PerformanceCount)(
windows_core::Interface::as_raw(self),
&mut result__,
)
.map(|| result__)
}
}
pub unsafe fn SetPerformanceCount(&self, performancecount: u64) -> windows_core::Result<()> {
unsafe {
(windows_core::Interface::vtable(self).SetPerformanceCount)(
windows_core::Interface::as_raw(self),
performancecount,
)
.ok()
}
}
pub unsafe fn ButtonChangeKind(&self) -> windows_core::Result<i32> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).ButtonChangeKind)(
windows_core::Interface::as_raw(self),
&mut result__,
)
.map(|| result__)
}
}
pub unsafe fn SetButtonChangeKind(&self, buttonchangekind: i32) -> windows_core::Result<()> {
unsafe {
(windows_core::Interface::vtable(self).SetButtonChangeKind)(
windows_core::Interface::as_raw(self),
buttonchangekind,
)
.ok()
}
}
pub unsafe fn PenFlags(&self) -> windows_core::Result<u32> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).PenFlags)(
windows_core::Interface::as_raw(self),
&mut result__,
)
.map(|| result__)
}
}
pub unsafe fn SetPenFlags(&self, penflags: u32) -> windows_core::Result<()> {
unsafe {
(windows_core::Interface::vtable(self).SetPenFlags)(
windows_core::Interface::as_raw(self),
penflags,
)
.ok()
}
}
pub unsafe fn PenMask(&self) -> windows_core::Result<u32> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).PenMask)(
windows_core::Interface::as_raw(self),
&mut result__,
)
.map(|| result__)
}
}
pub unsafe fn SetPenMask(&self, penmask: u32) -> windows_core::Result<()> {
unsafe {
(windows_core::Interface::vtable(self).SetPenMask)(
windows_core::Interface::as_raw(self),
penmask,
)
.ok()
}
}
pub unsafe fn PenPressure(&self) -> windows_core::Result<u32> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).PenPressure)(
windows_core::Interface::as_raw(self),
&mut result__,
)
.map(|| result__)
}
}
pub unsafe fn SetPenPressure(&self, penpressure: u32) -> windows_core::Result<()> {
unsafe {
(windows_core::Interface::vtable(self).SetPenPressure)(
windows_core::Interface::as_raw(self),
penpressure,
)
.ok()
}
}
pub unsafe fn PenRotation(&self) -> windows_core::Result<u32> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).PenRotation)(
windows_core::Interface::as_raw(self),
&mut result__,
)
.map(|| result__)
}
}
pub unsafe fn SetPenRotation(&self, penrotation: u32) -> windows_core::Result<()> {
unsafe {
(windows_core::Interface::vtable(self).SetPenRotation)(
windows_core::Interface::as_raw(self),
penrotation,
)
.ok()
}
}
pub unsafe fn PenTiltX(&self) -> windows_core::Result<i32> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).PenTiltX)(
windows_core::Interface::as_raw(self),
&mut result__,
)
.map(|| result__)
}
}
pub unsafe fn SetPenTiltX(&self, pentiltx: i32) -> windows_core::Result<()> {
unsafe {
(windows_core::Interface::vtable(self).SetPenTiltX)(
windows_core::Interface::as_raw(self),
pentiltx,
)
.ok()
}
}
pub unsafe fn PenTiltY(&self) -> windows_core::Result<i32> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).PenTiltY)(
windows_core::Interface::as_raw(self),
&mut result__,
)
.map(|| result__)
}
}
pub unsafe fn SetPenTiltY(&self, pentilty: i32) -> windows_core::Result<()> {
unsafe {
(windows_core::Interface::vtable(self).SetPenTiltY)(
windows_core::Interface::as_raw(self),
pentilty,
)
.ok()
}
}
pub unsafe fn TouchFlags(&self) -> windows_core::Result<u32> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).TouchFlags)(
windows_core::Interface::as_raw(self),
&mut result__,
)
.map(|| result__)
}
}
pub unsafe fn SetTouchFlags(&self, touchflags: u32) -> windows_core::Result<()> {
unsafe {
(windows_core::Interface::vtable(self).SetTouchFlags)(
windows_core::Interface::as_raw(self),
touchflags,
)
.ok()
}
}
pub unsafe fn TouchMask(&self) -> windows_core::Result<u32> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).TouchMask)(
windows_core::Interface::as_raw(self),
&mut result__,
)
.map(|| result__)
}
}
pub unsafe fn SetTouchMask(&self, touchmask: u32) -> windows_core::Result<()> {
unsafe {
(windows_core::Interface::vtable(self).SetTouchMask)(
windows_core::Interface::as_raw(self),
touchmask,
)
.ok()
}
}
pub unsafe fn TouchContact(&self) -> windows_core::Result<windows::Win32::Foundation::RECT> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).TouchContact)(
windows_core::Interface::as_raw(self),
&mut result__,
)
.map(|| result__)
}
}
pub unsafe fn SetTouchContact(
&self,
touchcontact: windows::Win32::Foundation::RECT,
) -> windows_core::Result<()> {
unsafe {
(windows_core::Interface::vtable(self).SetTouchContact)(
windows_core::Interface::as_raw(self),
core::mem::transmute(touchcontact),
)
.ok()
}
}
pub unsafe fn TouchContactRaw(&self) -> windows_core::Result<windows::Win32::Foundation::RECT> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).TouchContactRaw)(
windows_core::Interface::as_raw(self),
&mut result__,
)
.map(|| result__)
}
}
pub unsafe fn SetTouchContactRaw(
&self,
touchcontactraw: windows::Win32::Foundation::RECT,
) -> windows_core::Result<()> {
unsafe {
(windows_core::Interface::vtable(self).SetTouchContactRaw)(
windows_core::Interface::as_raw(self),
core::mem::transmute(touchcontactraw),
)
.ok()
}
}
pub unsafe fn TouchOrientation(&self) -> windows_core::Result<u32> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).TouchOrientation)(
windows_core::Interface::as_raw(self),
&mut result__,
)
.map(|| result__)
}
}
pub unsafe fn SetTouchOrientation(&self, touchorientation: u32) -> windows_core::Result<()> {
unsafe {
(windows_core::Interface::vtable(self).SetTouchOrientation)(
windows_core::Interface::as_raw(self),
touchorientation,
)
.ok()
}
}
pub unsafe fn TouchPressure(&self) -> windows_core::Result<u32> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).TouchPressure)(
windows_core::Interface::as_raw(self),
&mut result__,
)
.map(|| result__)
}
}
pub unsafe fn SetTouchPressure(&self, touchpressure: u32) -> windows_core::Result<()> {
unsafe {
(windows_core::Interface::vtable(self).SetTouchPressure)(
windows_core::Interface::as_raw(self),
touchpressure,
)
.ok()
}
}
}
#[repr(C)]
#[doc(hidden)]
pub struct ICoreWebView2PointerInfo_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
pub PointerKind:
unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub SetPointerKind:
unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
pub PointerId:
unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub SetPointerId:
unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
pub FrameId:
unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub SetFrameId: unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
pub PointerFlags:
unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub SetPointerFlags:
unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
pub PointerDeviceRect: unsafe extern "system" fn(
*mut core::ffi::c_void,
*mut windows::Win32::Foundation::RECT,
) -> windows_core::HRESULT,
pub SetPointerDeviceRect: unsafe extern "system" fn(
*mut core::ffi::c_void,
windows::Win32::Foundation::RECT,
) -> windows_core::HRESULT,
pub DisplayRect: unsafe extern "system" fn(
*mut core::ffi::c_void,
*mut windows::Win32::Foundation::RECT,
) -> windows_core::HRESULT,
pub SetDisplayRect: unsafe extern "system" fn(
*mut core::ffi::c_void,
windows::Win32::Foundation::RECT,
) -> windows_core::HRESULT,
pub PixelLocation: unsafe extern "system" fn(
*mut core::ffi::c_void,
*mut windows::Win32::Foundation::POINT,
) -> windows_core::HRESULT,
pub SetPixelLocation: unsafe extern "system" fn(
*mut core::ffi::c_void,
windows::Win32::Foundation::POINT,
) -> windows_core::HRESULT,
pub HimetricLocation: unsafe extern "system" fn(
*mut core::ffi::c_void,
*mut windows::Win32::Foundation::POINT,
) -> windows_core::HRESULT,
pub SetHimetricLocation: unsafe extern "system" fn(
*mut core::ffi::c_void,
windows::Win32::Foundation::POINT,
) -> windows_core::HRESULT,
pub PixelLocationRaw: unsafe extern "system" fn(
*mut core::ffi::c_void,
*mut windows::Win32::Foundation::POINT,
) -> windows_core::HRESULT,
pub SetPixelLocationRaw: unsafe extern "system" fn(
*mut core::ffi::c_void,
windows::Win32::Foundation::POINT,
) -> windows_core::HRESULT,
pub HimetricLocationRaw: unsafe extern "system" fn(
*mut core::ffi::c_void,
*mut windows::Win32::Foundation::POINT,
) -> windows_core::HRESULT,
pub SetHimetricLocationRaw: unsafe extern "system" fn(
*mut core::ffi::c_void,
windows::Win32::Foundation::POINT,
) -> windows_core::HRESULT,
pub Time: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub SetTime: unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
pub HistoryCount:
unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub SetHistoryCount:
unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
pub InputData:
unsafe extern "system" fn(*mut core::ffi::c_void, *mut i32) -> windows_core::HRESULT,
pub SetInputData:
unsafe extern "system" fn(*mut core::ffi::c_void, i32) -> windows_core::HRESULT,
pub KeyStates:
unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub SetKeyStates:
unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
pub PerformanceCount:
unsafe extern "system" fn(*mut core::ffi::c_void, *mut u64) -> windows_core::HRESULT,
pub SetPerformanceCount:
unsafe extern "system" fn(*mut core::ffi::c_void, u64) -> windows_core::HRESULT,
pub ButtonChangeKind:
unsafe extern "system" fn(*mut core::ffi::c_void, *mut i32) -> windows_core::HRESULT,
pub SetButtonChangeKind:
unsafe extern "system" fn(*mut core::ffi::c_void, i32) -> windows_core::HRESULT,
pub PenFlags:
unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub SetPenFlags:
unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
pub PenMask:
unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub SetPenMask: unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
pub PenPressure:
unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub SetPenPressure:
unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
pub PenRotation:
unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub SetPenRotation:
unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
pub PenTiltX:
unsafe extern "system" fn(*mut core::ffi::c_void, *mut i32) -> windows_core::HRESULT,
pub SetPenTiltX:
unsafe extern "system" fn(*mut core::ffi::c_void, i32) -> windows_core::HRESULT,
pub PenTiltY:
unsafe extern "system" fn(*mut core::ffi::c_void, *mut i32) -> windows_core::HRESULT,
pub SetPenTiltY:
unsafe extern "system" fn(*mut core::ffi::c_void, i32) -> windows_core::HRESULT,
pub TouchFlags:
unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub SetTouchFlags:
unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
pub TouchMask:
unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub SetTouchMask:
unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
pub TouchContact: unsafe extern "system" fn(
*mut core::ffi::c_void,
*mut windows::Win32::Foundation::RECT,
) -> windows_core::HRESULT,
pub SetTouchContact: unsafe extern "system" fn(
*mut core::ffi::c_void,
windows::Win32::Foundation::RECT,
) -> windows_core::HRESULT,
pub TouchContactRaw: unsafe extern "system" fn(
*mut core::ffi::c_void,
*mut windows::Win32::Foundation::RECT,
) -> windows_core::HRESULT,
pub SetTouchContactRaw: unsafe extern "system" fn(
*mut core::ffi::c_void,
windows::Win32::Foundation::RECT,
) -> windows_core::HRESULT,
pub TouchOrientation:
unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub SetTouchOrientation:
unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
pub TouchPressure:
unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub SetTouchPressure:
unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
}
pub trait ICoreWebView2PointerInfo_Impl: windows_core::IUnknownImpl {
fn PointerKind(&self) -> windows_core::Result<u32>;
fn SetPointerKind(&self, pointerkind: u32) -> windows_core::Result<()>;
fn PointerId(&self) -> windows_core::Result<u32>;
fn SetPointerId(&self, pointerid: u32) -> windows_core::Result<()>;
fn FrameId(&self) -> windows_core::Result<u32>;
fn SetFrameId(&self, frameid: u32) -> windows_core::Result<()>;
fn PointerFlags(&self) -> windows_core::Result<u32>;
fn SetPointerFlags(&self, pointerflags: u32) -> windows_core::Result<()>;
fn PointerDeviceRect(&self) -> windows_core::Result<windows::Win32::Foundation::RECT>;
fn SetPointerDeviceRect(
&self,
pointerdevicerect: &windows::Win32::Foundation::RECT,
) -> windows_core::Result<()>;
fn DisplayRect(&self) -> windows_core::Result<windows::Win32::Foundation::RECT>;
fn SetDisplayRect(
&self,
displayrect: &windows::Win32::Foundation::RECT,
) -> windows_core::Result<()>;
fn PixelLocation(&self) -> windows_core::Result<windows::Win32::Foundation::POINT>;
fn SetPixelLocation(
&self,
pixellocation: &windows::Win32::Foundation::POINT,
) -> windows_core::Result<()>;
fn HimetricLocation(&self) -> windows_core::Result<windows::Win32::Foundation::POINT>;
fn SetHimetricLocation(
&self,
himetriclocation: &windows::Win32::Foundation::POINT,
) -> windows_core::Result<()>;
fn PixelLocationRaw(&self) -> windows_core::Result<windows::Win32::Foundation::POINT>;
fn SetPixelLocationRaw(
&self,
pixellocationraw: &windows::Win32::Foundation::POINT,
) -> windows_core::Result<()>;
fn HimetricLocationRaw(&self) -> windows_core::Result<windows::Win32::Foundation::POINT>;
fn SetHimetricLocationRaw(
&self,
himetriclocationraw: &windows::Win32::Foundation::POINT,
) -> windows_core::Result<()>;
fn Time(&self) -> windows_core::Result<u32>;
fn SetTime(&self, time: u32) -> windows_core::Result<()>;
fn HistoryCount(&self) -> windows_core::Result<u32>;
fn SetHistoryCount(&self, historycount: u32) -> windows_core::Result<()>;
fn InputData(&self) -> windows_core::Result<i32>;
fn SetInputData(&self, inputdata: i32) -> windows_core::Result<()>;
fn KeyStates(&self) -> windows_core::Result<u32>;
fn SetKeyStates(&self, keystates: u32) -> windows_core::Result<()>;
fn PerformanceCount(&self) -> windows_core::Result<u64>;
fn SetPerformanceCount(&self, performancecount: u64) -> windows_core::Result<()>;
fn ButtonChangeKind(&self) -> windows_core::Result<i32>;
fn SetButtonChangeKind(&self, buttonchangekind: i32) -> windows_core::Result<()>;
fn PenFlags(&self) -> windows_core::Result<u32>;
fn SetPenFlags(&self, penflags: u32) -> windows_core::Result<()>;
fn PenMask(&self) -> windows_core::Result<u32>;
fn SetPenMask(&self, penmask: u32) -> windows_core::Result<()>;
fn PenPressure(&self) -> windows_core::Result<u32>;
fn SetPenPressure(&self, penpressure: u32) -> windows_core::Result<()>;
fn PenRotation(&self) -> windows_core::Result<u32>;
fn SetPenRotation(&self, penrotation: u32) -> windows_core::Result<()>;
fn PenTiltX(&self) -> windows_core::Result<i32>;
fn SetPenTiltX(&self, pentiltx: i32) -> windows_core::Result<()>;
fn PenTiltY(&self) -> windows_core::Result<i32>;
fn SetPenTiltY(&self, pentilty: i32) -> windows_core::Result<()>;
fn TouchFlags(&self) -> windows_core::Result<u32>;
fn SetTouchFlags(&self, touchflags: u32) -> windows_core::Result<()>;
fn TouchMask(&self) -> windows_core::Result<u32>;
fn SetTouchMask(&self, touchmask: u32) -> windows_core::Result<()>;
fn TouchContact(&self) -> windows_core::Result<windows::Win32::Foundation::RECT>;
fn SetTouchContact(
&self,
touchcontact: &windows::Win32::Foundation::RECT,
) -> windows_core::Result<()>;
fn TouchContactRaw(&self) -> windows_core::Result<windows::Win32::Foundation::RECT>;
fn SetTouchContactRaw(
&self,
touchcontactraw: &windows::Win32::Foundation::RECT,
) -> windows_core::Result<()>;
fn TouchOrientation(&self) -> windows_core::Result<u32>;
fn SetTouchOrientation(&self, touchorientation: u32) -> windows_core::Result<()>;
fn TouchPressure(&self) -> windows_core::Result<u32>;
fn SetTouchPressure(&self, touchpressure: u32) -> windows_core::Result<()>;
}
impl ICoreWebView2PointerInfo_Vtbl {
pub const fn new<Identity: ICoreWebView2PointerInfo_Impl, const OFFSET: isize>() -> Self {
unsafe extern "system" fn PointerKind<
Identity: ICoreWebView2PointerInfo_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
pointerkind: *mut u32,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
match ICoreWebView2PointerInfo_Impl::PointerKind(this) {
Ok(ok__) => {
pointerkind.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn SetPointerKind<
Identity: ICoreWebView2PointerInfo_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
pointerkind: u32,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
ICoreWebView2PointerInfo_Impl::SetPointerKind(
this,
core::mem::transmute_copy(&pointerkind),
)
.into()
}
}
unsafe extern "system" fn PointerId<
Identity: ICoreWebView2PointerInfo_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
pointerid: *mut u32,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
match ICoreWebView2PointerInfo_Impl::PointerId(this) {
Ok(ok__) => {
pointerid.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn SetPointerId<
Identity: ICoreWebView2PointerInfo_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
pointerid: u32,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
ICoreWebView2PointerInfo_Impl::SetPointerId(
this,
core::mem::transmute_copy(&pointerid),
)
.into()
}
}
unsafe extern "system" fn FrameId<
Identity: ICoreWebView2PointerInfo_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
frameid: *mut u32,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
match ICoreWebView2PointerInfo_Impl::FrameId(this) {
Ok(ok__) => {
frameid.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn SetFrameId<
Identity: ICoreWebView2PointerInfo_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
frameid: u32,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
ICoreWebView2PointerInfo_Impl::SetFrameId(this, core::mem::transmute_copy(&frameid))
.into()
}
}
unsafe extern "system" fn PointerFlags<
Identity: ICoreWebView2PointerInfo_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
pointerflags: *mut u32,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
match ICoreWebView2PointerInfo_Impl::PointerFlags(this) {
Ok(ok__) => {
pointerflags.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn SetPointerFlags<
Identity: ICoreWebView2PointerInfo_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
pointerflags: u32,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
ICoreWebView2PointerInfo_Impl::SetPointerFlags(
this,
core::mem::transmute_copy(&pointerflags),
)
.into()
}
}
unsafe extern "system" fn PointerDeviceRect<
Identity: ICoreWebView2PointerInfo_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
pointerdevicerect: *mut windows::Win32::Foundation::RECT,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
match ICoreWebView2PointerInfo_Impl::PointerDeviceRect(this) {
Ok(ok__) => {
pointerdevicerect.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn SetPointerDeviceRect<
Identity: ICoreWebView2PointerInfo_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
pointerdevicerect: windows::Win32::Foundation::RECT,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
ICoreWebView2PointerInfo_Impl::SetPointerDeviceRect(
this,
core::mem::transmute(&pointerdevicerect),
)
.into()
}
}
unsafe extern "system" fn DisplayRect<
Identity: ICoreWebView2PointerInfo_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
displayrect: *mut windows::Win32::Foundation::RECT,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
match ICoreWebView2PointerInfo_Impl::DisplayRect(this) {
Ok(ok__) => {
displayrect.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn SetDisplayRect<
Identity: ICoreWebView2PointerInfo_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
displayrect: windows::Win32::Foundation::RECT,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
ICoreWebView2PointerInfo_Impl::SetDisplayRect(
this,
core::mem::transmute(&displayrect),
)
.into()
}
}
unsafe extern "system" fn PixelLocation<
Identity: ICoreWebView2PointerInfo_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
pixellocation: *mut windows::Win32::Foundation::POINT,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
match ICoreWebView2PointerInfo_Impl::PixelLocation(this) {
Ok(ok__) => {
pixellocation.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn SetPixelLocation<
Identity: ICoreWebView2PointerInfo_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
pixellocation: windows::Win32::Foundation::POINT,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
ICoreWebView2PointerInfo_Impl::SetPixelLocation(
this,
core::mem::transmute(&pixellocation),
)
.into()
}
}
unsafe extern "system" fn HimetricLocation<
Identity: ICoreWebView2PointerInfo_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
himetriclocation: *mut windows::Win32::Foundation::POINT,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
match ICoreWebView2PointerInfo_Impl::HimetricLocation(this) {
Ok(ok__) => {
himetriclocation.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn SetHimetricLocation<
Identity: ICoreWebView2PointerInfo_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
himetriclocation: windows::Win32::Foundation::POINT,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
ICoreWebView2PointerInfo_Impl::SetHimetricLocation(
this,
core::mem::transmute(&himetriclocation),
)
.into()
}
}
unsafe extern "system" fn PixelLocationRaw<
Identity: ICoreWebView2PointerInfo_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
pixellocationraw: *mut windows::Win32::Foundation::POINT,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
match ICoreWebView2PointerInfo_Impl::PixelLocationRaw(this) {
Ok(ok__) => {
pixellocationraw.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn SetPixelLocationRaw<
Identity: ICoreWebView2PointerInfo_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
pixellocationraw: windows::Win32::Foundation::POINT,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
ICoreWebView2PointerInfo_Impl::SetPixelLocationRaw(
this,
core::mem::transmute(&pixellocationraw),
)
.into()
}
}
unsafe extern "system" fn HimetricLocationRaw<
Identity: ICoreWebView2PointerInfo_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
himetriclocationraw: *mut windows::Win32::Foundation::POINT,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
match ICoreWebView2PointerInfo_Impl::HimetricLocationRaw(this) {
Ok(ok__) => {
himetriclocationraw.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn SetHimetricLocationRaw<
Identity: ICoreWebView2PointerInfo_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
himetriclocationraw: windows::Win32::Foundation::POINT,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
ICoreWebView2PointerInfo_Impl::SetHimetricLocationRaw(
this,
core::mem::transmute(&himetriclocationraw),
)
.into()
}
}
unsafe extern "system" fn Time<
Identity: ICoreWebView2PointerInfo_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
time: *mut u32,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
match ICoreWebView2PointerInfo_Impl::Time(this) {
Ok(ok__) => {
time.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn SetTime<
Identity: ICoreWebView2PointerInfo_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
time: u32,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
ICoreWebView2PointerInfo_Impl::SetTime(this, core::mem::transmute_copy(&time))
.into()
}
}
unsafe extern "system" fn HistoryCount<
Identity: ICoreWebView2PointerInfo_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
historycount: *mut u32,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
match ICoreWebView2PointerInfo_Impl::HistoryCount(this) {
Ok(ok__) => {
historycount.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn SetHistoryCount<
Identity: ICoreWebView2PointerInfo_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
historycount: u32,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
ICoreWebView2PointerInfo_Impl::SetHistoryCount(
this,
core::mem::transmute_copy(&historycount),
)
.into()
}
}
unsafe extern "system" fn InputData<
Identity: ICoreWebView2PointerInfo_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
inputdata: *mut i32,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
match ICoreWebView2PointerInfo_Impl::InputData(this) {
Ok(ok__) => {
inputdata.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn SetInputData<
Identity: ICoreWebView2PointerInfo_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
inputdata: i32,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
ICoreWebView2PointerInfo_Impl::SetInputData(
this,
core::mem::transmute_copy(&inputdata),
)
.into()
}
}
unsafe extern "system" fn KeyStates<
Identity: ICoreWebView2PointerInfo_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
keystates: *mut u32,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
match ICoreWebView2PointerInfo_Impl::KeyStates(this) {
Ok(ok__) => {
keystates.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn SetKeyStates<
Identity: ICoreWebView2PointerInfo_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
keystates: u32,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
ICoreWebView2PointerInfo_Impl::SetKeyStates(
this,
core::mem::transmute_copy(&keystates),
)
.into()
}
}
unsafe extern "system" fn PerformanceCount<
Identity: ICoreWebView2PointerInfo_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
performancecount: *mut u64,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
match ICoreWebView2PointerInfo_Impl::PerformanceCount(this) {
Ok(ok__) => {
performancecount.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn SetPerformanceCount<
Identity: ICoreWebView2PointerInfo_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
performancecount: u64,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
ICoreWebView2PointerInfo_Impl::SetPerformanceCount(
this,
core::mem::transmute_copy(&performancecount),
)
.into()
}
}
unsafe extern "system" fn ButtonChangeKind<
Identity: ICoreWebView2PointerInfo_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
buttonchangekind: *mut i32,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
match ICoreWebView2PointerInfo_Impl::ButtonChangeKind(this) {
Ok(ok__) => {
buttonchangekind.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn SetButtonChangeKind<
Identity: ICoreWebView2PointerInfo_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
buttonchangekind: i32,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
ICoreWebView2PointerInfo_Impl::SetButtonChangeKind(
this,
core::mem::transmute_copy(&buttonchangekind),
)
.into()
}
}
unsafe extern "system" fn PenFlags<
Identity: ICoreWebView2PointerInfo_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
penflags: *mut u32,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
match ICoreWebView2PointerInfo_Impl::PenFlags(this) {
Ok(ok__) => {
penflags.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn SetPenFlags<
Identity: ICoreWebView2PointerInfo_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
penflags: u32,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
ICoreWebView2PointerInfo_Impl::SetPenFlags(
this,
core::mem::transmute_copy(&penflags),
)
.into()
}
}
unsafe extern "system" fn PenMask<
Identity: ICoreWebView2PointerInfo_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
penmask: *mut u32,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
match ICoreWebView2PointerInfo_Impl::PenMask(this) {
Ok(ok__) => {
penmask.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn SetPenMask<
Identity: ICoreWebView2PointerInfo_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
penmask: u32,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
ICoreWebView2PointerInfo_Impl::SetPenMask(this, core::mem::transmute_copy(&penmask))
.into()
}
}
unsafe extern "system" fn PenPressure<
Identity: ICoreWebView2PointerInfo_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
penpressure: *mut u32,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
match ICoreWebView2PointerInfo_Impl::PenPressure(this) {
Ok(ok__) => {
penpressure.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn SetPenPressure<
Identity: ICoreWebView2PointerInfo_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
penpressure: u32,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
ICoreWebView2PointerInfo_Impl::SetPenPressure(
this,
core::mem::transmute_copy(&penpressure),
)
.into()
}
}
unsafe extern "system" fn PenRotation<
Identity: ICoreWebView2PointerInfo_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
penrotation: *mut u32,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
match ICoreWebView2PointerInfo_Impl::PenRotation(this) {
Ok(ok__) => {
penrotation.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn SetPenRotation<
Identity: ICoreWebView2PointerInfo_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
penrotation: u32,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
ICoreWebView2PointerInfo_Impl::SetPenRotation(
this,
core::mem::transmute_copy(&penrotation),
)
.into()
}
}
unsafe extern "system" fn PenTiltX<
Identity: ICoreWebView2PointerInfo_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
pentiltx: *mut i32,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
match ICoreWebView2PointerInfo_Impl::PenTiltX(this) {
Ok(ok__) => {
pentiltx.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn SetPenTiltX<
Identity: ICoreWebView2PointerInfo_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
pentiltx: i32,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
ICoreWebView2PointerInfo_Impl::SetPenTiltX(
this,
core::mem::transmute_copy(&pentiltx),
)
.into()
}
}
unsafe extern "system" fn PenTiltY<
Identity: ICoreWebView2PointerInfo_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
pentilty: *mut i32,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
match ICoreWebView2PointerInfo_Impl::PenTiltY(this) {
Ok(ok__) => {
pentilty.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn SetPenTiltY<
Identity: ICoreWebView2PointerInfo_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
pentilty: i32,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
ICoreWebView2PointerInfo_Impl::SetPenTiltY(
this,
core::mem::transmute_copy(&pentilty),
)
.into()
}
}
unsafe extern "system" fn TouchFlags<
Identity: ICoreWebView2PointerInfo_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
touchflags: *mut u32,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
match ICoreWebView2PointerInfo_Impl::TouchFlags(this) {
Ok(ok__) => {
touchflags.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn SetTouchFlags<
Identity: ICoreWebView2PointerInfo_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
touchflags: u32,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
ICoreWebView2PointerInfo_Impl::SetTouchFlags(
this,
core::mem::transmute_copy(&touchflags),
)
.into()
}
}
unsafe extern "system" fn TouchMask<
Identity: ICoreWebView2PointerInfo_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
touchmask: *mut u32,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
match ICoreWebView2PointerInfo_Impl::TouchMask(this) {
Ok(ok__) => {
touchmask.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn SetTouchMask<
Identity: ICoreWebView2PointerInfo_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
touchmask: u32,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
ICoreWebView2PointerInfo_Impl::SetTouchMask(
this,
core::mem::transmute_copy(&touchmask),
)
.into()
}
}
unsafe extern "system" fn TouchContact<
Identity: ICoreWebView2PointerInfo_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
touchcontact: *mut windows::Win32::Foundation::RECT,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
match ICoreWebView2PointerInfo_Impl::TouchContact(this) {
Ok(ok__) => {
touchcontact.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn SetTouchContact<
Identity: ICoreWebView2PointerInfo_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
touchcontact: windows::Win32::Foundation::RECT,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
ICoreWebView2PointerInfo_Impl::SetTouchContact(
this,
core::mem::transmute(&touchcontact),
)
.into()
}
}
unsafe extern "system" fn TouchContactRaw<
Identity: ICoreWebView2PointerInfo_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
touchcontactraw: *mut windows::Win32::Foundation::RECT,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
match ICoreWebView2PointerInfo_Impl::TouchContactRaw(this) {
Ok(ok__) => {
touchcontactraw.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn SetTouchContactRaw<
Identity: ICoreWebView2PointerInfo_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
touchcontactraw: windows::Win32::Foundation::RECT,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
ICoreWebView2PointerInfo_Impl::SetTouchContactRaw(
this,
core::mem::transmute(&touchcontactraw),
)
.into()
}
}
unsafe extern "system" fn TouchOrientation<
Identity: ICoreWebView2PointerInfo_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
touchorientation: *mut u32,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
match ICoreWebView2PointerInfo_Impl::TouchOrientation(this) {
Ok(ok__) => {
touchorientation.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn SetTouchOrientation<
Identity: ICoreWebView2PointerInfo_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
touchorientation: u32,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
ICoreWebView2PointerInfo_Impl::SetTouchOrientation(
this,
core::mem::transmute_copy(&touchorientation),
)
.into()
}
}
unsafe extern "system" fn TouchPressure<
Identity: ICoreWebView2PointerInfo_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
touchpressure: *mut u32,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
match ICoreWebView2PointerInfo_Impl::TouchPressure(this) {
Ok(ok__) => {
touchpressure.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn SetTouchPressure<
Identity: ICoreWebView2PointerInfo_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
touchpressure: u32,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
ICoreWebView2PointerInfo_Impl::SetTouchPressure(
this,
core::mem::transmute_copy(&touchpressure),
)
.into()
}
}
Self {
base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
PointerKind: PointerKind::<Identity, OFFSET>,
SetPointerKind: SetPointerKind::<Identity, OFFSET>,
PointerId: PointerId::<Identity, OFFSET>,
SetPointerId: SetPointerId::<Identity, OFFSET>,
FrameId: FrameId::<Identity, OFFSET>,
SetFrameId: SetFrameId::<Identity, OFFSET>,
PointerFlags: PointerFlags::<Identity, OFFSET>,
SetPointerFlags: SetPointerFlags::<Identity, OFFSET>,
PointerDeviceRect: PointerDeviceRect::<Identity, OFFSET>,
SetPointerDeviceRect: SetPointerDeviceRect::<Identity, OFFSET>,
DisplayRect: DisplayRect::<Identity, OFFSET>,
SetDisplayRect: SetDisplayRect::<Identity, OFFSET>,
PixelLocation: PixelLocation::<Identity, OFFSET>,
SetPixelLocation: SetPixelLocation::<Identity, OFFSET>,
HimetricLocation: HimetricLocation::<Identity, OFFSET>,
SetHimetricLocation: SetHimetricLocation::<Identity, OFFSET>,
PixelLocationRaw: PixelLocationRaw::<Identity, OFFSET>,
SetPixelLocationRaw: SetPixelLocationRaw::<Identity, OFFSET>,
HimetricLocationRaw: HimetricLocationRaw::<Identity, OFFSET>,
SetHimetricLocationRaw: SetHimetricLocationRaw::<Identity, OFFSET>,
Time: Time::<Identity, OFFSET>,
SetTime: SetTime::<Identity, OFFSET>,
HistoryCount: HistoryCount::<Identity, OFFSET>,
SetHistoryCount: SetHistoryCount::<Identity, OFFSET>,
InputData: InputData::<Identity, OFFSET>,
SetInputData: SetInputData::<Identity, OFFSET>,
KeyStates: KeyStates::<Identity, OFFSET>,
SetKeyStates: SetKeyStates::<Identity, OFFSET>,
PerformanceCount: PerformanceCount::<Identity, OFFSET>,
SetPerformanceCount: SetPerformanceCount::<Identity, OFFSET>,
ButtonChangeKind: ButtonChangeKind::<Identity, OFFSET>,
SetButtonChangeKind: SetButtonChangeKind::<Identity, OFFSET>,
PenFlags: PenFlags::<Identity, OFFSET>,
SetPenFlags: SetPenFlags::<Identity, OFFSET>,
PenMask: PenMask::<Identity, OFFSET>,
SetPenMask: SetPenMask::<Identity, OFFSET>,
PenPressure: PenPressure::<Identity, OFFSET>,
SetPenPressure: SetPenPressure::<Identity, OFFSET>,
PenRotation: PenRotation::<Identity, OFFSET>,
SetPenRotation: SetPenRotation::<Identity, OFFSET>,
PenTiltX: PenTiltX::<Identity, OFFSET>,
SetPenTiltX: SetPenTiltX::<Identity, OFFSET>,
PenTiltY: PenTiltY::<Identity, OFFSET>,
SetPenTiltY: SetPenTiltY::<Identity, OFFSET>,
TouchFlags: TouchFlags::<Identity, OFFSET>,
SetTouchFlags: SetTouchFlags::<Identity, OFFSET>,
TouchMask: TouchMask::<Identity, OFFSET>,
SetTouchMask: SetTouchMask::<Identity, OFFSET>,
TouchContact: TouchContact::<Identity, OFFSET>,
SetTouchContact: SetTouchContact::<Identity, OFFSET>,
TouchContactRaw: TouchContactRaw::<Identity, OFFSET>,
SetTouchContactRaw: SetTouchContactRaw::<Identity, OFFSET>,
TouchOrientation: TouchOrientation::<Identity, OFFSET>,
SetTouchOrientation: SetTouchOrientation::<Identity, OFFSET>,
TouchPressure: TouchPressure::<Identity, OFFSET>,
SetTouchPressure: SetTouchPressure::<Identity, OFFSET>,
}
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<ICoreWebView2PointerInfo as windows_core::Interface>::IID
}
}
impl windows_core::RuntimeName for ICoreWebView2PointerInfo {}
windows_core::imp::define_interface!(
ICoreWebView2ProcessFailedEventArgs,
ICoreWebView2ProcessFailedEventArgs_Vtbl,
0x8155a9a4_1474_4a86_8cae_151b0fa6b8ca
);
windows_core::imp::interface_hierarchy!(
ICoreWebView2ProcessFailedEventArgs,
windows_core::IUnknown
);
impl ICoreWebView2ProcessFailedEventArgs {
pub unsafe fn ProcessFailedKind(
&self,
) -> windows_core::Result<COREWEBVIEW2_PROCESS_FAILED_KIND> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).ProcessFailedKind)(
windows_core::Interface::as_raw(self),
&mut result__,
)
.map(|| result__)
}
}
}
#[repr(C)]
#[doc(hidden)]
pub struct ICoreWebView2ProcessFailedEventArgs_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
pub ProcessFailedKind: unsafe extern "system" fn(
*mut core::ffi::c_void,
*mut COREWEBVIEW2_PROCESS_FAILED_KIND,
) -> windows_core::HRESULT,
}
pub trait ICoreWebView2ProcessFailedEventArgs_Impl: windows_core::IUnknownImpl {
fn ProcessFailedKind(&self) -> windows_core::Result<COREWEBVIEW2_PROCESS_FAILED_KIND>;
}
impl ICoreWebView2ProcessFailedEventArgs_Vtbl {
pub const fn new<Identity: ICoreWebView2ProcessFailedEventArgs_Impl, const OFFSET: isize>(
) -> Self {
unsafe extern "system" fn ProcessFailedKind<
Identity: ICoreWebView2ProcessFailedEventArgs_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
processfailedkind: *mut COREWEBVIEW2_PROCESS_FAILED_KIND,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
match ICoreWebView2ProcessFailedEventArgs_Impl::ProcessFailedKind(this) {
Ok(ok__) => {
processfailedkind.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
Self {
base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
ProcessFailedKind: ProcessFailedKind::<Identity, OFFSET>,
}
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<ICoreWebView2ProcessFailedEventArgs as windows_core::Interface>::IID
}
}
impl windows_core::RuntimeName for ICoreWebView2ProcessFailedEventArgs {}
windows_core::imp::define_interface!(
ICoreWebView2ProcessFailedEventArgs2,
ICoreWebView2ProcessFailedEventArgs2_Vtbl,
0x4dab9422_46fa_4c3e_a5d2_41d2071d3680
);
impl core::ops::Deref for ICoreWebView2ProcessFailedEventArgs2 {
type Target = ICoreWebView2ProcessFailedEventArgs;
fn deref(&self) -> &Self::Target {
unsafe { core::mem::transmute(self) }
}
}
windows_core::imp::interface_hierarchy!(
ICoreWebView2ProcessFailedEventArgs2,
windows_core::IUnknown,
ICoreWebView2ProcessFailedEventArgs
);
impl ICoreWebView2ProcessFailedEventArgs2 {
pub unsafe fn Reason(&self) -> windows_core::Result<COREWEBVIEW2_PROCESS_FAILED_REASON> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).Reason)(
windows_core::Interface::as_raw(self),
&mut result__,
)
.map(|| result__)
}
}
pub unsafe fn ExitCode(&self) -> windows_core::Result<i32> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).ExitCode)(
windows_core::Interface::as_raw(self),
&mut result__,
)
.map(|| result__)
}
}
pub unsafe fn ProcessDescription(&self) -> windows_core::Result<windows_core::PWSTR> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).ProcessDescription)(
windows_core::Interface::as_raw(self),
&mut result__,
)
.map(|| result__)
}
}
pub unsafe fn FrameInfosForFailedProcess(
&self,
) -> windows_core::Result<ICoreWebView2FrameInfoCollection> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).FrameInfosForFailedProcess)(
windows_core::Interface::as_raw(self),
&mut result__,
)
.and_then(|| windows_core::Type::from_abi(result__))
}
}
}
#[repr(C)]
#[doc(hidden)]
pub struct ICoreWebView2ProcessFailedEventArgs2_Vtbl {
pub base__: ICoreWebView2ProcessFailedEventArgs_Vtbl,
pub Reason: unsafe extern "system" fn(
*mut core::ffi::c_void,
*mut COREWEBVIEW2_PROCESS_FAILED_REASON,
) -> windows_core::HRESULT,
pub ExitCode:
unsafe extern "system" fn(*mut core::ffi::c_void, *mut i32) -> windows_core::HRESULT,
pub ProcessDescription: unsafe extern "system" fn(
*mut core::ffi::c_void,
*mut windows_core::PWSTR,
) -> windows_core::HRESULT,
pub FrameInfosForFailedProcess: unsafe extern "system" fn(
*mut core::ffi::c_void,
*mut *mut core::ffi::c_void,
) -> windows_core::HRESULT,
}
pub trait ICoreWebView2ProcessFailedEventArgs2_Impl:
ICoreWebView2ProcessFailedEventArgs_Impl
{
fn Reason(&self) -> windows_core::Result<COREWEBVIEW2_PROCESS_FAILED_REASON>;
fn ExitCode(&self) -> windows_core::Result<i32>;
fn ProcessDescription(&self) -> windows_core::Result<windows_core::PWSTR>;
fn FrameInfosForFailedProcess(&self) -> windows_core::Result<ICoreWebView2FrameInfoCollection>;
}
impl ICoreWebView2ProcessFailedEventArgs2_Vtbl {
pub const fn new<Identity: ICoreWebView2ProcessFailedEventArgs2_Impl, const OFFSET: isize>(
) -> Self {
unsafe extern "system" fn Reason<
Identity: ICoreWebView2ProcessFailedEventArgs2_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
reason: *mut COREWEBVIEW2_PROCESS_FAILED_REASON,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
match ICoreWebView2ProcessFailedEventArgs2_Impl::Reason(this) {
Ok(ok__) => {
reason.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn ExitCode<
Identity: ICoreWebView2ProcessFailedEventArgs2_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
exitcode: *mut i32,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
match ICoreWebView2ProcessFailedEventArgs2_Impl::ExitCode(this) {
Ok(ok__) => {
exitcode.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn ProcessDescription<
Identity: ICoreWebView2ProcessFailedEventArgs2_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
processdescription: *mut windows_core::PWSTR,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
match ICoreWebView2ProcessFailedEventArgs2_Impl::ProcessDescription(this) {
Ok(ok__) => {
processdescription.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn FrameInfosForFailedProcess<
Identity: ICoreWebView2ProcessFailedEventArgs2_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
frames: *mut *mut core::ffi::c_void,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
match ICoreWebView2ProcessFailedEventArgs2_Impl::FrameInfosForFailedProcess(this) {
Ok(ok__) => {
frames.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
Self {
base__: ICoreWebView2ProcessFailedEventArgs_Vtbl::new::<Identity, OFFSET>(),
Reason: Reason::<Identity, OFFSET>,
ExitCode: ExitCode::<Identity, OFFSET>,
ProcessDescription: ProcessDescription::<Identity, OFFSET>,
FrameInfosForFailedProcess: FrameInfosForFailedProcess::<Identity, OFFSET>,
}
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<ICoreWebView2ProcessFailedEventArgs2 as windows_core::Interface>::IID
|| iid == &<ICoreWebView2ProcessFailedEventArgs as windows_core::Interface>::IID
}
}
impl windows_core::RuntimeName for ICoreWebView2ProcessFailedEventArgs2 {}
windows_core::imp::define_interface!(
ICoreWebView2ProcessFailedEventHandler,
ICoreWebView2ProcessFailedEventHandler_Vtbl,
0x79e0aea4_990b_42d9_aa1d_0fcc2e5bc7f1
);
windows_core::imp::interface_hierarchy!(
ICoreWebView2ProcessFailedEventHandler,
windows_core::IUnknown
);
impl ICoreWebView2ProcessFailedEventHandler {
pub unsafe fn Invoke<P0, P1>(&self, sender: P0, args: P1) -> windows_core::Result<()>
where
P0: windows_core::Param<ICoreWebView2>,
P1: windows_core::Param<ICoreWebView2ProcessFailedEventArgs>,
{
unsafe {
(windows_core::Interface::vtable(self).Invoke)(
windows_core::Interface::as_raw(self),
sender.param().abi(),
args.param().abi(),
)
.ok()
}
}
}
#[repr(C)]
#[doc(hidden)]
pub struct ICoreWebView2ProcessFailedEventHandler_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
pub Invoke: unsafe extern "system" fn(
*mut core::ffi::c_void,
*mut core::ffi::c_void,
*mut core::ffi::c_void,
) -> windows_core::HRESULT,
}
pub trait ICoreWebView2ProcessFailedEventHandler_Impl: windows_core::IUnknownImpl {
fn Invoke(
&self,
sender: windows_core::Ref<ICoreWebView2>,
args: windows_core::Ref<ICoreWebView2ProcessFailedEventArgs>,
) -> windows_core::Result<()>;
}
impl ICoreWebView2ProcessFailedEventHandler_Vtbl {
pub const fn new<Identity: ICoreWebView2ProcessFailedEventHandler_Impl, const OFFSET: isize>(
) -> Self {
unsafe extern "system" fn Invoke<
Identity: ICoreWebView2ProcessFailedEventHandler_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
sender: *mut core::ffi::c_void,
args: *mut core::ffi::c_void,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
ICoreWebView2ProcessFailedEventHandler_Impl::Invoke(
this,
core::mem::transmute_copy(&sender),
core::mem::transmute_copy(&args),
)
.into()
}
}
Self {
base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
Invoke: Invoke::<Identity, OFFSET>,
}
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<ICoreWebView2ProcessFailedEventHandler as windows_core::Interface>::IID
}
}
impl windows_core::RuntimeName for ICoreWebView2ProcessFailedEventHandler {}
windows_core::imp::define_interface!(
ICoreWebView2RasterizationScaleChangedEventHandler,
ICoreWebView2RasterizationScaleChangedEventHandler_Vtbl,
0x9c98c8b1_ac53_427e_a345_3049b5524bbe
);
windows_core::imp::interface_hierarchy!(
ICoreWebView2RasterizationScaleChangedEventHandler,
windows_core::IUnknown
);
impl ICoreWebView2RasterizationScaleChangedEventHandler {
pub unsafe fn Invoke<P0, P1>(&self, sender: P0, args: P1) -> windows_core::Result<()>
where
P0: windows_core::Param<ICoreWebView2Controller>,
P1: windows_core::Param<windows_core::IUnknown>,
{
unsafe {
(windows_core::Interface::vtable(self).Invoke)(
windows_core::Interface::as_raw(self),
sender.param().abi(),
args.param().abi(),
)
.ok()
}
}
}
#[repr(C)]
#[doc(hidden)]
pub struct ICoreWebView2RasterizationScaleChangedEventHandler_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
pub Invoke: unsafe extern "system" fn(
*mut core::ffi::c_void,
*mut core::ffi::c_void,
*mut core::ffi::c_void,
) -> windows_core::HRESULT,
}
pub trait ICoreWebView2RasterizationScaleChangedEventHandler_Impl:
windows_core::IUnknownImpl
{
fn Invoke(
&self,
sender: windows_core::Ref<ICoreWebView2Controller>,
args: windows_core::Ref<windows_core::IUnknown>,
) -> windows_core::Result<()>;
}
impl ICoreWebView2RasterizationScaleChangedEventHandler_Vtbl {
pub const fn new<
Identity: ICoreWebView2RasterizationScaleChangedEventHandler_Impl,
const OFFSET: isize,
>() -> Self {
unsafe extern "system" fn Invoke<
Identity: ICoreWebView2RasterizationScaleChangedEventHandler_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
sender: *mut core::ffi::c_void,
args: *mut core::ffi::c_void,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
ICoreWebView2RasterizationScaleChangedEventHandler_Impl::Invoke(
this,
core::mem::transmute_copy(&sender),
core::mem::transmute_copy(&args),
)
.into()
}
}
Self {
base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
Invoke: Invoke::<Identity, OFFSET>,
}
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<ICoreWebView2RasterizationScaleChangedEventHandler as windows_core::Interface>::IID
}
}
impl windows_core::RuntimeName for ICoreWebView2RasterizationScaleChangedEventHandler {}
windows_core::imp::define_interface!(
ICoreWebView2ScriptDialogOpeningEventArgs,
ICoreWebView2ScriptDialogOpeningEventArgs_Vtbl,
0x7390bb70_abe0_4843_9529_f143b31b03d6
);
windows_core::imp::interface_hierarchy!(
ICoreWebView2ScriptDialogOpeningEventArgs,
windows_core::IUnknown
);
impl ICoreWebView2ScriptDialogOpeningEventArgs {
pub unsafe fn Uri(&self) -> windows_core::Result<windows_core::PWSTR> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).Uri)(
windows_core::Interface::as_raw(self),
&mut result__,
)
.map(|| result__)
}
}
pub unsafe fn Kind(&self) -> windows_core::Result<COREWEBVIEW2_SCRIPT_DIALOG_KIND> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).Kind)(
windows_core::Interface::as_raw(self),
&mut result__,
)
.map(|| result__)
}
}
pub unsafe fn Message(&self) -> windows_core::Result<windows_core::PWSTR> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).Message)(
windows_core::Interface::as_raw(self),
&mut result__,
)
.map(|| result__)
}
}
pub unsafe fn Accept(&self) -> windows_core::Result<()> {
unsafe {
(windows_core::Interface::vtable(self).Accept)(windows_core::Interface::as_raw(self))
.ok()
}
}
pub unsafe fn DefaultText(&self) -> windows_core::Result<windows_core::PWSTR> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).DefaultText)(
windows_core::Interface::as_raw(self),
&mut result__,
)
.map(|| result__)
}
}
pub unsafe fn ResultText(&self) -> windows_core::Result<windows_core::PWSTR> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).ResultText)(
windows_core::Interface::as_raw(self),
&mut result__,
)
.map(|| result__)
}
}
pub unsafe fn SetResultText<P0>(&self, resulttext: P0) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCWSTR>,
{
unsafe {
(windows_core::Interface::vtable(self).SetResultText)(
windows_core::Interface::as_raw(self),
resulttext.param().abi(),
)
.ok()
}
}
pub unsafe fn GetDeferral(&self) -> windows_core::Result<ICoreWebView2Deferral> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetDeferral)(
windows_core::Interface::as_raw(self),
&mut result__,
)
.and_then(|| windows_core::Type::from_abi(result__))
}
}
}
#[repr(C)]
#[doc(hidden)]
pub struct ICoreWebView2ScriptDialogOpeningEventArgs_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
pub Uri: unsafe extern "system" fn(
*mut core::ffi::c_void,
*mut windows_core::PWSTR,
) -> windows_core::HRESULT,
pub Kind: unsafe extern "system" fn(
*mut core::ffi::c_void,
*mut COREWEBVIEW2_SCRIPT_DIALOG_KIND,
) -> windows_core::HRESULT,
pub Message: unsafe extern "system" fn(
*mut core::ffi::c_void,
*mut windows_core::PWSTR,
) -> windows_core::HRESULT,
pub Accept: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
pub DefaultText: unsafe extern "system" fn(
*mut core::ffi::c_void,
*mut windows_core::PWSTR,
) -> windows_core::HRESULT,
pub ResultText: unsafe extern "system" fn(
*mut core::ffi::c_void,
*mut windows_core::PWSTR,
) -> windows_core::HRESULT,
pub SetResultText: unsafe extern "system" fn(
*mut core::ffi::c_void,
windows_core::PCWSTR,
) -> windows_core::HRESULT,
pub GetDeferral: unsafe extern "system" fn(
*mut core::ffi::c_void,
*mut *mut core::ffi::c_void,
) -> windows_core::HRESULT,
}
pub trait ICoreWebView2ScriptDialogOpeningEventArgs_Impl: windows_core::IUnknownImpl {
fn Uri(&self) -> windows_core::Result<windows_core::PWSTR>;
fn Kind(&self) -> windows_core::Result<COREWEBVIEW2_SCRIPT_DIALOG_KIND>;
fn Message(&self) -> windows_core::Result<windows_core::PWSTR>;
fn Accept(&self) -> windows_core::Result<()>;
fn DefaultText(&self) -> windows_core::Result<windows_core::PWSTR>;
fn ResultText(&self) -> windows_core::Result<windows_core::PWSTR>;
fn SetResultText(&self, resulttext: &windows_core::PCWSTR) -> windows_core::Result<()>;
fn GetDeferral(&self) -> windows_core::Result<ICoreWebView2Deferral>;
}
impl ICoreWebView2ScriptDialogOpeningEventArgs_Vtbl {
pub const fn new<
Identity: ICoreWebView2ScriptDialogOpeningEventArgs_Impl,
const OFFSET: isize,
>() -> Self {
unsafe extern "system" fn Uri<
Identity: ICoreWebView2ScriptDialogOpeningEventArgs_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
uri: *mut windows_core::PWSTR,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
match ICoreWebView2ScriptDialogOpeningEventArgs_Impl::Uri(this) {
Ok(ok__) => {
uri.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn Kind<
Identity: ICoreWebView2ScriptDialogOpeningEventArgs_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
kind: *mut COREWEBVIEW2_SCRIPT_DIALOG_KIND,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
match ICoreWebView2ScriptDialogOpeningEventArgs_Impl::Kind(this) {
Ok(ok__) => {
kind.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn Message<
Identity: ICoreWebView2ScriptDialogOpeningEventArgs_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
message: *mut windows_core::PWSTR,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
match ICoreWebView2ScriptDialogOpeningEventArgs_Impl::Message(this) {
Ok(ok__) => {
message.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn Accept<
Identity: ICoreWebView2ScriptDialogOpeningEventArgs_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
ICoreWebView2ScriptDialogOpeningEventArgs_Impl::Accept(this).into()
}
}
unsafe extern "system" fn DefaultText<
Identity: ICoreWebView2ScriptDialogOpeningEventArgs_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
defaulttext: *mut windows_core::PWSTR,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
match ICoreWebView2ScriptDialogOpeningEventArgs_Impl::DefaultText(this) {
Ok(ok__) => {
defaulttext.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn ResultText<
Identity: ICoreWebView2ScriptDialogOpeningEventArgs_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
resulttext: *mut windows_core::PWSTR,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
match ICoreWebView2ScriptDialogOpeningEventArgs_Impl::ResultText(this) {
Ok(ok__) => {
resulttext.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn SetResultText<
Identity: ICoreWebView2ScriptDialogOpeningEventArgs_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
resulttext: windows_core::PCWSTR,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
ICoreWebView2ScriptDialogOpeningEventArgs_Impl::SetResultText(
this,
core::mem::transmute(&resulttext),
)
.into()
}
}
unsafe extern "system" fn GetDeferral<
Identity: ICoreWebView2ScriptDialogOpeningEventArgs_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
deferral: *mut *mut core::ffi::c_void,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
match ICoreWebView2ScriptDialogOpeningEventArgs_Impl::GetDeferral(this) {
Ok(ok__) => {
deferral.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
Self {
base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
Uri: Uri::<Identity, OFFSET>,
Kind: Kind::<Identity, OFFSET>,
Message: Message::<Identity, OFFSET>,
Accept: Accept::<Identity, OFFSET>,
DefaultText: DefaultText::<Identity, OFFSET>,
ResultText: ResultText::<Identity, OFFSET>,
SetResultText: SetResultText::<Identity, OFFSET>,
GetDeferral: GetDeferral::<Identity, OFFSET>,
}
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<ICoreWebView2ScriptDialogOpeningEventArgs as windows_core::Interface>::IID
}
}
impl windows_core::RuntimeName for ICoreWebView2ScriptDialogOpeningEventArgs {}
windows_core::imp::define_interface!(
ICoreWebView2ScriptDialogOpeningEventHandler,
ICoreWebView2ScriptDialogOpeningEventHandler_Vtbl,
0xef381bf9_afa8_4e37_91c4_8ac48524bdfb
);
windows_core::imp::interface_hierarchy!(
ICoreWebView2ScriptDialogOpeningEventHandler,
windows_core::IUnknown
);
impl ICoreWebView2ScriptDialogOpeningEventHandler {
pub unsafe fn Invoke<P0, P1>(&self, sender: P0, args: P1) -> windows_core::Result<()>
where
P0: windows_core::Param<ICoreWebView2>,
P1: windows_core::Param<ICoreWebView2ScriptDialogOpeningEventArgs>,
{
unsafe {
(windows_core::Interface::vtable(self).Invoke)(
windows_core::Interface::as_raw(self),
sender.param().abi(),
args.param().abi(),
)
.ok()
}
}
}
#[repr(C)]
#[doc(hidden)]
pub struct ICoreWebView2ScriptDialogOpeningEventHandler_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
pub Invoke: unsafe extern "system" fn(
*mut core::ffi::c_void,
*mut core::ffi::c_void,
*mut core::ffi::c_void,
) -> windows_core::HRESULT,
}
pub trait ICoreWebView2ScriptDialogOpeningEventHandler_Impl: windows_core::IUnknownImpl {
fn Invoke(
&self,
sender: windows_core::Ref<ICoreWebView2>,
args: windows_core::Ref<ICoreWebView2ScriptDialogOpeningEventArgs>,
) -> windows_core::Result<()>;
}
impl ICoreWebView2ScriptDialogOpeningEventHandler_Vtbl {
pub const fn new<
Identity: ICoreWebView2ScriptDialogOpeningEventHandler_Impl,
const OFFSET: isize,
>() -> Self {
unsafe extern "system" fn Invoke<
Identity: ICoreWebView2ScriptDialogOpeningEventHandler_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
sender: *mut core::ffi::c_void,
args: *mut core::ffi::c_void,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
ICoreWebView2ScriptDialogOpeningEventHandler_Impl::Invoke(
this,
core::mem::transmute_copy(&sender),
core::mem::transmute_copy(&args),
)
.into()
}
}
Self {
base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
Invoke: Invoke::<Identity, OFFSET>,
}
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<ICoreWebView2ScriptDialogOpeningEventHandler as windows_core::Interface>::IID
}
}
impl windows_core::RuntimeName for ICoreWebView2ScriptDialogOpeningEventHandler {}
windows_core::imp::define_interface!(
ICoreWebView2Settings,
ICoreWebView2Settings_Vtbl,
0xe562e4f0_d7fa_43ac_8d71_c05150499f00
);
windows_core::imp::interface_hierarchy!(ICoreWebView2Settings, windows_core::IUnknown);
impl ICoreWebView2Settings {
pub unsafe fn IsScriptEnabled(&self) -> windows_core::Result<windows_core::BOOL> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).IsScriptEnabled)(
windows_core::Interface::as_raw(self),
&mut result__,
)
.map(|| result__)
}
}
pub unsafe fn SetIsScriptEnabled(&self, isscriptenabled: bool) -> windows_core::Result<()> {
unsafe {
(windows_core::Interface::vtable(self).SetIsScriptEnabled)(
windows_core::Interface::as_raw(self),
isscriptenabled.into(),
)
.ok()
}
}
pub unsafe fn IsWebMessageEnabled(&self) -> windows_core::Result<windows_core::BOOL> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).IsWebMessageEnabled)(
windows_core::Interface::as_raw(self),
&mut result__,
)
.map(|| result__)
}
}
pub unsafe fn SetIsWebMessageEnabled(
&self,
iswebmessageenabled: bool,
) -> windows_core::Result<()> {
unsafe {
(windows_core::Interface::vtable(self).SetIsWebMessageEnabled)(
windows_core::Interface::as_raw(self),
iswebmessageenabled.into(),
)
.ok()
}
}
pub unsafe fn AreDefaultScriptDialogsEnabled(
&self,
) -> windows_core::Result<windows_core::BOOL> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).AreDefaultScriptDialogsEnabled)(
windows_core::Interface::as_raw(self),
&mut result__,
)
.map(|| result__)
}
}
pub unsafe fn SetAreDefaultScriptDialogsEnabled(
&self,
aredefaultscriptdialogsenabled: bool,
) -> windows_core::Result<()> {
unsafe {
(windows_core::Interface::vtable(self).SetAreDefaultScriptDialogsEnabled)(
windows_core::Interface::as_raw(self),
aredefaultscriptdialogsenabled.into(),
)
.ok()
}
}
pub unsafe fn IsStatusBarEnabled(&self) -> windows_core::Result<windows_core::BOOL> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).IsStatusBarEnabled)(
windows_core::Interface::as_raw(self),
&mut result__,
)
.map(|| result__)
}
}
pub unsafe fn SetIsStatusBarEnabled(
&self,
isstatusbarenabled: bool,
) -> windows_core::Result<()> {
unsafe {
(windows_core::Interface::vtable(self).SetIsStatusBarEnabled)(
windows_core::Interface::as_raw(self),
isstatusbarenabled.into(),
)
.ok()
}
}
pub unsafe fn AreDevToolsEnabled(&self) -> windows_core::Result<windows_core::BOOL> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).AreDevToolsEnabled)(
windows_core::Interface::as_raw(self),
&mut result__,
)
.map(|| result__)
}
}
pub unsafe fn SetAreDevToolsEnabled(
&self,
aredevtoolsenabled: bool,
) -> windows_core::Result<()> {
unsafe {
(windows_core::Interface::vtable(self).SetAreDevToolsEnabled)(
windows_core::Interface::as_raw(self),
aredevtoolsenabled.into(),
)
.ok()
}
}
pub unsafe fn AreDefaultContextMenusEnabled(&self) -> windows_core::Result<windows_core::BOOL> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).AreDefaultContextMenusEnabled)(
windows_core::Interface::as_raw(self),
&mut result__,
)
.map(|| result__)
}
}
pub unsafe fn SetAreDefaultContextMenusEnabled(
&self,
enabled: bool,
) -> windows_core::Result<()> {
unsafe {
(windows_core::Interface::vtable(self).SetAreDefaultContextMenusEnabled)(
windows_core::Interface::as_raw(self),
enabled.into(),
)
.ok()
}
}
pub unsafe fn AreHostObjectsAllowed(&self) -> windows_core::Result<windows_core::BOOL> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).AreHostObjectsAllowed)(
windows_core::Interface::as_raw(self),
&mut result__,
)
.map(|| result__)
}
}
pub unsafe fn SetAreHostObjectsAllowed(&self, allowed: bool) -> windows_core::Result<()> {
unsafe {
(windows_core::Interface::vtable(self).SetAreHostObjectsAllowed)(
windows_core::Interface::as_raw(self),
allowed.into(),
)
.ok()
}
}
pub unsafe fn IsZoomControlEnabled(&self) -> windows_core::Result<windows_core::BOOL> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).IsZoomControlEnabled)(
windows_core::Interface::as_raw(self),
&mut result__,
)
.map(|| result__)
}
}
pub unsafe fn SetIsZoomControlEnabled(&self, enabled: bool) -> windows_core::Result<()> {
unsafe {
(windows_core::Interface::vtable(self).SetIsZoomControlEnabled)(
windows_core::Interface::as_raw(self),
enabled.into(),
)
.ok()
}
}
pub unsafe fn IsBuiltInErrorPageEnabled(&self) -> windows_core::Result<windows_core::BOOL> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).IsBuiltInErrorPageEnabled)(
windows_core::Interface::as_raw(self),
&mut result__,
)
.map(|| result__)
}
}
pub unsafe fn SetIsBuiltInErrorPageEnabled(&self, enabled: bool) -> windows_core::Result<()> {
unsafe {
(windows_core::Interface::vtable(self).SetIsBuiltInErrorPageEnabled)(
windows_core::Interface::as_raw(self),
enabled.into(),
)
.ok()
}
}
}
#[repr(C)]
#[doc(hidden)]
pub struct ICoreWebView2Settings_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
pub IsScriptEnabled: unsafe extern "system" fn(
*mut core::ffi::c_void,
*mut windows_core::BOOL,
) -> windows_core::HRESULT,
pub SetIsScriptEnabled: unsafe extern "system" fn(
*mut core::ffi::c_void,
windows_core::BOOL,
) -> windows_core::HRESULT,
pub IsWebMessageEnabled: unsafe extern "system" fn(
*mut core::ffi::c_void,
*mut windows_core::BOOL,
) -> windows_core::HRESULT,
pub SetIsWebMessageEnabled: unsafe extern "system" fn(
*mut core::ffi::c_void,
windows_core::BOOL,
) -> windows_core::HRESULT,
pub AreDefaultScriptDialogsEnabled: unsafe extern "system" fn(
*mut core::ffi::c_void,
*mut windows_core::BOOL,
) -> windows_core::HRESULT,
pub SetAreDefaultScriptDialogsEnabled: unsafe extern "system" fn(
*mut core::ffi::c_void,
windows_core::BOOL,
) -> windows_core::HRESULT,
pub IsStatusBarEnabled: unsafe extern "system" fn(
*mut core::ffi::c_void,
*mut windows_core::BOOL,
) -> windows_core::HRESULT,
pub SetIsStatusBarEnabled: unsafe extern "system" fn(
*mut core::ffi::c_void,
windows_core::BOOL,
) -> windows_core::HRESULT,
pub AreDevToolsEnabled: unsafe extern "system" fn(
*mut core::ffi::c_void,
*mut windows_core::BOOL,
) -> windows_core::HRESULT,
pub SetAreDevToolsEnabled: unsafe extern "system" fn(
*mut core::ffi::c_void,
windows_core::BOOL,
) -> windows_core::HRESULT,
pub AreDefaultContextMenusEnabled: unsafe extern "system" fn(
*mut core::ffi::c_void,
*mut windows_core::BOOL,
) -> windows_core::HRESULT,
pub SetAreDefaultContextMenusEnabled: unsafe extern "system" fn(
*mut core::ffi::c_void,
windows_core::BOOL,
) -> windows_core::HRESULT,
pub AreHostObjectsAllowed: unsafe extern "system" fn(
*mut core::ffi::c_void,
*mut windows_core::BOOL,
) -> windows_core::HRESULT,
pub SetAreHostObjectsAllowed: unsafe extern "system" fn(
*mut core::ffi::c_void,
windows_core::BOOL,
) -> windows_core::HRESULT,
pub IsZoomControlEnabled: unsafe extern "system" fn(
*mut core::ffi::c_void,
*mut windows_core::BOOL,
) -> windows_core::HRESULT,
pub SetIsZoomControlEnabled: unsafe extern "system" fn(
*mut core::ffi::c_void,
windows_core::BOOL,
) -> windows_core::HRESULT,
pub IsBuiltInErrorPageEnabled: unsafe extern "system" fn(
*mut core::ffi::c_void,
*mut windows_core::BOOL,
) -> windows_core::HRESULT,
pub SetIsBuiltInErrorPageEnabled: unsafe extern "system" fn(
*mut core::ffi::c_void,
windows_core::BOOL,
) -> windows_core::HRESULT,
}
pub trait ICoreWebView2Settings_Impl: windows_core::IUnknownImpl {
fn IsScriptEnabled(&self) -> windows_core::Result<windows_core::BOOL>;
fn SetIsScriptEnabled(&self, isscriptenabled: windows_core::BOOL) -> windows_core::Result<()>;
fn IsWebMessageEnabled(&self) -> windows_core::Result<windows_core::BOOL>;
fn SetIsWebMessageEnabled(
&self,
iswebmessageenabled: windows_core::BOOL,
) -> windows_core::Result<()>;
fn AreDefaultScriptDialogsEnabled(&self) -> windows_core::Result<windows_core::BOOL>;
fn SetAreDefaultScriptDialogsEnabled(
&self,
aredefaultscriptdialogsenabled: windows_core::BOOL,
) -> windows_core::Result<()>;
fn IsStatusBarEnabled(&self) -> windows_core::Result<windows_core::BOOL>;
fn SetIsStatusBarEnabled(
&self,
isstatusbarenabled: windows_core::BOOL,
) -> windows_core::Result<()>;
fn AreDevToolsEnabled(&self) -> windows_core::Result<windows_core::BOOL>;
fn SetAreDevToolsEnabled(
&self,
aredevtoolsenabled: windows_core::BOOL,
) -> windows_core::Result<()>;
fn AreDefaultContextMenusEnabled(&self) -> windows_core::Result<windows_core::BOOL>;
fn SetAreDefaultContextMenusEnabled(
&self,
enabled: windows_core::BOOL,
) -> windows_core::Result<()>;
fn AreHostObjectsAllowed(&self) -> windows_core::Result<windows_core::BOOL>;
fn SetAreHostObjectsAllowed(&self, allowed: windows_core::BOOL) -> windows_core::Result<()>;
fn IsZoomControlEnabled(&self) -> windows_core::Result<windows_core::BOOL>;
fn SetIsZoomControlEnabled(&self, enabled: windows_core::BOOL) -> windows_core::Result<()>;
fn IsBuiltInErrorPageEnabled(&self) -> windows_core::Result<windows_core::BOOL>;
fn SetIsBuiltInErrorPageEnabled(&self, enabled: windows_core::BOOL)
-> windows_core::Result<()>;
}
impl ICoreWebView2Settings_Vtbl {
pub const fn new<Identity: ICoreWebView2Settings_Impl, const OFFSET: isize>() -> Self {
unsafe extern "system" fn IsScriptEnabled<
Identity: ICoreWebView2Settings_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
isscriptenabled: *mut windows_core::BOOL,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
match ICoreWebView2Settings_Impl::IsScriptEnabled(this) {
Ok(ok__) => {
isscriptenabled.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn SetIsScriptEnabled<
Identity: ICoreWebView2Settings_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
isscriptenabled: windows_core::BOOL,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
ICoreWebView2Settings_Impl::SetIsScriptEnabled(
this,
core::mem::transmute_copy(&isscriptenabled),
)
.into()
}
}
unsafe extern "system" fn IsWebMessageEnabled<
Identity: ICoreWebView2Settings_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
iswebmessageenabled: *mut windows_core::BOOL,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
match ICoreWebView2Settings_Impl::IsWebMessageEnabled(this) {
Ok(ok__) => {
iswebmessageenabled.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn SetIsWebMessageEnabled<
Identity: ICoreWebView2Settings_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
iswebmessageenabled: windows_core::BOOL,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
ICoreWebView2Settings_Impl::SetIsWebMessageEnabled(
this,
core::mem::transmute_copy(&iswebmessageenabled),
)
.into()
}
}
unsafe extern "system" fn AreDefaultScriptDialogsEnabled<
Identity: ICoreWebView2Settings_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
aredefaultscriptdialogsenabled: *mut windows_core::BOOL,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
match ICoreWebView2Settings_Impl::AreDefaultScriptDialogsEnabled(this) {
Ok(ok__) => {
aredefaultscriptdialogsenabled.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn SetAreDefaultScriptDialogsEnabled<
Identity: ICoreWebView2Settings_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
aredefaultscriptdialogsenabled: windows_core::BOOL,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
ICoreWebView2Settings_Impl::SetAreDefaultScriptDialogsEnabled(
this,
core::mem::transmute_copy(&aredefaultscriptdialogsenabled),
)
.into()
}
}
unsafe extern "system" fn IsStatusBarEnabled<
Identity: ICoreWebView2Settings_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
isstatusbarenabled: *mut windows_core::BOOL,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
match ICoreWebView2Settings_Impl::IsStatusBarEnabled(this) {
Ok(ok__) => {
isstatusbarenabled.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn SetIsStatusBarEnabled<
Identity: ICoreWebView2Settings_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
isstatusbarenabled: windows_core::BOOL,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
ICoreWebView2Settings_Impl::SetIsStatusBarEnabled(
this,
core::mem::transmute_copy(&isstatusbarenabled),
)
.into()
}
}
unsafe extern "system" fn AreDevToolsEnabled<
Identity: ICoreWebView2Settings_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
aredevtoolsenabled: *mut windows_core::BOOL,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
match ICoreWebView2Settings_Impl::AreDevToolsEnabled(this) {
Ok(ok__) => {
aredevtoolsenabled.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn SetAreDevToolsEnabled<
Identity: ICoreWebView2Settings_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
aredevtoolsenabled: windows_core::BOOL,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
ICoreWebView2Settings_Impl::SetAreDevToolsEnabled(
this,
core::mem::transmute_copy(&aredevtoolsenabled),
)
.into()
}
}
unsafe extern "system" fn AreDefaultContextMenusEnabled<
Identity: ICoreWebView2Settings_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
enabled: *mut windows_core::BOOL,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
match ICoreWebView2Settings_Impl::AreDefaultContextMenusEnabled(this) {
Ok(ok__) => {
enabled.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn SetAreDefaultContextMenusEnabled<
Identity: ICoreWebView2Settings_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
enabled: windows_core::BOOL,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
ICoreWebView2Settings_Impl::SetAreDefaultContextMenusEnabled(
this,
core::mem::transmute_copy(&enabled),
)
.into()
}
}
unsafe extern "system" fn AreHostObjectsAllowed<
Identity: ICoreWebView2Settings_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
allowed: *mut windows_core::BOOL,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
match ICoreWebView2Settings_Impl::AreHostObjectsAllowed(this) {
Ok(ok__) => {
allowed.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn SetAreHostObjectsAllowed<
Identity: ICoreWebView2Settings_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
allowed: windows_core::BOOL,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
ICoreWebView2Settings_Impl::SetAreHostObjectsAllowed(
this,
core::mem::transmute_copy(&allowed),
)
.into()
}
}
unsafe extern "system" fn IsZoomControlEnabled<
Identity: ICoreWebView2Settings_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
enabled: *mut windows_core::BOOL,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
match ICoreWebView2Settings_Impl::IsZoomControlEnabled(this) {
Ok(ok__) => {
enabled.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn SetIsZoomControlEnabled<
Identity: ICoreWebView2Settings_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
enabled: windows_core::BOOL,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
ICoreWebView2Settings_Impl::SetIsZoomControlEnabled(
this,
core::mem::transmute_copy(&enabled),
)
.into()
}
}
unsafe extern "system" fn IsBuiltInErrorPageEnabled<
Identity: ICoreWebView2Settings_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
enabled: *mut windows_core::BOOL,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
match ICoreWebView2Settings_Impl::IsBuiltInErrorPageEnabled(this) {
Ok(ok__) => {
enabled.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn SetIsBuiltInErrorPageEnabled<
Identity: ICoreWebView2Settings_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
enabled: windows_core::BOOL,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
ICoreWebView2Settings_Impl::SetIsBuiltInErrorPageEnabled(
this,
core::mem::transmute_copy(&enabled),
)
.into()
}
}
Self {
base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
IsScriptEnabled: IsScriptEnabled::<Identity, OFFSET>,
SetIsScriptEnabled: SetIsScriptEnabled::<Identity, OFFSET>,
IsWebMessageEnabled: IsWebMessageEnabled::<Identity, OFFSET>,
SetIsWebMessageEnabled: SetIsWebMessageEnabled::<Identity, OFFSET>,
AreDefaultScriptDialogsEnabled: AreDefaultScriptDialogsEnabled::<Identity, OFFSET>,
SetAreDefaultScriptDialogsEnabled: SetAreDefaultScriptDialogsEnabled::<Identity, OFFSET>,
IsStatusBarEnabled: IsStatusBarEnabled::<Identity, OFFSET>,
SetIsStatusBarEnabled: SetIsStatusBarEnabled::<Identity, OFFSET>,
AreDevToolsEnabled: AreDevToolsEnabled::<Identity, OFFSET>,
SetAreDevToolsEnabled: SetAreDevToolsEnabled::<Identity, OFFSET>,
AreDefaultContextMenusEnabled: AreDefaultContextMenusEnabled::<Identity, OFFSET>,
SetAreDefaultContextMenusEnabled: SetAreDefaultContextMenusEnabled::<Identity, OFFSET>,
AreHostObjectsAllowed: AreHostObjectsAllowed::<Identity, OFFSET>,
SetAreHostObjectsAllowed: SetAreHostObjectsAllowed::<Identity, OFFSET>,
IsZoomControlEnabled: IsZoomControlEnabled::<Identity, OFFSET>,
SetIsZoomControlEnabled: SetIsZoomControlEnabled::<Identity, OFFSET>,
IsBuiltInErrorPageEnabled: IsBuiltInErrorPageEnabled::<Identity, OFFSET>,
SetIsBuiltInErrorPageEnabled: SetIsBuiltInErrorPageEnabled::<Identity, OFFSET>,
}
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<ICoreWebView2Settings as windows_core::Interface>::IID
}
}
impl windows_core::RuntimeName for ICoreWebView2Settings {}
windows_core::imp::define_interface!(
ICoreWebView2Settings2,
ICoreWebView2Settings2_Vtbl,
0xee9a0f68_f46c_4e32_ac23_ef8cac224d2a
);
impl core::ops::Deref for ICoreWebView2Settings2 {
type Target = ICoreWebView2Settings;
fn deref(&self) -> &Self::Target {
unsafe { core::mem::transmute(self) }
}
}
windows_core::imp::interface_hierarchy!(
ICoreWebView2Settings2,
windows_core::IUnknown,
ICoreWebView2Settings
);
impl ICoreWebView2Settings2 {
pub unsafe fn UserAgent(&self) -> windows_core::Result<windows_core::PWSTR> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).UserAgent)(
windows_core::Interface::as_raw(self),
&mut result__,
)
.map(|| result__)
}
}
pub unsafe fn SetUserAgent<P0>(&self, useragent: P0) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCWSTR>,
{
unsafe {
(windows_core::Interface::vtable(self).SetUserAgent)(
windows_core::Interface::as_raw(self),
useragent.param().abi(),
)
.ok()
}
}
}
#[repr(C)]
#[doc(hidden)]
pub struct ICoreWebView2Settings2_Vtbl {
pub base__: ICoreWebView2Settings_Vtbl,
pub UserAgent: unsafe extern "system" fn(
*mut core::ffi::c_void,
*mut windows_core::PWSTR,
) -> windows_core::HRESULT,
pub SetUserAgent: unsafe extern "system" fn(
*mut core::ffi::c_void,
windows_core::PCWSTR,
) -> windows_core::HRESULT,
}
pub trait ICoreWebView2Settings2_Impl: ICoreWebView2Settings_Impl {
fn UserAgent(&self) -> windows_core::Result<windows_core::PWSTR>;
fn SetUserAgent(&self, useragent: &windows_core::PCWSTR) -> windows_core::Result<()>;
}
impl ICoreWebView2Settings2_Vtbl {
pub const fn new<Identity: ICoreWebView2Settings2_Impl, const OFFSET: isize>() -> Self {
unsafe extern "system" fn UserAgent<
Identity: ICoreWebView2Settings2_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
useragent: *mut windows_core::PWSTR,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
match ICoreWebView2Settings2_Impl::UserAgent(this) {
Ok(ok__) => {
useragent.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn SetUserAgent<
Identity: ICoreWebView2Settings2_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
useragent: windows_core::PCWSTR,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
ICoreWebView2Settings2_Impl::SetUserAgent(this, core::mem::transmute(&useragent))
.into()
}
}
Self {
base__: ICoreWebView2Settings_Vtbl::new::<Identity, OFFSET>(),
UserAgent: UserAgent::<Identity, OFFSET>,
SetUserAgent: SetUserAgent::<Identity, OFFSET>,
}
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<ICoreWebView2Settings2 as windows_core::Interface>::IID
|| iid == &<ICoreWebView2Settings as windows_core::Interface>::IID
}
}
impl windows_core::RuntimeName for ICoreWebView2Settings2 {}
windows_core::imp::define_interface!(
ICoreWebView2Settings3,
ICoreWebView2Settings3_Vtbl,
0xfdb5ab74_af33_4854_84f0_0a631deb5eba
);
impl core::ops::Deref for ICoreWebView2Settings3 {
type Target = ICoreWebView2Settings2;
fn deref(&self) -> &Self::Target {
unsafe { core::mem::transmute(self) }
}
}
windows_core::imp::interface_hierarchy!(
ICoreWebView2Settings3,
windows_core::IUnknown,
ICoreWebView2Settings,
ICoreWebView2Settings2
);
impl ICoreWebView2Settings3 {
pub unsafe fn AreBrowserAcceleratorKeysEnabled(
&self,
) -> windows_core::Result<windows_core::BOOL> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).AreBrowserAcceleratorKeysEnabled)(
windows_core::Interface::as_raw(self),
&mut result__,
)
.map(|| result__)
}
}
pub unsafe fn SetAreBrowserAcceleratorKeysEnabled(
&self,
arebrowseracceleratorkeysenabled: bool,
) -> windows_core::Result<()> {
unsafe {
(windows_core::Interface::vtable(self).SetAreBrowserAcceleratorKeysEnabled)(
windows_core::Interface::as_raw(self),
arebrowseracceleratorkeysenabled.into(),
)
.ok()
}
}
}
#[repr(C)]
#[doc(hidden)]
pub struct ICoreWebView2Settings3_Vtbl {
pub base__: ICoreWebView2Settings2_Vtbl,
pub AreBrowserAcceleratorKeysEnabled: unsafe extern "system" fn(
*mut core::ffi::c_void,
*mut windows_core::BOOL,
) -> windows_core::HRESULT,
pub SetAreBrowserAcceleratorKeysEnabled: unsafe extern "system" fn(
*mut core::ffi::c_void,
windows_core::BOOL,
)
-> windows_core::HRESULT,
}
pub trait ICoreWebView2Settings3_Impl: ICoreWebView2Settings2_Impl {
fn AreBrowserAcceleratorKeysEnabled(&self) -> windows_core::Result<windows_core::BOOL>;
fn SetAreBrowserAcceleratorKeysEnabled(
&self,
arebrowseracceleratorkeysenabled: windows_core::BOOL,
) -> windows_core::Result<()>;
}
impl ICoreWebView2Settings3_Vtbl {
pub const fn new<Identity: ICoreWebView2Settings3_Impl, const OFFSET: isize>() -> Self {
unsafe extern "system" fn AreBrowserAcceleratorKeysEnabled<
Identity: ICoreWebView2Settings3_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
arebrowseracceleratorkeysenabled: *mut windows_core::BOOL,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
match ICoreWebView2Settings3_Impl::AreBrowserAcceleratorKeysEnabled(this) {
Ok(ok__) => {
arebrowseracceleratorkeysenabled.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn SetAreBrowserAcceleratorKeysEnabled<
Identity: ICoreWebView2Settings3_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
arebrowseracceleratorkeysenabled: windows_core::BOOL,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
ICoreWebView2Settings3_Impl::SetAreBrowserAcceleratorKeysEnabled(
this,
core::mem::transmute_copy(&arebrowseracceleratorkeysenabled),
)
.into()
}
}
Self {
base__: ICoreWebView2Settings2_Vtbl::new::<Identity, OFFSET>(),
AreBrowserAcceleratorKeysEnabled: AreBrowserAcceleratorKeysEnabled::<Identity, OFFSET>,
SetAreBrowserAcceleratorKeysEnabled: SetAreBrowserAcceleratorKeysEnabled::<
Identity,
OFFSET,
>,
}
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<ICoreWebView2Settings3 as windows_core::Interface>::IID
|| iid == &<ICoreWebView2Settings as windows_core::Interface>::IID
|| iid == &<ICoreWebView2Settings2 as windows_core::Interface>::IID
}
}
impl windows_core::RuntimeName for ICoreWebView2Settings3 {}
windows_core::imp::define_interface!(
ICoreWebView2SourceChangedEventArgs,
ICoreWebView2SourceChangedEventArgs_Vtbl,
0x31e0e545_1dba_4266_8914_f63848a1f7d7
);
windows_core::imp::interface_hierarchy!(
ICoreWebView2SourceChangedEventArgs,
windows_core::IUnknown
);
impl ICoreWebView2SourceChangedEventArgs {
pub unsafe fn IsNewDocument(&self) -> windows_core::Result<windows_core::BOOL> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).IsNewDocument)(
windows_core::Interface::as_raw(self),
&mut result__,
)
.map(|| result__)
}
}
}
#[repr(C)]
#[doc(hidden)]
pub struct ICoreWebView2SourceChangedEventArgs_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
pub IsNewDocument: unsafe extern "system" fn(
*mut core::ffi::c_void,
*mut windows_core::BOOL,
) -> windows_core::HRESULT,
}
pub trait ICoreWebView2SourceChangedEventArgs_Impl: windows_core::IUnknownImpl {
fn IsNewDocument(&self) -> windows_core::Result<windows_core::BOOL>;
}
impl ICoreWebView2SourceChangedEventArgs_Vtbl {
pub const fn new<Identity: ICoreWebView2SourceChangedEventArgs_Impl, const OFFSET: isize>(
) -> Self {
unsafe extern "system" fn IsNewDocument<
Identity: ICoreWebView2SourceChangedEventArgs_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
isnewdocument: *mut windows_core::BOOL,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
match ICoreWebView2SourceChangedEventArgs_Impl::IsNewDocument(this) {
Ok(ok__) => {
isnewdocument.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
Self {
base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
IsNewDocument: IsNewDocument::<Identity, OFFSET>,
}
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<ICoreWebView2SourceChangedEventArgs as windows_core::Interface>::IID
}
}
impl windows_core::RuntimeName for ICoreWebView2SourceChangedEventArgs {}
windows_core::imp::define_interface!(
ICoreWebView2SourceChangedEventHandler,
ICoreWebView2SourceChangedEventHandler_Vtbl,
0x3c067f9f_5388_4772_8b48_79f7ef1ab37c
);
windows_core::imp::interface_hierarchy!(
ICoreWebView2SourceChangedEventHandler,
windows_core::IUnknown
);
impl ICoreWebView2SourceChangedEventHandler {
pub unsafe fn Invoke<P0, P1>(&self, sender: P0, args: P1) -> windows_core::Result<()>
where
P0: windows_core::Param<ICoreWebView2>,
P1: windows_core::Param<ICoreWebView2SourceChangedEventArgs>,
{
unsafe {
(windows_core::Interface::vtable(self).Invoke)(
windows_core::Interface::as_raw(self),
sender.param().abi(),
args.param().abi(),
)
.ok()
}
}
}
#[repr(C)]
#[doc(hidden)]
pub struct ICoreWebView2SourceChangedEventHandler_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
pub Invoke: unsafe extern "system" fn(
*mut core::ffi::c_void,
*mut core::ffi::c_void,
*mut core::ffi::c_void,
) -> windows_core::HRESULT,
}
pub trait ICoreWebView2SourceChangedEventHandler_Impl: windows_core::IUnknownImpl {
fn Invoke(
&self,
sender: windows_core::Ref<ICoreWebView2>,
args: windows_core::Ref<ICoreWebView2SourceChangedEventArgs>,
) -> windows_core::Result<()>;
}
impl ICoreWebView2SourceChangedEventHandler_Vtbl {
pub const fn new<Identity: ICoreWebView2SourceChangedEventHandler_Impl, const OFFSET: isize>(
) -> Self {
unsafe extern "system" fn Invoke<
Identity: ICoreWebView2SourceChangedEventHandler_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
sender: *mut core::ffi::c_void,
args: *mut core::ffi::c_void,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
ICoreWebView2SourceChangedEventHandler_Impl::Invoke(
this,
core::mem::transmute_copy(&sender),
core::mem::transmute_copy(&args),
)
.into()
}
}
Self {
base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
Invoke: Invoke::<Identity, OFFSET>,
}
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<ICoreWebView2SourceChangedEventHandler as windows_core::Interface>::IID
}
}
impl windows_core::RuntimeName for ICoreWebView2SourceChangedEventHandler {}
windows_core::imp::define_interface!(
ICoreWebView2TrySuspendCompletedHandler,
ICoreWebView2TrySuspendCompletedHandler_Vtbl,
0x00f206a7_9d17_4605_91f6_4e8e4de192e3
);
windows_core::imp::interface_hierarchy!(
ICoreWebView2TrySuspendCompletedHandler,
windows_core::IUnknown
);
impl ICoreWebView2TrySuspendCompletedHandler {
pub unsafe fn Invoke(
&self,
errorcode: windows_core::HRESULT,
issuccessful: bool,
) -> windows_core::Result<()> {
unsafe {
(windows_core::Interface::vtable(self).Invoke)(
windows_core::Interface::as_raw(self),
errorcode,
issuccessful.into(),
)
.ok()
}
}
}
#[repr(C)]
#[doc(hidden)]
pub struct ICoreWebView2TrySuspendCompletedHandler_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
pub Invoke: unsafe extern "system" fn(
*mut core::ffi::c_void,
windows_core::HRESULT,
windows_core::BOOL,
) -> windows_core::HRESULT,
}
pub trait ICoreWebView2TrySuspendCompletedHandler_Impl: windows_core::IUnknownImpl {
fn Invoke(
&self,
errorcode: windows_core::HRESULT,
issuccessful: windows_core::BOOL,
) -> windows_core::Result<()>;
}
impl ICoreWebView2TrySuspendCompletedHandler_Vtbl {
pub const fn new<
Identity: ICoreWebView2TrySuspendCompletedHandler_Impl,
const OFFSET: isize,
>() -> Self {
unsafe extern "system" fn Invoke<
Identity: ICoreWebView2TrySuspendCompletedHandler_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
errorcode: windows_core::HRESULT,
issuccessful: windows_core::BOOL,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
ICoreWebView2TrySuspendCompletedHandler_Impl::Invoke(
this,
core::mem::transmute_copy(&errorcode),
core::mem::transmute_copy(&issuccessful),
)
.into()
}
}
Self {
base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
Invoke: Invoke::<Identity, OFFSET>,
}
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<ICoreWebView2TrySuspendCompletedHandler as windows_core::Interface>::IID
}
}
impl windows_core::RuntimeName for ICoreWebView2TrySuspendCompletedHandler {}
windows_core::imp::define_interface!(
ICoreWebView2WebMessageReceivedEventArgs,
ICoreWebView2WebMessageReceivedEventArgs_Vtbl,
0x0f99a40c_e962_4207_9e92_e3d542eff849
);
windows_core::imp::interface_hierarchy!(
ICoreWebView2WebMessageReceivedEventArgs,
windows_core::IUnknown
);
impl ICoreWebView2WebMessageReceivedEventArgs {
pub unsafe fn Source(&self) -> windows_core::Result<windows_core::PWSTR> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).Source)(
windows_core::Interface::as_raw(self),
&mut result__,
)
.map(|| result__)
}
}
pub unsafe fn WebMessageAsJson(&self) -> windows_core::Result<windows_core::PWSTR> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).WebMessageAsJson)(
windows_core::Interface::as_raw(self),
&mut result__,
)
.map(|| result__)
}
}
pub unsafe fn TryGetWebMessageAsString(
&self,
webmessageasstring: *mut windows_core::PWSTR,
) -> windows_core::Result<()> {
unsafe {
(windows_core::Interface::vtable(self).TryGetWebMessageAsString)(
windows_core::Interface::as_raw(self),
webmessageasstring as _,
)
.ok()
}
}
}
#[repr(C)]
#[doc(hidden)]
pub struct ICoreWebView2WebMessageReceivedEventArgs_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
pub Source: unsafe extern "system" fn(
*mut core::ffi::c_void,
*mut windows_core::PWSTR,
) -> windows_core::HRESULT,
pub WebMessageAsJson: unsafe extern "system" fn(
*mut core::ffi::c_void,
*mut windows_core::PWSTR,
) -> windows_core::HRESULT,
pub TryGetWebMessageAsString: unsafe extern "system" fn(
*mut core::ffi::c_void,
*mut windows_core::PWSTR,
) -> windows_core::HRESULT,
}
pub trait ICoreWebView2WebMessageReceivedEventArgs_Impl: windows_core::IUnknownImpl {
fn Source(&self) -> windows_core::Result<windows_core::PWSTR>;
fn WebMessageAsJson(&self) -> windows_core::Result<windows_core::PWSTR>;
fn TryGetWebMessageAsString(
&self,
webmessageasstring: *mut windows_core::PWSTR,
) -> windows_core::Result<()>;
}
impl ICoreWebView2WebMessageReceivedEventArgs_Vtbl {
pub const fn new<
Identity: ICoreWebView2WebMessageReceivedEventArgs_Impl,
const OFFSET: isize,
>() -> Self {
unsafe extern "system" fn Source<
Identity: ICoreWebView2WebMessageReceivedEventArgs_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
source: *mut windows_core::PWSTR,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
match ICoreWebView2WebMessageReceivedEventArgs_Impl::Source(this) {
Ok(ok__) => {
source.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn WebMessageAsJson<
Identity: ICoreWebView2WebMessageReceivedEventArgs_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
webmessageasjson: *mut windows_core::PWSTR,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
match ICoreWebView2WebMessageReceivedEventArgs_Impl::WebMessageAsJson(this) {
Ok(ok__) => {
webmessageasjson.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn TryGetWebMessageAsString<
Identity: ICoreWebView2WebMessageReceivedEventArgs_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
webmessageasstring: *mut windows_core::PWSTR,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
ICoreWebView2WebMessageReceivedEventArgs_Impl::TryGetWebMessageAsString(
this,
core::mem::transmute_copy(&webmessageasstring),
)
.into()
}
}
Self {
base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
Source: Source::<Identity, OFFSET>,
WebMessageAsJson: WebMessageAsJson::<Identity, OFFSET>,
TryGetWebMessageAsString: TryGetWebMessageAsString::<Identity, OFFSET>,
}
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<ICoreWebView2WebMessageReceivedEventArgs as windows_core::Interface>::IID
}
}
impl windows_core::RuntimeName for ICoreWebView2WebMessageReceivedEventArgs {}
windows_core::imp::define_interface!(
ICoreWebView2WebMessageReceivedEventHandler,
ICoreWebView2WebMessageReceivedEventHandler_Vtbl,
0x57213f19_00e6_49fa_8e07_898ea01ecbd2
);
windows_core::imp::interface_hierarchy!(
ICoreWebView2WebMessageReceivedEventHandler,
windows_core::IUnknown
);
impl ICoreWebView2WebMessageReceivedEventHandler {
pub unsafe fn Invoke<P0, P1>(&self, sender: P0, args: P1) -> windows_core::Result<()>
where
P0: windows_core::Param<ICoreWebView2>,
P1: windows_core::Param<ICoreWebView2WebMessageReceivedEventArgs>,
{
unsafe {
(windows_core::Interface::vtable(self).Invoke)(
windows_core::Interface::as_raw(self),
sender.param().abi(),
args.param().abi(),
)
.ok()
}
}
}
#[repr(C)]
#[doc(hidden)]
pub struct ICoreWebView2WebMessageReceivedEventHandler_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
pub Invoke: unsafe extern "system" fn(
*mut core::ffi::c_void,
*mut core::ffi::c_void,
*mut core::ffi::c_void,
) -> windows_core::HRESULT,
}
pub trait ICoreWebView2WebMessageReceivedEventHandler_Impl: windows_core::IUnknownImpl {
fn Invoke(
&self,
sender: windows_core::Ref<ICoreWebView2>,
args: windows_core::Ref<ICoreWebView2WebMessageReceivedEventArgs>,
) -> windows_core::Result<()>;
}
impl ICoreWebView2WebMessageReceivedEventHandler_Vtbl {
pub const fn new<
Identity: ICoreWebView2WebMessageReceivedEventHandler_Impl,
const OFFSET: isize,
>() -> Self {
unsafe extern "system" fn Invoke<
Identity: ICoreWebView2WebMessageReceivedEventHandler_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
sender: *mut core::ffi::c_void,
args: *mut core::ffi::c_void,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
ICoreWebView2WebMessageReceivedEventHandler_Impl::Invoke(
this,
core::mem::transmute_copy(&sender),
core::mem::transmute_copy(&args),
)
.into()
}
}
Self {
base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
Invoke: Invoke::<Identity, OFFSET>,
}
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<ICoreWebView2WebMessageReceivedEventHandler as windows_core::Interface>::IID
}
}
impl windows_core::RuntimeName for ICoreWebView2WebMessageReceivedEventHandler {}
windows_core::imp::define_interface!(
ICoreWebView2WebResourceRequest,
ICoreWebView2WebResourceRequest_Vtbl,
0x97055cd4_512c_4264_8b5f_e3f446cea6a5
);
windows_core::imp::interface_hierarchy!(ICoreWebView2WebResourceRequest, windows_core::IUnknown);
impl ICoreWebView2WebResourceRequest {
pub unsafe fn Uri(&self) -> windows_core::Result<windows_core::PWSTR> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).Uri)(
windows_core::Interface::as_raw(self),
&mut result__,
)
.map(|| result__)
}
}
pub unsafe fn SetUri<P0>(&self, uri: P0) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCWSTR>,
{
unsafe {
(windows_core::Interface::vtable(self).SetUri)(
windows_core::Interface::as_raw(self),
uri.param().abi(),
)
.ok()
}
}
pub unsafe fn Method(&self) -> windows_core::Result<windows_core::PWSTR> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).Method)(
windows_core::Interface::as_raw(self),
&mut result__,
)
.map(|| result__)
}
}
pub unsafe fn SetMethod<P0>(&self, method: P0) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCWSTR>,
{
unsafe {
(windows_core::Interface::vtable(self).SetMethod)(
windows_core::Interface::as_raw(self),
method.param().abi(),
)
.ok()
}
}
pub unsafe fn Content(&self) -> windows_core::Result<windows::Win32::System::Com::IStream> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).Content)(
windows_core::Interface::as_raw(self),
&mut result__,
)
.and_then(|| windows_core::Type::from_abi(result__))
}
}
pub unsafe fn SetContent<P0>(&self, content: P0) -> windows_core::Result<()>
where
P0: windows_core::Param<windows::Win32::System::Com::IStream>,
{
unsafe {
(windows_core::Interface::vtable(self).SetContent)(
windows_core::Interface::as_raw(self),
content.param().abi(),
)
.ok()
}
}
pub unsafe fn Headers(&self) -> windows_core::Result<ICoreWebView2HttpRequestHeaders> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).Headers)(
windows_core::Interface::as_raw(self),
&mut result__,
)
.and_then(|| windows_core::Type::from_abi(result__))
}
}
}
#[repr(C)]
#[doc(hidden)]
pub struct ICoreWebView2WebResourceRequest_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
pub Uri: unsafe extern "system" fn(
*mut core::ffi::c_void,
*mut windows_core::PWSTR,
) -> windows_core::HRESULT,
pub SetUri: unsafe extern "system" fn(
*mut core::ffi::c_void,
windows_core::PCWSTR,
) -> windows_core::HRESULT,
pub Method: unsafe extern "system" fn(
*mut core::ffi::c_void,
*mut windows_core::PWSTR,
) -> windows_core::HRESULT,
pub SetMethod: unsafe extern "system" fn(
*mut core::ffi::c_void,
windows_core::PCWSTR,
) -> windows_core::HRESULT,
pub Content: unsafe extern "system" fn(
*mut core::ffi::c_void,
*mut *mut core::ffi::c_void,
) -> windows_core::HRESULT,
pub SetContent: unsafe extern "system" fn(
*mut core::ffi::c_void,
*mut core::ffi::c_void,
) -> windows_core::HRESULT,
pub Headers: unsafe extern "system" fn(
*mut core::ffi::c_void,
*mut *mut core::ffi::c_void,
) -> windows_core::HRESULT,
}
pub trait ICoreWebView2WebResourceRequest_Impl: windows_core::IUnknownImpl {
fn Uri(&self) -> windows_core::Result<windows_core::PWSTR>;
fn SetUri(&self, uri: &windows_core::PCWSTR) -> windows_core::Result<()>;
fn Method(&self) -> windows_core::Result<windows_core::PWSTR>;
fn SetMethod(&self, method: &windows_core::PCWSTR) -> windows_core::Result<()>;
fn Content(&self) -> windows_core::Result<windows::Win32::System::Com::IStream>;
fn SetContent(
&self,
content: windows_core::Ref<windows::Win32::System::Com::IStream>,
) -> windows_core::Result<()>;
fn Headers(&self) -> windows_core::Result<ICoreWebView2HttpRequestHeaders>;
}
impl ICoreWebView2WebResourceRequest_Vtbl {
pub const fn new<Identity: ICoreWebView2WebResourceRequest_Impl, const OFFSET: isize>() -> Self
{
unsafe extern "system" fn Uri<
Identity: ICoreWebView2WebResourceRequest_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
uri: *mut windows_core::PWSTR,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
match ICoreWebView2WebResourceRequest_Impl::Uri(this) {
Ok(ok__) => {
uri.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn SetUri<
Identity: ICoreWebView2WebResourceRequest_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
uri: windows_core::PCWSTR,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
ICoreWebView2WebResourceRequest_Impl::SetUri(this, core::mem::transmute(&uri))
.into()
}
}
unsafe extern "system" fn Method<
Identity: ICoreWebView2WebResourceRequest_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
method: *mut windows_core::PWSTR,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
match ICoreWebView2WebResourceRequest_Impl::Method(this) {
Ok(ok__) => {
method.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn SetMethod<
Identity: ICoreWebView2WebResourceRequest_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
method: windows_core::PCWSTR,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
ICoreWebView2WebResourceRequest_Impl::SetMethod(this, core::mem::transmute(&method))
.into()
}
}
unsafe extern "system" fn Content<
Identity: ICoreWebView2WebResourceRequest_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
content: *mut *mut core::ffi::c_void,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
match ICoreWebView2WebResourceRequest_Impl::Content(this) {
Ok(ok__) => {
content.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn SetContent<
Identity: ICoreWebView2WebResourceRequest_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
content: *mut core::ffi::c_void,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
ICoreWebView2WebResourceRequest_Impl::SetContent(
this,
core::mem::transmute_copy(&content),
)
.into()
}
}
unsafe extern "system" fn Headers<
Identity: ICoreWebView2WebResourceRequest_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
headers: *mut *mut core::ffi::c_void,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
match ICoreWebView2WebResourceRequest_Impl::Headers(this) {
Ok(ok__) => {
headers.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
Self {
base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
Uri: Uri::<Identity, OFFSET>,
SetUri: SetUri::<Identity, OFFSET>,
Method: Method::<Identity, OFFSET>,
SetMethod: SetMethod::<Identity, OFFSET>,
Content: Content::<Identity, OFFSET>,
SetContent: SetContent::<Identity, OFFSET>,
Headers: Headers::<Identity, OFFSET>,
}
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<ICoreWebView2WebResourceRequest as windows_core::Interface>::IID
}
}
impl windows_core::RuntimeName for ICoreWebView2WebResourceRequest {}
windows_core::imp::define_interface!(
ICoreWebView2WebResourceRequestedEventArgs,
ICoreWebView2WebResourceRequestedEventArgs_Vtbl,
0x453e667f_12c7_49d4_be6d_ddbe7956f57a
);
windows_core::imp::interface_hierarchy!(
ICoreWebView2WebResourceRequestedEventArgs,
windows_core::IUnknown
);
impl ICoreWebView2WebResourceRequestedEventArgs {
pub unsafe fn Request(&self) -> windows_core::Result<ICoreWebView2WebResourceRequest> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).Request)(
windows_core::Interface::as_raw(self),
&mut result__,
)
.and_then(|| windows_core::Type::from_abi(result__))
}
}
pub unsafe fn Response(&self) -> windows_core::Result<ICoreWebView2WebResourceResponse> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).Response)(
windows_core::Interface::as_raw(self),
&mut result__,
)
.and_then(|| windows_core::Type::from_abi(result__))
}
}
pub unsafe fn SetResponse<P0>(&self, response: P0) -> windows_core::Result<()>
where
P0: windows_core::Param<ICoreWebView2WebResourceResponse>,
{
unsafe {
(windows_core::Interface::vtable(self).SetResponse)(
windows_core::Interface::as_raw(self),
response.param().abi(),
)
.ok()
}
}
pub unsafe fn GetDeferral(&self) -> windows_core::Result<ICoreWebView2Deferral> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetDeferral)(
windows_core::Interface::as_raw(self),
&mut result__,
)
.and_then(|| windows_core::Type::from_abi(result__))
}
}
pub unsafe fn ResourceContext(
&self,
) -> windows_core::Result<COREWEBVIEW2_WEB_RESOURCE_CONTEXT> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).ResourceContext)(
windows_core::Interface::as_raw(self),
&mut result__,
)
.map(|| result__)
}
}
}
#[repr(C)]
#[doc(hidden)]
pub struct ICoreWebView2WebResourceRequestedEventArgs_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
pub Request: unsafe extern "system" fn(
*mut core::ffi::c_void,
*mut *mut core::ffi::c_void,
) -> windows_core::HRESULT,
pub Response: unsafe extern "system" fn(
*mut core::ffi::c_void,
*mut *mut core::ffi::c_void,
) -> windows_core::HRESULT,
pub SetResponse: unsafe extern "system" fn(
*mut core::ffi::c_void,
*mut core::ffi::c_void,
) -> windows_core::HRESULT,
pub GetDeferral: unsafe extern "system" fn(
*mut core::ffi::c_void,
*mut *mut core::ffi::c_void,
) -> windows_core::HRESULT,
pub ResourceContext: unsafe extern "system" fn(
*mut core::ffi::c_void,
*mut COREWEBVIEW2_WEB_RESOURCE_CONTEXT,
) -> windows_core::HRESULT,
}
pub trait ICoreWebView2WebResourceRequestedEventArgs_Impl: windows_core::IUnknownImpl {
fn Request(&self) -> windows_core::Result<ICoreWebView2WebResourceRequest>;
fn Response(&self) -> windows_core::Result<ICoreWebView2WebResourceResponse>;
fn SetResponse(
&self,
response: windows_core::Ref<ICoreWebView2WebResourceResponse>,
) -> windows_core::Result<()>;
fn GetDeferral(&self) -> windows_core::Result<ICoreWebView2Deferral>;
fn ResourceContext(&self) -> windows_core::Result<COREWEBVIEW2_WEB_RESOURCE_CONTEXT>;
}
impl ICoreWebView2WebResourceRequestedEventArgs_Vtbl {
pub const fn new<
Identity: ICoreWebView2WebResourceRequestedEventArgs_Impl,
const OFFSET: isize,
>() -> Self {
unsafe extern "system" fn Request<
Identity: ICoreWebView2WebResourceRequestedEventArgs_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
request: *mut *mut core::ffi::c_void,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
match ICoreWebView2WebResourceRequestedEventArgs_Impl::Request(this) {
Ok(ok__) => {
request.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn Response<
Identity: ICoreWebView2WebResourceRequestedEventArgs_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
response: *mut *mut core::ffi::c_void,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
match ICoreWebView2WebResourceRequestedEventArgs_Impl::Response(this) {
Ok(ok__) => {
response.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn SetResponse<
Identity: ICoreWebView2WebResourceRequestedEventArgs_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
response: *mut core::ffi::c_void,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
ICoreWebView2WebResourceRequestedEventArgs_Impl::SetResponse(
this,
core::mem::transmute_copy(&response),
)
.into()
}
}
unsafe extern "system" fn GetDeferral<
Identity: ICoreWebView2WebResourceRequestedEventArgs_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
deferral: *mut *mut core::ffi::c_void,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
match ICoreWebView2WebResourceRequestedEventArgs_Impl::GetDeferral(this) {
Ok(ok__) => {
deferral.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn ResourceContext<
Identity: ICoreWebView2WebResourceRequestedEventArgs_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
context: *mut COREWEBVIEW2_WEB_RESOURCE_CONTEXT,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
match ICoreWebView2WebResourceRequestedEventArgs_Impl::ResourceContext(this) {
Ok(ok__) => {
context.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
Self {
base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
Request: Request::<Identity, OFFSET>,
Response: Response::<Identity, OFFSET>,
SetResponse: SetResponse::<Identity, OFFSET>,
GetDeferral: GetDeferral::<Identity, OFFSET>,
ResourceContext: ResourceContext::<Identity, OFFSET>,
}
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<ICoreWebView2WebResourceRequestedEventArgs as windows_core::Interface>::IID
}
}
impl windows_core::RuntimeName for ICoreWebView2WebResourceRequestedEventArgs {}
windows_core::imp::define_interface!(
ICoreWebView2WebResourceRequestedEventHandler,
ICoreWebView2WebResourceRequestedEventHandler_Vtbl,
0xab00b74c_15f1_4646_80e8_e76341d25d71
);
windows_core::imp::interface_hierarchy!(
ICoreWebView2WebResourceRequestedEventHandler,
windows_core::IUnknown
);
impl ICoreWebView2WebResourceRequestedEventHandler {
pub unsafe fn Invoke<P0, P1>(&self, sender: P0, args: P1) -> windows_core::Result<()>
where
P0: windows_core::Param<ICoreWebView2>,
P1: windows_core::Param<ICoreWebView2WebResourceRequestedEventArgs>,
{
unsafe {
(windows_core::Interface::vtable(self).Invoke)(
windows_core::Interface::as_raw(self),
sender.param().abi(),
args.param().abi(),
)
.ok()
}
}
}
#[repr(C)]
#[doc(hidden)]
pub struct ICoreWebView2WebResourceRequestedEventHandler_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
pub Invoke: unsafe extern "system" fn(
*mut core::ffi::c_void,
*mut core::ffi::c_void,
*mut core::ffi::c_void,
) -> windows_core::HRESULT,
}
pub trait ICoreWebView2WebResourceRequestedEventHandler_Impl: windows_core::IUnknownImpl {
fn Invoke(
&self,
sender: windows_core::Ref<ICoreWebView2>,
args: windows_core::Ref<ICoreWebView2WebResourceRequestedEventArgs>,
) -> windows_core::Result<()>;
}
impl ICoreWebView2WebResourceRequestedEventHandler_Vtbl {
pub const fn new<
Identity: ICoreWebView2WebResourceRequestedEventHandler_Impl,
const OFFSET: isize,
>() -> Self {
unsafe extern "system" fn Invoke<
Identity: ICoreWebView2WebResourceRequestedEventHandler_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
sender: *mut core::ffi::c_void,
args: *mut core::ffi::c_void,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
ICoreWebView2WebResourceRequestedEventHandler_Impl::Invoke(
this,
core::mem::transmute_copy(&sender),
core::mem::transmute_copy(&args),
)
.into()
}
}
Self {
base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
Invoke: Invoke::<Identity, OFFSET>,
}
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<ICoreWebView2WebResourceRequestedEventHandler as windows_core::Interface>::IID
}
}
impl windows_core::RuntimeName for ICoreWebView2WebResourceRequestedEventHandler {}
windows_core::imp::define_interface!(
ICoreWebView2WebResourceResponse,
ICoreWebView2WebResourceResponse_Vtbl,
0xaafcc94f_fa27_48fd_97df_830ef75aaec9
);
windows_core::imp::interface_hierarchy!(ICoreWebView2WebResourceResponse, windows_core::IUnknown);
impl ICoreWebView2WebResourceResponse {
pub unsafe fn Content(&self) -> windows_core::Result<windows::Win32::System::Com::IStream> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).Content)(
windows_core::Interface::as_raw(self),
&mut result__,
)
.and_then(|| windows_core::Type::from_abi(result__))
}
}
pub unsafe fn SetContent<P0>(&self, content: P0) -> windows_core::Result<()>
where
P0: windows_core::Param<windows::Win32::System::Com::IStream>,
{
unsafe {
(windows_core::Interface::vtable(self).SetContent)(
windows_core::Interface::as_raw(self),
content.param().abi(),
)
.ok()
}
}
pub unsafe fn Headers(&self) -> windows_core::Result<ICoreWebView2HttpResponseHeaders> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).Headers)(
windows_core::Interface::as_raw(self),
&mut result__,
)
.and_then(|| windows_core::Type::from_abi(result__))
}
}
pub unsafe fn StatusCode(&self) -> windows_core::Result<i32> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).StatusCode)(
windows_core::Interface::as_raw(self),
&mut result__,
)
.map(|| result__)
}
}
pub unsafe fn SetStatusCode(&self, statuscode: i32) -> windows_core::Result<()> {
unsafe {
(windows_core::Interface::vtable(self).SetStatusCode)(
windows_core::Interface::as_raw(self),
statuscode,
)
.ok()
}
}
pub unsafe fn ReasonPhrase(&self) -> windows_core::Result<windows_core::PWSTR> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).ReasonPhrase)(
windows_core::Interface::as_raw(self),
&mut result__,
)
.map(|| result__)
}
}
pub unsafe fn SetReasonPhrase<P0>(&self, reasonphrase: P0) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCWSTR>,
{
unsafe {
(windows_core::Interface::vtable(self).SetReasonPhrase)(
windows_core::Interface::as_raw(self),
reasonphrase.param().abi(),
)
.ok()
}
}
}
#[repr(C)]
#[doc(hidden)]
pub struct ICoreWebView2WebResourceResponse_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
pub Content: unsafe extern "system" fn(
*mut core::ffi::c_void,
*mut *mut core::ffi::c_void,
) -> windows_core::HRESULT,
pub SetContent: unsafe extern "system" fn(
*mut core::ffi::c_void,
*mut core::ffi::c_void,
) -> windows_core::HRESULT,
pub Headers: unsafe extern "system" fn(
*mut core::ffi::c_void,
*mut *mut core::ffi::c_void,
) -> windows_core::HRESULT,
pub StatusCode:
unsafe extern "system" fn(*mut core::ffi::c_void, *mut i32) -> windows_core::HRESULT,
pub SetStatusCode:
unsafe extern "system" fn(*mut core::ffi::c_void, i32) -> windows_core::HRESULT,
pub ReasonPhrase: unsafe extern "system" fn(
*mut core::ffi::c_void,
*mut windows_core::PWSTR,
) -> windows_core::HRESULT,
pub SetReasonPhrase: unsafe extern "system" fn(
*mut core::ffi::c_void,
windows_core::PCWSTR,
) -> windows_core::HRESULT,
}
pub trait ICoreWebView2WebResourceResponse_Impl: windows_core::IUnknownImpl {
fn Content(&self) -> windows_core::Result<windows::Win32::System::Com::IStream>;
fn SetContent(
&self,
content: windows_core::Ref<windows::Win32::System::Com::IStream>,
) -> windows_core::Result<()>;
fn Headers(&self) -> windows_core::Result<ICoreWebView2HttpResponseHeaders>;
fn StatusCode(&self) -> windows_core::Result<i32>;
fn SetStatusCode(&self, statuscode: i32) -> windows_core::Result<()>;
fn ReasonPhrase(&self) -> windows_core::Result<windows_core::PWSTR>;
fn SetReasonPhrase(&self, reasonphrase: &windows_core::PCWSTR) -> windows_core::Result<()>;
}
impl ICoreWebView2WebResourceResponse_Vtbl {
pub const fn new<Identity: ICoreWebView2WebResourceResponse_Impl, const OFFSET: isize>() -> Self
{
unsafe extern "system" fn Content<
Identity: ICoreWebView2WebResourceResponse_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
content: *mut *mut core::ffi::c_void,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
match ICoreWebView2WebResourceResponse_Impl::Content(this) {
Ok(ok__) => {
content.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn SetContent<
Identity: ICoreWebView2WebResourceResponse_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
content: *mut core::ffi::c_void,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
ICoreWebView2WebResourceResponse_Impl::SetContent(
this,
core::mem::transmute_copy(&content),
)
.into()
}
}
unsafe extern "system" fn Headers<
Identity: ICoreWebView2WebResourceResponse_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
headers: *mut *mut core::ffi::c_void,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
match ICoreWebView2WebResourceResponse_Impl::Headers(this) {
Ok(ok__) => {
headers.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn StatusCode<
Identity: ICoreWebView2WebResourceResponse_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
statuscode: *mut i32,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
match ICoreWebView2WebResourceResponse_Impl::StatusCode(this) {
Ok(ok__) => {
statuscode.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn SetStatusCode<
Identity: ICoreWebView2WebResourceResponse_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
statuscode: i32,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
ICoreWebView2WebResourceResponse_Impl::SetStatusCode(
this,
core::mem::transmute_copy(&statuscode),
)
.into()
}
}
unsafe extern "system" fn ReasonPhrase<
Identity: ICoreWebView2WebResourceResponse_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
reasonphrase: *mut windows_core::PWSTR,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
match ICoreWebView2WebResourceResponse_Impl::ReasonPhrase(this) {
Ok(ok__) => {
reasonphrase.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn SetReasonPhrase<
Identity: ICoreWebView2WebResourceResponse_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
reasonphrase: windows_core::PCWSTR,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
ICoreWebView2WebResourceResponse_Impl::SetReasonPhrase(
this,
core::mem::transmute(&reasonphrase),
)
.into()
}
}
Self {
base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
Content: Content::<Identity, OFFSET>,
SetContent: SetContent::<Identity, OFFSET>,
Headers: Headers::<Identity, OFFSET>,
StatusCode: StatusCode::<Identity, OFFSET>,
SetStatusCode: SetStatusCode::<Identity, OFFSET>,
ReasonPhrase: ReasonPhrase::<Identity, OFFSET>,
SetReasonPhrase: SetReasonPhrase::<Identity, OFFSET>,
}
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<ICoreWebView2WebResourceResponse as windows_core::Interface>::IID
}
}
impl windows_core::RuntimeName for ICoreWebView2WebResourceResponse {}
windows_core::imp::define_interface!(
ICoreWebView2WebResourceResponseReceivedEventArgs,
ICoreWebView2WebResourceResponseReceivedEventArgs_Vtbl,
0xd1db483d_6796_4b8b_80fc_13712bb716f4
);
windows_core::imp::interface_hierarchy!(
ICoreWebView2WebResourceResponseReceivedEventArgs,
windows_core::IUnknown
);
impl ICoreWebView2WebResourceResponseReceivedEventArgs {
pub unsafe fn Request(&self) -> windows_core::Result<ICoreWebView2WebResourceRequest> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).Request)(
windows_core::Interface::as_raw(self),
&mut result__,
)
.and_then(|| windows_core::Type::from_abi(result__))
}
}
pub unsafe fn Response(&self) -> windows_core::Result<ICoreWebView2WebResourceResponseView> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).Response)(
windows_core::Interface::as_raw(self),
&mut result__,
)
.and_then(|| windows_core::Type::from_abi(result__))
}
}
}
#[repr(C)]
#[doc(hidden)]
pub struct ICoreWebView2WebResourceResponseReceivedEventArgs_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
pub Request: unsafe extern "system" fn(
*mut core::ffi::c_void,
*mut *mut core::ffi::c_void,
) -> windows_core::HRESULT,
pub Response: unsafe extern "system" fn(
*mut core::ffi::c_void,
*mut *mut core::ffi::c_void,
) -> windows_core::HRESULT,
}
pub trait ICoreWebView2WebResourceResponseReceivedEventArgs_Impl:
windows_core::IUnknownImpl
{
fn Request(&self) -> windows_core::Result<ICoreWebView2WebResourceRequest>;
fn Response(&self) -> windows_core::Result<ICoreWebView2WebResourceResponseView>;
}
impl ICoreWebView2WebResourceResponseReceivedEventArgs_Vtbl {
pub const fn new<
Identity: ICoreWebView2WebResourceResponseReceivedEventArgs_Impl,
const OFFSET: isize,
>() -> Self {
unsafe extern "system" fn Request<
Identity: ICoreWebView2WebResourceResponseReceivedEventArgs_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
request: *mut *mut core::ffi::c_void,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
match ICoreWebView2WebResourceResponseReceivedEventArgs_Impl::Request(this) {
Ok(ok__) => {
request.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn Response<
Identity: ICoreWebView2WebResourceResponseReceivedEventArgs_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
response: *mut *mut core::ffi::c_void,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
match ICoreWebView2WebResourceResponseReceivedEventArgs_Impl::Response(this) {
Ok(ok__) => {
response.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
Self {
base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
Request: Request::<Identity, OFFSET>,
Response: Response::<Identity, OFFSET>,
}
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<ICoreWebView2WebResourceResponseReceivedEventArgs as windows_core::Interface>::IID
}
}
impl windows_core::RuntimeName for ICoreWebView2WebResourceResponseReceivedEventArgs {}
windows_core::imp::define_interface!(
ICoreWebView2WebResourceResponseReceivedEventHandler,
ICoreWebView2WebResourceResponseReceivedEventHandler_Vtbl,
0x7de9898a_24f5_40c3_a2de_d4f458e69828
);
windows_core::imp::interface_hierarchy!(
ICoreWebView2WebResourceResponseReceivedEventHandler,
windows_core::IUnknown
);
impl ICoreWebView2WebResourceResponseReceivedEventHandler {
pub unsafe fn Invoke<P0, P1>(&self, sender: P0, args: P1) -> windows_core::Result<()>
where
P0: windows_core::Param<ICoreWebView2>,
P1: windows_core::Param<ICoreWebView2WebResourceResponseReceivedEventArgs>,
{
unsafe {
(windows_core::Interface::vtable(self).Invoke)(
windows_core::Interface::as_raw(self),
sender.param().abi(),
args.param().abi(),
)
.ok()
}
}
}
#[repr(C)]
#[doc(hidden)]
pub struct ICoreWebView2WebResourceResponseReceivedEventHandler_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
pub Invoke: unsafe extern "system" fn(
*mut core::ffi::c_void,
*mut core::ffi::c_void,
*mut core::ffi::c_void,
) -> windows_core::HRESULT,
}
pub trait ICoreWebView2WebResourceResponseReceivedEventHandler_Impl:
windows_core::IUnknownImpl
{
fn Invoke(
&self,
sender: windows_core::Ref<ICoreWebView2>,
args: windows_core::Ref<ICoreWebView2WebResourceResponseReceivedEventArgs>,
) -> windows_core::Result<()>;
}
impl ICoreWebView2WebResourceResponseReceivedEventHandler_Vtbl {
pub const fn new<
Identity: ICoreWebView2WebResourceResponseReceivedEventHandler_Impl,
const OFFSET: isize,
>() -> Self {
unsafe extern "system" fn Invoke<
Identity: ICoreWebView2WebResourceResponseReceivedEventHandler_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
sender: *mut core::ffi::c_void,
args: *mut core::ffi::c_void,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
ICoreWebView2WebResourceResponseReceivedEventHandler_Impl::Invoke(
this,
core::mem::transmute_copy(&sender),
core::mem::transmute_copy(&args),
)
.into()
}
}
Self {
base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
Invoke: Invoke::<Identity, OFFSET>,
}
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == & < ICoreWebView2WebResourceResponseReceivedEventHandler as windows_core::Interface >::IID
}
}
impl windows_core::RuntimeName for ICoreWebView2WebResourceResponseReceivedEventHandler {}
windows_core::imp::define_interface!(
ICoreWebView2WebResourceResponseView,
ICoreWebView2WebResourceResponseView_Vtbl,
0x79701053_7759_4162_8f7d_f1b3f084928d
);
windows_core::imp::interface_hierarchy!(
ICoreWebView2WebResourceResponseView,
windows_core::IUnknown
);
impl ICoreWebView2WebResourceResponseView {
pub unsafe fn Headers(&self) -> windows_core::Result<ICoreWebView2HttpResponseHeaders> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).Headers)(
windows_core::Interface::as_raw(self),
&mut result__,
)
.and_then(|| windows_core::Type::from_abi(result__))
}
}
pub unsafe fn StatusCode(&self) -> windows_core::Result<i32> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).StatusCode)(
windows_core::Interface::as_raw(self),
&mut result__,
)
.map(|| result__)
}
}
pub unsafe fn ReasonPhrase(&self) -> windows_core::Result<windows_core::PWSTR> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).ReasonPhrase)(
windows_core::Interface::as_raw(self),
&mut result__,
)
.map(|| result__)
}
}
pub unsafe fn GetContent<P0>(&self, handler: P0) -> windows_core::Result<()>
where
P0: windows_core::Param<ICoreWebView2WebResourceResponseViewGetContentCompletedHandler>,
{
unsafe {
(windows_core::Interface::vtable(self).GetContent)(
windows_core::Interface::as_raw(self),
handler.param().abi(),
)
.ok()
}
}
}
#[repr(C)]
#[doc(hidden)]
pub struct ICoreWebView2WebResourceResponseView_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
pub Headers: unsafe extern "system" fn(
*mut core::ffi::c_void,
*mut *mut core::ffi::c_void,
) -> windows_core::HRESULT,
pub StatusCode:
unsafe extern "system" fn(*mut core::ffi::c_void, *mut i32) -> windows_core::HRESULT,
pub ReasonPhrase: unsafe extern "system" fn(
*mut core::ffi::c_void,
*mut windows_core::PWSTR,
) -> windows_core::HRESULT,
pub GetContent: unsafe extern "system" fn(
*mut core::ffi::c_void,
*mut core::ffi::c_void,
) -> windows_core::HRESULT,
}
pub trait ICoreWebView2WebResourceResponseView_Impl: windows_core::IUnknownImpl {
fn Headers(&self) -> windows_core::Result<ICoreWebView2HttpResponseHeaders>;
fn StatusCode(&self) -> windows_core::Result<i32>;
fn ReasonPhrase(&self) -> windows_core::Result<windows_core::PWSTR>;
fn GetContent(
&self,
handler: windows_core::Ref<ICoreWebView2WebResourceResponseViewGetContentCompletedHandler>,
) -> windows_core::Result<()>;
}
impl ICoreWebView2WebResourceResponseView_Vtbl {
pub const fn new<Identity: ICoreWebView2WebResourceResponseView_Impl, const OFFSET: isize>(
) -> Self {
unsafe extern "system" fn Headers<
Identity: ICoreWebView2WebResourceResponseView_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
headers: *mut *mut core::ffi::c_void,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
match ICoreWebView2WebResourceResponseView_Impl::Headers(this) {
Ok(ok__) => {
headers.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn StatusCode<
Identity: ICoreWebView2WebResourceResponseView_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
statuscode: *mut i32,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
match ICoreWebView2WebResourceResponseView_Impl::StatusCode(this) {
Ok(ok__) => {
statuscode.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn ReasonPhrase<
Identity: ICoreWebView2WebResourceResponseView_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
reasonphrase: *mut windows_core::PWSTR,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
match ICoreWebView2WebResourceResponseView_Impl::ReasonPhrase(this) {
Ok(ok__) => {
reasonphrase.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetContent<
Identity: ICoreWebView2WebResourceResponseView_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
handler: *mut core::ffi::c_void,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
ICoreWebView2WebResourceResponseView_Impl::GetContent(
this,
core::mem::transmute_copy(&handler),
)
.into()
}
}
Self {
base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
Headers: Headers::<Identity, OFFSET>,
StatusCode: StatusCode::<Identity, OFFSET>,
ReasonPhrase: ReasonPhrase::<Identity, OFFSET>,
GetContent: GetContent::<Identity, OFFSET>,
}
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<ICoreWebView2WebResourceResponseView as windows_core::Interface>::IID
}
}
impl windows_core::RuntimeName for ICoreWebView2WebResourceResponseView {}
windows_core::imp::define_interface!(
ICoreWebView2WebResourceResponseViewGetContentCompletedHandler,
ICoreWebView2WebResourceResponseViewGetContentCompletedHandler_Vtbl,
0x875738e1_9fa2_40e3_8b74_2e8972dd6fe7
);
windows_core::imp::interface_hierarchy!(
ICoreWebView2WebResourceResponseViewGetContentCompletedHandler,
windows_core::IUnknown
);
impl ICoreWebView2WebResourceResponseViewGetContentCompletedHandler {
pub unsafe fn Invoke<P1>(
&self,
errorcode: windows_core::HRESULT,
content: P1,
) -> windows_core::Result<()>
where
P1: windows_core::Param<windows::Win32::System::Com::IStream>,
{
unsafe {
(windows_core::Interface::vtable(self).Invoke)(
windows_core::Interface::as_raw(self),
errorcode,
content.param().abi(),
)
.ok()
}
}
}
#[repr(C)]
#[doc(hidden)]
pub struct ICoreWebView2WebResourceResponseViewGetContentCompletedHandler_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
pub Invoke: unsafe extern "system" fn(
*mut core::ffi::c_void,
windows_core::HRESULT,
*mut core::ffi::c_void,
) -> windows_core::HRESULT,
}
pub trait ICoreWebView2WebResourceResponseViewGetContentCompletedHandler_Impl:
windows_core::IUnknownImpl
{
fn Invoke(
&self,
errorcode: windows_core::HRESULT,
content: windows_core::Ref<windows::Win32::System::Com::IStream>,
) -> windows_core::Result<()>;
}
impl ICoreWebView2WebResourceResponseViewGetContentCompletedHandler_Vtbl {
pub const fn new<
Identity: ICoreWebView2WebResourceResponseViewGetContentCompletedHandler_Impl,
const OFFSET: isize,
>() -> Self {
unsafe extern "system" fn Invoke<
Identity: ICoreWebView2WebResourceResponseViewGetContentCompletedHandler_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
errorcode: windows_core::HRESULT,
content: *mut core::ffi::c_void,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
ICoreWebView2WebResourceResponseViewGetContentCompletedHandler_Impl::Invoke(
this,
core::mem::transmute_copy(&errorcode),
core::mem::transmute_copy(&content),
)
.into()
}
}
Self {
base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
Invoke: Invoke::<Identity, OFFSET>,
}
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == & < ICoreWebView2WebResourceResponseViewGetContentCompletedHandler as windows_core::Interface >::IID
}
}
impl windows_core::RuntimeName for ICoreWebView2WebResourceResponseViewGetContentCompletedHandler {}
windows_core::imp::define_interface!(
ICoreWebView2WindowCloseRequestedEventHandler,
ICoreWebView2WindowCloseRequestedEventHandler_Vtbl,
0x5c19e9e0_092f_486b_affa_ca8231913039
);
windows_core::imp::interface_hierarchy!(
ICoreWebView2WindowCloseRequestedEventHandler,
windows_core::IUnknown
);
impl ICoreWebView2WindowCloseRequestedEventHandler {
pub unsafe fn Invoke<P0, P1>(&self, sender: P0, args: P1) -> windows_core::Result<()>
where
P0: windows_core::Param<ICoreWebView2>,
P1: windows_core::Param<windows_core::IUnknown>,
{
unsafe {
(windows_core::Interface::vtable(self).Invoke)(
windows_core::Interface::as_raw(self),
sender.param().abi(),
args.param().abi(),
)
.ok()
}
}
}
#[repr(C)]
#[doc(hidden)]
pub struct ICoreWebView2WindowCloseRequestedEventHandler_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
pub Invoke: unsafe extern "system" fn(
*mut core::ffi::c_void,
*mut core::ffi::c_void,
*mut core::ffi::c_void,
) -> windows_core::HRESULT,
}
pub trait ICoreWebView2WindowCloseRequestedEventHandler_Impl: windows_core::IUnknownImpl {
fn Invoke(
&self,
sender: windows_core::Ref<ICoreWebView2>,
args: windows_core::Ref<windows_core::IUnknown>,
) -> windows_core::Result<()>;
}
impl ICoreWebView2WindowCloseRequestedEventHandler_Vtbl {
pub const fn new<
Identity: ICoreWebView2WindowCloseRequestedEventHandler_Impl,
const OFFSET: isize,
>() -> Self {
unsafe extern "system" fn Invoke<
Identity: ICoreWebView2WindowCloseRequestedEventHandler_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
sender: *mut core::ffi::c_void,
args: *mut core::ffi::c_void,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
ICoreWebView2WindowCloseRequestedEventHandler_Impl::Invoke(
this,
core::mem::transmute_copy(&sender),
core::mem::transmute_copy(&args),
)
.into()
}
}
Self {
base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
Invoke: Invoke::<Identity, OFFSET>,
}
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<ICoreWebView2WindowCloseRequestedEventHandler as windows_core::Interface>::IID
}
}
impl windows_core::RuntimeName for ICoreWebView2WindowCloseRequestedEventHandler {}
windows_core::imp::define_interface!(
ICoreWebView2WindowFeatures,
ICoreWebView2WindowFeatures_Vtbl,
0x5eaf559f_b46e_4397_8860_e422f287ff1e
);
windows_core::imp::interface_hierarchy!(ICoreWebView2WindowFeatures, windows_core::IUnknown);
impl ICoreWebView2WindowFeatures {
pub unsafe fn HasPosition(&self) -> windows_core::Result<windows_core::BOOL> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).HasPosition)(
windows_core::Interface::as_raw(self),
&mut result__,
)
.map(|| result__)
}
}
pub unsafe fn HasSize(&self) -> windows_core::Result<windows_core::BOOL> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).HasSize)(
windows_core::Interface::as_raw(self),
&mut result__,
)
.map(|| result__)
}
}
pub unsafe fn Left(&self) -> windows_core::Result<u32> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).Left)(
windows_core::Interface::as_raw(self),
&mut result__,
)
.map(|| result__)
}
}
pub unsafe fn Top(&self) -> windows_core::Result<u32> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).Top)(
windows_core::Interface::as_raw(self),
&mut result__,
)
.map(|| result__)
}
}
pub unsafe fn Height(&self) -> windows_core::Result<u32> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).Height)(
windows_core::Interface::as_raw(self),
&mut result__,
)
.map(|| result__)
}
}
pub unsafe fn Width(&self) -> windows_core::Result<u32> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).Width)(
windows_core::Interface::as_raw(self),
&mut result__,
)
.map(|| result__)
}
}
pub unsafe fn ShouldDisplayMenuBar(&self) -> windows_core::Result<windows_core::BOOL> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).ShouldDisplayMenuBar)(
windows_core::Interface::as_raw(self),
&mut result__,
)
.map(|| result__)
}
}
pub unsafe fn ShouldDisplayStatus(&self) -> windows_core::Result<windows_core::BOOL> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).ShouldDisplayStatus)(
windows_core::Interface::as_raw(self),
&mut result__,
)
.map(|| result__)
}
}
pub unsafe fn ShouldDisplayToolbar(&self) -> windows_core::Result<windows_core::BOOL> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).ShouldDisplayToolbar)(
windows_core::Interface::as_raw(self),
&mut result__,
)
.map(|| result__)
}
}
pub unsafe fn ShouldDisplayScrollBars(&self) -> windows_core::Result<windows_core::BOOL> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).ShouldDisplayScrollBars)(
windows_core::Interface::as_raw(self),
&mut result__,
)
.map(|| result__)
}
}
}
#[repr(C)]
#[doc(hidden)]
pub struct ICoreWebView2WindowFeatures_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
pub HasPosition: unsafe extern "system" fn(
*mut core::ffi::c_void,
*mut windows_core::BOOL,
) -> windows_core::HRESULT,
pub HasSize: unsafe extern "system" fn(
*mut core::ffi::c_void,
*mut windows_core::BOOL,
) -> windows_core::HRESULT,
pub Left: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub Top: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub Height:
unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub Width: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub ShouldDisplayMenuBar: unsafe extern "system" fn(
*mut core::ffi::c_void,
*mut windows_core::BOOL,
) -> windows_core::HRESULT,
pub ShouldDisplayStatus: unsafe extern "system" fn(
*mut core::ffi::c_void,
*mut windows_core::BOOL,
) -> windows_core::HRESULT,
pub ShouldDisplayToolbar: unsafe extern "system" fn(
*mut core::ffi::c_void,
*mut windows_core::BOOL,
) -> windows_core::HRESULT,
pub ShouldDisplayScrollBars: unsafe extern "system" fn(
*mut core::ffi::c_void,
*mut windows_core::BOOL,
) -> windows_core::HRESULT,
}
pub trait ICoreWebView2WindowFeatures_Impl: windows_core::IUnknownImpl {
fn HasPosition(&self) -> windows_core::Result<windows_core::BOOL>;
fn HasSize(&self) -> windows_core::Result<windows_core::BOOL>;
fn Left(&self) -> windows_core::Result<u32>;
fn Top(&self) -> windows_core::Result<u32>;
fn Height(&self) -> windows_core::Result<u32>;
fn Width(&self) -> windows_core::Result<u32>;
fn ShouldDisplayMenuBar(&self) -> windows_core::Result<windows_core::BOOL>;
fn ShouldDisplayStatus(&self) -> windows_core::Result<windows_core::BOOL>;
fn ShouldDisplayToolbar(&self) -> windows_core::Result<windows_core::BOOL>;
fn ShouldDisplayScrollBars(&self) -> windows_core::Result<windows_core::BOOL>;
}
impl ICoreWebView2WindowFeatures_Vtbl {
pub const fn new<Identity: ICoreWebView2WindowFeatures_Impl, const OFFSET: isize>() -> Self {
unsafe extern "system" fn HasPosition<
Identity: ICoreWebView2WindowFeatures_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
value: *mut windows_core::BOOL,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
match ICoreWebView2WindowFeatures_Impl::HasPosition(this) {
Ok(ok__) => {
value.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn HasSize<
Identity: ICoreWebView2WindowFeatures_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
value: *mut windows_core::BOOL,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
match ICoreWebView2WindowFeatures_Impl::HasSize(this) {
Ok(ok__) => {
value.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn Left<
Identity: ICoreWebView2WindowFeatures_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
value: *mut u32,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
match ICoreWebView2WindowFeatures_Impl::Left(this) {
Ok(ok__) => {
value.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn Top<
Identity: ICoreWebView2WindowFeatures_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
value: *mut u32,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
match ICoreWebView2WindowFeatures_Impl::Top(this) {
Ok(ok__) => {
value.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn Height<
Identity: ICoreWebView2WindowFeatures_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
value: *mut u32,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
match ICoreWebView2WindowFeatures_Impl::Height(this) {
Ok(ok__) => {
value.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn Width<
Identity: ICoreWebView2WindowFeatures_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
value: *mut u32,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
match ICoreWebView2WindowFeatures_Impl::Width(this) {
Ok(ok__) => {
value.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn ShouldDisplayMenuBar<
Identity: ICoreWebView2WindowFeatures_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
value: *mut windows_core::BOOL,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
match ICoreWebView2WindowFeatures_Impl::ShouldDisplayMenuBar(this) {
Ok(ok__) => {
value.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn ShouldDisplayStatus<
Identity: ICoreWebView2WindowFeatures_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
value: *mut windows_core::BOOL,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
match ICoreWebView2WindowFeatures_Impl::ShouldDisplayStatus(this) {
Ok(ok__) => {
value.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn ShouldDisplayToolbar<
Identity: ICoreWebView2WindowFeatures_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
value: *mut windows_core::BOOL,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
match ICoreWebView2WindowFeatures_Impl::ShouldDisplayToolbar(this) {
Ok(ok__) => {
value.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn ShouldDisplayScrollBars<
Identity: ICoreWebView2WindowFeatures_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
value: *mut windows_core::BOOL,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
match ICoreWebView2WindowFeatures_Impl::ShouldDisplayScrollBars(this) {
Ok(ok__) => {
value.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
Self {
base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
HasPosition: HasPosition::<Identity, OFFSET>,
HasSize: HasSize::<Identity, OFFSET>,
Left: Left::<Identity, OFFSET>,
Top: Top::<Identity, OFFSET>,
Height: Height::<Identity, OFFSET>,
Width: Width::<Identity, OFFSET>,
ShouldDisplayMenuBar: ShouldDisplayMenuBar::<Identity, OFFSET>,
ShouldDisplayStatus: ShouldDisplayStatus::<Identity, OFFSET>,
ShouldDisplayToolbar: ShouldDisplayToolbar::<Identity, OFFSET>,
ShouldDisplayScrollBars: ShouldDisplayScrollBars::<Identity, OFFSET>,
}
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<ICoreWebView2WindowFeatures as windows_core::Interface>::IID
}
}
impl windows_core::RuntimeName for ICoreWebView2WindowFeatures {}
windows_core::imp::define_interface!(
ICoreWebView2ZoomFactorChangedEventHandler,
ICoreWebView2ZoomFactorChangedEventHandler_Vtbl,
0xb52d71d6_c4df_4543_a90c_64a3e60f38cb
);
windows_core::imp::interface_hierarchy!(
ICoreWebView2ZoomFactorChangedEventHandler,
windows_core::IUnknown
);
impl ICoreWebView2ZoomFactorChangedEventHandler {
pub unsafe fn Invoke<P0, P1>(&self, sender: P0, args: P1) -> windows_core::Result<()>
where
P0: windows_core::Param<ICoreWebView2Controller>,
P1: windows_core::Param<windows_core::IUnknown>,
{
unsafe {
(windows_core::Interface::vtable(self).Invoke)(
windows_core::Interface::as_raw(self),
sender.param().abi(),
args.param().abi(),
)
.ok()
}
}
}
#[repr(C)]
#[doc(hidden)]
pub struct ICoreWebView2ZoomFactorChangedEventHandler_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
pub Invoke: unsafe extern "system" fn(
*mut core::ffi::c_void,
*mut core::ffi::c_void,
*mut core::ffi::c_void,
) -> windows_core::HRESULT,
}
pub trait ICoreWebView2ZoomFactorChangedEventHandler_Impl: windows_core::IUnknownImpl {
fn Invoke(
&self,
sender: windows_core::Ref<ICoreWebView2Controller>,
args: windows_core::Ref<windows_core::IUnknown>,
) -> windows_core::Result<()>;
}
impl ICoreWebView2ZoomFactorChangedEventHandler_Vtbl {
pub const fn new<
Identity: ICoreWebView2ZoomFactorChangedEventHandler_Impl,
const OFFSET: isize,
>() -> Self {
unsafe extern "system" fn Invoke<
Identity: ICoreWebView2ZoomFactorChangedEventHandler_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
sender: *mut core::ffi::c_void,
args: *mut core::ffi::c_void,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
ICoreWebView2ZoomFactorChangedEventHandler_Impl::Invoke(
this,
core::mem::transmute_copy(&sender),
core::mem::transmute_copy(&args),
)
.into()
}
}
Self {
base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
Invoke: Invoke::<Identity, OFFSET>,
}
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<ICoreWebView2ZoomFactorChangedEventHandler as windows_core::Interface>::IID
}
}
impl windows_core::RuntimeName for ICoreWebView2ZoomFactorChangedEventHandler {}
windows_core::imp::define_interface!(
ICoreWebView2_2,
ICoreWebView2_2_Vtbl,
0x9e8f0cf8_e670_4b5e_b2bc_73e061e3184c
);
impl core::ops::Deref for ICoreWebView2_2 {
type Target = ICoreWebView2;
fn deref(&self) -> &Self::Target {
unsafe { core::mem::transmute(self) }
}
}
windows_core::imp::interface_hierarchy!(ICoreWebView2_2, windows_core::IUnknown, ICoreWebView2);
impl ICoreWebView2_2 {
pub unsafe fn WebResourceResponseReceived<P0>(
&self,
eventhandler: P0,
) -> windows_core::Result<i64>
where
P0: windows_core::Param<ICoreWebView2WebResourceResponseReceivedEventHandler>,
{
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).WebResourceResponseReceived)(
windows_core::Interface::as_raw(self),
eventhandler.param().abi(),
&mut result__,
)
.map(|| result__)
}
}
pub unsafe fn RemoveWebResourceResponseReceived(&self, token: i64) -> windows_core::Result<()> {
unsafe {
(windows_core::Interface::vtable(self).RemoveWebResourceResponseReceived)(
windows_core::Interface::as_raw(self),
token,
)
.ok()
}
}
pub unsafe fn NavigateWithWebResourceRequest<P0>(&self, request: P0) -> windows_core::Result<()>
where
P0: windows_core::Param<ICoreWebView2WebResourceRequest>,
{
unsafe {
(windows_core::Interface::vtable(self).NavigateWithWebResourceRequest)(
windows_core::Interface::as_raw(self),
request.param().abi(),
)
.ok()
}
}
pub unsafe fn DOMContentLoaded<P0>(&self, eventhandler: P0) -> windows_core::Result<i64>
where
P0: windows_core::Param<ICoreWebView2DOMContentLoadedEventHandler>,
{
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).DOMContentLoaded)(
windows_core::Interface::as_raw(self),
eventhandler.param().abi(),
&mut result__,
)
.map(|| result__)
}
}
pub unsafe fn RemoveDOMContentLoaded(&self, token: i64) -> windows_core::Result<()> {
unsafe {
(windows_core::Interface::vtable(self).RemoveDOMContentLoaded)(
windows_core::Interface::as_raw(self),
token,
)
.ok()
}
}
pub unsafe fn CookieManager(&self) -> windows_core::Result<ICoreWebView2CookieManager> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).CookieManager)(
windows_core::Interface::as_raw(self),
&mut result__,
)
.and_then(|| windows_core::Type::from_abi(result__))
}
}
pub unsafe fn Environment(&self) -> windows_core::Result<ICoreWebView2Environment> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).Environment)(
windows_core::Interface::as_raw(self),
&mut result__,
)
.and_then(|| windows_core::Type::from_abi(result__))
}
}
}
#[repr(C)]
#[doc(hidden)]
pub struct ICoreWebView2_2_Vtbl {
pub base__: ICoreWebView2_Vtbl,
pub WebResourceResponseReceived: unsafe extern "system" fn(
*mut core::ffi::c_void,
*mut core::ffi::c_void,
*mut i64,
) -> windows_core::HRESULT,
pub RemoveWebResourceResponseReceived:
unsafe extern "system" fn(*mut core::ffi::c_void, i64) -> windows_core::HRESULT,
pub NavigateWithWebResourceRequest: unsafe extern "system" fn(
*mut core::ffi::c_void,
*mut core::ffi::c_void,
) -> windows_core::HRESULT,
pub DOMContentLoaded: unsafe extern "system" fn(
*mut core::ffi::c_void,
*mut core::ffi::c_void,
*mut i64,
) -> windows_core::HRESULT,
pub RemoveDOMContentLoaded:
unsafe extern "system" fn(*mut core::ffi::c_void, i64) -> windows_core::HRESULT,
pub CookieManager: unsafe extern "system" fn(
*mut core::ffi::c_void,
*mut *mut core::ffi::c_void,
) -> windows_core::HRESULT,
pub Environment: unsafe extern "system" fn(
*mut core::ffi::c_void,
*mut *mut core::ffi::c_void,
) -> windows_core::HRESULT,
}
pub trait ICoreWebView2_2_Impl: ICoreWebView2_Impl {
fn WebResourceResponseReceived(
&self,
eventhandler: windows_core::Ref<ICoreWebView2WebResourceResponseReceivedEventHandler>,
) -> windows_core::Result<i64>;
fn RemoveWebResourceResponseReceived(&self, token: i64) -> windows_core::Result<()>;
fn NavigateWithWebResourceRequest(
&self,
request: windows_core::Ref<ICoreWebView2WebResourceRequest>,
) -> windows_core::Result<()>;
fn DOMContentLoaded(
&self,
eventhandler: windows_core::Ref<ICoreWebView2DOMContentLoadedEventHandler>,
) -> windows_core::Result<i64>;
fn RemoveDOMContentLoaded(&self, token: i64) -> windows_core::Result<()>;
fn CookieManager(&self) -> windows_core::Result<ICoreWebView2CookieManager>;
fn Environment(&self) -> windows_core::Result<ICoreWebView2Environment>;
}
impl ICoreWebView2_2_Vtbl {
pub const fn new<Identity: ICoreWebView2_2_Impl, const OFFSET: isize>() -> Self {
unsafe extern "system" fn WebResourceResponseReceived<
Identity: ICoreWebView2_2_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
eventhandler: *mut core::ffi::c_void,
token: *mut i64,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
match ICoreWebView2_2_Impl::WebResourceResponseReceived(
this,
core::mem::transmute_copy(&eventhandler),
) {
Ok(ok__) => {
token.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn RemoveWebResourceResponseReceived<
Identity: ICoreWebView2_2_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
token: i64,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
ICoreWebView2_2_Impl::RemoveWebResourceResponseReceived(
this,
core::mem::transmute_copy(&token),
)
.into()
}
}
unsafe extern "system" fn NavigateWithWebResourceRequest<
Identity: ICoreWebView2_2_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
request: *mut core::ffi::c_void,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
ICoreWebView2_2_Impl::NavigateWithWebResourceRequest(
this,
core::mem::transmute_copy(&request),
)
.into()
}
}
unsafe extern "system" fn DOMContentLoaded<
Identity: ICoreWebView2_2_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
eventhandler: *mut core::ffi::c_void,
token: *mut i64,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
match ICoreWebView2_2_Impl::DOMContentLoaded(
this,
core::mem::transmute_copy(&eventhandler),
) {
Ok(ok__) => {
token.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn RemoveDOMContentLoaded<
Identity: ICoreWebView2_2_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
token: i64,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
ICoreWebView2_2_Impl::RemoveDOMContentLoaded(
this,
core::mem::transmute_copy(&token),
)
.into()
}
}
unsafe extern "system" fn CookieManager<
Identity: ICoreWebView2_2_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
cookiemanager: *mut *mut core::ffi::c_void,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
match ICoreWebView2_2_Impl::CookieManager(this) {
Ok(ok__) => {
cookiemanager.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn Environment<
Identity: ICoreWebView2_2_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
environment: *mut *mut core::ffi::c_void,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
match ICoreWebView2_2_Impl::Environment(this) {
Ok(ok__) => {
environment.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
Self {
base__: ICoreWebView2_Vtbl::new::<Identity, OFFSET>(),
WebResourceResponseReceived: WebResourceResponseReceived::<Identity, OFFSET>,
RemoveWebResourceResponseReceived: RemoveWebResourceResponseReceived::<Identity, OFFSET>,
NavigateWithWebResourceRequest: NavigateWithWebResourceRequest::<Identity, OFFSET>,
DOMContentLoaded: DOMContentLoaded::<Identity, OFFSET>,
RemoveDOMContentLoaded: RemoveDOMContentLoaded::<Identity, OFFSET>,
CookieManager: CookieManager::<Identity, OFFSET>,
Environment: Environment::<Identity, OFFSET>,
}
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<ICoreWebView2_2 as windows_core::Interface>::IID
|| iid == &<ICoreWebView2 as windows_core::Interface>::IID
}
}
impl windows_core::RuntimeName for ICoreWebView2_2 {}
windows_core::imp::define_interface!(
ICoreWebView2_3,
ICoreWebView2_3_Vtbl,
0xa0d6df20_3b92_416d_aa0c_437a9c727857
);
impl core::ops::Deref for ICoreWebView2_3 {
type Target = ICoreWebView2_2;
fn deref(&self) -> &Self::Target {
unsafe { core::mem::transmute(self) }
}
}
windows_core::imp::interface_hierarchy!(
ICoreWebView2_3,
windows_core::IUnknown,
ICoreWebView2,
ICoreWebView2_2
);
impl ICoreWebView2_3 {
pub unsafe fn TrySuspend<P0>(&self, handler: P0) -> windows_core::Result<()>
where
P0: windows_core::Param<ICoreWebView2TrySuspendCompletedHandler>,
{
unsafe {
(windows_core::Interface::vtable(self).TrySuspend)(
windows_core::Interface::as_raw(self),
handler.param().abi(),
)
.ok()
}
}
pub unsafe fn Resume(&self) -> windows_core::Result<()> {
unsafe {
(windows_core::Interface::vtable(self).Resume)(windows_core::Interface::as_raw(self))
.ok()
}
}
pub unsafe fn IsSuspended(&self) -> windows_core::Result<windows_core::BOOL> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).IsSuspended)(
windows_core::Interface::as_raw(self),
&mut result__,
)
.map(|| result__)
}
}
pub unsafe fn SetVirtualHostNameToFolderMapping<P0, P1>(
&self,
hostname: P0,
folderpath: P1,
accesskind: COREWEBVIEW2_HOST_RESOURCE_ACCESS_KIND,
) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCWSTR>,
P1: windows_core::Param<windows_core::PCWSTR>,
{
unsafe {
(windows_core::Interface::vtable(self).SetVirtualHostNameToFolderMapping)(
windows_core::Interface::as_raw(self),
hostname.param().abi(),
folderpath.param().abi(),
accesskind,
)
.ok()
}
}
pub unsafe fn ClearVirtualHostNameToFolderMapping<P0>(
&self,
hostname: P0,
) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCWSTR>,
{
unsafe {
(windows_core::Interface::vtable(self).ClearVirtualHostNameToFolderMapping)(
windows_core::Interface::as_raw(self),
hostname.param().abi(),
)
.ok()
}
}
}
#[repr(C)]
#[doc(hidden)]
pub struct ICoreWebView2_3_Vtbl {
pub base__: ICoreWebView2_2_Vtbl,
pub TrySuspend: unsafe extern "system" fn(
*mut core::ffi::c_void,
*mut core::ffi::c_void,
) -> windows_core::HRESULT,
pub Resume: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
pub IsSuspended: unsafe extern "system" fn(
*mut core::ffi::c_void,
*mut windows_core::BOOL,
) -> windows_core::HRESULT,
pub SetVirtualHostNameToFolderMapping: unsafe extern "system" fn(
*mut core::ffi::c_void,
windows_core::PCWSTR,
windows_core::PCWSTR,
COREWEBVIEW2_HOST_RESOURCE_ACCESS_KIND,
) -> windows_core::HRESULT,
pub ClearVirtualHostNameToFolderMapping: unsafe extern "system" fn(
*mut core::ffi::c_void,
windows_core::PCWSTR,
)
-> windows_core::HRESULT,
}
pub trait ICoreWebView2_3_Impl: ICoreWebView2_2_Impl {
fn TrySuspend(
&self,
handler: windows_core::Ref<ICoreWebView2TrySuspendCompletedHandler>,
) -> windows_core::Result<()>;
fn Resume(&self) -> windows_core::Result<()>;
fn IsSuspended(&self) -> windows_core::Result<windows_core::BOOL>;
fn SetVirtualHostNameToFolderMapping(
&self,
hostname: &windows_core::PCWSTR,
folderpath: &windows_core::PCWSTR,
accesskind: COREWEBVIEW2_HOST_RESOURCE_ACCESS_KIND,
) -> windows_core::Result<()>;
fn ClearVirtualHostNameToFolderMapping(
&self,
hostname: &windows_core::PCWSTR,
) -> windows_core::Result<()>;
}
impl ICoreWebView2_3_Vtbl {
pub const fn new<Identity: ICoreWebView2_3_Impl, const OFFSET: isize>() -> Self {
unsafe extern "system" fn TrySuspend<
Identity: ICoreWebView2_3_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
handler: *mut core::ffi::c_void,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
ICoreWebView2_3_Impl::TrySuspend(this, core::mem::transmute_copy(&handler)).into()
}
}
unsafe extern "system" fn Resume<Identity: ICoreWebView2_3_Impl, const OFFSET: isize>(
this: *mut core::ffi::c_void,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
ICoreWebView2_3_Impl::Resume(this).into()
}
}
unsafe extern "system" fn IsSuspended<
Identity: ICoreWebView2_3_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
issuspended: *mut windows_core::BOOL,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
match ICoreWebView2_3_Impl::IsSuspended(this) {
Ok(ok__) => {
issuspended.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn SetVirtualHostNameToFolderMapping<
Identity: ICoreWebView2_3_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
hostname: windows_core::PCWSTR,
folderpath: windows_core::PCWSTR,
accesskind: COREWEBVIEW2_HOST_RESOURCE_ACCESS_KIND,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
ICoreWebView2_3_Impl::SetVirtualHostNameToFolderMapping(
this,
core::mem::transmute(&hostname),
core::mem::transmute(&folderpath),
core::mem::transmute_copy(&accesskind),
)
.into()
}
}
unsafe extern "system" fn ClearVirtualHostNameToFolderMapping<
Identity: ICoreWebView2_3_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
hostname: windows_core::PCWSTR,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
ICoreWebView2_3_Impl::ClearVirtualHostNameToFolderMapping(
this,
core::mem::transmute(&hostname),
)
.into()
}
}
Self {
base__: ICoreWebView2_2_Vtbl::new::<Identity, OFFSET>(),
TrySuspend: TrySuspend::<Identity, OFFSET>,
Resume: Resume::<Identity, OFFSET>,
IsSuspended: IsSuspended::<Identity, OFFSET>,
SetVirtualHostNameToFolderMapping: SetVirtualHostNameToFolderMapping::<Identity, OFFSET>,
ClearVirtualHostNameToFolderMapping: ClearVirtualHostNameToFolderMapping::<
Identity,
OFFSET,
>,
}
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<ICoreWebView2_3 as windows_core::Interface>::IID
|| iid == &<ICoreWebView2 as windows_core::Interface>::IID
|| iid == &<ICoreWebView2_2 as windows_core::Interface>::IID
}
}
impl windows_core::RuntimeName for ICoreWebView2_3 {}