]> git.proxmox.com Git - rustc.git/blob - vendor/windows/src/Windows/UI/Input/impl.rs
New upstream version 1.70.0+dfsg1
[rustc.git] / vendor / windows / src / Windows / UI / Input / impl.rs
1 #[doc = "*Required features: `\"UI_Input\"`, `\"Foundation\"`, `\"implement\"`*"]
2 #[cfg(feature = "Foundation")]
3 pub trait IPointerPointTransform_Impl: Sized {
4 fn Inverse(&self) -> ::windows::core::Result<IPointerPointTransform>;
5 fn TryTransform(&self, inpoint: &super::super::Foundation::Point, outpoint: &mut super::super::Foundation::Point) -> ::windows::core::Result<bool>;
6 fn TransformBounds(&self, rect: &super::super::Foundation::Rect) -> ::windows::core::Result<super::super::Foundation::Rect>;
7 }
8 #[cfg(feature = "Foundation")]
9 impl ::windows::core::RuntimeName for IPointerPointTransform {
10 const NAME: &'static str = "Windows.UI.Input.IPointerPointTransform";
11 }
12 #[cfg(feature = "Foundation")]
13 impl IPointerPointTransform_Vtbl {
14 pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IPointerPointTransform_Impl, const OFFSET: isize>() -> IPointerPointTransform_Vtbl {
15 unsafe extern "system" fn Inverse<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IPointerPointTransform_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, result__: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
16 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
17 let this = (*this).get_impl();
18 match this.Inverse() {
19 ::core::result::Result::Ok(ok__) => {
20 ::core::ptr::write(result__, ::core::mem::transmute_copy(&ok__));
21 ::core::mem::forget(ok__);
22 ::windows::core::HRESULT(0)
23 }
24 ::core::result::Result::Err(err) => err.into(),
25 }
26 }
27 unsafe extern "system" fn TryTransform<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IPointerPointTransform_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, inpoint: super::super::Foundation::Point, outpoint: *mut super::super::Foundation::Point, result__: *mut bool) -> ::windows::core::HRESULT {
28 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
29 let this = (*this).get_impl();
30 match this.TryTransform(::core::mem::transmute(&inpoint), ::core::mem::transmute_copy(&outpoint)) {
31 ::core::result::Result::Ok(ok__) => {
32 ::core::ptr::write(result__, ::core::mem::transmute_copy(&ok__));
33 ::core::mem::forget(ok__);
34 ::windows::core::HRESULT(0)
35 }
36 ::core::result::Result::Err(err) => err.into(),
37 }
38 }
39 unsafe extern "system" fn TransformBounds<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IPointerPointTransform_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, rect: super::super::Foundation::Rect, result__: *mut super::super::Foundation::Rect) -> ::windows::core::HRESULT {
40 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
41 let this = (*this).get_impl();
42 match this.TransformBounds(::core::mem::transmute(&rect)) {
43 ::core::result::Result::Ok(ok__) => {
44 ::core::ptr::write(result__, ::core::mem::transmute_copy(&ok__));
45 ::core::mem::forget(ok__);
46 ::windows::core::HRESULT(0)
47 }
48 ::core::result::Result::Err(err) => err.into(),
49 }
50 }
51 Self {
52 base__: ::windows::core::IInspectable_Vtbl::new::<Identity, IPointerPointTransform, OFFSET>(),
53 Inverse: Inverse::<Identity, Impl, OFFSET>,
54 TryTransform: TryTransform::<Identity, Impl, OFFSET>,
55 TransformBounds: TransformBounds::<Identity, Impl, OFFSET>,
56 }
57 }
58 pub fn matches(iid: &windows::core::GUID) -> bool {
59 iid == &<IPointerPointTransform as ::windows::core::ComInterface>::IID
60 }
61 }