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
>;
8 #[cfg(feature = "Foundation")]
9 impl ::windows
::core
::RuntimeName
for IPointerPointTransform
{
10 const NAME
: &'
static str = "Windows.UI.Input.IPointerPointTransform";
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)
24 ::core
::result
::Result
::Err(err
) => err
.into(),
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)
36 ::core
::result
::Result
::Err(err
) => err
.into(),
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)
48 ::core
::result
::Result
::Err(err
) => err
.into(),
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
>,
58 pub fn matches(iid
: &windows
::core
::GUID
) -> bool
{
59 iid
== &<IPointerPointTransform
as ::windows
::core
::ComInterface
>::IID